n8n
Instalacja
n8n uruchamiany jest jako aplikacja webowa i zapisuje dane w PostgreSQL.
Założenia konfiguracyjne:
- Plik Compose znajduje się w
/srv/docker/compose/n8n - Dane n8n znajdują się w
/srv/docker/data/n8n - Sekrety (zmienne środowiskowe) znajdują się w
/srv/docker/secrets/n8n/app.env - n8n łączy się z PostgreSQL po sieci Dockera
internal - n8n jest wystawiany przez reverse proxy po sieci Dockera
proxy - Logi pozostają domyślne (stdout/stderr) i są dostępne przez
docker logs(nie tworzymy katalogu/srv/docker/logs)
Dostęp do sieci Docker
Wymagany dostęp do sieci proxy oraz internal
Aby udostępnić aplikację publicznie oraz komunikować się z innymi kontenerami, aplikacja wymaga dostępu do sieci Docker proxy i internal.
Tworzenie katalogów
Tworzymy katalog dla Compose:
sudo mkdir -p /srv/docker/compose/n8n
sudo chown -R "$USER:$USER" /srv/docker/compose/n8n
Tworzymy katalog na dane n8n:
sudo mkdir -p /srv/docker/data/n8n
sudo chown -R "$USER:$USER" /srv/docker/data/n8n
Tworzymy katalog na sekrety:
sudo mkdir -p /srv/docker/secrets/n8n
sudo chown -R "$USER:$USER" /srv/docker/secrets/n8n
Tworzenie bazy w PostgreSQL
Tworzymy dedykowanego użytkownika i bazę dla n8n.
Uruchamiamy psql w kontenerze PostgreSQL:
docker exec -it postgres psql -U postgres
W psql tworzymy użytkownika i bazę:
CREATE USER n8n WITH PASSWORD 'TU_DAJ_MOCNE_HASLO';
CREATE DATABASE n8n OWNER n8n;
GRANT ALL PRIVILEGES ON DATABASE n8n TO n8n;
Wychodzimy z psql:
\q
Tworzenie pliku app.env
Tworzymy i edytujemy plik app.env:
micro /srv/docker/secrets/n8n/app.env
W pliku umieszczamy:
TZ=Europe/Warsaw
N8N_HOST=n8n.fulc.ro
N8N_PROTOCOL=https
N8N_PORT=5678
WEBHOOK_URL=https://n8n.fulc.ro/
N8N_EDITOR_BASE_URL=https://n8n.fulc.ro/
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=TU_DAJ_MOCNE_HASLO
DB_POSTGRESDB_SCHEMA=public
Zapisujemy plik i wychodzimy z edytora.
Konfiguracja Docker Compose
Przechodzimy do katalogu Compose:
cd /srv/docker/compose/n8n
Tworzymy i edytujemy plik compose.yaml:
micro compose.yaml
W pliku umieszczamy:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
env_file:
- /srv/docker/secrets/n8n/app.env
volumes:
- /srv/docker/data/n8n:/home/node/.n8n
networks:
- internal
- proxy
networks:
internal:
external: true
proxy:
external: true
Zapisujemy plik i wychodzimy z edytora.
Uruchomienie kontenera
Uruchamiamy n8n:
docker compose up -d
Sprawdzamy, czy kontener działa:
docker ps | grep n8n
Konfiguracja Caddy
Dodajemy wpis do Caddyfile:
n8n.fulc.ro {
reverse_proxy n8n:5678
}
Przeładowujemy Caddy:
docker exec -it caddy caddy reload --config /etc/caddy/Caddyfile
Test
W przeglądarce otwieramy:
https://n8n.fulc.ro
Podgląd logów
Podglądamy logi kontenera:
docker logs -f n8n