🚀 Установка n8n на Ubuntu Server 24.04 (базовая инструкция)

Простая и надёжная установка n8n с помощью Docker и Nginx на свежей Ubuntu Server без дополнительных сервисов.

📦 Что потребуется

  • Сервер, например арендованный VPS, с Ubuntu Server 24.04
  • Установленный домен (например, yourdomain.com) с A-записью на IP сервера. Подойдут и dyndns сервисы, которые часто дают пару/тройку первых записей бесплатно
  • Доступ к серверу с правами root через SSH (только на начальном этапе)

Шаг 0. Обновление системы

Хорошая практика начинать настройку любой системы с ее обновления.

Предполагается, что с этого моменты вы уже подключились к своему серверу через терминал по протоколу SSH под root аккаунтом.

sudo apt update && sudo apt upgrade -y

Шаг 1. Создание пользователя

Сейчас вы авторизованы на сервере под root учеткой. Это так называемый супер-пользователь, который имеет неограниченную власть над сервером. Если мы запустим n8n под этим пользователем, то ее гипотетический взлом приведет к тому, что злоумышленник получит доступ пользователя, под правами которого она запущена. Создадим для этих целей отдельного пользователя с ограниченными правами.

adduser n8nuser usermod -aG sudo n8nuser

Теперь можем переключиться на этого пользователя и выполнять команды от его имени

su - n8nuser

Шаг 2. Установка Docker и Docker Compose

# Установим необходимые пакеты в систему sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release # Docker GPG ключ sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # Добавим репозиторий Docker echo \ "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.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 -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # Даем доступ пользователю к docker sudo usermod -aG docker $USER

Важно: Теперь необходимо выйти из пользователя и зайди заново, чтобы группы обновились.

Выходим:

exit

Заходим обратно:

su - n8nuser

Шаг 3. Настройка docker-compose

Создаем дирикторию под проект:

mkdir ~/n8n cd ~/n8n

Создаем .env файл с настройками:

nano .env

И таким содержимым:

# Домен сервера DOMAIN=yourdomain.com # N8N N8N_BASIC_AUTH_ACTIVE=false N8N_PORT=5678 N8N_PROTOCOL=https N8N_HOST=${DOMAIN} N8N_EDITOR_BASE_URL=https://${DOMAIN} WEBHOOK_URL=https://${DOMAIN}/

Создаем файл docker-compose.yml:

nano docker-compose.yml

С таким содержимым:

version: "3.8" services: n8n: image: n8nio/n8n restart: unless-stopped ports: - "5678:5678" env_file: - .env environment: - N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE} - N8N_HOST=${N8N_HOST} - N8N_PORT=${N8N_PORT} - N8N_PROTOCOL=${N8N_PROTOCOL} - N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL} - WEBHOOK_URL=${WEBHOOK_URL} volumes: - n8n_data:/home/node/.n8n volumes: n8n_data:

Шаг 4. Настройка Nginx + SSL (через Let’s Encrypt)

Установка nginx и certbot:

sudo apt install nginx certbot python3-certbot-nginx ufw -y

Разрешим трафик на порты 22, 80 и 443:

sudo ufw allow 'OpenSSH' sudo ufw allow 'Nginx Full' sudo ufw enable

Создаём конфиг nginx:

sudo nano /etc/nginx/sites-available/n8n

С таким содержимым:

server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:5678; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

Активируем сайт:

sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx

Получим сертификат:

sudo certbot --nginx -d yourdomain.com

Проверим автоматическое обновление:

sudo systemctl list-timers | grep certbot

Шаг 5. Запуск n8n

cd ~/n8n docker compose up -d

Ура! Теперь n8n доступен по адресу: https://yourdomain.com

Шаг 6. Обновление системы n8n

Если со временем вам потребуется обновить систему то это можно сделать так:

cd ~/n8n docker pull n8nio/n8n docker compose up -d

Остались вопросы? Пишите в комментах.

А чтобы не потеряться - заходите ко мне в телеграмм канал:

Удачи! :)

4
13 комментариев