← Todos os templates · Automação
Faça deploy de Node-RED em um clique
Fluxos low-code que conectam APIs, dispositivos e serviços online
Uma alternativa auto-hospedada para Zapier e IFTTT.
O que é Node-RED?
O Node-RED é uma ferramenta de programação low-code e de código aberto para aplicações orientadas a eventos, muitas vezes usada no lugar do Zapier ou do IFTTT. No editor, que roda no navegador, você arrasta nós para o canvas e os liga em fluxos: uma mensagem chega de uma requisição HTTP, de um tópico MQTT, de um webhook ou de um timer, passa por nós que a alteram, filtram ou encaminham e sai para um banco de dados, uma API ou um chat. Um nó Function roda o seu próprio JavaScript quando nenhum nó serve, e a biblioteca da comunidade tem mais de 6.000 nós para instalar a partir do editor.
O Node-RED nasceu na IBM em 2013 e hoje é um projeto da OpenJS Foundation. As pessoas o usam para automação residencial, muitas vezes junto com o Home Assistant, para IoT e dados industriais e como cola entre serviços web, e o auto-hospedam para rodar suas automações 24 horas por dia, sem preço por execução. Este template abre o editor apenas para o usuário e a senha informados. O porém: as rotas dos nós HTTP In são públicas, então um endpoint que deveria ser privado precisa de httpNodeAuth no settings.js ou de uma verificação própria.
Hospedagem de Node-RED no Pethost
- Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
- Novo projeto abre em Node-RED. Você preenche o que ele pede e clica em Criar projeto: Usuário, Senha do administrador.
- Em um ou dois minutos Node-RED está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
- É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.
Perguntas sobre Node-RED
O Node-RED é gratuito?
Sim. O Node-RED é de código aberto sob a licença Apache 2.0 e não custa nada, seja qual for o número de fluxos ou de mensagens. Ele é um projeto da OpenJS Foundation.
Como instalo mais nós no Node-RED?
Abra o menu principal, escolha Gerenciar paleta e busque na aba Instalar, que lista os nós da biblioteca da comunidade. Os nós instalados ficam guardados no volume data, então sobrevivem a reinícios e a novos deploys.
O Node-RED funciona com o Home Assistant?
Sim. Os nós node-red-contrib-home-assistant-websocket falam com o Home Assistant pelas APIs WebSocket e REST dele, para reagir aos eventos e chamar os serviços do Home Assistant. O seu Home Assistant precisa estar acessível a partir da máquina em que o Node-RED roda.
Como criar um dashboard no Node-RED?
Instale o @flowfuse/node-red-dashboard com Gerenciar paleta: os nós dele desenham botões, gráficos e formulários em uma página servida pelo Node-RED. O node-red-dashboard, mais antigo, está descontinuado desde junho de 2024.
Como proteger os endpoints HTTP dos meus fluxos no Node-RED?
O editor do Node-RED pede login, mas as rotas dos nós HTTP In respondem a qualquer pessoa. Defina httpNodeAuth com um usuário e um hash bcrypt em /data/settings.js para proteger todas elas com uma única senha, ou verifique um token no próprio fluxo.
De quanta memória e disco Node-RED precisa?
Node-RED é leve: cerca de 100 MB de memória; os fluxos ocupam kilobytes, e os nós que você instala, alguns megabytes cada. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.
Arquivo Docker Compose de Node-RED
O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.
Containers: node-red (nodered/node-red:5).
Volumes, no backup noturno: data.
services:
node-red:
image: nodered/node-red:5
restart: unless-stopped
environment:
TZ: ${TZ:-UTC}
ADMIN_USERNAME: ${ADMIN_USERNAME}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# The editor would be open to anyone with the address. Node-RED starts with the settings of
# /data/settings.js, which are yours to edit, and with the username and password of the
# project's .env as its only sign-in, unless settings.js sets adminAuth itself.
entrypoint: ["/bin/bash", "-c"]
command:
- |
# The first start: settings.js to edit, and no flow, where the image's would warn of a
# missing volume, which the project has.
if [ ! -f /data/settings.js ]; then
cp node_modules/node-red/settings.js /data/settings.js
rm -f /data/flows.json
fi
cat > /tmp/settings.js <<'END'
const { createHash, timingSafeEqual } = require("node:crypto");
const settings = require("/data/settings.js");
const digest = (text) => createHash("sha256").update(String(text)).digest();
const user = (username) => (username === process.env.ADMIN_USERNAME ? { username, permissions: "*" } : null);
settings.adminAuth ??= {
type: "credentials",
users: async (username) => user(username),
authenticate: async (username, password) =>
timingSafeEqual(digest(password), digest(process.env.ADMIN_PASSWORD)) ? user(username) : null
};
module.exports = settings;
END
exec ./entrypoint.sh --settings /tmp/settings.js
volumes:
- data:/data
volumes:
data:
Mais em Automação
- n8nAutomação de fluxos de trabalho com editor visual
- JenkinsUm servidor de automação para builds, testes e deploys
- Semaphore UIUma interface web para Ansible, Terraform e outras automações
- ActivepiecesAutomações e agentes de IA montados com centenas de peças, sem código
- WindmillScripts, fluxos e apps em Python, TypeScript, Go, SQL ou Bash, executados por workers num agendamento, num webhook ou num botão