clustered-fucks/compose-files/replicant/navidrome/docker-compose.yml
Maddox ecac3c8949 Add compose file management infrastructure
- collect-compose.yml: Fetches all compose files from docker_hosts
- collect-env-templates.yml: Creates .env.example with secrets redacted
- deploy-compose.yml: Pushes compose files to hosts (with optional restart)
- diff-compose.yml: Shows differences before deploying

Collected 23 compose files from 7 hosts:
- replicant: 12 stacks (arr-stack, mealie, portainer, etc)
- docker666: 4 stacks (unifi, gluetun, uptime, utils)
- databases: 3 stacks (postgres, forgejo, utils)
- download-stack: 2 stacks (download-stack, utils)
- media-transcode: 1 stack (utils)
- network-services: 1 stack (utils)
- immich: 1 stack (utils)
2026-01-23 19:11:23 +00:00

45 lines
1.4 KiB
YAML

services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1000:1000
restart: unless-stopped
networks:
- proxy
ports:
- "4533:4533"
environment:
- TZ=America/New_York
- ND_LOGLEVEL=info
- ND_LASTFM_APIKEY=e5344a7783d126cd0eae7e90db5bee9b
- ND_LASTFM_SECRET=d2cfbf94a4509b3eebf069a55544af89
volumes:
- ./data:/data
- /volume1/Media/Music:/music:ro
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
labels:
# Homepage dashboard
- "homepage.group=Media"
- "homepage.name=Navidrome"
- "homepage.icon=navidrome.png"
- "homepage.href=http://192.168.1.245:4533"
- "homepage.description=Music streaming"
# - "homepage.widget.type=navidrome"
# - "homepage.widget.url=http://192.168.1.245:4533"
# - "homepage.widget.user=YOUR_USERNAME"
# - "homepage.widget.token=YOUR_NAVIDROME_TOKEN"
# Traefik (uncomment when ready)
# - "traefik.enable=true"
# - "traefik.http.routers.navidrome.entrypoints=websecure"
# - "traefik.http.routers.navidrome.rule=Host(`navidrome.yourdomain.com`)"
# - "traefik.http.routers.navidrome.tls=true"
# - "traefik.http.routers.navidrome.tls.certresolver=myresolver"
# - "traefik.http.services.navidrome.loadbalancer.server.port=4533"
networks:
proxy:
external: true