c75b9d3562
- worker had no IPv6 route -> Qobuz CDN (dual-stack) failed ~half the tracks with 'Network is unreachable'; disable IPv6 in the container (IPv4 only). - StreamripClient counted metadata tracks (always full) -> a partial download falsely imported; now count the actual files written (short count -> needs_attention). - streamrip writes into a nested 'Artist - Album [..]/' folder the tagger never saw; flatten audio files up into the album dir so tagging/organization runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
services:
|
|
db:
|
|
image: postgres:17
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
ports:
|
|
- "5432:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
web:
|
|
build: ./web
|
|
restart: unless-stopped
|
|
environment:
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
LYRA_SECRET_KEY: ${LYRA_SECRET_KEY}
|
|
ports:
|
|
# host:container — host 8770 avoids the Quill app on 3000 (and Lidarr on 8686)
|
|
- "8770:3000"
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
worker:
|
|
build: ./worker
|
|
restart: unless-stopped
|
|
environment:
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
LYRA_SECRET_KEY: ${LYRA_SECRET_KEY}
|
|
# Qobuz's CDN also resolves to IPv6, but the container has no IPv6 route
|
|
# ("Network is unreachable"); disable IPv6 so downloads use IPv4 only.
|
|
sysctls:
|
|
- net.ipv6.conf.all.disable_ipv6=1
|
|
volumes:
|
|
- ${MUSIC_DIR:-./music}:/music
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
postgres-data:
|