Access
- Open URL:
https://<SERVER_IP> - Accept the browser certificate warning (the certificate is self-signed)
- Follow the initial setup wizard to create the root user
Important Files and Directories
- Config File:
/etc/default/audiobookshelf - Service File:
/lib/systemd/system/audiobookshelf.service - Nginx Config:
/etc/nginx/sites-available/audiobookshelf - SSL Certificate:
/etc/nginx/ssl/fullchain.pem - SSL Private Key:
/etc/nginx/ssl/privkey.pem - Access Log:
/var/log/nginx/audiobookshelf.access.log - Error Log:
/var/log/nginx/audiobookshelf.error.log
Service Management
Check service status:
systemctl status audiobookshelf
Restart service:
systemctl restart audiobookshelf
Stop service:
systemctl stop audiobookshelf
Start service:
systemctl start audiobookshelf
View logs:
journalctl -u audiobookshelf -f
Nginx Management
Test configuration:
nginx -t
Restart Nginx:
systemctl restart nginx
Reload Nginx:
systemctl reload nginx
Check Nginx status:
systemctl status nginx
Enabling SSL with a Domain
1. Point your domain to the server IP.
2. Install Certbot:
apt install -y certbot python3-certbot-nginx
3. Generate a Let's Encrypt certificate:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
4. Replace SSL paths in Nginx config:
vim /etc/nginx/sites-available/audiobookshelf
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
5. Replace server_name _; with your domain in both HTTP and HTTPS blocks:
vim /etc/nginx/sites-available/audiobookshelf
# Before:
server_name: _;
# After:
server_name: yourdomain.com;
6. Reload Nginx:
systemctl reload nginx
Notes
- Audiobookshelf runs as a native systemd service
- Nginx acts as a reverse proxy and TLS terminator
- HTTPS is enabled using a self-signed certificate by default
- Large uploads are supported (
client_max_body_size 10240M) - Audiobookshelf listens on
127.0.0.1:13378and is only accessible through Nginx