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>
This commit is contained in:
231
README.md
Normal file
231
README.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user