Node-RED'a Erişim
- Tarayıcınızı açın ve şu adresi ziyaret edin:
https://<SERVER_IP> - Tarayıcıda SSL uyarısı beklenen bir durumdur (kendinden imzalı sertifika)
- Kimlik doğrulaması gereklidir (Basic Auth açılır penceresi)
- Kimlik doğrulama yöntemi: HTTP Basic Auth
- Kimlik bilgileri şurada güvenli şekilde saklanır:
/root/.cloudzy-creds
Önemli Dosyalar ve Dizinler
- Ana kurulum dizini:
/root/node-red. - Docker orkestrasyon dosyası:
/root/node-red/docker-compose.yml. - Node-RED kalıcı verileri şurada saklanır:
/var/lib/docker/volumes/node-red_node-red-data/_data. - Nginx yapılandırma dosyası şu konumda:
/etc/nginx/sites-available/node-red. - Temel kimlik doğrulama bilgileri şurada saklanır:
/etc/nginx/auth/node-red.htpasswd. - TLS sertifikaları şurada saklanır:
/etc/nginx/ssl.
Hizmet Yönetimi
Container durumunu kontrol et:
docker ps
Günlükleri görüntüle:
docker compose -f /root/node-red/docker-compose.yml logs -f
Node-RED'ı yeniden başlatın:
docker compose -f /root/node-red/docker-compose.yml restart
Nginx'i Yeniden Başlat:
systemctl restart nginx
Node-RED Yönetici Kullanıcısı (Temel Kimlik Doğrulamaya Alternatif)
Node-RED, HTTP Basic Auth'un yerini alabilecek kendi dahili kimlik doğrulama sistemine sahiptir.
1. Konumu Belirle settings.js
Ana yapılandırma dosyası, Node-RED Docker volume'ünün içindedir: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Etkinleştir adminAuth
Aç settings.js satırının yorumunu kaldırın (veya ekleyin): adminAuth bölümü. Şuna benzer görünmelidir:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Parola hash'i oluşturun
Hash'i Node-RED container'ının içinden oluşturabilirsiniz:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Düz metin parolanızı girmeniz istenecektir.
Oluşturulan hash'i kopyalayın ve şu değer olarak yapıştırın: password değer in settings.js.
4. Node-RED'ı yeniden başlatın
Düzenlemeden sonra settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Nginx'te HTTP Basic Auth'u devre dışı bırakın (İsteğe Bağlı)
Nginx site dosyasını düzenleyin: /etc/nginx/sites-available/node-red
Şu satırları kaldırın veya yorum satırına alın:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Nginx'i yeniden yükle:
systemctl restart nginx
Bir Alan Adıyla SSL Etkinleştirme
1. Alan adınızı sunucu IP adresine yönlendirin.
2. Nginx yapılandırmasını düzenleyin ve her ikisini de değiştirin server_name <IP>; alan adınızla (<your-domain>) hem HTTP (port 80) hem de HTTPS (port 443) blokları için:
vim /etc/nginx/sites-available/node-red
3. Certbot'u yükleyin:
apt install -y certbot python3-certbot-nginx
4. Geçerli bir Let's Encrypt sertifikası oluşturmak için şu komutu çalıştırın:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Nginx yapılandırmasındaki SSL yollarını değiştirin:
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. Değişiklikleri uygulamak için Nginx'i yeniden başlatın:
systemctl restart nginx
7. Tarayıcınızı açın ve şu adresi ziyaret edin: https://yourdomain.com