Accedere a Node-RED
- Apri il browser e visita:
https://<SERVER_IP> - Un avviso SSL del browser è previsto (certificato self-signed)
- È richiesta l'autenticazione (popup Basic Auth)
- Metodo di autenticazione: HTTP Basic Auth
- Le credenziali sono salvate in modo sicuro in:
/root/.cloudzy-creds
File e directory principali
- La directory di installazione principale è
/root/node-red. - Il file di orchestrazione Docker si trova in
/root/node-red/docker-compose.yml. - I dati persistenti di Node-RED sono salvati in
/var/lib/docker/volumes/node-red_node-red-data/_data. - Il file di configurazione di Nginx si trova in
/etc/nginx/sites-available/node-red. - Le credenziali di autenticazione base sono salvate in
/etc/nginx/auth/node-red.htpasswd. - I certificati TLS sono salvati in
/etc/nginx/ssl.
Gestione dei servizi
Controlla lo stato del container:
docker ps
Visualizza log:
docker compose -f /root/node-red/docker-compose.yml logs -f
Riavviare Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Riavvia Nginx:
systemctl restart nginx
Utente amministratore di Node-RED (alternativa all'autenticazione base)
Node-RED dispone di un proprio sistema di autenticazione interno, che può sostituire HTTP Basic Auth.
1. Individuare settings.js
Il file di configurazione principale si trova nel volume Docker di Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Abilita adminAuth
Apri settings.js e decommenta (o aggiungi) la sezione adminAuth La sezione dovrebbe apparire più o meno così:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Genera un hash della password
Puoi generare l'hash dall'interno del container Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Ti verrà chiesto di inserire la password in chiaro.
Copia l'hash ottenuto e incollalo come password valore in settings.js.
4. Riavvia Node-RED
Dopo la modifica settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Disabilita l'autenticazione base HTTP in Nginx (Opzionale)
Modifica il file del sito Nginx: /etc/nginx/sites-available/node-red
Rimuovi o commenta queste righe:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Ricarica Nginx:
systemctl restart nginx
Abilitare SSL con un dominio
1. Punta il tuo dominio all'IP del server.
2. Modifica la configurazione Nginx e sostituisci entrambi server_name <IP>; con il tuo dominio (<your-domain>) per i blocchi HTTP (porta 80) e HTTPS (porta 443):
vim /etc/nginx/sites-available/node-red
3. Installa Certbot:
apt install -y certbot python3-certbot-nginx
4. Esegui il seguente comando per generare un certificato Let's Encrypt valido:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Sostituisci i percorsi SSL nella configurazione Nginx:
vim /etc/apache2/sites-available/node-red
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. Riavvia Nginx per applicare le modifiche:
systemctl restart nginx
7. Apri il browser e visita: https://yourdomain.com