Build a self-hosted audiobook server that backs up your Audible purchases and serves them from your own Proxmox LXC.
Audible can — and does — quietly drop titles from a library, even ones bought outright with credits. This guide covers building a private replacement: Audiobookshelf as the self-hosted server your books actually live on, and Libation as the tool that logs into Audible and pulls your purchased titles down as plain files.
By the end of this page you'll have:
⚠️ Use responsibly. This covers backing up and self-hosting audiobooks purchased with your own Audible credits. Libation removes DRM from files you already own — the legality of that varies by jurisdiction, and you're responsible for complying with Audible's terms of service and your local copyright law. This is not legal advice.
debian-12-standard) CT template availableCreate a privileged container — privileged, not unprivileged, for simpler permissions against the ZFS bind mount added later.
General: CT ID 110, Hostname audiobookshelf, set root password
Unprivileged container: unchecked
Template: local:vztmpl/debian-12-standard_*.tar.zst
Disks: Storage local-lvm, Disk size 20 GB
CPU: Cores 2
Memory: 4096 MB, Swap 512 MB
Network: Bridge vmbr0, IPv4 DHCP
DNS: use host settings
Console into the new container and update it before doing anything else:
apt update && apt upgrade -y
Install directly from Audiobookshelf's official Debian repository:
apt install -y curl gnupg
mkdir -p /etc/apt/keyrings
curl -fsSL https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg \
| gpg --dearmor -o /etc/apt/keyrings/audiobookshelf.gpg
echo "deb [signed-by=/etc/apt/keyrings/audiobookshelf.gpg] \
https://advplyr.github.io/audiobookshelf-ppa stable main" \
| tee /etc/apt/sources.list.d/audiobookshelf.list
apt update
apt install -y audiobookshelf
systemctl enable --now audiobookshelf
systemctl status audiobookshelf
Status should read active (running).
📌 Double-check
advplyr.github.io/audiobookshelf-ppais still current before running this — third-party apt sources move more often than official distro packages.
Before adding any storage, verify the service itself answers — this isolates install problems from storage problems later.
Open a browser on another machine to:
http://<container-ip>:13378
You should land on the first-time setup screen. Create your admin account and skip adding a library for now — there's nothing to point it at yet.
On the Proxmox host, create (or reuse) the dataset:
zfs create vault/media/audiobooks
Stop the container, add the mount line, and restart:
pct stop 110
nano /etc/pve/lxc/110.conf
mp0: /vault/media/audiobooks,mp=/mnt/audiobooks
pct start 110
Back inside the container, confirm the mount:
ls -la /mnt/audiobooks
Empty is expected — the mount works, there's just nothing in it yet.
Libation runs on your desktop, not inside the container, so the desktop needs network access to the same folder Audiobookshelf is watching.
apt install -y samba
smbpasswd -a root
nano /etc/samba/smb.conf
[audiobooks]
path = /mnt/audiobooks
browseable = yes
read only = no
guest ok = no
valid users = root
create mask = 0775
directory mask = 0775
testparm
systemctl restart smbd nmbd
systemctl enable smbd nmbd
📌 This uses
rootover Samba for simplicity in a single-user homelab. On a shared box, create a dedicated non-root Samba user instead.
yay -S libation
If the AUR package is stale or missing, grab the linux-x64 tarball from Libation's GitHub releases and run the binary directly instead.
Download the Windows installer from Libation's GitHub releases page, run it with default options, and launch it — the app opens automatically after install.
In Libation (same steps on either platform): Settings → Accounts → enter your Audible email and password to link the account.
If your account has two-factor authentication enabled, you'll need an app-specific password rather than your normal login — see Audible's account settings for generating one.
Mount the share on whichever machine you're using:
\\<container-ip>\audiobookssmb://<container-ip>/audiobooksIn Libation, set the book download location directly to that mounted path (Settings → Books Location). Every book Libation downloads lands straight in the same folder Audiobookshelf is watching — no manual copying.
Click Scan in Libation to pull your full purchase history from Audible. Select the titles you own (or select all), then click Download and Decrypt. Progress runs per-title and can take a while for large libraries.
Back in Audiobookshelf (http://<container-ip>:13378):
Libraries → Create Library
Name: My Audiobooks
Media Type: Books
Folder: /mnt/audiobooks
→ Create → Scan
The library populates with covers, titles, and chapter info. From here, the pipeline is fully closed — Libation writes to the share, Audiobookshelf reads from the exact same folder, and the official mobile app keeps your listening progress synced across devices.
[Video link placeholder — add once published]