Files
minstrel/docker-compose.yml
T
bvandeusen 64582b21e3 fix(auth): set subsonic_password on admin bootstrap
Bootstrap was creating password_hash + api_token but leaving
subsonic_password nil, which meant Subsonic clients (Feishin, Symfonium)
got ErrTokenNotSupported on t+s auth — the server had no plaintext to
hash against. Mirror the bootstrap password into subsonic_password so
the admin can sign in to Subsonic clients with the same credential
printed on first boot. Plaintext at rest is the cost of Subsonic's
legacy auth; matches Navidrome's posture.

Also folds in the local dev compose tweaks: dedicated bridge network
with postgres unpublished from the host, and a bind-mount aimed at the
operator's real library path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 18:30:54 -04:00

58 lines
1.6 KiB
YAML

version: "3.9"
# Local development environment for Minstrel.
# Not used by CI — integration tests run against this compose stack manually:
# docker compose up -d postgres
# MINSTREL_TEST_DATABASE_URL=postgres://minstrel:minstrel@localhost:5432/minstrel?sslmode=disable \
# go test ./...
#
# Full stack (server + db):
# docker compose up --build
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: minstrel
POSTGRES_PASSWORD: minstrel
POSTGRES_DB: minstrel
networks:
- minstrel
# ports:
# - "5432:5432"
volumes:
- minstrel-pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U minstrel -d minstrel"]
interval: 5s
timeout: 5s
retries: 10
minstrel:
build: .
depends_on:
postgres:
condition: service_healthy
environment:
SMARTMUSIC_DATABASE_URL: postgres://minstrel:minstrel@postgres:5432/minstrel?sslmode=disable
SMARTMUSIC_LOG_FORMAT: text
SMARTMUSIC_LIBRARY_SCAN_PATHS: /music
SMARTMUSIC_LIBRARY_SCAN_ON_STARTUP: "true"
SMARTMUSIC_AUTH_ADMIN_USERNAME: admin
# SMARTMUSIC_AUTH_ADMIN_PASSWORD left unset on purpose — bootstrap
# generates one and prints it to stderr on first boot. Watch the logs
# of the minstrel service the first time you bring the stack up.
networks:
- minstrel
ports:
- "4533:4533"
volumes:
# Point ./music at your test library (symlink, bind-mount, whatever).
# Read-only so a buggy scanner can't rewrite your files.
- /mnt/Media/Music:/music:ro
volumes:
minstrel-pgdata:
networks:
minstrel: