Files
docker_compose/audiobooks.yaml
T
2026-06-28 23:26:30 -05:00

115 lines
4.0 KiB
YAML

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
- 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 <your-PGID>
# - Everything else (/downloads, /media, /config): <your-PUID>:<your-PGID>
#
# 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