You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SoulSync/docker-compose.yml

70 lines
2.2 KiB

version: '3.8'
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
- 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
# Use named volume for database persistence (separate from host database)
- soulsync_database:/app/database
# IMPORTANT: Mount the drives containing your download and transfer folders
# If your download/transfer paths are on E: drive, mount E: drive:
- /mnt/e:/host/mnt/e:rw
# Mount H: drive for transfer folder
- /mnt/h:/host/mnt/h:rw
# If your download/transfer paths are on C: drive, uncomment this line:
# - /mnt/c:/host/mnt/c:rw
# If your download/transfer paths are on D: drive, uncomment this line:
# - /mnt/d:/host/mnt/d:rw
# Add additional drive mounts as needed for your specific setup
# Optional: Mount your music library for Plex/Jellyfin 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:8888/"]
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