# 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)