services: ############################ # AUDIOBOOKSHELF - AUDIOBOOKS ############################ audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest container_name: audiobookshelf restart: unless-stopped user: 1001:1001 ports: - 13378:80 environment: - TZ=America/Chicago volumes: - /media/audio_books:/audiobooks - /media/podcasts:/podcasts - /srv/docker/entertainment/books/audiobookshelf/metadata:/metadata - /srv/docker/entertainment/books/audiobookshelf/config:/config labels: - homepage.group=Media - homepage.name=Audiobookshelf - homepage.icon=Audiobookshelf.png - homepage.href=${ABS_URL} - homepage.description=Audiobook organizer - homepage.widget.type=audiobookshelf - homepage.widget.url=${ABS_URL} - homepage.widget.key=${ABS_API_KEY} - homepage.widget.fields=["books", "booksDuration","podcasts", "podcastsDuration"] - dockhand.url=${ABS_URL} - rackpeek.tags=entertainment # com.myorg.project: my-project networks: - proxy-net ############################ # LISTENARR - AUDIOBOOKS ############################ #listenarr: # For Docker Hub, replace the image with docker.io/therobbiedavis/listenarr:canary #image: ghcr.io/therobbiedavis/listenarr:canary #user: "1000:1001" #restart: unless-stopped #container_name: listenarr #network_mode: "container:gluetun" ##network_mode: "service:gluetun" #environment: # - LISTENARR_PUBLIC_URL=${LISTENARR_URL} ## OPTIONAL: Used by Discord Bot # - TZ=America/Chicago #volumes: # - /srv/docker/entertainment/books/listenarr:/app/config # - /media/audio_books:/audio_books # - /media/downloads:/downloads #networks: #- proxy-net ############################ # READMEABOOK - AUDIOBOOKS ############################ #readmeabook: #image: ghcr.io/kikootwo/readmeabook:latest #container_name: readmeabook #restart: unless-stopped #ports: #- "3030:3030" #volumes: ## Application config and cache #- /srv/docker/entertainment/books/readmeabook/config:/app/config #- /srv/docker/entertainment/books/readmeabook/cache:/app/cache ## Downloads and media directories #- /media/downloads/books:/downloads #- /media/books/downloaded:/media ## PostgreSQL data persistence #- /srv/docker/entertainment/books/readmeabook/pgdata:/var/lib/postgresql/data ## Redis data persistence #- /srv/docker/entertainment/books/readmeabook/redis:/var/lib/redis #environment: # ======================================================================== # RECOMMENDED: User/Group ID Mapping (Hybrid Approach) # ======================================================================== # Set these to match your host user for proper file ownership # Run 'id' on your host to find your UID and GID # # How it works: # - postgres user: Keeps UID 103 (PostgreSQL requirement), uses your PGID # - redis/node: Fully remapped to your PUID:PGID # # File ownership on host: # - PostgreSQL data (/var/lib/postgresql/data): UID 103, GID # - Everything else (/downloads, /media, /config): : # # For LXC: You only need to passthrough/map container UID 103 # See documentation/deployment/unified.md for LXC examples # #PUID: 1000 #PGID: 1001 # ======================================================================== # IMPORTANT: Public URL Configuration # ======================================================================== # Set this to your public URL if accessing from outside localhost: #PUBLIC_URL: "https://readmeabook.zazlab.freeddns.org" #healthcheck: #test: ["CMD", "curl", "-f", "http://localhost:3030/api/health"] #interval: 30s #timeout: 10s #retries: 3 #start_period: 60s #networks: #- proxy-net networks: proxy-net: external: true