---
title: "Node-RED com Docker Compose e hospedagem em um clique"
description: "O Node-RED é uma ferramenta de automação low-code e open source que liga APIs, dispositivos e serviços em fluxos no navegador. Auto-hospede em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Automação](https://pethost.dev/pt/templates/automation/)

# 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.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=node-red)

## 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

1. 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.
2. Novo projeto abre em Node-RED. Você preenche o que ele pede e clica em Criar projeto: **Usuário**, **Senha do administrador**.
3. 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.
4. É 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:
```

[compose.yaml](https://pethost.dev/templates/node-red/compose.yaml)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/node-red)

## [Mais em Automação](https://pethost.dev/pt/templates/automation/)

- [**n8n**Automação de fluxos de trabalho com editor visual](https://pethost.dev/pt/templates/n8n/)
- [**Jenkins**Um servidor de automação para builds, testes e deploys](https://pethost.dev/pt/templates/jenkins/)
- [**Semaphore UI**Uma interface web para Ansible, Terraform e outras automações](https://pethost.dev/pt/templates/semaphore/)
- [**Activepieces**Automações e agentes de IA montados com centenas de peças, sem código](https://pethost.dev/pt/templates/activepieces/)
- [**Windmill**Scripts, fluxos e apps em Python, TypeScript, Go, SQL ou Bash, executados por workers num agendamento, num webhook ou num botão](https://pethost.dev/pt/templates/windmill/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

- [Postgres](https://pethost.dev/pt/postgres/)

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
