Accesso a Node-RED
- Apri il browser e vai a:
https://<SERVER_IP> - Un avviso SSL del browser è previsto (certificato autofirmato)
- È richiesta l'autenticazione (popup Autenticazione di base)
- Metodo di autenticazione: Aut. base HTTP
- Le credenziali vengono archiviate in modo sicuro in:
/root/.cloudzy-creds
File e directory importanti
- La directory di installazione principale è
/root/node-red. - Il file di orchestrazione Docker è
/root/node-red/docker-compose.yml. - I dati persistenti di Node-RED vengono archiviati 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 di base sono archiviate in
/etc/nginx/auth/node-red.htpasswd. - I certificati TLS sono archiviati in
/etc/nginx/ssl.
Gestione del servizio
Controlla lo stato del contenitore:
docker ps
Visualizza i log:
docker compose -f /root/node-red/docker-compose.yml logs -f
Riavvia Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Riavvia Nginx:
systemctl restart nginx
Utente amministratore Node-RED (alternativa all'autenticazione di base)
Node-RED dispone di un proprio sistema di autenticazione interno, che può sostituire l'autenticazione di base HTTP.
1. Individua settings.js
Il file di configurazione principale si trova all'interno del volume Docker Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Abilita adminAuth
Aprire settings.js e decommentare (o aggiungere) il file adminAuth sezione. Dovrebbe assomigliare a questo:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Genera un hash della password
Puoi generare l'hash dall'interno del contenitore Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Ti verrà richiesto di inserire la tua password semplice.
Copia l'hash risultante e incollalo come file password valore in settings.js.
4. Riavviare Node-RED
Dopo la modifica settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Disabilita l'autenticazione di base HTTP in Nginx (facoltativo)
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>) sia per i blocchi HTTP (porta 80) sia HTTPS (porta 443):
vim /etc/nginx/sites-available/node-red
3. Installa Certbot:
apt install -y certbot python3-certbot-nginx
4. Esegui il comando seguente 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 vai a: https://yourdomain.com