Files
nicotine-less/README.md
Claude 494eaa6617 Initial commit: Nicotine-Less Docker container
Lightweight Docker container for Nicotine+ with noVNC web interface and Firefox ESR browser.

Features:
- noVNC web interface with dynamic resize support
- Firefox ESR for testing ports and browsing
- TigerVNC with AcceptSetDesktopSize enabled
- Supervisor for process management
- Configurable user/group permissions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 20:09:10 +02:00

232 lines
4.8 KiB
Markdown

# Nicotine-Less
Container Docker leggero per Nicotine+ (client Soulseek) con interfaccia web tramite noVNC e Firefox ESR integrato.
## Caratteristiche
- Interfaccia web accessibile da browser (noVNC)
- Firefox ESR integrato per testare porte e navigare
- Ridimensionamento dinamico della finestra VNC
- Supporto SSH X forwarding
- Gestione permessi user/group personalizzabili
- Volumi persistenti per configurazione e download
- Ottimizzato per architettura ARM64
- Nessuna porta VNC esposta esternamente (solo web)
## Requisiti
- Docker e Docker Compose installati
- Raspberry Pi con architettura ARM64
- Porte disponibili: 6080 (web), 2234 (TCP), 2235 (UDP)
## Installazione
### 1. Clona o crea la directory del progetto
```bash
git clone https://git.nicola.sh/public/nicotine-less.git
cd nicotine-less
```
### 2. Crea le directory per i volumi
```bash
mkdir -p data/config data/downloads data/incomplete
```
### 3. Configura le variabili d'ambiente (opzionale)
Modifica `docker-compose.yml` se necessario:
```yaml
environment:
- PUID=1000 # Cambia con il tuo user ID (comando: id -u)
- PGID=1000 # Cambia con il tuo group ID (comando: id -g)
- TZ=Europe/Rome # Cambia il tuo timezone
- VNC_RESOLUTION=1280x720 # Risoluzione desktop
- VNC_PASSWORD=nicotine # Password per VNC
```
### 4. Build dell'immagine
```bash
docker-compose build
```
### 5. Avvia il container
```bash
docker-compose up -d
```
## Utilizzo
### Accesso Web (noVNC)
Apri il browser e vai a:
```
http://localhost:6080
```
O da un altro dispositivo nella stessa rete:
```
http://INDIRIZZO_IP_RASPBERRY:6080
```
### Accesso via SSH X Forwarding
```bash
ssh -X user@raspberry_ip
docker exec -it nicotine-less nicotine
```
### Gestione del container
```bash
# Visualizza i log
docker-compose logs -f
# Ferma il container
docker-compose down
# Riavvia il container
docker-compose restart
# Aggiorna e ricostruisci
docker-compose down
docker-compose build --no-cache
docker-compose up -d
```
## Struttura dei volumi
```
./data/
├── config/ # Configurazione Nicotine+ (database, impostazioni)
├── downloads/ # File scaricati completati
└── incomplete/ # Download in corso
```
### Aggiungere cartelle condivise
Per condividere cartelle con altri utenti Soulseek, modifica `docker-compose.yml`:
```yaml
volumes:
- ./data/config:/config
- ./data/downloads:/downloads
- ./data/incomplete:/incomplete
- /percorso/musica:/shares/music:ro # Aggiungi questa riga
- /percorso/video:/shares/video:ro # E questa
```
Poi riavvia il container e configura le condivisioni dentro Nicotine+.
## Configurazione Nicotine+
Al primo avvio:
1. Apri l'interfaccia web (http://localhost:6080)
2. Configura username e password Soulseek
3. Vai in Preferenze → Shares per impostare le cartelle condivise
4. Vai in Preferenze → Network per verificare le porte (2234/2235)
5. Configurazione consigliata per Raspberry Pi:
- Max upload slots: 2-4
- Max download slots: 2-4
- Limite banda in base alla tua connessione
## Porte utilizzate
| Porta | Tipo | Descrizione |
|-------|------|-------------|
| 6080 | TCP | Interfaccia web noVNC |
| 2234 | TCP | Connessioni Soulseek |
| 2235 | UDP | Ricerca Soulseek |
## Risoluzione problemi
### L'interfaccia web non si carica
```bash
docker-compose logs
# Verifica che tutti i servizi siano attivi
```
### Permessi negati sui file
Verifica PUID e PGID nel docker-compose.yml:
```bash
id -u # User ID
id -g # Group ID
```
### Performance su Raspberry Pi
Modifica i limiti risorse in `docker-compose.yml`:
```yaml
deploy:
resources:
limits:
memory: 512M # Riduci se necessario
cpus: '1' # Riduci se necessario
```
### Download lenti
- Verifica la connettività di rete del container
- Controlla le impostazioni di banda in Nicotine+
- Assicurati che le porte 2234/2235 siano aperte nel router
## Backup
Per fare backup della configurazione:
```bash
tar -czf nicotine-backup-$(date +%Y%m%d).tar.gz data/
```
Per ripristinare:
```bash
tar -xzf nicotine-backup-YYYYMMDD.tar.gz
```
## Aggiornamenti
Per aggiornare Nicotine+ all'ultima versione:
```bash
docker-compose down
docker-compose build --no-cache
docker-compose up -d
```
## Sicurezza
- Cambia la password VNC predefinita in `docker-compose.yml`
- Considera l'uso di un reverse proxy (nginx/traefik) con HTTPS
- Non esporre la porta 6080 su Internet senza protezione
- Usa VPN o SSH tunneling per accesso remoto sicuro
## Accesso remoto sicuro (SSH tunnel)
```bash
ssh -L 6080:localhost:6080 user@raspberry_ip
```
Poi apri `http://localhost:6080` sul tuo computer locale.
## Licenza
Questo progetto è fornito "as-is" senza garanzie.
## Link utili
- [Nicotine+ GitHub](https://github.com/nicotine-plus/nicotine-plus)
- [Documentazione Nicotine+](https://nicotine-plus.org)
- [noVNC GitHub](https://github.com/novnc/noVNC)