Skip to content

๐ŸŽฌ Media Services โ€” Companion Apps

Host: Homelab ยท Compose: Homelab/Media/services/compose.yaml
Stack name: services

[!NOTE] Update Available: Updates for this stack are pending in: renovate/docker-dependencies.

1. Overview

Media companion applications that supplement the main ARR-Stack: a book manager, media statistics tools, YouTube archiving, podcast management, music discovery (Soulseek), and more. These run on the media server alongside the main media library.


2. Architecture & Services

Service Image Port Role
bl_mariadb lscr.io/linuxserver/mariadb:11.8.8 โ€” MariaDB for Booklore
booklore ghcr.io/the-booklore/booklore:v2.2.2 6060 eBook and comic book library manager
jellyplex-watched luigi311/jellyplex-watched:8.5.3 โ€” Sync watched status Jellyfin โ†” Plex
jellystat cyfershepard/jellystat:1.1.12 3282 Jellyfin statistics dashboard
jellystat-db postgres:15@sha256:9b1d34adbce1dd07ee6e94b4a2cf698884b89bd44a6c9c12f5da8f3acbfe4957 โ€” PostgreSQL for Jellystat
kids_pinchflat ghcr.io/kieraneglin/pinchflat:latest@sha256:01b4f98aabaf3f5fe394213f7a32578c9e84e42080f52e2f8334021a4473b202 8946 YouTube downloader (Kids content)
koito gabehf/koito:v0.3.2 โ€” Anime watch list tracker
opodsync ganeshlab/opodsync:0.6.0-amd64 38081 gPodder sync server
pinchflat ghcr.io/kieraneglin/pinchflat:latest@sha256:01b4f98aabaf3f5fe394213f7a32578c9e84e42080f52e2f8334021a4473b202 8945 YouTube downloader (main)
pinepods madeofpendletonwool/pinepods:0.9.0 8040 Self-hosted podcast manager
pinepods_db 11notes/postgres:17@sha256:6860d92d13eabd73703220ebc9ee401c12922d4eb7715e70adf3b2041768a486 โ€” PostgreSQL for Pinepods
podgrab akhilrex/podgrab:1.0.0 28081 Podcast downloader
soulseek realies/soulseek:latest@sha256:884827d6ed9757a525a2ed8be28ba5a48c47ddaab3e80a6c4413b5a85611a4aa 6080 Soulseek P2P music client (web UI)
stash stashapp/stash:v0.31.1 9999 Adult media library manager
tautulli tautulli/tautulli:v2.18.1 8181 Plex statistics and notifications
valkey valkey/valkey:8-alpine3.21 โ€” Valkey cache for Pinepods
ytvids-pinchflat ghcr.io/kieraneglin/pinchflat:latest@sha256:01b4f98aabaf3f5fe394213f7a32578c9e84e42080f52e2f8334021a4473b202 8947 YouTube downloader (YT Vids)

3. Networking

  • apps โ€” External shared app network
  • cloudflare-net โ€” External for Cloudflare Tunnel access (Booklore, Koito, gPodder)
  • database โ€” External shared database network
  • traefik โ€” External for Traefik routing

4. Persistent Storage

| Container | Host Path / Volume | Description | |---|---|---|| | bl_mariadb | /docker/data/media/booklore/mariadb/config | โ€” | | booklore | /docker/data/media/booklore/bookdrop | โ€” | | booklore | /docker/data/media/booklore/data | App data | | booklore | /nfs/media/booklore/ | Book files (NFS) | | jellystat | /docker/data/media/jellystat/jellystat | โ€” | | jellystat-db | /docker/data/media/jellystat/postgres | DB data | | kids_pinchflat | /docker/data/media/kids-pinchflat/config | โ€” | | kids_pinchflat | /nfs/media/Kids-YouTube | โ€” | | koito | /docker/data/media/koito/data | โ€” | | opodsync | /docker/data/media/gpodder | โ€” | | pinchflat | /docker/data/media/pinchflat/config | Config + /nfs/media/YouTube | | pinchflat | /nfs/media/YouTube | โ€” | | pinepods | /docker/data/media/pinepods/backups | โ€” | | pinepods | /nfs/media/Podcasts/ | Podcast downloads | | pinepods_db | /backup/database/media/pinepods | โ€” | | pinepods_db | pinepods.postgres.etc | โ€” | | pinepods_db | pinepods.postgres.var | โ€” | | podgrab | /docker/data/media/podgrab/assets | โ€” | | podgrab | /docker/data/media/podgrab/config | โ€” | | soulseek | /Downloads/soulseek | โ€” | | soulseek | /docker/data/media/soulseek/appdata | App data | | soulseek | /docker/data/media/soulseek/logs | โ€” | | soulseek | /docker/data/media/soulseek/shared | โ€” | | soulseek | /nfs/media/Music | โ€” | | stash | /docker/data/media/stash/config | โ€” | | stash | /etc/localtime | โ€” | | stash | /nfs/media/pr0n/blobs | โ€” | | stash | /nfs/media/pr0n/cache | โ€” | | stash | /nfs/media/pr0n/generated | โ€” | | stash | /nfs/media/pr0n/metadata | โ€” | | stash | /nfs/media/pr0n/videos | โ€” | | tautulli | /docker/data/media/tautulli | Config and history | | ytvids-pinchflat | /docker/data/media/yt-pinchflat/config | โ€” | | ytvids-pinchflat | /nfs/media/YouTubeVids | โ€” |


