soulsync/docker-compose.yml
Broque Thomas f10c27c125 Update Docker setup and config paths
Improves Docker integration by copying config.example.json as the default config.json and updating ownership in the Dockerfile. Adjusts config paths in config.example.json for container compatibility and updates docker-compose.yml to build the image and comment out the config volume for baked-in config testing. Also updates .dockerignore to allow config.example.json.
2025-09-13 15:12:23 -07:00

66 lines
No EOL
2.1 KiB
YAML

version: '3.8'
services:
soulsync:
image: boulderbadgedad/soulsync:latest
container_name: soulsync-webui
ports:
- "8008:8008" # Main web app
- "8888:8888" # Spotify OAuth callback
- "8889:8889" # Tidal OAuth callback
volumes:
# Persistent data volumes
# - ./config:/app/config # Commented out to test baked-in 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
environment:
# 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
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