- 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)
45 lines
1.4 KiB
YAML
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
|