Accéder à Node-RED
- Ouvrez votre navigateur et allez sur :
https://<SERVER_IP> - Un avertissement SSL du navigateur est attendu (certificat auto-signé)
- Authentification requise (fenêtre Basic Auth)
- Méthode d'authentification : Basic Auth HTTP
- Les identifiants sont stockés de façon sécurisée dans :
/root/.cloudzy-creds
Fichiers et répertoires importants
- Le répertoire d'installation principal est
/root/node-red. - Le fichier d'orchestration Docker est
/root/node-red/docker-compose.yml. - Les données persistantes de Node-RED sont stockées dans
/var/lib/docker/volumes/node-red_node-red-data/_data. - Le fichier de configuration Nginx se trouve à
/etc/nginx/sites-available/node-red. - Les identifiants d'authentification de base sont stockés dans
/etc/nginx/auth/node-red.htpasswd. - Les certificats TLS sont stockés dans
/etc/nginx/ssl.
Gestion des services
Vérifier l'état du conteneur :
docker ps
Voir les logs :
docker compose -f /root/node-red/docker-compose.yml logs -f
Redémarrer Node-RED :
docker compose -f /root/node-red/docker-compose.yml restart
Redémarrer Nginx :
systemctl restart nginx
Utilisateur administrateur Node-RED (alternative à l'authentification de base)
Node-RED dispose de son propre système d'authentification interne, qui peut remplacer l'authentification de base HTTP.
1. Localiser settings.js
Le fichier de configuration principal se trouve dans le volume Docker de Node-RED : /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Activer adminAuth
Ouvrez settings.js et décommenter (ou ajouter) la section adminAuth qui doit ressembler à ceci :
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Générer un hash de mot de passe
Vous pouvez générer le hash depuis le conteneur Node-RED :
docker exec -it node-red-node-red-1 node-red admin hash-pw
Saisissez votre mot de passe en clair lorsque l'invite s'affiche.
Copiez le hash obtenu et collez-le comme valeur password dans settings.js.
4. Redémarrer Node-RED
Après avoir modifié settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Désactiver l'authentification de base HTTP dans Nginx (facultatif)
Modifier le fichier de site Nginx : /etc/nginx/sites-available/node-red
Supprimer ou commenter ces lignes :
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Recharger Nginx :
systemctl restart nginx
Activer SSL avec un domaine
1. Faites pointer votre domaine vers l'IP du serveur.
2. Modifiez la config Nginx et remplacez les deux server_name <IP>; avec votre domaine (<your-domain>) dans les blocs HTTP (port 80) et HTTPS (port 443) :
vim /etc/nginx/sites-available/node-red
3. Installez Certbot :
apt install -y certbot python3-certbot-nginx
4. Lancez la commande suivante pour générer un certificat Let's Encrypt valide :
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Remplacez les chemins SSL dans la config 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. Redémarrez Nginx pour appliquer les changements :
systemctl restart nginx
7. Ouvrez votre navigateur et allez sur : https://yourdomain.com