soulsync/docker-compose.yml
Broque Thomas 008653a69c Improve Docker compatibility for host service URLs
Updated Soulseek client, web server, and docker-compose.yml to better handle service URLs when running inside Docker containers. Localhost URLs are now resolved to host.docker.internal, and Docker-specific volume mounts and extra_hosts are configured for improved interoperability between container and host services.
2025-09-11 13:53:36 -07:00

54 lines
No EOL
1.6 KiB
YAML

version: '3.8'
services:
soulsync:
build: .
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
- ./database:/app/database
- ./logs:/app/logs
# Soulseek download and transfer directories (mapped to host E: drive paths)
- /mnt/e/Broque Projects/newMusic/downloads:/app/downloads
- /mnt/e/Broque Projects/newMusic/transfer:/app/transfer
# Stream folder for temporary playback files
- /mnt/e/Broque Projects/newMusic/stream:/app/stream
# 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
# Optional: Add external network for communication with other containers
networks:
default:
name: soulsync-network