---
title: "Node-RED: Docker Compose i hosting jednym kliknięciem"
description: "Node-RED łączy API, urządzenia i usługi w przepływy low-code w przeglądarce. Hostuj u siebie ten edytor automatyzacji open source jednym kliknięciem."
---

[← Wszystkie szablony](https://pethost.dev/pl/templates/) · [Automatyzacja](https://pethost.dev/pl/templates/automation/)

# Wdróż Node-RED jednym kliknięciem

Przepływy low-code, które łączą API, urządzenia i usługi online

Alternatywa dla Zapier i IFTTT, hostowana u siebie.

[Wdróż na Pethost](https://console.pethost.dev/?template=node-red)

## Czym jest Node-RED?

Node-RED to narzędzie open source do programowania low-code aplikacji sterowanych zdarzeniami, często używane zamiast Zapiera albo IFTTT. W jego edytorze w przeglądarce przeciągasz węzły na kanwę i łączysz je w przepływy: wiadomość przychodzi z żądania HTTP, tematu MQTT, webhooka albo timera, przechodzi przez węzły, które ją zmieniają, filtrują albo kierują dalej, i trafia do bazy danych, API albo czatu. Węzeł Function uruchamia twój własny JavaScript tam, gdzie żaden węzeł nie pasuje, a biblioteka społeczności ma ponad 6000 węzłów do zainstalowania prosto z edytora.

Node-RED powstał w IBM w 2013 roku, a dziś jest projektem OpenJS Foundation. Używa się go do automatyki domowej, często obok Home Assistanta, do danych z IoT i przemysłu oraz jako spoiwa między usługami webowymi, a hostuje u siebie, żeby automatyzacje działały całą dobę bez opłat za każde uruchomienie. Ten szablon otwiera edytor tylko dla podanej nazwy użytkownika i hasła. Haczyk: trasy węzłów HTTP In są publiczne, więc endpoint, który ma być prywatny, wymaga httpNodeAuth w settings.js albo własnej weryfikacji.

## Hosting Node-RED na Pethost

1. Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
2. Okno „Nowy projekt” otwiera się na aplikacji Node-RED. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: **Nazwa użytkownika**, **Hasło administratora**.
3. Za minutę czy dwie aplikacja Node-RED działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
4. To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

## Pytania o Node-RED

**Czy Node-RED jest darmowy?**

Tak. Node-RED to open source na licencji Apache 2.0 i nic nie kosztuje, bez względu na liczbę przepływów czy wiadomości. Jest projektem OpenJS Foundation.

**Jak zainstalować nowe węzły w Node-RED?**

Otwórz menu główne, wybierz Manage palette i szukaj w zakładce Install, która pokazuje węzły z biblioteki społeczności. Zainstalowane węzły są przechowywane w wolumenie data, więc przetrwają restarty i kolejne wdrożenia.

**Czy Node-RED współpracuje z Home Assistantem?**

Tak. Węzły node-red-contrib-home-assistant-websocket komunikują się z Home Assistantem przez jego API WebSocket i REST, żeby reagować na jego zdarzenia i wywoływać jego usługi. Twój Home Assistant musi być osiągalny z maszyny, na której działa Node-RED.

**Jak zrobić dashboard w Node-RED?**

Zainstaluj @flowfuse/node-red-dashboard przez Manage palette: jego węzły rysują przyciski, wykresy i formularze na stronie, którą udostępnia Node-RED. Starszy node-red-dashboard jest oznaczony jako przestarzały od czerwca 2024 roku.

**Jak zabezpieczyć endpointy HTTP w przepływach Node-RED?**

Edytor wymaga logowania, ale trasy węzłów HTTP In odpowiadają każdemu. Ustaw httpNodeAuth z użytkownikiem i hashem bcrypt w /data/settings.js, żeby objąć je wszystkie jednym hasłem, albo sprawdzaj token w samym przepływie.

**Ile pamięci i miejsca na dysku potrzebuje Node-RED?**

Node-RED ma małe wymagania: około 100 MB pamięci; przepływy zajmują kilobajty, a instalowane węzły po kilka megabajtów każdy. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.

## Node-RED: plik Docker Compose

Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

**Kontenery:** node-red (nodered/node-red:5).

**Wolumeny, w nocnym backupie:** 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)[Zobacz na GitHubie](https://github.com/pethost-dev/templates/tree/main/node-red)

## [Więcej w kategorii Automatyzacja](https://pethost.dev/pl/templates/automation/)

- [**n8n**Automatyzacja workflowów z wizualnym edytorem](https://pethost.dev/pl/templates/n8n/)
- [**Jenkins**Serwer automatyzacji do buildów, testów i wdrożeń](https://pethost.dev/pl/templates/jenkins/)
- [**Semaphore UI**Interfejs webowy do Ansible, Terraform i innej automatyzacji](https://pethost.dev/pl/templates/semaphore/)
- [**Activepieces**Automatyzacje i agenci AI z setek gotowych klocków, bez kodu](https://pethost.dev/pl/templates/activepieces/)
- [**Windmill**Skrypty, flow i aplikacje w Pythonie, TypeScripcie, Go, SQL lub Bashu, uruchamiane przez workery według harmonogramu, webhookiem albo przyciskiem](https://pethost.dev/pl/templates/windmill/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Szablony](https://pethost.dev/pl/templates/)
- [O nas](https://pethost.dev/about/)
- [Dokumentacja](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pl/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Regulamin](https://pethost.dev/terms/)
- [Prywatność](https://pethost.dev/privacy/)
- [Zwroty](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bazy danych

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

Porównania

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pl/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pl/blog/coolify-cloud-vs-dokploy-cloud/)
- [Cennik Railway vs Render vs Fly.io](https://pethost.dev/pl/blog/railway-vs-render-vs-fly-io-pricing/)
- [Zarządzany hosting Docker Compose](https://pethost.dev/pl/blog/managed-docker-compose-hosting/)

Alternatywy

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