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.
54 lines
No EOL
1.6 KiB
YAML
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 |