-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
Jesse Slaton edited this page Feb 26, 2026
·
1 revision
Stillwater runs as a Docker container. It requires two volume mounts: one for persistent data (database, encryption key, backups) and one for your music library.
Create a docker-compose.yml:
services:
stillwater:
image: ghcr.io/sydlexius/stillwater:latest
container_name: stillwater
ports:
- "1973:1973"
environment:
- PUID=1000
- PGID=1000
volumes:
- /path/to/data:/data
- /path/to/music:/music
restart: unless-stoppedThen start it:
docker compose up -ddocker run -d \
--name stillwater \
-p 1973:1973 \
-e PUID=1000 \
-e PGID=1000 \
-v /path/to/data:/data \
-v /path/to/music:/music \
--restart unless-stopped \
ghcr.io/sydlexius/stillwater:latest| Container Path | Purpose |
|---|---|
/data |
Database (stillwater.db), encryption key, automated backups |
/music |
Your music library root (artist directories) |
You can mount additional library paths if you have multiple music directories (e.g., /classical). Add each as a separate volume mount and register them as libraries in the app.
Set PUID and PGID to match the owner of your music files. This ensures Stillwater can read and write NFO files and images without permission errors.
# Find your user's UID and GID:
id $USER- Open
http://your-server:1973in a browser - Create an admin account (username and password)
- The onboarding wizard walks you through:
- Adding music library paths
- Choosing your media server platform (Emby, Jellyfin, or Kodi)
- Configuring metadata provider API keys
- Optionally connecting to your media server or Lidarr
docker compose pull
docker compose up -dThe database is automatically migrated on startup when upgrading to a new version. Automated backups are enabled by default (see Configuration for backup settings).