Synology
Keel runs on Synology NAS models with an x86-64 or 64-bit ARM CPU and DSM 7.2 or newer, through Container Manager. Two ways to install it:
- The installer over SSH (recommended): one command, settings in an
.envfile, and thekeelcommand for updates with a backup first and rollbacks. - A Container Manager project: paste Keel's compose file in DSM's web interface, no SSH needed.
Either way Keel keeps its data in /volume1/docker/keel (the docker shared folder).
Before you start
- Install Container Manager from the Package Center. It creates the
dockershared folder on your first volume. - Your NAS needs 4 GB of RAM or more (many models take a memory upgrade). See Requirements.
- Ports 8000 (API) and 3000 (Studio) must be free.
Option A: the installer (recommended)
Turn on SSH: Control Panel > Terminal & SNMP > Enable SSH service.
Sign in as an administrator (
ssh <admin-user>@<nas>) and run:bashcurl -fsSL https://www.keeldb.name/install.sh | sudo bash
Keel goes into /volume1/docker/keel (the first volume that exists), not onto DSM's small system partition. Studio opens at http://<nas>:3000 from your network. You can turn SSH off again afterwards.
Container Manager shows Keel's containers. Start, stop and update them with the keel command so the settings in .env apply:
cd /volume1/docker/keel
sudo ./keel ps # is everything running?
sudo ./keel update # back up, move to the newest release, restart
sudo ./keel rollback # back to the version before the last updateOption B: Container Manager project
Make the passwords. With SSH, run this once and keep the output:
bashsudo docker run --rm ghcr.io/niklan1110/keel:latest generate-envWithout SSH, use a password generator: four random strings of letters and digits, 32 characters each, for the database password, the service password, the Keel secret and your Studio password, and two random strings of 64 hex characters (0-9, a-f) for the image-resize key and salt.
In File Station, create the folder
keelin thedockershared folder.Get the compose file. Open
nas-docker-compose.yml, copy all of it into a text editor, and replace every/DATA/AppData/keelwith/volume1/docker/keel.Fill in the seven
CHANGE_MEvalues: the passwords and keys, and your NAS's IP address inKEEL_PUBLIC_URL(the table is in Unraid: Fill in the values; it's the same file).In Container Manager > Project, click Create. Name it
keel, set the path to/docker/keel, choose Create docker-compose.yml and paste your edited file. Skip the Web Station step and click Done.When the project is running, open Studio at
http://<nas>:3000and sign in asadminwith your dashboard password.
Your settings, passwords included, are in that compose file (/volume1/docker/keel/docker-compose.yml); keep a copy. To update, back up in Studio first, then in Project, select keel, Action > Build (it pulls new images and recreates the containers). When Keel's compose file changes, edit the project's YAML with the new file and your values.
Firewall and HTTPS
- If the DSM firewall is on (Control Panel > Security > Firewall), allow ports 3000 (Studio) and 8000 (API) from your network.
- For HTTPS on your own domain, DSM's reverse proxy works (Control Panel > Login Portal > Advanced > Reverse Proxy): source
https://api.example.com, destinationhttp://localhost:8000, and under Custom Header, Create > WebSocket so realtime works. Add the proxy toKEEL_TRUSTED_PROXIESashost(see Configuration). Or use a Cloudflare Tunnel, which needs no open ports.
Backups
Keel dumps every database to /volume1/docker/keel/backups each night, and uploads live in storage/ next to it. Include the docker/keel folder in Hyper Backup, or take Snapshot Replication snapshots of the docker shared folder (Btrfs volumes). See Backups and restore.