This guide covers deploying the pellicle-watcher container using SSH and Docker Compose on any NAS or Linux server (Unraid, generic Linux, etc.). Before starting, create a config.yml file following the Watcher Configuration reference.
SSH into your NAS or server. Create a directory for the project and place both your config.yml and a new docker-compose.yml file in it:
mkdir -p ~/pellicle-watcher
cd ~/pellicle-watcher
Create docker-compose.yml with the following content:
services:
pellicle-watcher:
image: robotmay/pellicle-watcher:latest
network_mode: host
restart: unless-stopped
volumes:
- /path/to/Photography:/data/Photography:ro
- ./config:/etc/pellicle-watcher
Note: network_mode: host is required for mDNS discovery to work. Adjust the volume path (/path/to/Photography) to match where your photos are stored. The config directory stores the configuration file, TLS certificates, and admin database — mounting it as a volume ensures everything persists across container restarts. Place your config.yml in this directory before starting the container.
docker compose up -d
Check the logs to confirm it started:
docker compose logs -f
You should see a message indicating the watcher is listening on the configured port.
To update to a newer version of the watcher image:
docker compose pull
docker compose up -d
Now continue with Connecting Pellicle.