Запуск n8n с Docker Compose через Traefik

n8n — платформа визуальных сценариев автоматизации (аналог Zapier), развёрнутая у себя. Связывает Telegram, вебхуки, API, базы и домашние сервисы.

Ниже — минимальный стек с PostgreSQL и Traefik. Нужны рабочий Traefik и сеть traefik_network.

1. Каталог и секреты

mkdir -p ~/n8n
cd ~/n8n
openssl rand -hex 24

Сохраните hex-строку — это будет N8N_ENCRYPTION_KEY.

2. docker-compose.yml

Замените n8n.yourdomain, пароль БД и ключ шифрования:

services:
  n8n-postgres:
    image: postgres:16-alpine
    container_name: n8n-postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: change_me_db_password
      POSTGRES_DB: n8n
    volumes:
      - n8n_pg:/var/lib/postgresql/data

  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    depends_on:
      - n8n-postgres
    environment:
      N8N_HOST: n8n.yourdomain
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.yourdomain/
      N8N_ENCRYPTION_KEY: PASTE_ENCRYPTION_KEY_HERE
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: n8n-postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: change_me_db_password
      GENERIC_TIMEZONE: Europe/Moscow
      TZ: Europe/Moscow
    volumes:
      - n8n_data:/home/node/.n8n
    labels:
      - traefik.enable=true
      - traefik.http.middlewares.n8n_https.redirectscheme.scheme=https
      - traefik.http.routers.n8n.entrypoints=web
      - traefik.http.routers.n8n.middlewares=n8n_https@docker
      - traefik.http.routers.n8n.rule=Host(`n8n.yourdomain`)
      - traefik.http.routers.n8n_https.entrypoints=websecure
      - traefik.http.routers.n8n_https.rule=Host(`n8n.yourdomain`)
      - traefik.http.routers.n8n_https.tls=true
      - traefik.http.routers.n8n_https.tls.certresolver=le
      - traefik.http.services.n8n.loadbalancer.server.port=5678
    networks:
      - default
      - traefik_network

volumes:
  n8n_pg:
  n8n_data:

networks:
  traefik_network:
    external: true

3. Запуск

docker compose up -d
docker compose ps

Откройте https://n8n.yourdomain, создайте владельца и первый workflow.

Замечания

  • Не публикуйте порт 5678 наружу без Traefik.
  • Бэкапьте volumes n8n_data и n8n_pg.
  • Для вебхуков из интернета домен должен резолвиться и открывать 443.

Готово: автоматизация на своём сервере с HTTPS.