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:
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Dati utente e configurazioni personali
|
||||||
|
data/
|
||||||
|
|
||||||
|
# File di configurazione personalizzati
|
||||||
|
nicotine-config
|
||||||
|
docker-compose.yml
|
||||||
89
Dockerfile
Normal file
89
Dockerfile
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
|
# Metadata
|
||||||
|
LABEL maintainer="Nicola"
|
||||||
|
LABEL description="Nicotine+ with noVNC web interface and SSH X forwarding support"
|
||||||
|
LABEL version="1.0"
|
||||||
|
|
||||||
|
# Evita prompt interattivi
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Variabili d'ambiente
|
||||||
|
ENV DISPLAY=:0 \
|
||||||
|
VNC_PORT=5900 \
|
||||||
|
NOVNC_PORT=6080 \
|
||||||
|
VNC_RESOLUTION=1280x720 \
|
||||||
|
VNC_DEPTH=24 \
|
||||||
|
USER=nicotine \
|
||||||
|
PUID=1000 \
|
||||||
|
PGID=1000
|
||||||
|
|
||||||
|
# Installa dipendenze
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
# Window manager leggero
|
||||||
|
openbox \
|
||||||
|
xterm \
|
||||||
|
dbus-x11 \
|
||||||
|
# VNC server (solo per noVNC backend)
|
||||||
|
tigervnc-standalone-server \
|
||||||
|
tigervnc-common \
|
||||||
|
# noVNC per interfaccia web
|
||||||
|
novnc \
|
||||||
|
python3-websockify \
|
||||||
|
# Dipendenze Nicotine+
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
python3-gi \
|
||||||
|
python3-gi-cairo \
|
||||||
|
gir1.2-gtk-3.0 \
|
||||||
|
# Browser leggero
|
||||||
|
firefox-esr \
|
||||||
|
# Per SSH X forwarding
|
||||||
|
xauth \
|
||||||
|
# Supervisord per gestire i processi
|
||||||
|
supervisor \
|
||||||
|
# Utility
|
||||||
|
wget \
|
||||||
|
curl \
|
||||||
|
procps \
|
||||||
|
net-tools \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Installa Nicotine+ ultima versione
|
||||||
|
RUN pip3 install --no-cache-dir --break-system-packages nicotine-plus
|
||||||
|
|
||||||
|
# Crea utente non-root
|
||||||
|
RUN groupadd -g ${PGID} ${USER} && \
|
||||||
|
useradd -u ${PUID} -g ${PGID} -m -s /bin/bash ${USER}
|
||||||
|
|
||||||
|
# Crea directory
|
||||||
|
RUN mkdir -p \
|
||||||
|
/config \
|
||||||
|
/downloads \
|
||||||
|
/incomplete \
|
||||||
|
/home/${USER}/.config/openbox \
|
||||||
|
/home/${USER}/.config/nicotine \
|
||||||
|
/home/${USER}/.vnc \
|
||||||
|
/var/log/supervisor
|
||||||
|
|
||||||
|
# Copia configurazioni
|
||||||
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
|
COPY openbox-rc.xml /home/${USER}/.config/openbox/rc.xml
|
||||||
|
COPY index.html /usr/share/novnc/index.html
|
||||||
|
|
||||||
|
# Permessi
|
||||||
|
RUN chmod +x /usr/local/bin/entrypoint.sh \
|
||||||
|
&& chown -R ${USER}:${USER} /home/${USER} /config /downloads /incomplete
|
||||||
|
|
||||||
|
# Esponi solo noVNC e porte Soulseek
|
||||||
|
EXPOSE 6080 2234 2235/udp
|
||||||
|
|
||||||
|
# Volumi
|
||||||
|
VOLUME ["/config", "/downloads", "/incomplete"]
|
||||||
|
|
||||||
|
WORKDIR /home/${USER}
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||||
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)
|
||||||
60
docker-compose.yml.example
Normal file
60
docker-compose.yml.example
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
services:
|
||||||
|
nicotine-less:
|
||||||
|
build: .
|
||||||
|
container_name: nicotine-less
|
||||||
|
image: nicotine-less:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# Porte
|
||||||
|
ports:
|
||||||
|
- "6080:6080" # Interfaccia web noVNC
|
||||||
|
- "2234:2234" # Porta Soulseek TCP
|
||||||
|
- "2235:2235/udp" # Porta Soulseek UDP
|
||||||
|
|
||||||
|
# Variabili d'ambiente
|
||||||
|
environment:
|
||||||
|
- PUID=1000 # User ID (cambia se necessario)
|
||||||
|
- PGID=1000 # Group ID (cambia se necessario)
|
||||||
|
- TZ=Europe/Rome # Timezone
|
||||||
|
- VNC_RESOLUTION=1920x1080 # Risoluzione desktop
|
||||||
|
- VNC_DEPTH=24 # Profondità colore
|
||||||
|
- VNC_PASSWORD=nicotine # Password per VNC (opzionale)
|
||||||
|
- DISPLAY=:0
|
||||||
|
|
||||||
|
# Volumi persistenti
|
||||||
|
volumes:
|
||||||
|
# Configurazione Nicotine+ (database, settings, liste utenti, ecc)
|
||||||
|
- ./data/config:/config
|
||||||
|
|
||||||
|
# Download completati - MODIFICA CON IL TUO PERCORSO
|
||||||
|
- /path/to/your/downloads:/downloads
|
||||||
|
|
||||||
|
# Download incompleti/in corso - MODIFICA CON IL TUO PERCORSO
|
||||||
|
- /path/to/your/incomplete:/incomplete
|
||||||
|
|
||||||
|
# Opzionale: cartelle condivise aggiuntive - MODIFICA CON I TUOI PERCORSI
|
||||||
|
# - /path/to/your/music:/shares/music:ro
|
||||||
|
# - /path/to/your/other:/shares/other:ro
|
||||||
|
|
||||||
|
# Limiti risorse (opzionale, utile per Raspberry Pi)
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1G
|
||||||
|
cpus: '2'
|
||||||
|
reservations:
|
||||||
|
memory: 256M
|
||||||
|
|
||||||
|
# Network
|
||||||
|
network_mode: bridge
|
||||||
|
|
||||||
|
# Privileged mode non necessario
|
||||||
|
privileged: false
|
||||||
|
|
||||||
|
# Healthcheck
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:6080"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
43
entrypoint.sh
Executable file
43
entrypoint.sh
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Aggiorna PUID e PGID se necessario
|
||||||
|
if [ ! -z "$PUID" ] && [ "$PUID" != "1000" ]; then
|
||||||
|
usermod -u $PUID nicotine
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$PGID" ] && [ "$PGID" != "1000" ]; then
|
||||||
|
groupmod -g $PGID nicotine
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Correggi permessi sui volumi
|
||||||
|
chown -R nicotine:nicotine /config /downloads /incomplete 2>/dev/null || true
|
||||||
|
|
||||||
|
# Crea directory necessarie
|
||||||
|
mkdir -p /home/nicotine/.local/share/nicotine
|
||||||
|
chown -R nicotine:nicotine /home/nicotine/.local
|
||||||
|
|
||||||
|
# Crea link simbolico dalla config di Nicotine+ al volume persistente
|
||||||
|
if [ ! -L "/home/nicotine/.config/nicotine" ]; then
|
||||||
|
rm -rf /home/nicotine/.config/nicotine
|
||||||
|
ln -s /config /home/nicotine/.config/nicotine
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configura password VNC se specificata
|
||||||
|
if [ ! -z "$VNC_PASSWORD" ]; then
|
||||||
|
mkdir -p /home/nicotine/.vnc
|
||||||
|
echo "$VNC_PASSWORD" | vncpasswd -f > /home/nicotine/.vnc/passwd
|
||||||
|
chmod 600 /home/nicotine/.vnc/passwd
|
||||||
|
chown nicotine:nicotine /home/nicotine/.vnc/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Esporta variabili d'ambiente per supervisord
|
||||||
|
export DISPLAY
|
||||||
|
export VNC_PORT
|
||||||
|
export NOVNC_PORT
|
||||||
|
export VNC_RESOLUTION
|
||||||
|
export VNC_DEPTH
|
||||||
|
export USER
|
||||||
|
|
||||||
|
# Avvia supervisord come root (che poi farà partire i processi come utente nicotine)
|
||||||
|
exec "$@"
|
||||||
12
index.html
Normal file
12
index.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="refresh" content="0; url=vnc.html?autoconnect=true&resize=remote&reconnect=true">
|
||||||
|
<title>Nicotine+ noVNC</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to noVNC with remote resize enabled...</p>
|
||||||
|
<p>If not redirected automatically, <a href="vnc.html?autoconnect=true&resize=local">click here</a>.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
5
openbox-autostart.sh
Executable file
5
openbox-autostart.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Avvia Nicotine+ automaticamente
|
||||||
|
sleep 2
|
||||||
|
nicotine &
|
||||||
50
openbox-rc.xml
Normal file
50
openbox-rc.xml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<openbox_config xmlns="http://openbox.org/3.4/rc"
|
||||||
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
|
<desktops>
|
||||||
|
<!-- This wm is GNOME aware -->
|
||||||
|
<number>1</number>
|
||||||
|
<!-- Always try to focus new windows when they appear. other rules do
|
||||||
|
apply -->
|
||||||
|
<firstdesk>1</firstdesk>
|
||||||
|
<names>
|
||||||
|
<name>Desktop</name>
|
||||||
|
</names>
|
||||||
|
<popupTime>0</popupTime>
|
||||||
|
</desktops>
|
||||||
|
|
||||||
|
<mouse>
|
||||||
|
<dragThreshold>8</dragThreshold>
|
||||||
|
<doubleClickTime>500</doubleClickTime>
|
||||||
|
<screenEdgeWarpTime>0</screenEdgeWarpTime>
|
||||||
|
<screenEdgeWarpMouse>false</screenEdgeWarpMouse>
|
||||||
|
|
||||||
|
<context name="Desktop">
|
||||||
|
<mousebind button="Up" action="Click">
|
||||||
|
<!-- Disabled desktop switching with mouse wheel -->
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Down" action="Click">
|
||||||
|
<!-- Disabled desktop switching with mouse wheel -->
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Titlebar">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="DoubleClick">
|
||||||
|
<action name="ToggleMaximize"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Up" action="Click">
|
||||||
|
<!-- Disabled desktop switching -->
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Down" action="Click">
|
||||||
|
<!-- Disabled desktop switching -->
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
</mouse>
|
||||||
|
|
||||||
|
<keyboard>
|
||||||
|
<chainQuitKey>C-g</chainQuitKey>
|
||||||
|
</keyboard>
|
||||||
|
</openbox_config>
|
||||||
43
supervisord.conf
Normal file
43
supervisord.conf
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
user=root
|
||||||
|
logfile=/var/log/supervisor/supervisord.log
|
||||||
|
pidfile=/var/run/supervisord.pid
|
||||||
|
|
||||||
|
[program:xvnc]
|
||||||
|
command=/usr/bin/Xvnc :0 -geometry %(ENV_VNC_RESOLUTION)s -depth %(ENV_VNC_DEPTH)s -SecurityTypes None -rfbport %(ENV_VNC_PORT)s -AcceptSetDesktopSize=1
|
||||||
|
user=%(ENV_USER)s
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=10
|
||||||
|
stdout_logfile=/var/log/supervisor/xvnc.log
|
||||||
|
stderr_logfile=/var/log/supervisor/xvnc_err.log
|
||||||
|
|
||||||
|
[program:openbox]
|
||||||
|
command=/usr/bin/openbox
|
||||||
|
environment=DISPLAY=":0"
|
||||||
|
user=%(ENV_USER)s
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=20
|
||||||
|
stdout_logfile=/var/log/supervisor/openbox.log
|
||||||
|
stderr_logfile=/var/log/supervisor/openbox_err.log
|
||||||
|
|
||||||
|
[program:novnc]
|
||||||
|
command=/usr/share/novnc/utils/novnc_proxy --vnc localhost:%(ENV_VNC_PORT)s --listen %(ENV_NOVNC_PORT)s
|
||||||
|
user=%(ENV_USER)s
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=30
|
||||||
|
stdout_logfile=/var/log/supervisor/novnc.log
|
||||||
|
stderr_logfile=/var/log/supervisor/novnc_err.log
|
||||||
|
|
||||||
|
[program:nicotine]
|
||||||
|
command=/usr/local/bin/nicotine
|
||||||
|
environment=DISPLAY=":0",HOME="/home/%(ENV_USER)s",XDG_CONFIG_HOME="/home/%(ENV_USER)s/.config",XDG_DATA_HOME="/home/%(ENV_USER)s/.local/share"
|
||||||
|
user=%(ENV_USER)s
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
priority=40
|
||||||
|
stdout_logfile=/var/log/supervisor/nicotine.log
|
||||||
|
stderr_logfile=/var/log/supervisor/nicotine_err.log
|
||||||
Reference in New Issue
Block a user