Dostęp do Node-RED
- Otwórz przeglądarkę i odwiedź:
https://<SERVER_IP> - Ostrzeżenie SSL przeglądarki jest spodziewane (certyfikat self-signed)
- Wymagane jest uwierzytelnienie (wyskakujące okienko Podstawowe uwierzytelnianie)
- Metoda uwierzytelniania: HTTP Basic Auth
- Dane logowania są bezpiecznie przechowywane w:
/root/.cloudzy-creds
Ważne pliki i katalogi
- Główny katalog instalacyjny to
/root/node-red. - Plik orkiestracji Dockera to
/root/node-red/docker-compose.yml. - Trwałe dane Node-RED są przechowywane w
/var/lib/docker/volumes/node-red_node-red-data/_data. - Plik konfiguracyjny Nginx znajduje się pod adresem
/etc/nginx/sites-available/node-red. - Podstawowe dane uwierzytelniające są przechowywane w
/etc/nginx/auth/node-red.htpasswd. - Certyfikaty TLS są przechowywane w
/etc/nginx/ssl.
Zarządzanie usługami
Sprawdź status kontenera:
docker ps
Zobacz logi:
docker compose -f /root/node-red/docker-compose.yml logs -f
Uruchom ponownie węzeł-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Uruchom ponownie Nginxa:
systemctl restart nginx
Użytkownik administracyjny Node-RED (alternatywa dla uwierzytelniania podstawowego)
Node-RED posiada własny, wewnętrzny system uwierzytelniania, który może zastąpić HTTP Basic Auth.
1. Zlokalizuj settings.js
Główny plik konfiguracyjny znajduje się w wolumenie Docker Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Włącz adminAuth
Otwarte settings.js i odkomentuj (lub dodaj) plik adminAuth sekcja. Powinno to wyglądać mniej więcej tak:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Wygeneruj skrót hasła
Możesz wygenerować skrót z wnętrza kontenera Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Zostaniesz poproszony o podanie zwykłego hasła.
Skopiuj wynikowy skrót i wklej go jako password wartość w settings.js.
4. Uruchom ponownie Node-RED
Po edycji settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Wyłącz podstawowe uwierzytelnianie HTTP w Nginx (opcjonalnie)
Edytuj plik witryny Nginx: /etc/nginx/sites-available/node-red
Usuń lub skomentuj te linie:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Załaduj ponownie Nginx:
systemctl restart nginx
Włączanie SSL z domeną
1. Skieruj swoją domenę na IP serwera.
2. Edytuj konfigurację Nginx i zamień oba server_name <IP>; z Twoją domeną (<your-domain>) dla bloków HTTP (port 80) i HTTPS (port 443):
vim /etc/nginx/sites-available/node-red
3. Zainstaluj Certbot:
apt install -y certbot python3-certbot-nginx
4. Uruchom poniższe polecenie, aby wygenerować ważny certyfikat Let’s Encrypt:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Zamień ścieżki SSL w konfiguracji 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. Zrestartuj Nginx, aby zastosować zmiany:
systemctl restart nginx
7. Otwórz przeglądarkę i odwiedź: https://yourdomain.com