mirror of https://github.com/Nezreka/SoulSync.git
parent
40b48d0b5d
commit
a24e175f4f
@ -0,0 +1,186 @@
|
||||
# 🐳 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**
|
||||
Loading…
Reference in new issue