OffshoreVps
Инструкции4 окт. 20267 мин чтенияАвтор: команда OffshoreVps

Развёртывание n8n и ИИ-агентов с Docker Compose на VPS

Разместите n8n у себя с Postgres и HTTPS, создайте рабочий процесс ИИ-агента, защитите вебхуки и сделайте резервные копии данных и ключа шифрования.

n8n — это инструмент рабочих процессов, который соединяет приложения, API и модели ИИ с помощью визуального редактора. Размещение его у себя означает, что ваши рабочие процессы, учётные данные и данные остаются на сервере, который вы контролируете, а запуски не тарифицируются. В этом руководстве n8n разворачивается с Docker Compose, базой данных Postgres и HTTPS, чтобы запускать ИИ-агентов круглосуточно.

Окно терминала на VPS с командами для развёртывания n8n и ИИ-агентов, начиная с «mkdir -p ~/n8n && cd ~/n8n»
Примерно такие команды вы будете выполнять на своём сервере в этом руководстве.

Зачем VPS для агентов?

Агенты часто работают по расписанию или реагируют на вебхуки, поэтому им нужен всегда включённый и доступный сервер. VPS даёт фиксированный адрес для вебхуков и достаточно RAM, чтобы рабочие процессы отвечали быстро. Для небольшой конфигурации подойдёт тариф с 2 vCPU и 4 ГБ. Размеры смотрите на странице хостинга для ИИ-агентов, а если нужны локальные модели, добавьте GPU-сервер.

Перед началом

Шаг 1: файл Compose

mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: n8n
    volumes:
      - db:/var/lib/postgresql/data

  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    depends_on: [db]
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: db
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      N8N_HOST: n8n.example.com
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.example.com/
      N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
      GENERIC_TIMEZONE: UTC
    ports:
      - "127.0.0.1:5678:5678"
    volumes:
      - n8n:/home/node/.n8n

volumes:
  db:
  n8n:
YAML

Шаг 2: секреты

cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env

Сделайте резервную копию ENCRYPTION_KEY. Без него n8n не сможет расшифровать сохранённые учётные данные.

Шаги этого руководства по порядку: 1. Зачем VPS для агентов?; 2. Перед началом; 3. секреты; 4. запустите n8n; 5. создайте рабочий процесс агента; 6. Обеспечьте безопасность
Шаги этого руководства по порядку.

Шаг 3: запустите n8n

docker compose up -d
docker compose logs -f n8n

Шаг 4: HTTPS

n8n.example.com {
  reverse_proxy 127.0.0.1:5678
}

Перезагрузите Caddy, откройте сайт и создайте учётную запись владельца.

Шаг 5: создайте рабочий процесс агента

  1. Добавьте триггер Webhook или Schedule.
  2. Добавьте узел AI Agent и подключите чат-модель, например размещённый API или Ollama на вашем собственном GPU-сервере.
  3. Дайте агенту инструменты, такие как HTTP-запросы, база данных или узел обмена сообщениями.
  4. Проверьте ручным запуском, затем активируйте рабочий процесс.

Обеспечьте безопасность

  • Привяжите n8n к 127.0.0.1 и открывайте наружу только HTTPS-прокси.
  • По возможности защищайте вебхуки секретным заголовком или путём.
  • Делайте резервные копии тома Postgres и тома n8n. См. резервное копирование с restic или borg.
  • Обновляйте командой docker compose pull && docker compose up -d, предварительно прочитав примечания к выпуску.