Update config volume mapping instructions for SoulSync

Change documentation and template to mount only the config.json file instead of the entire config directory. This prevents overwriting Python module files in /app/config and resolves import errors during container startup.
pull/28/head
Broque Thomas 8 months ago
parent 23b6a2ba56
commit e7cfcddc4d

@ -19,7 +19,7 @@ docker run -d \
-p 8008:8008 \
-p 8888:8888 \
-p 8889:8889 \
-v /mnt/user/appdata/soulsync/config:/app/config \
-v /mnt/user/appdata/soulsync/config.json:/app/config/config.json \
-v /mnt/user/appdata/soulsync/logs:/app/logs \
-v /mnt/user/Music:/host/music:rw \
-v soulsync_database:/app/database \
@ -184,19 +184,20 @@ This ensures:
### ❌ ModuleNotFoundError: No module named 'config.settings'
**Problem**: Most common error - incorrect config volume mapping
**Problem**: Most common error - mounting over the Python config module
**Wrong**:
```yaml
- "/mnt/cache/appdata/soulsync:/app/config" # ❌ This overwrites the app's config module
- "/mnt/cache/appdata/soulsync:/app/config" # ❌ Overwrites Python module
- "/mnt/cache/appdata/soulsync/config:/app/config" # ❌ Still overwrites Python module
```
**Correct**:
```yaml
- "/mnt/cache/appdata/soulsync/config:/app/config" # ✅ This maps to the config folder only
- "/mnt/cache/appdata/soulsync/config.json:/app/config/config.json" # ✅ Mount only the config file
```
**Why this happens**: Mounting the entire appdata folder to `/app/config` overwrites SoulSync's Python `config/` module, causing import errors.
**Why this happens**: The `/app/config` directory contains Python module files (`settings.py`) needed for the app to run. Mounting anything to `/app/config` overwrites these files. Only mount the specific `config.json` file.
### Container Won't Start
```bash

@ -24,7 +24,7 @@
<Config Name="WebUI Port" Target="8008" Default="8008" Mode="tcp" Description="Web interface port" Type="Port" Display="always" Required="true" Mask="false">8008</Config>
<Config Name="Spotify OAuth Port" Target="8888" Default="8888" Mode="tcp" Description="Spotify OAuth callback port" Type="Port" Display="always" Required="true" Mask="false">8888</Config>
<Config Name="Tidal OAuth Port" Target="8889" Default="8889" Mode="tcp" Description="Tidal OAuth callback port" Type="Port" Display="always" Required="true" Mask="false">8889</Config>
<Config Name="Config Directory" Target="/app/config" Default="/mnt/user/appdata/soulsync/config" Mode="rw" Description="Configuration files storage - CRITICAL: Path must end with /config to avoid module import errors" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/soulsync/config</Config>
<Config Name="Config File" Target="/app/config/config.json" Default="/mnt/user/appdata/soulsync/config.json" Mode="rw" Description="SoulSync configuration file - mount only the config.json file" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/soulsync/config.json</Config>
<Config Name="Logs Directory" Target="/app/logs" Default="/mnt/user/appdata/soulsync/logs" Mode="rw" Description="Application logs storage" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/soulsync/logs</Config>
<Config Name="Music Share" Target="/host/music" Default="/mnt/user/Music" Mode="rw" Description="Your music share containing Downloads and Library folders for slskd integration" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/Music</Config>
<Config Name="PYTHONPATH" Target="PYTHONPATH" Default="/app" Mode="" Description="Python path (do not change)" Type="Variable" Display="advanced" Required="true" Mask="false">/app</Config>

Loading…
Cancel
Save