5. Environment Variables

Variable Service Description
MYSQL_DATABASE bl_mariadb โ€”
MYSQL_PASSWORD bl_mariadb โ€”
MYSQL_ROOT_PASSWORD bl_mariadb โ€”
MYSQL_USER bl_mariadb โ€”
PGID bl_mariadb โ€”
PUID bl_mariadb โ€”
TZ bl_mariadb Australia/Sydney
DATABASE_PASSWORD booklore โ€”
DATABASE_URL booklore โ€”
DATABASE_USERNAME booklore โ€”
PGID booklore โ€”
PUID booklore โ€”
SWAGGER_ENABLED booklore โ€”
TZ booklore Australia/Sydney
PGID jellyplex-watched โ€”
PUID jellyplex-watched โ€”
JWT_SECRET jellystat โ€”
POSTGRES_IP jellystat โ€”
POSTGRES_PASSWORD jellystat โ€”
POSTGRES_PORT jellystat โ€”
POSTGRES_USER jellystat โ€”
TZ jellystat Australia/Sydney
POSTGRES_PASSWORD jellystat-db โ€”
POSTGRES_USER jellystat-db โ€”
TZ kids_pinchflat Australia/Sydney
KOITO_SQLITE_ENABLED koito true
TZ pinchflat Australia/Sydney
DB_HOST pinepods โ€”
DB_NAME pinepods โ€”
DB_PASSWORD pinepods โ€”
DB_PORT pinepods โ€”
DB_TYPE pinepods postgresql
DB_USER pinepods โ€”
DEBUG_MODE pinepods โ€”
PEOPLE_API_URL pinepods โ€”
PGID pinepods โ€”
PUID pinepods โ€”
SEARCH_API_URL pinepods โ€”
VALKEY_HOST pinepods โ€”
VALKEY_PORT pinepods โ€”
POSTGRES_BACKUP_RETENTION pinepods_db โ€”
POSTGRES_BACKUP_SCHEDULE pinepods_db โ€”
POSTGRES_PASSWORD pinepods_db โ€”
TZ pinepods_db Australia/Sydney
CHECK_FREQUENCY podgrab โ€”
PGID soulseek โ€”
PUID soulseek โ€”
TZ soulseek Australia/Sydney
STASH_CACHE stash โ€”
STASH_GENERATED stash โ€”
STASH_METADATA stash โ€”
STASH_PORT stash โ€”
STASH_STASH stash โ€”
PGID tautulli โ€”
PUID tautulli โ€”
TZ tautulli Australia/Sydney
TZ ytvids-pinchflat Australia/Sydney

6. Access & Usage

Service URL
Booklore https://booklore.m1ckyb.com
Jellystat https://jellystat.home-lab.micky.id.au
Pinepods https://pinepods.home-lab.micky.id.au
Tautulli https://tautulli.home-lab.micky.id.au
Pinchflat https://pinchflat.home-lab.micky.id.au
gPodder https://gpodder.m1ckyb.com
docker compose -f Homelab/Media/services/compose.yaml up -d

7. Maintenance & Backup

docker compose -f Homelab/Media/services/compose.yaml pull
docker compose -f Homelab/Media/services/compose.yaml up -d

# Backup configs (media files live on NFS)
rsync -av /docker/data/media/ /backup/media/