audiobookshelf/DEPLOYMENT.md

115 lines
3.3 KiB
Markdown
Raw Normal View History

2025-06-04 15:50:32 -04:00
# Audiobookshelf Deployment Guide
## Prerequisites
- Docker Desktop (for local deployment)
- Portainer (optional, for container management)
- At least 1GB of free RAM
- Sufficient disk space for your audiobooks and metadata
## Directory Structure
```
audiobookshelf/
├── audiobooks/ # Your audiobooks directory
├── podcasts/ # Your podcasts directory
├── metadata/ # Application metadata
├── config/ # Configuration files
├── client/ # Frontend source code
├── server/ # Backend source code
├── Dockerfile # Docker build instructions
└── docker-compose.prod.yml
External Directories:
/libraries/ # Additional media libraries directory (customizable path)
```
## Deployment Steps
### Using Docker Desktop
1. Create the required directories:
```bash
mkdir -p audiobooks podcasts metadata config
```
2. Configure your libraries path: Edit `docker-compose.prod.yml` and modify the libraries volume mount to point to your desired path:
```yaml
volumes:
- /path/to/your/libraries:/libraries
```
3. Build and start the application:
```bash
# Build the image
docker compose -f docker-compose.prod.yml build
# Start the containers
docker compose -f docker-compose.prod.yml up -d
```
4. Access the application at `http://localhost:13378`
### Using Portainer
1. In Portainer, go to "Stacks" and click "Add Stack"
2. Give your stack a name (e.g., "audiobookshelf")
3. Copy the contents of `docker-compose.prod.yml` into the web editor
4. Modify the libraries volume mount path to match your system
5. Enable "Build Image" option in Portainer
6. Click "Deploy the stack"
## Configuration
- The application runs on port 13378 by default
- Data is persisted in the mounted volumes:
- `./audiobooks`: Default audiobooks directory
- `./podcasts`: Default podcasts directory
- `./metadata`: Application metadata
- `./config`: Configuration files
- `/libraries`: Additional media libraries (customize path in docker-compose.prod.yml)
- Timezone can be configured in the docker-compose file
- User/Group IDs can be set via PUID/PGID environment variables
## Post-Installation
1. On first run, create an admin account
2. Configure your libraries in the web interface:
- Set up the default audiobooks and podcasts directories
- Add additional libraries from the `/libraries` mount point
3. Add your media files to the appropriate directories
## Updating
When you make changes to your code:
```bash
# Rebuild the image with your changes
docker compose -f docker-compose.prod.yml build
# Restart the containers with the new image
docker compose -f docker-compose.prod.yml up -d
```
## Backup
Important directories to backup:
- `config/` - Contains application settings and database
- `metadata/` - Contains metadata for your media
- `audiobooks/` and `podcasts/` - Your media files
- Any additional libraries you've configured
## Troubleshooting
- Check container logs: `docker logs audiobookshelf`
- Ensure proper file permissions on mounted volumes
- Verify port 13378 is not in use by another application
- Check resource usage in Docker Desktop dashboard
- Build logs: `docker compose -f docker-compose.prod.yml build --progress=plain`
- Check that all volume mount paths exist and are accessible
- Verify file permissions on the libraries directory