feat: consolidate media services into unified media stack

- Combine Jellyfin, Filestash, and Koel into single media/ compose stack
- Remove standalone jelly/ and stash/ compose files
- Add Koel music streaming with PostgreSQL backend
- Update core PostgreSQL init script to create koel database
- Add media stack to root compose.yaml include
- Configure media services with subdomain routing (jellyfin.media, filestash.media, koel.media)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-14 20:40:53 +01:00
parent 709dcd8882
commit fd059dbbb5
6 changed files with 184 additions and 92 deletions

View File

@@ -147,6 +147,20 @@ envs:
JELLY_TRAEFIK_ENABLED: true
JELLY_COMPOSE_PROJECT_NAME: jelly
JELLY_TRAEFIK_HOST: jelly.pivoine.art
# Media Stack (Jellyfin, Filestash, Koel)
MEDIA_TRAEFIK_ENABLED: true
MEDIA_COMPOSE_PROJECT_NAME: media
MEDIA_JELLYFIN_IMAGE: jellyfin/jellyfin:latest
MEDIA_JELLYFIN_TRAEFIK_HOST: jellyfin.media.pivoine.art
MEDIA_FILESTASH_IMAGE: machines/filestash:latest
MEDIA_FILESTASH_TRAEFIK_HOST: filestash.media.pivoine.art
MEDIA_FILESTASH_CANARY: true
MEDIA_KOEL_IMAGE: phanan/koel:latest
MEDIA_KOEL_TRAEFIK_HOST: koel.media.pivoine.art
MEDIA_KOEL_DB_NAME: koel
MEDIA_KOEL_DEBUG: false
MEDIA_KOEL_MEMORY_LIMIT: 512M
MEDIA_KOEL_STREAMING_METHOD: x-sendfile
# PairDrop
DROP_TRAEFIK_ENABLED: true
DROP_COMPOSE_PROJECT_NAME: drop