Zugriff auf Node-RED
- Öffne deinen Browser und besuche:
https://<SERVER_IP> - Eine SSL-Warnung im Browser ist zu erwarten (selbstsigniertes Zertifikat)
- Authentifizierung ist erforderlich (Popup „Basic Auth“)
- Authentifizierungsmethode: HTTP Basic Auth
- Anmeldeinformationen werden sicher gespeichert in:
/root/.cloudzy-creds
Wichtige Dateien und Verzeichnisse
- Das Hauptinstallationsverzeichnis ist
/root/node-red. - Die Docker-Orchestrierungsdatei ist
/root/node-red/docker-compose.yml. - Persistente Node-RED-Daten werden in gespeichert
/var/lib/docker/volumes/node-red_node-red-data/_data. - Die Nginx-Konfigurationsdatei befindet sich unter
/etc/nginx/sites-available/node-red. - Die Anmeldeinformationen für die Basisauthentifizierung werden in gespeichert
/etc/nginx/auth/node-red.htpasswd. - TLS-Zertifikate werden in gespeichert
/etc/nginx/ssl.
Service-Management
Containerstatus prüfen:
docker ps
Logs ansehen:
docker compose -f /root/node-red/docker-compose.yml logs -f
Node-RED neu starten:
docker compose -f /root/node-red/docker-compose.yml restart
Starte Nginx neu:
systemctl restart nginx
Node-RED-Administratorbenutzer (Alternative zur Basisauthentifizierung)
Node-RED verfügt über ein eigenes internes Authentifizierungssystem, das HTTP Basic Auth ersetzen kann.
1. Lokalisieren settings.js
Die Hauptkonfigurationsdatei befindet sich im Node-RED Docker-Volume: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Aktivieren adminAuth
Offen settings.js und auskommentieren (oder hinzufügen). adminAuth Abschnitt. Es sollte ungefähr so aussehen:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Generierre einen Passwort-Hash
du kannst den Hash aus dem Node-RED-Container generieren:
docker exec -it node-red-node-red-1 node-red admin hash-pw
du wirst aufgefordert, dein einfaches Passwort einzugeben.
Kopiere den resultierenden Hash und füge ihn als ein password Wert in settings.js.
4. Starte Node-RED neu
Nach der Bearbeitung settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Deaktiviere HTTP Basic Auth in Nginx (optional)
Bearbeite die Nginx-Site-Datei: /etc/nginx/sites-available/node-red
Entfernen oder kommentiere diese Zeilen aus:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Nginx neu laden:
systemctl restart nginx
SSL mit einer Domain aktivieren
1. Richte deine Domain auf die Server-IP aus.
2. Nginx-Konfiguration bearbeiten und beide ersetzen server_name <IP>; mit deiner Domain (<your-domain>) für beide Blöcke HTTP (Port 80) und HTTPS (Port 443):
vim /etc/nginx/sites-available/node-red
3. Certbot installieren:
apt install -y certbot python3-certbot-nginx
4. Führe folgenden Befehl aus, um ein gültiges Let’s Encrypt-Zertifikat zu erzeugen:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. SSL-Pfade in der Nginx-Konfiguration ersetzen:
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. Nginx neu starten, um die Änderungen anzuwenden:
systemctl restart nginx
7. Öffne deinen Browser und besuche: https://yourdomain.com