n8n — установка

Будем ставить n8n сервис для автоматизации обработки данных, публикаций, поиска и обработки новой информации. Самый практичный вариант установки через docker-compose в составе: база данных PostgreSQL, redis, n8n-worker и сам n8n Ставить будем на Ubuntu 22 Подключим репозиторий и поставим docker Обратите внимание!Если у вас установлен Docker версии 20.10.0 или выше, вы можете использовать встроенный плагин docker…


Будем ставить n8n сервис для автоматизации обработки данных, публикаций, поиска и обработки новой информации.

Самый практичный вариант установки через docker-compose в составе: база данных PostgreSQL, redis, n8n-worker и сам n8n

Ставить будем на Ubuntu 22

Подключим репозиторий и поставим docker

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

docker version

Обратите внимание!
Если у вас установлен Docker версии 20.10.0 или выше, вы можете использовать встроенный плагин docker compose (обратите внимание на пробел вместо дефиса):

docker compose version

Ссылка на конфигурацию: docker-compose.yml

Создадим папку для конфигурации:

mkdir n8n
cd n8n
vi docker-compose.yml

В docker-compose.yml вставьте подправленный мой YML, все добавленные строки отметил # комментарий:

volumes:
  db_storage:
  n8n_storage:
  redis_storage:

x-shared: &shared
  restart: always
  image: docker.n8n.io/n8nio/n8n
  environment:
    - DB_TYPE=postgresdb
    - DB_POSTGRESDB_HOST=postgres
    - DB_POSTGRESDB_PORT=5432
    - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
    - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
    - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
    - EXECUTIONS_MODE=queue
    - QUEUE_BULL_REDIS_HOST=redis
    - QUEUE_HEALTH_CHECK_ACTIVE=true
    - N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
  links:
    - postgres
    - redis
  volumes:
    - n8n_storage:/home/node/.n8n
  depends_on:
    redis:
      condition: service_healthy
    postgres:
      condition: service_healthy

services:
  postgres:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_NON_ROOT_USER
      - POSTGRES_NON_ROOT_PASSWORD
    volumes:
      - db_storage:/var/lib/postgresql/data
      - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
      interval: 5s
      timeout: 5s
      retries: 10

  redis:
    image: redis:6-alpine
    restart: always
    volumes:
      - redis_storage:/data
    healthcheck:
      test: ['CMD', 'redis-cli', 'ping']
      interval: 5s
      timeout: 5s
      retries: 10

  n8n:
    <<: *shared
    ports:
      - 5678:5678
    environment:    # add my config
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true # for 644 permissio file config
      - N8N_SECURE_COOKIE=false # for setup by http 

  n8n-worker:
    <<: *shared
    command: worker
    depends_on:
      - n8n

Добавляем переменные окружения:

vi .env

Добавьте параметры учетных записей:

POSTGRES_USER=your_db_user
POSTGRES_PASSWORD=your_db_password
POSTGRES_DB=your_db_name
POSTGRES_NON_ROOT_USER=your_non_root_user
POSTGRES_NON_ROOT_PASSWORD=your_non_root_password
ENCRYPTION_KEY=your_encryption_key
N8N_BASIC_AUTH_USER=your_username
N8N_BASIC_AUTH_PASSWORD=your_password

Запускаем:

mkdir -p /home/node/.n8n
cmod -R 644 /home/node

docker compose up -d
docker compose logs # читаем ошибки если есть решаем 

Далее заходим по http://IP-SERVER-OR-DOMAIN:5678/

Если не запустился читаем лог, правим ошибки, останавливаем, правим и запускаем:

docker compose up down
docker compose up -d
docker compose logs # читаем ошибки если есть решаем 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *