Доступ к Node-RED
- Откройте браузер и перейдите по адресу:
https://<SERVER_IP> - Предупреждение SSL в браузере ожидаемо (самоподписанный сертификат)
- Требуется аутентификация (всплывающее окно базовой аутентификации)
- Метод аутентификации: базовая аутентификация HTTP.
- Учетные данные надежно хранятся в:
/root/.cloudzy-creds
Важные файлы и директории
- Основной каталог установки:
/root/node-red. - Файл оркестрации Docker
/root/node-red/docker-compose.yml. - Постоянные данные Node-RED хранятся в
/var/lib/docker/volumes/node-red_node-red-data/_data. - Файл конфигурации Nginx находится по адресу
/etc/nginx/sites-available/node-red. - Базовые учетные данные аутентификации хранятся в
/etc/nginx/auth/node-red.htpasswd. - Сертификаты TLS хранятся в
/etc/nginx/ssl.
Управление сервисами
Проверить статус контейнера:
docker ps
Посмотреть логи:
docker compose -f /root/node-red/docker-compose.yml logs -f
Перезапустите Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Перезапустите Nginx:
systemctl restart nginx
Пользователь-администратор Node-RED (альтернатива базовой аутентификации)
Node-RED имеет собственную внутреннюю систему аутентификации, которая может заменить HTTP Basic Auth.
1. Найдите settings.js
Основной файл конфигурации находится внутри тома Node-RED Docker: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Включить adminAuth
Открыть settings.js и раскомментируйте (или добавьте) adminAuth раздел. Это должно выглядеть примерно так:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Сгенерируйте хеш пароля
Вы можете сгенерировать хэш внутри контейнера Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Вам будет предложено ввести простой пароль.
Скопируйте полученный хэш и вставьте его в качестве password стоимость в settings.js.
4. Перезапустите Node-RED.
После редактирования settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Отключите базовую аутентификацию HTTP в Nginx (необязательно).
Отредактируйте файл сайта Nginx: /etc/nginx/sites-available/node-red
Удалите или закомментируйте эти строки:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Перезагрузите Нгинкс:
systemctl restart nginx
Включение SSL с доменом
1. Направьте ваш домен на IP сервера.
2. Откройте конфиг NGINX и замените оба server_name <IP>; с вашим доменом (<your-domain>) для блоков HTTP (порт 80) и HTTPS (порт 443):
vim /etc/nginx/sites-available/node-red
3. Установите Certbot:
apt install -y certbot python3-certbot-nginx
4. Выполните следующую команду, чтобы сгенерировать валидный сертификат Let’s Encrypt:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Замените пути SSL в конфиге 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. Перезапустите NGINX, чтобы применить изменения:
systemctl restart nginx
7. Откройте браузер и перейдите по адресу: https://yourdomain.com