Accéder à Node-RED
- Ouvrez votre navigateur et rendez-vous sur :
https://<SERVER_IP> - Un avertissement SSL dans le navigateur est normal (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 du service
Vérifier l'état du conteneur :
docker ps
Afficher les journaux :
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'adresse IP du serveur.
2. Modifiez la configuration Nginx et remplacez les deux occurrences de server_name <IP>; par votre domaine (« <your-domain>) pour les blocs HTTP (port 80) et HTTPS (port 443) :
vim /etc/nginx/sites-available/node-red
3. Installer Certbot :
apt install -y certbot python3-certbot-nginx
4. Exécutez 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 configuration 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 modifications :
systemctl restart nginx
7. Ouvrez votre navigateur et accédez à : https://yourdomain.com