feat: add static file server for direct MP3 links

- Add nginx service to serve music files at music.media.pivoine.art
- Enables direct MP3 file URLs for website embedding
- Serves files from /mnt/hidrive/users/valknar/Music read-only
This commit is contained in:
2025-11-15 08:51:29 +01:00
parent b78becd0c7
commit 0f21392113
2 changed files with 27 additions and 0 deletions

View File

@@ -62,6 +62,32 @@ services:
- 'traefik.docker.network=${NETWORK_NAME}'
- 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}'
# Music Files - Static file server for direct MP3 links
music_files:
image: nginx:alpine
container_name: ${MEDIA_COMPOSE_PROJECT_NAME}_music_files
restart: unless-stopped
volumes:
- /mnt/hidrive/users/valknar/Music:/usr/share/nginx/html:ro
networks:
- compose_network
labels:
- 'traefik.enable=${MEDIA_TRAEFIK_ENABLED}'
# HTTP to HTTPS redirect
- 'traefik.http.middlewares.${MEDIA_COMPOSE_PROJECT_NAME}-music-redirect-web-secure.redirectscheme.scheme=https'
- 'traefik.http.routers.${MEDIA_COMPOSE_PROJECT_NAME}-music-web.middlewares=${MEDIA_COMPOSE_PROJECT_NAME}-music-redirect-web-secure'
- 'traefik.http.routers.${MEDIA_COMPOSE_PROJECT_NAME}-music-web.rule=Host(`${MEDIA_MUSIC_FILES_TRAEFIK_HOST}`)'
- 'traefik.http.routers.${MEDIA_COMPOSE_PROJECT_NAME}-music-web.entrypoints=web'
# HTTPS router
- 'traefik.http.routers.${MEDIA_COMPOSE_PROJECT_NAME}-music-web-secure.rule=Host(`${MEDIA_MUSIC_FILES_TRAEFIK_HOST}`)'
- 'traefik.http.routers.${MEDIA_COMPOSE_PROJECT_NAME}-music-web-secure.tls.certresolver=resolver'
- 'traefik.http.routers.${MEDIA_COMPOSE_PROJECT_NAME}-music-web-secure.entrypoints=web-secure'
# Service
- 'traefik.http.services.${MEDIA_COMPOSE_PROJECT_NAME}-music-web-secure.loadbalancer.server.port=80'
- 'traefik.docker.network=${NETWORK_NAME}'
# Watchtower
- 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}'
# Navidrome - Music streaming server with public sharing
navidrome:
image: ${MEDIA_NAVIDROME_IMAGE:-deluan/navidrome:latest}