soulsync/docker-compose.yml
Broque Thomas 1f0ef08b48 Add Music Videos directory setting for Plex music video support
New configurable path for storing music videos separately from audio
files, following Plex's global music video folder convention.

- Settings: library.music_videos_path (default: ./MusicVideos)
- UI: Music Videos Dir field on Settings Downloads tab with lock/unlock
- Docker: /app/MusicVideos volume mount in Dockerfile and docker-compose
- Added 'library' to settings save whitelist (was missing — music_paths
  also wasn't persisting through main settings save)
- No download functionality yet — path infrastructure only
2026-04-10 22:01:27 -07:00

75 lines
2.6 KiB
YAML

# BREAKING CHANGE (v1.3+): Database volume mount changed from /app/database to /app/data
# If upgrading from a previous version, update your docker-compose.yml:
# OLD: - soulsync_database:/app/database
# NEW: - soulsync_database:/app/data
# Your data will be preserved - it's the same volume, just mounted at a different path.
services:
soulsync:
image: boulderbadgedad/soulsync:latest
container_name: soulsync-webui
environment:
# User/Group ID configuration
- PUID=1000
- PGID=1000
- UMASK=022
# Web server configuration
- FLASK_ENV=production
- PYTHONPATH=/app
# Optional: Configure through environment variables
- SOULSYNC_CONFIG_PATH=/app/config/config.json
# Set timezone (change to your timezone)
- TZ=America/New_York
ports:
- "8008:8008" # Main web app
- "8888:8888" # Spotify OAuth callback
- "8889:8889" # Tidal OAuth callback
volumes:
# Persistent data volumes
- ./config:/app/config
- ./logs:/app/logs
- ./downloads:/app/downloads
- ./Staging:/app/Staging
- ./MusicVideos:/app/MusicVideos
- ./scripts:/app/scripts
# Use named volume for database persistence (separate from host database)
# NOTE: Changed from /app/database to /app/data to avoid overwriting Python package
- soulsync_database:/app/data
# IMPORTANT: Mount host paths that your download/transfer folders live on.
# Replace these examples with your actual paths:
# Linux/Mac: - /path/to/your/downloads:/host/downloads:rw
# WSL: - /mnt/d/Music:/host/music:rw
# You can add as many mounts as needed for your setup.
# - /path/to/downloads:/host/downloads:rw
# - /path/to/transfer:/host/transfer:rw
# Optional: Mount your music library for Plex/Jellyfin/Navidrome access
# - /path/to/your/music:/music:ro
extra_hosts:
# Allow container to reach host services
- "host.docker.internal:host-gateway"
restart: unless-stopped
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8008/" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
# Resource limits (adjust as needed)
deploy:
resources:
limits:
cpus: '2.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 512M
# Named volumes for persistent data
volumes:
soulsync_database:
driver: local
# Optional: Add external network for communication with other containers
networks:
default:
name: soulsync-network