Sanitized mirror from private repository - 2026-04-19 08:46:29 UTC
Some checks failed
Documentation / Build Docusaurus (push) Failing after 17m32s
Documentation / Deploy to GitHub Pages (push) Has been skipped

This commit is contained in:
Gitea Mirror Bot
2026-04-19 08:46:29 +00:00
commit 11d496f233
1439 changed files with 363180 additions and 0 deletions

View File

@@ -0,0 +1,251 @@
# Audiobookshelf
**🟢 Media Service**
## 📋 Service Overview
| Property | Value |
|----------|-------|
| **Service Name** | audiobookshelf |
| **Host** | Atlantis (Synology) |
| **Category** | Media / Books |
| **Difficulty** | 🟢 |
| **Docker Image** | `ghcr.io/advplyr/audiobookshelf:latest` |
| **Compose File** | `hosts/synology/atlantis/arr-suite/docker-compose.yml` |
| **Directory** | `hosts/synology/atlantis/arr-suite` |
## 🎯 Purpose
Audiobookshelf is a self-hosted audiobook and podcast server with mobile apps. Think of it as "Plex for audiobooks" - it provides a beautiful interface for browsing, streaming, and tracking progress across your audiobook and ebook library. It syncs progress across all devices and has native iOS/Android apps.
## 🚀 Quick Start
### Prerequisites
- Docker and Docker Compose installed
- Audiobooks/ebooks/podcasts organized in folders
- Access to the host system (Atlantis)
### Deployment
```bash
# Navigate to service directory
cd hosts/synology/atlantis/arr-suite
# Start the service
docker-compose -f docker-compose.yml up -d audiobookshelf
# Check service status
docker-compose -f docker-compose.yml ps
# View logs
docker-compose -f docker-compose.yml logs -f audiobookshelf
```
## 🔧 Configuration
### Docker Compose Configuration
```yaml
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
environment:
- PUID=1029
- PGID=100
- TZ=America/Los_Angeles
volumes:
- /volume2/metadata/docker2/audiobookshelf:/config
- /volume1/data/media/audiobooks:/audiobooks
- /volume1/data/media/podcasts:/podcasts
- /volume1/data/media/ebooks:/ebooks
ports:
- "13378:80"
networks:
media2_net:
ipv4_address: 172.24.0.16
security_opt:
- no-new-privileges:true
restart: always
```
### Environment Variables
| Variable | Value | Description |
|----------|-------|-------------|
| `PUID` | `1029` | User ID for file permissions |
| `PGID` | `100` | Group ID for file permissions |
| `TZ` | `America/Los_Angeles` | Timezone setting |
### Port Mappings
| Host Port | Container Port | Protocol | Purpose |
|-----------|----------------|----------|----------|
| 13378 | 80 | TCP | Web UI |
### Volume Mappings
| Host Path | Container Path | Type | Purpose |
|-----------|----------------|------|----------|
| `/volume2/metadata/docker2/audiobookshelf` | `/config` | bind | Configuration & database |
| `/volume1/data/media/audiobooks` | `/audiobooks` | bind | Audiobook library |
| `/volume1/data/media/podcasts` | `/podcasts` | bind | Podcast library |
| `/volume1/data/media/ebooks` | `/ebooks` | bind | Ebook library |
## 🌐 Access Information
| Interface | URL |
|-----------|-----|
| Web UI | `http://192.168.0.200:13378` |
### Mobile Apps
- **iOS**: Search "Audiobookshelf" on App Store
- **Android**: Search "Audiobookshelf" on Play Store
- **Server Address**: `http://192.168.0.200:13378`
## 🔧 Initial Setup
### 1. Create Admin Account
On first launch, you'll be prompted to create an admin account.
### 2. Create Libraries
Go to **Settings → Libraries** and create:
| Library Name | Type | Folder Path |
|--------------|------|-------------|
| Audiobooks | Audiobook | `/audiobooks` |
| Ebooks | Book | `/ebooks` |
| Podcasts | Podcast | `/podcasts` |
### 3. Enable Folder Watching
In each library's settings, enable **Watch for changes** to auto-import new files when LazyLibrarian downloads them.
## 🔒 Security Considerations
- ✅ Security options configured (no-new-privileges)
- ✅ Running with specific user/group IDs
- ⚠️ Consider setting up authentication for remote access
- ⚠️ Use HTTPS via reverse proxy for external access
## 📊 Resource Requirements
### Recommended Resources
- **Minimum RAM**: 256MB
- **Recommended RAM**: 512MB+
- **CPU**: 1 core minimum
- **Storage**: Varies by library size (metadata + cover art cache)
### Resource Monitoring
```bash
docker stats audiobookshelf
```
## ✨ Key Features
- **Progress Sync**: Automatically syncs listening/reading progress across devices
- **Chapter Support**: Navigate audiobooks by chapter
- **Multiple Users**: Each user has their own library progress
- **Podcast Support**: Subscribe and auto-download podcasts
- **Ebook Support**: Read ebooks directly in the app
- **Offline Mode**: Download audiobooks to mobile devices
- **Metadata Matching**: Auto-fetches book metadata and cover art
## 🚨 Troubleshooting
### Common Issues
**Books not appearing**
- Check file permissions match PUID/PGID
- Verify folder paths are correct
- Manually scan library: Library → Scan
**Progress not syncing**
- Ensure you're logged into the same account
- Check network connectivity
- Force sync in mobile app settings
**Mobile app can't connect**
- Verify server address is correct
- Check firewall allows port 13378
- Ensure device is on same network (or use VPN)
**Metadata not found**
- Try manual match: Book → Match
- Check audiobook folder naming (Author - Title format works best)
- Ensure file metadata tags are correct
### Useful Commands
```bash
# View real-time logs
docker logs -f audiobookshelf
# Restart service
docker restart audiobookshelf
# Update service
docker pull ghcr.io/advplyr/audiobookshelf:latest
docker restart audiobookshelf
# Backup database
cp -r /volume2/metadata/docker2/audiobookshelf /backup/audiobookshelf-$(date +%Y%m%d)
```
## 📂 Recommended Folder Structure
For best metadata matching:
```
/audiobooks/
├── Author Name/
│ ├── Book Title/
│ │ ├── cover.jpg (optional)
│ │ ├── desc.txt (optional)
│ │ └── *.mp3 or *.m4b
│ └── Another Book/
│ └── ...
/ebooks/
├── Author Name/
│ ├── Book Title.epub
│ └── Another Book.pdf
```
## API Access
| Field | Value |
|-------|-------|
| **URL** | http://192.168.0.200:13378 |
| **API Token (arrssuite key)** | `REDACTED_ABS_API_TOKEN` |
```bash
ABS="http://192.168.0.200:13378"
ABS_KEY="REDACTED_ABS_API_TOKEN"
# List libraries
curl -s "$ABS/api/libraries" -H "Authorization: Bearer $ABS_KEY" | python3 -m json.tool
# List items in a library
curl -s "$ABS/api/libraries/<library-id>/items" -H "Authorization: Bearer $ABS_KEY" | python3 -m json.tool
# Trigger scan on a library
curl -s -X POST "$ABS/api/libraries/<library-id>/scan" -H "Authorization: Bearer $ABS_KEY"
```
### Library IDs
| Library | ID |
|---------|----|
| Audiobook | `d36776eb-fe81-467f-8fee-19435ee2827b` |
| Ebooks | `5af23ed3-f69d-479b-88bc-1c4911c99d2d` |
| Podcast | `6fc11431-ec84-4c96-8bec-b2638fff57e7` |
## 📚 Additional Resources
- **Official Documentation**: [Audiobookshelf Docs](https://www.audiobookshelf.org/docs)
- **GitHub**: [advplyr/audiobookshelf](https://github.com/advplyr/audiobookshelf)
- **Discord**: Active community support
## 🔗 Related Services
Services REDACTED_APP_PASSWORD Audiobookshelf:
- LazyLibrarian (automated downloads)
- Calibre (ebook management)
- Prowlarr (indexer management)
---
*Last Updated*: 2025-01-20
*Configuration Source*: `hosts/synology/atlantis/arr-suite/docker-compose.yml`