Acessando o Node-RED
- Abra o navegador e acesse:
https://<SERVER_IP> - Um aviso de SSL no navegador é esperado (certificado autoassinado)
- Autenticação necessária (popup de Basic Auth)
- Método de autenticação: HTTP Basic Auth
- As credenciais são armazenadas com segurança em:
/root/.cloudzy-creds
Arquivos e Diretórios Importantes
- O diretório principal de instalação é
/root/node-red. - O arquivo de orquestração Docker está em
/root/node-red/docker-compose.yml. - Os dados persistentes do Node-RED são armazenados em
/var/lib/docker/volumes/node-red_node-red-data/_data. - O arquivo de configuração do Nginx está em
/etc/nginx/sites-available/node-red. - As credenciais de autenticação básica estão armazenadas em
/etc/nginx/auth/node-red.htpasswd. - Os certificados TLS estão armazenados em
/etc/nginx/ssl.
Service Management
Verificar status do container:
docker ps
View logs:
docker compose -f /root/node-red/docker-compose.yml logs -f
Reiniciar o Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Restart Nginx:
systemctl restart nginx
Usuário administrador do Node-RED (alternativa à autenticação básica)
O Node-RED possui seu próprio sistema de autenticação interno, que pode substituir o HTTP Basic Auth.
1. Locate settings.js
O arquivo de configuração principal está dentro do volume Docker do Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Enable adminAuth
Open settings.js e remova o comentário (ou adicione) a seção adminAuth A seção deve ter um aspecto semelhante a este:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Gerar um hash de senha
Você pode gerar o hash dentro do container do Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Será solicitado que você insira sua senha em texto simples.
Copie o hash gerado e cole como o password value in settings.js.
4. Reiniciar Node-RED
After editing settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Desabilitar autenticação básica do HTTP no Nginx (Opcional)
Edite o arquivo de site do Nginx: /etc/nginx/sites-available/node-red
Remova ou comente estas linhas:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Reload Nginx:
systemctl restart nginx
Habilitando SSL com um Domínio
1. Aponte seu domínio para o IP do servidor.
2. Edite a configuração do Nginx e substitua os dois server_name <IP>; pelo seu domínio (<your-domain>) nos blocos de HTTP (porta 80) e HTTPS (porta 443):
vim /etc/nginx/sites-available/node-red
3. Install Certbot:
apt install -y certbot python3-certbot-nginx
4. Execute o seguinte comando para gerar um certificado Let's Encrypt válido:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Substitua os caminhos do SSL na configuração do 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. Reinicie o Nginx para aplicar as alterações:
systemctl restart nginx
7. Abra o navegador e acesse: https://yourdomain.com