mirror of https://github.com/Nezreka/SoulSync.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
4.6 KiB
186 lines
4.6 KiB
# 🐳 SoulSync Docker Installation Guide
|
|
|
|
Complete guide to running SoulSync in Docker with persistent data and proper configuration.
|
|
|
|
## 🚀 Quick Start
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/Nezreka/SoulSync
|
|
cd SoulSync
|
|
|
|
# Start the container
|
|
docker-compose up -d
|
|
|
|
# Access SoulSync at http://localhost:8008
|
|
```
|
|
|
|
## 📋 Prerequisites
|
|
|
|
Before running SoulSync in Docker, ensure you have:
|
|
|
|
- **Docker & Docker Compose** installed on your system
|
|
- **slskd** running on your host machine (port 5030)
|
|
- **Spotify API credentials** (Client ID/Secret)
|
|
- **Media server** (Plex/Jellyfin) - optional but recommended
|
|
|
|
## 🔧 Configuration Setup
|
|
|
|
### 1. Initial Configuration
|
|
|
|
On first run, SoulSync will create a default config. You need to update it with your credentials:
|
|
|
|
1. Start the container: `docker-compose up -d`
|
|
2. Open http://localhost:8008 in your browser
|
|
3. Go to **Settings** page
|
|
4. Fill in your API credentials:
|
|
- **Spotify**: Client ID and Client Secret
|
|
- **Soulseek**: slskd URL (`http://host.docker.internal:5030`) and API key
|
|
- **Media Server**: Plex/Jellyfin connection details
|
|
- **Paths**: Download and transfer folder paths
|
|
|
|
### 2. Path Configuration
|
|
|
|
**Important**: Your download and transfer paths must be accessible to the Docker container.
|
|
|
|
#### Default Setup (E: Drive)
|
|
The docker-compose.yml mounts the E: drive by default:
|
|
```yaml
|
|
volumes:
|
|
- /mnt/e:/host/mnt/e:rw
|
|
```
|
|
|
|
If your paths are on E: drive, you can use paths like:
|
|
- Download Path: `E:/Music/Downloads`
|
|
- Transfer Path: `E:/Music/Library`
|
|
|
|
#### Other Drives
|
|
If your music folders are on different drives, update docker-compose.yml:
|
|
|
|
```yaml
|
|
volumes:
|
|
# Add drive mounts as needed
|
|
- /mnt/c:/host/mnt/c:rw # For C: drive
|
|
- /mnt/d:/host/mnt/d:rw # For D: drive
|
|
- /mnt/e:/host/mnt/e:rw # For E: drive
|
|
```
|
|
|
|
Then restart: `docker-compose down && docker-compose up -d`
|
|
|
|
### 3. Service URLs for Docker
|
|
|
|
When configuring services in Docker mode, use these URLs:
|
|
|
|
- **slskd**: `http://host.docker.internal:5030`
|
|
- **Plex**: `http://host.docker.internal:32400`
|
|
- **Jellyfin**: `http://host.docker.internal:8096`
|
|
|
|
Docker automatically resolves `host.docker.internal` to your host machine.
|
|
|
|
## 📊 Data Persistence
|
|
|
|
SoulSync Docker uses a named volume for the database:
|
|
|
|
- **Database**: Stored in `soulsync_database` volume (persists across container rebuilds)
|
|
- **Config**: Stored in `./config/` folder (mapped to host)
|
|
- **Logs**: Stored in `./logs/` folder (mapped to host)
|
|
|
|
**Note**: The Docker database is separate from GUI/WebUI versions.
|
|
|
|
## 🛠️ Common Commands
|
|
|
|
```bash
|
|
# Start SoulSync
|
|
docker-compose up -d
|
|
|
|
# View logs
|
|
docker-compose logs -f
|
|
|
|
# Stop SoulSync
|
|
docker-compose down
|
|
|
|
# Restart SoulSync
|
|
docker-compose restart
|
|
|
|
# Update to latest image
|
|
docker-compose pull && docker-compose up -d
|
|
|
|
# Rebuild from source
|
|
docker-compose down && docker-compose up -d --build
|
|
```
|
|
|
|
## 🔍 Troubleshooting
|
|
|
|
### Container Won't Start
|
|
```bash
|
|
# Check container status
|
|
docker-compose ps
|
|
|
|
# View error logs
|
|
docker-compose logs
|
|
```
|
|
|
|
### Can't Access Services
|
|
- Ensure slskd is running on host machine
|
|
- Use `host.docker.internal` URLs in settings
|
|
- Check firewall isn't blocking ports 8008, 8888, 8889
|
|
|
|
### Files Not Processing
|
|
- Verify download/transfer paths are mounted correctly
|
|
- Check paths use correct drive letters (E:/, C:/, etc.)
|
|
- Ensure directories exist and have proper permissions
|
|
|
|
### Database Issues
|
|
```bash
|
|
# Reset database (WARNING: deletes all data)
|
|
docker volume rm soulsync_database
|
|
docker-compose up -d
|
|
```
|
|
|
|
## 📁 Directory Structure
|
|
|
|
```
|
|
SoulSync/
|
|
├── config/ # Configuration files (mapped to container)
|
|
├── logs/ # Application logs (mapped to container)
|
|
├── docker-compose.yml
|
|
└── Dockerfile
|
|
```
|
|
|
|
## 🔐 Security Notes
|
|
|
|
- Config files contain API keys - keep them secure
|
|
- The database volume persists your library data
|
|
- Only required ports (8008, 8888, 8889) are exposed
|
|
|
|
## 🆕 Updates
|
|
|
|
To update SoulSync:
|
|
|
|
```bash
|
|
# Pull latest image
|
|
docker-compose pull
|
|
|
|
# Restart with new image
|
|
docker-compose up -d
|
|
```
|
|
|
|
Your configuration and database will be preserved.
|
|
|
|
## ❓ Need Help?
|
|
|
|
- Check logs: `docker-compose logs -f`
|
|
- Verify service connections in Settings page
|
|
- Ensure all prerequisites are running
|
|
- Database and config persist between restarts
|
|
|
|
## 🎵 Ready to Go!
|
|
|
|
Once configured, SoulSync will:
|
|
- Automatically sync your playlists
|
|
- Download missing tracks with FLAC priority
|
|
- Organize files with proper metadata
|
|
- Retry failed downloads every hour
|
|
- Monitor watchlist artists for new releases
|
|
|
|
Access your SoulSync instance at **http://localhost:8008** |