All apps · 0 apps
Audplexus
Docker app from mstrhakr's Repository
Overview
Readme
View on GitHubAudplexus
Audplexus is a self-hosted app that syncs your Audible library, downloads audiobooks, and organizes them for your media server.
Use it when you want a single place to:
- connect Audible and keep your library in sync
- download books into a local audiobook library
- send finished books to Plex, Emby, Jellyfin, or Audiobookshelf
- keep the queue, retry, and sync flow in one web UI
Quick Start
Docker Compose
- Create folders:
mkdir -p config audiobooks downloads
- Start Audplexus:
docker compose up -d
- Open the web UI:
http://localhost:8080
- In Settings, connect Audible.
- If you want automatic library scans, add a library destination.
Docker Run
docker pull ghcr.io/mstrhakr/audplexus:latest
mkdir -p config audiobooks downloads
docker run -d \
--name audplexus \
-p 8080:8080 \
-v $(pwd)/config:/config \
-v $(pwd)/audiobooks:/audiobooks \
-v $(pwd)/downloads:/downloads \
ghcr.io/mstrhakr/audplexus:latest
If you run into permission issues, make sure the container user can write to config/, audiobooks/, and downloads/.
Unraid / Community Applications
If you install from Unraid Community Applications, use the app entry as your container start point, map the common shares, and keep PUID/PGID aligned with your Unraid user setup.
Recommended share layout:
/mnt/user/appdata/audplexus/config->/config/mnt/user/appdata/audplexus/downloads->/downloads/mnt/user/audiobooks->/audiobooks
More details: Unraid App Store Setup
Basic Setup Notes
- Open the web UI at
http://localhost:8080 - Connect Audible first
- Add a library destination if you want automatic scans after downloads
- The web app login is disabled by default on a fresh install. No default username/password is shipped.
- To enable a bootstrap admin account, set
AUDPLEXUS_ADMIN_USERNAMEandAUDPLEXUS_ADMIN_PASSWORDbefore the first start. If both are set on a brand-new install, Audplexus creates the admin user automatically and turns Forms auth on. - Use the user guide for task-by-task help when you need more detail
Common Paths
config/stores app settings and auth datadownloads/holds temporary work filesaudiobooks/is the final library output
Need more detail? Start with the User Guide or Developer Docs.
Documentation
Security Scanning (CodeQL)
Audplexus includes an advanced CodeQL setup for GitHub and local use:
- GitHub workflow:
.github/workflows/codeql.yml - Shared CodeQL config:
.github/codeql/codeql-config.yml - Local runner script:
scripts/codeql-local.sh
Run CodeQL locally before push:
./scripts/codeql-local.sh
Run a subset of languages:
./scripts/codeql-local.sh go javascript-typescript
License
MIT
Related apps
Explore more like this
Explore allDetails
ghcr.io/mstrhakr/audplexusRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
HTTP port for the WebUI.
- Target
- 8080
- Default
- 8080
Persistent config, auth, and database files.
- Target
- /config
- Default
- /mnt/user/appdata/audplexus/config
Final organized audiobook library path (Plex root).
- Target
- /audiobooks
- Default
- /mnt/user/media/audiobooks
Temporary download and processing workspace.
- Target
- /downloads
- Default
- /mnt/user/appdata/audplexus/downloads
Container Variable: PUID
- Default
- 99
Container Variable: PGID
- Default
- 100
Container Variable: TAKE_OWNERSHIP
- Default
- false
Container Variable: DATABASE_TYPE (sqlite or postgres).
- Default
- sqlite
Container Variable: PLEX_URL (optional Plex server URL).
Container Variable: PLEX_TOKEN (optional Plex token).
Container Variable: PLEX_SECTION_ID (optional Plex library section ID).
Container Variable: SYNC_SCHEDULE (cron expression).
- Default
- 0 */6 * * *
Container Variable: SYNC_MODE (quick or full).
- Default
- full