EsoDev_Alltime — Synology NAS deployment Your generated app already contains all 228,559 cells and RNA, GSVA, Pro. Total asset size: 18,508,954,390 bytes (18.51 GB / 17.24 GiB). Do not regenerate it, rename its internal RNA* files, or copy the large .qs objects. 1. In File Station open shared folder Geek, then shiny-apps. Create EsoDev_Alltime there. Copy ALL CONTENTS of Windows shinyapp/ into this folder. server.R must be at Geek/shiny-apps/EsoDev_Alltime/server.R, not at Geek/shiny-apps/EsoDev_Alltime/shinyapp/server.R. Copy NAS_deploy/ beside it: Geek/shiny-apps/NAS_deploy/. There are 11 application files: 3 .h5, 5 .rds and 3 .R files. 2. In Container Manager start the existing shiny-server container. Keep the existing mapping: /volume1/Geek/shiny-apps -> /srv/shiny-server NAS port 3838 -> container port 3838/tcp Open the container terminal and create a /bin/bash session as root. Run: bash /srv/shiny-server/NAS_deploy/setup_container.sh 3. Check that the Shiny session user can read all assets: runuser -u shiny -- Rscript /srv/shiny-server/NAS_deploy/verify_app.R /srv/shiny-server/EsoDev_Alltime If permission is denied, in File Station grant READ to the app folder and allow directory traversal using the shared-folder ACL settings. Do not use chmod 777 for the whole share. 4. Visit in a browser on the LAN: http://YOUR_NAS_LAN_IP:3838/EsoDev_Alltime/ Use the NAS LAN address, not Docker's 172.17.0.3 address. The default Shiny Server serves the app when its directory is requested. If app files were copied after it had already started, restart the container. 5. If the page fails, inspect Container Manager > shiny-server > Logs. App-specific logs are also in /var/log/shiny-server in the container. Enable automatic restart in Container Manager for use after NAS reboots. The app reads selected features from .h5 files on disk. Its 18.5 GB disk size is not an 18.5 GB RAM requirement; RAM rises with features plotted and sessions. Installed R packages belong to this container, not Windows RStudio. Restarting this container retains the installed packages. Recreating it from the original rocker/shiny image requires rerunning setup_container.sh. For external collaborators, configure a reachable HTTPS reverse proxy with WebSocket support, or use your existing VPN. QuickConnect is not automatically an address for this custom Shiny service. The steps above verify LAN access. References: https://github.com/the-ouyang-lab/ShinyCell2 https://rocker-project.org/images/versioned/shiny.html https://docs.posit.co/shiny-server/