Self-hosted audiobook and podcast server - LinuxServer.io based container
3.1K
Self-hosted audiobook and podcast server based on LinuxServer.io Alpine baseimage.
The audiobookshelf container is available on multiple registries:
# Docker Hub (recommended)
docker pull mildman1848/audiobookshelf:latest
docker pull mildman1848/audiobookshelf:2.30.0
# GitHub Container Registry
docker pull ghcr.io/mildman1848/audiobookshelf:latest
docker pull ghcr.io/mildman1848/audiobookshelf:2.30.0
# GitLab Container Registry
docker pull registry.gitlab.com/mildman1848/audiobookshelf:latest
docker pull registry.gitlab.com/mildman1848/audiobookshelf:2.30.0
# Codeberg Container Registry
docker pull codeberg.org/mildman1848/audiobookshelf:latest
docker pull codeberg.org/mildman1848/audiobookshelf:2.30.0
Multi-Architecture Support: All images support linux/amd64 and linux/arm64
# Complete setup (creates .env and generates secrets)
make setup
# Or manual setup:
mkdir -p data/audiobooks data/podcasts
cp .env.example .env
make secrets-generate
# Build and start
make build
make start
Access at: http://localhost:13378ā
This container follows LinuxServer.io best practices for secret management using the FILE__ prefix pattern.
# Generate all required secrets
make secrets-generate
# View secret information
make secrets-info
# Rotate secrets (creates backup)
make secrets-rotate
# Clean old backups (keeps last 5)
make secrets-clean
The LinuxServer.io init-secrets service reads environment variables with the FILE__ prefix:
# In docker-compose.yml
environment:
- FILE__TOKEN_SECRET=/run/secrets/audiobookshelf_jwt_secret
At container startup, the value from the file is read and made available as TOKEN_SECRET (without FILE__ prefix).
ā ļø Security:
secrets/ directory to version control600 permissions (owner read/write only)ā WORKING: Bind mounts are fully supported on Windows Docker Desktop!
The previous EPERM errors were caused by strict security options, not by bind mounts themselves. The solution:
/config - Config directory is accessible on host/defaults/migrations and copied at startupno-new-privileges and capability restrictions disabled for Windows compatibilityFor Linux Production: You may re-enable security hardening by uncommenting the options in docker-compose.override.yml:
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- SETUID
- SETGID
make build # Build image
make test # Test container
make validate # Validate Dockerfile
make security-scan # Security scan
make help # Show all available targets
make setup # Complete initial setup
make env-setup # Create .env from .env.example
make env-validate # Validate environment configuration
make secrets-generate # Generate secure secrets
make secrets-info # Show secret information
make build # Build Docker image
make start # Start container
make stop # Stop container
make restart # Restart container
make status # Show container status and health
make logs # Show container logs
make shell # Get shell access to container
Based on Audiobookshelfā by advplyr (GPL-3.0)
Container maintained by mildman1848
Content type
Image
Digest
sha256:5bbd02dbfā¦
Size
115.9 MB
Last updated
12 months ago
docker pull mildman1848/audiobookshelf