3.1 KiB
3.1 KiB
Synology Deployment Guide (ManeshTrader Web)
This guide documents the exact deployment flow that worked for this project on Synology NAS.
App Location
This project runs from:
- NAS folder:
/volume1/docker/maneshtrader - Container port:
8501 - URL:
http://<NAS_IP>:8501
Prerequisites (One-Time)
On Synology DSM:
- Install
Container Managerfrom Package Center. - Enable SSH:
Control Panel -> Terminal & SNMP -> Enable SSH service
- Ensure your user can run Docker:
- Add user to
administratorsgroup. - Grant
Container Managerapp permission for that user.
- Add user to
Notes:
- Store data only in shared folders (use
/volume1/...paths). - If Docker commands fail with socket permission errors, use
sudo -i(see Troubleshooting).
Required Files in web/src
These files must exist (already added in this repo):
Dockerfiledocker-compose.ymlapp.pyrequirements.txtweb_core/
Initial Deploy
Run from your Mac (repo root), using your SSH port 25:
rsync -avz --delete -e "ssh -p 25" \
--exclude ".pytest_cache" --exclude "__pycache__" \
web/src/ mbrucedogs@192.168.1.128:/volume1/docker/maneshtrader/
Then SSH to Synology:
ssh -p 25 mbrucedogs@192.168.1.128
Start the container:
sudo -i
cd /volume1/docker/maneshtrader
mkdir -p data
docker compose up -d --build
If your DSM uses legacy compose command:
docker-compose up -d --build
Verify It Is Running
sudo -i
docker ps --filter name=maneshtrader
docker logs --tail 100 maneshtrader
Open in browser:
http://192.168.1.128:8501
Update Workflow (After Code Changes)
You do not need to redo full setup. Just:
- Sync updated source.
- Rebuild/restart compose service.
From Mac:
rsync -avz --delete -e "ssh -p 25" \
web/src/ mbrucedogs@192.168.1.128:/volume1/docker/maneshtrader/
On Synology:
sudo -i
cd /volume1/docker/maneshtrader
docker compose up -d --build
Useful Operations
Restart app:
sudo -i
cd /volume1/docker/maneshtrader
docker compose restart
Stop app:
sudo -i
cd /volume1/docker/maneshtrader
docker compose down
Follow logs live:
sudo -i
docker logs -f maneshtrader
Troubleshooting
Error: permission denied while trying to connect to the Docker daemon socket
Cause:
- SSH user does not have Docker daemon access.
Fix:
- Run commands as root shell:
sudo -i
- If
sudois unavailable, in DSM:- Add user to
administrators. - Allow
Container Managerpermission. - Reconnect SSH.
- Add user to
Do not run insecure socket permission changes like:
chmod 666 /var/run/docker.sock
docker compose not found
Try legacy command:
docker-compose up -d --build
Or extend PATH:
export PATH=$PATH:/usr/local/bin:/var/packages/ContainerManager/target/usr/bin
Optional: One-Liner Update From Mac
rsync -avz --delete -e "ssh -p 25" \
web/src/ mbrucedogs@192.168.1.128:/volume1/docker/maneshtrader/ && \
ssh -p 25 mbrucedogs@192.168.1.128 \
"sudo -i sh -lc 'cd /volume1/docker/maneshtrader && docker compose up -d --build'"