Руководство по n8n: что это и как установить на свой сервер
Содержание
- Платный Cloud или бесплатный Self-Hosted?
- Варианты установки и выбор базы данных (SQLite vs PostgreSQL)
- Быстрая установка n8n на VPS за 5 минут
- Доступ из интернета и вебхуки: домен, Nginx и HTTPS
- Полная установка n8n: Python, песочница и веб-поиск
- Резервная копия (бэкап)
- Как обновлять n8n до последней версии
- Итог: с чего начать и когда нужен сервер с видеокартой
- Все статьи о n8n
n8n — это конструктор для автоматизации рабочих процессов. Представьте, что вам нужно соединить между собой Telegram-бота, Google Таблицы, CRM-систему и нейросеть OpenAI, чтобы они обменивались данными без вашего участия. Именно эту задачу и решает n8n с помощью визуальных блоков (нод).
Вы просто перетаскиваете кубики на экране, соединяете их стрелочками и получаете готовый сценарий — от отправки уведомлений в чат до сложных AI-агентов, принимающих решения.
Платный Cloud или бесплатный Self-Hosted?
Если зайти на официальный сайт n8n.io, первым делом вам предложат тарифные планы от 20 евро в месяц. Из-за этого складывается ощущение, что сервис полностью платный. На самом деле у n8n есть две основные версии:
-
n8n Cloud (Платная подписка): Готовый облачный сервис от создателей. Не нужно ничего настраивать, но лимиты считаются по количеству выполнений сценариев (executions). Например, младший тариф Starter (20 € в месяц при оплате за год) включает 2 500 выполнений в месяц и до 5 одновременных запусков. При больших объемах это выходит дорого.
-
n8n Community / Self-Hosted (Бесплатная версия): Версия с открытым исходным кодом (fair-code, лицензия Sustainable Use License), которую вы можете абсолютно бесплатно установить на свой личный VPS. Здесь нет ограничений на количество рабочих процессов или выполнений — вы платите только фиксированную стоимость аренды своего сервера (обычно от $4–$6 в месяц). Часть корпоративных функций (SSO, расширенные права доступа и т.п.) доступна только по платной лицензии, но для автоматизаций и AI-агентов они не нужны.
Что можно и что нельзя по лицензии Sustainable Use License
Код n8n открыт, но это не классический open source вроде MIT, а модель fair-code. В лицензии (текст на GitHub) главное ограничение сформулировано так: n8n можно использовать и изменять только для внутренних задач своей компании, а также в некоммерческих или личных целях. Передавать n8n другим можно только бесплатно и в некоммерческих целях.
На практике это значит:
- Можно: автоматизировать процессы своей компании (CRM, заявки, отчеты, Telegram-боты, AI-агенты), делать личные проекты, менять код под себя (с пометкой о внесенных изменениях).
- Нельзя без коммерческой лицензии: продавать доступ к своему n8n другим людям, выдавать его за свой продукт (white-label) или встраивать в платный SaaS-сервис.
Отдельно лежат файлы с пометкой .ee. в имени — это корпоративные функции, они работают только с платным ключом Enterprise.
Что входит в бесплатную Community Edition
Без лицензионного ключа n8n работает в бесплатной редакции Community Edition. В ней есть почти все: все ноды и интеграции, AI-агенты, вебхуки, расписания, неограниченное число сценариев и запусков, логирование и даже режим очередей (queue mode) для масштабирования.
Нет только функций для команд и корпораций:
- проектов и совместного доступа к сценариям и учетным данным — их видят только владелец экземпляра (Owner) и автор;
- дополнительных администраторов (роль Admin) — отсюда сообщение «Upgrade to unlock the ability to create additional admin users»;
- входа через SSO (SAML, LDAP);
- глобальных переменных, внешних хранилищ секретов (External secrets) и внешнего хранилища файлов;
- окружений и контроля версий через Git;
- отправки логов во внешние системы (Log streaming) и режима нескольких основных узлов (Multi-main).
Бесплатный ключ: зарегистрированная Community Edition
Community Edition можно бесплатно «зарегистрировать» — n8n пришлет на почту лицензионный ключ. Он открывает три дополнительные функции:
- Папки (Folders) — сценарии можно разложить по папкам, что удобно, когда их становится больше десятка.
- Отладка в редакторе (Debug in editor) — данные из прошлого запуска можно скопировать в редактор и закрепить, чтобы повторить и разобрать ошибку.
- Пользовательские данные выполнения (Custom execution data) — к запускам можно добавлять свои метки и метаданные, а потом искать по ним.
Как получить ключ:

- В панели n8n нажмите на три точки внизу слева → Settings → Usage and plan.
- Нажмите Unlock, введите email и выберите Send me a free license key.
- Откройте письмо от n8n и нажмите кнопку активации. Или скопируйте ключ из письма и введите его в том же разделе через Enter activation key.
На новом экземпляре то же самое предлагают сделать прямо при создании аккаунта администратора. Ключ ничего не стоит и не меняет лицензию: роль Admin, проекты и другие корпоративные функции он не открывает, для них нужен платный тариф Business или Enterprise.
Варианты установки и выбор базы данных (SQLite vs PostgreSQL)
Развернуть n8n на своем сервере можно несколькими способами: через Node.js (npm), в Docker-контейнере или через Docker Compose. Самый изолированный и простой в обслуживании вариант — Docker Compose. Установку через npm разработчики объявили устаревшей.
Почему для старта достаточно SQLite?
В официальной документации часто советуют подключать внешнюю базу данных PostgreSQL. Она действительно нужна для продакшена с высокой нагрузкой (сотни параллельных запросов в минуту), так как умеет параллельно обрабатывать тяжелые очереди задач.
Однако для большинства проектов, тестов и работы с AI-агентами идеально подходит встроенная SQLite:
-
Нулевая настройка: Не нужно поднимать отдельный контейнер с базой данных, создавать пользователей и прописывать доступы.
-
Экономия ресурсов: SQLite не висит в памяти как отдельный сервис. Сам n8n в простое занимает около 450–500 МБ RAM, поэтому комфортный минимум — VPS с 2 GB RAM.
-
Простота бэкапа: Вся ваша база — это несколько файлов в одной папке.
Быстрая установка n8n на VPS за 5 минут
Для запуска понадобится VPS на Ubuntu или Debian: 2 GB оперативной памяти и не меньше 5 GB свободного места на диске (один только образ n8n весит около 2 GB).
Если не хотите ставить все вручную, посмотрите подборку VPS с предустановленным n8n: провайдеры отсортированы по цене, n8n там разворачивается при заказе сервера.
Инструкция проверена в ноябре 2026 года на Ubuntu 24.04, Docker 29.9 и n8n 2.46.
Шаг 1. Устанавливаем Docker
Подключитесь к серверу по SSH. Если Docker еще не установлен, поставьте его официальным скриптом:
curl -fsSL https://get.docker.com | sh
Проверьте, что Docker и плагин Compose на месте:
docker --version && docker compose version
Docker version 29.9.3, build 5457199
Docker Compose version v5.7.0
Шаг 2. Создаем рабочую папку
mkdir -p ~/n8n && cd ~/n8n
Шаг 3. Создаем файл docker-compose.yml
Выполните команду nano docker-compose.yml и вставьте следующий минимальный манифест:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- GENERIC_TIMEZONE=Europe/Kyiv
- TZ=Europe/Kyiv
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
(Сохраните файл через Ctrl+O → Enter и выйдите Ctrl+X).
Что здесь важно:
127.0.0.1:5678:5678— панель n8n доступна только с самого сервера. Это сделано намеренно: Docker публикует порты в обход фаервола (ufw), и строка"5678:5678"открыла бы вашу панель всему интернету. Как зайти в панель — в шаге 5.container_name: n8n— фиксированное имя контейнера, к нему удобно обращаться в командах.GENERIC_TIMEZONEиTZ— часовой пояс для расписаний (нода Schedule Trigger). Укажите свой в формате базы IANA, напримерEurope/KyivилиAsia/Almaty. Менять нужно обе переменные. Если n8n уже запущен, после правки файла выполнитеdocker compose up -d: Docker пересоздаст контейнер с новым часовым поясом, данные при этом сохранятся. Проверка:docker exec n8n dateпокажет время в новом поясе. Для отдельного сценария пояс можно переопределить в его настройках (Workflow settings → Timezone).N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true— n8n следит, чтобы файлconfigс ключом шифрования был доступен только ему (права600). В n8n 2.x эта проверка уже включена по умолчанию, строка оставлена для наглядности и для старых версий 1.x, где без нее n8n только выводил предупреждение в лог.restart: unless-stopped— директива автозапуска. Гарантирует, что n8n автоматически поднимется при перезагрузке VPS или в случае падения процесса. Контейнер не запустится самостоятельно только в одном случае — если вы вручную остановили его командойdocker compose stop.
Шаг 4. Запускаем n8n
docker compose up -d
Что происходит под капотом: Docker сам скачает официальный образ n8n, создаст том (Docker Volume) n8n_data с базой SQLite внутри и запустит сервис в фоновом режиме. Первый запуск занимает 20–30 секунд.
Проверка:
curl -s http://localhost:5678/healthz
Ответ {"status":"ok"} означает, что n8n работает.
Шаг 5. Открываем панель через SSH-туннель
На своем компьютере (Windows PowerShell, macOS или Linux) выполните:
ssh -L 5678:localhost:5678 root@IP_ВАШЕГО_СЕРВЕРА
Пока это окно открыто, панель n8n доступна в браузере по адресу http://localhost:5678. Вас встретит экран создания аккаунта администратора — на этом установка окончена.
Почему не http://IP_ВАШЕГО_СЕРВЕРА:5678? Современные версии n8n по умолчанию выдают cookie входа только для защищенного соединения (флаг Secure). По простому HTTP-адресу браузер ее не сохранит, и n8n покажет предупреждение о secure cookie вместо входа. Адрес localhost браузеры считают защищенным, поэтому через туннель все работает без лишних настроек.
Доступ из интернета и вебхуки: домен, Nginx и HTTPS
Туннеля достаточно, чтобы строить сценарии и запускать их по расписанию. Но если внешние сервисы должны сами обращаться к n8n (Telegram-бот, вебхуки CRM, платежные системы), нужен домен и HTTPS. Схема такая: n8n по-прежнему слушает только 127.0.0.1:5678, а наружу смотрит Nginx — он принимает HTTPS-запросы на домене и передает их в n8n.
Ниже в примерах домен n8n.example.com — замените его на свой.
Шаг 1. Направляем домен на сервер
У регистратора домена или в Cloudflare создайте для поддомена n8n запись A с IP вашего VPS (и AAAA с IPv6-адресом, если он есть).
Шаг 2. Устанавливаем Nginx
apt install -y nginx
Шаг 3. Создаем конфигурацию сайта
Выполните nano /etc/nginx/sites-available/n8n.example.com.conf и вставьте:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name n8n.example.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 3600s;
client_max_body_size 50m;
}
}
Что здесь важно:
proxy_http_version 1.1— версия протокола только между Nginx и n8n внутри сервера. По умолчанию Nginx говорит с n8n по HTTP/1.0, а WebSocket работает только начиная с HTTP/1.1. HTTP/2 для этого соединения модульproxyв Nginx не поддерживает, да и выигрыша внутри одного сервера он не дает. Браузеры посетителей при этом подключаются по HTTP/2 или HTTP/3: это настраивается отдельно, на внешней стороне (в блоке HTTPS у Nginx или в Cloudflare).UpgradeиConnection— n8n обновляет редактор в реальном времени через WebSocket. Без этих заголовков сценарии будут выполняться, но интерфейс не покажет результат.proxy_buffering offиproxy_read_timeout 3600s— долгие ответы (например, потоковая выдача AI-агента) не обрываются через 60 секунд.client_max_body_size 50m— можно загружать файлы через вебхуки (по умолчанию Nginx пропускает только 1 МБ).
Включите сайт и проверьте конфигурацию:
ln -s /etc/nginx/sites-available/n8n.example.com.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Шаг 4. Получаем сертификат HTTPS
Вариант А: домен без Cloudflare. Бесплатный сертификат Let's Encrypt выпустит Certbot. Он сам добавит в конфигурацию блок HTTPS, редирект с HTTP и будет продлевать сертификат:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d n8n.example.com --email [email protected] --agree-tos --redirect
Перед этим откройте в фаерволе порты 80 и 443: ufw allow 80,443/tcp.
Вариант Б: домен за Cloudflare (оранжевое облако). Посетителям настоящий сертификат выдает сам Cloudflare, поэтому на сервере достаточно самоподписанного:
mkdir -p /etc/ssl/n8n
openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
-subj "/CN=n8n.example.com" -addext "subjectAltName=DNS:n8n.example.com" \
-keyout /etc/ssl/n8n/n8n.key -out /etc/ssl/n8n/n8n.crt
В конфигурации замените listen 80; и listen [::]:80; на:
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/n8n/n8n.crt;
ssl_certificate_key /etc/ssl/n8n/n8n.key;
и выполните nginx -t && systemctl reload nginx.
В панели Cloudflare в разделе SSL/TLS должен стоять режим Full (при режиме Full (strict) Cloudflare не примет самоподписанный сертификат и покажет ошибку 526). Порты 80 и 443 достаточно открыть только для адресов Cloudflare:
for n in $(curl -s https://www.cloudflare.com/ips-v4) $(curl -s https://www.cloudflare.com/ips-v6); do
ufw allow proto tcp from $n to any port 80,443 comment cloudflare
done
Так сервер не будет доступен напрямую в обход Cloudflare. Чтобы n8n видел настоящие IP посетителей, а не адреса Cloudflare, добавьте в блок server строки set_real_ip_from для каждой сети Cloudflare и real_ip_header CF-Connecting-IP;.
Шаг 5. Сообщаем n8n его адрес
Добавьте в docker-compose.yml в раздел environment четыре новые строки (последние в блоке), остальные оставьте как были:
environment:
- GENERIC_TIMEZONE=Europe/Kyiv
- TZ=Europe/Kyiv
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=n8n.example.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.example.com/
- N8N_PROXY_HOPS=1
И перезапустите контейнер:
cd ~/n8n && docker compose up -d
WEBHOOK_URL— без него n8n будет выдавать внешним сервисам неправильные адреса вебхуков (http://localhost:5678/...).N8N_PROXY_HOPS=1— n8n знает, что перед ним стоит прокси, и берет IP посетителя из заголовкаX-Forwarded-For.
Порт в манифесте оставьте 127.0.0.1:5678:5678: вся внешняя связь идет через Nginx.
Проверка: откройте https://n8n.example.com — появится вход в n8n по защищенному соединению. В любой ноде Webhook адрес теперь начинается с https://n8n.example.com/webhook/....
Безопасность: панель n8n теперь видна всему интернету. Задайте администратору длинный уникальный пароль и включите двухфакторную аутентификацию в личных настройках (Settings → Personal).
Полная установка n8n: Python, песочница и веб-поиск
Установка выше — это один контейнер n8n. Ее хватает для классической автоматизации: все ноды и интеграции, вебхуки, расписания, нода AI Agent и JavaScript в ноде Code. Но часть новых возможностей n8n в ней не работает. Для них разработчики собрали официальный набор контейнеров:
| Контейнер | Что дает |
|---|---|
n8n |
сам n8n |
runners |
выполнение кода из ноды Code в отдельном контейнере: JavaScript и Python |
sandbox-api, sandbox-runner-1 |
песочница: изолированная среда, где AI-ассистент и новые Агенты n8n выполняют код и работают с файлами |
searxng |
собственный поисковик SearXNG: поиск в интернете для AI-ассистента без платных API |
sandbox-certs |
одноразовый контейнер, создает сертификаты для связи n8n с песочницей и сразу завершается |
Когда нужна полная установка
- Нужен Python в ноде Code (в минимальной установке доступен только JavaScript).
- Вы используете AI-ассистента и Агентов n8n, которые сами пишут и запускают код, ищут в интернете, разбирают файлы.
- n8n работает «в бою»: код пользователей выполняется отдельно от самого n8n, и ошибка в сценарии не уронит весь сервис.
Если вы строите обычные сценарии (Telegram-бот, таблицы, CRM, запросы к нейросетям), полная установка не обязательна — минимальной хватит.
Рекомендуемые параметры VPS
- 2 vCPU, 4 GB RAM, 20 GB диска (SSD/NVMe) — это минимум из официальной документации.
- В простое весь набор занимает около 700 МБ памяти, но песочница запускает для каждой задачи отдельный контейнер, и под нагрузкой расход растет.
- Образы занимают около 4 GB на диске.
Установка
Проще всего поставить набор официальным скриптом: он скачает compose.yml, создаст файл .env с уникальными паролями для связи контейнеров и настройки поиска. Флаг --no-start нужен, чтобы перед запуском поправить манифест:
curl -fsSL https://get.n8n.io -o get-n8n.sh
N8N_DIR=~/n8n sh get-n8n.sh --no-start
Скрипт откажется работать, если папка ~/n8n уже существует и не пуста: для перехода с минимальной установки укажите другую папку или сначала сделайте бэкап.
Затем откройте ~/n8n/compose.yml и сделайте две правки (в примере ниже они уже внесены):
- Порт n8n: замените
'5678:5678'на"127.0.0.1:5678:5678"— по той же причине, что и в минимальной установке (Docker обходит фаервол). - Добавьте
restart: unless-stoppedвсем сервисам, кромеsandbox-certs. В официальном файле этой строки нет, и после перезагрузки VPS n8n сам не поднимется.
Часовой пояс добавьте в конец файла ~/n8n/.env:
GENERIC_TIMEZONE=Europe/Kyiv
TZ=Europe/Kyiv
Итоговый compose.yml (версии n8n и песочницы, а также все пароли берутся из .env):
volumes:
n8n-data:
sandbox-tls:
services:
sandbox-certs:
image: ghcr.io/n8n-io/n8n-sandbox-service-api:${N8N_SANDBOX_VERSION}
user: '0:0'
entrypoint: ['sh', '-c']
command:
- >
bootstrap-mtls.sh --out-dir /tls --api-san sandbox-api
--control-san-prefix sandbox-runner --world-readable &&
chown -R sandbox-api:sandbox-api /tls/api && chmod -R a+rX /tls
environment:
NUM_RUNNERS: '1'
volumes:
- sandbox-tls:/tls
sandbox-api:
image: ghcr.io/n8n-io/n8n-sandbox-service-api:${N8N_SANDBOX_VERSION}
restart: unless-stopped
depends_on:
sandbox-certs:
condition: service_completed_successfully
env_file: .env
environment:
SANDBOX_API_GRPC_TLS_CERT_FILE: /tls/api/grpc-server.crt
SANDBOX_API_GRPC_TLS_KEY_FILE: /tls/api/grpc-server.key
SANDBOX_API_GRPC_TLS_CLIENT_CA_FILE: /tls/api/ca.crt
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_CA_FILE: /tls/api/ca.crt
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_CERT_FILE: /tls/api/control-grpc-api-client.crt
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_KEY_FILE: /tls/api/control-grpc-api-client.key
SANDBOX_API_RUNNER_CONTROL_GRPC_TLS_SERVER_NAME: sandbox-runner-1
volumes:
- sandbox-tls:/tls:ro
healthcheck:
test: ['CMD', 'wget', '-qO-', 'http://localhost:8080/healthz']
interval: 5s
timeout: 3s
retries: 5
start_period: 10s
sandbox-runner-1:
image: ghcr.io/n8n-io/n8n-sandbox-service-runner-dind:${N8N_SANDBOX_VERSION}
restart: unless-stopped
privileged: true
depends_on:
sandbox-api:
condition: service_healthy
env_file: .env
environment:
SANDBOX_RUNNER_API_GRPC_ADDR: sandbox-api:9090
SANDBOX_RUNNER_HTTP_BASE_URL: https://sandbox-runner-1:8080
SANDBOX_RUNNER_CONTROL_GRPC_LISTEN_ADDR: ':9091'
SANDBOX_RUNNER_CONTROL_GRPC_ADVERTISE_ADDR: sandbox-runner-1:9091
SANDBOX_RUNNER_ID: runner-1
SANDBOX_RUNNER_DOCKER_SANDBOX_IMAGE: ghcr.io/n8n-io/n8n-sandbox-service-sandbox:${N8N_SANDBOX_VERSION}
SANDBOX_RUNNER_REGISTRATION_GRPC_CA_FILE: /tls/runner/ca.crt
SANDBOX_RUNNER_REGISTRATION_GRPC_CERT_FILE: /tls/runner/grpc-client.crt
SANDBOX_RUNNER_REGISTRATION_GRPC_KEY_FILE: /tls/runner/grpc-client.key
SANDBOX_RUNNER_REGISTRATION_GRPC_SERVER_NAME: sandbox-api
SANDBOX_RUNNER_CONTROL_GRPC_TLS_CERT_FILE: /tls/runner/control-grpc-server.crt
SANDBOX_RUNNER_CONTROL_GRPC_TLS_KEY_FILE: /tls/runner/control-grpc-server.key
SANDBOX_RUNNER_CONTROL_GRPC_TLS_CLIENT_CA_FILE: /tls/runner/ca.crt
volumes:
- sandbox-tls:/tls:ro
n8n:
image: docker.io/n8nio/n8n:${N8N_VERSION}
restart: unless-stopped
depends_on:
sandbox-api:
condition: service_healthy
ports:
- "127.0.0.1:5678:5678"
env_file: .env
volumes:
- n8n-data:/home/node/.n8n
runners:
image: ghcr.io/n8n-io/runners:${N8N_VERSION}
restart: unless-stopped
depends_on:
- n8n
environment:
N8N_RUNNERS_AUTH_TOKEN: ${N8N_RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_TASK_BROKER_URI: http://n8n:5679
N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT: '15'
searxng:
image: ghcr.io/searxng/searxng:latest
restart: unless-stopped
environment:
SEARXNG_SECRET: ${SEARXNG_SECRET}
volumes:
- ./searxng-settings.yml:/etc/searxng/settings.yml:ro
Запуск — как и раньше, но первый старт дольше (скачивается около 4 GB образов, 1–3 минуты):
cd ~/n8n && docker compose up -d
Проверка: docker compose ps — пять контейнеров в статусе Up (sandbox-certs завершается сам, это нормально). Вход в панель — через SSH-туннель или домен, как описано выше. Для домена переменные N8N_HOST, N8N_PROTOCOL, WEBHOOK_URL и N8N_PROXY_HOPS добавьте в .env в виде ИМЯ=значение.
Что важно знать
- Песочница работает с повышенными правами (
privileged: true, Docker внутри Docker). Порты ее контейнеров никогда не публикуйте наружу. Если запускать такой контейнер на сервере нежелательно, вместо собственной песочницы можно подключить облачную Daytona (отдельный аккаунт). - Python в ноде Code по умолчанию не разрешает
import, даже стандартных модулей: сценарий сimport jsonзавершится ошибкой «Security violations detected». Это защита, разрешенные модули задаются в настройках раннеров (переменнаяN8N_RUNNERS_STDLIB_ALLOW). - Бэкап: том называется
n8n_n8n-data(а неn8n_n8n_data), а файл.envс паролями тоже нужно сохранять. Остановка и архивация — как в разделе ниже, только с этим именем тома. - Обновление:
N8N_DIR=~/n8n sh get-n8n.sh --upgrade. Скрипт сам поменяет версии n8n и песочницы в.env, скачает образы и перезапустит контейнеры. Простойdocker compose pullздесь версию не обновит: она закреплена в.env.
Резервная копия (бэкап)
Все ваши сценарии, учетные записи и ключи API хранятся в томе n8n_data. Бэкап нужно делать регулярно и обязательно перед каждым обновлением.
Важно копировать всю папку тома целиком, а не один файл database.sqlite:
- n8n работает с SQLite в режиме WAL: свежие изменения лежат в соседнем файле
database.sqlite-wal, и без него копия базы окажется неполной; - в файле
configхранится ключ шифрования. Без него сохраненные в n8n пароли и API-ключи не расшифровать даже из целой базы.
Шаг 1. Создаем папку для бэкапов
mkdir -p ~/n8n_backups
Шаг 2. Останавливаем n8n и архивируем том
cd ~/n8n
docker compose stop
docker run --rm -v n8n_n8n_data:/data:ro -v ~/n8n_backups:/backup alpine tar czf /backup/n8n_$(date +%Y%m%d_%H%M%S).tar.gz -C /data .
docker compose start
_Имя тома n8n_n8n_data складывается из имени папки проекта (n8n) и имени тома из манифеста (n8n_data). Точное имя покажет команда docker volume ls._
Остановка n8n занимает несколько секунд, зато копия базы гарантированно целая.
Проверка: выполните ls -lh ~/n8n_backups — появится архив вида n8n_20261108_102200.tar.gz. Храните копии не только на этом же сервере: скачайте архив к себе или отправьте в облако.
Как восстановиться из бэкапа
cd ~/n8n
docker compose down
docker run --rm -v n8n_n8n_data:/data -v ~/n8n_backups:/backup alpine sh -c "rm -rf /data/* && tar xzf /backup/n8n_20261108_102200.tar.gz -C /data"
docker compose up -d
(Подставьте имя своего архива.) После запуска войдите в n8n со своим старым логином и паролем — все сценарии и подключения будут на месте.
Как обновлять n8n до последней версии
Одно из главных преимуществ развертывания n8n через Docker Compose — это предельно простое обновление. Данные лежат в отдельном томе n8n_data, поэтому при замене контейнера они сохраняются.
Перед обновлением сделайте бэкап (см. раздел выше).
Шаг 1. Переходим в папку с проектом
cd ~/n8n
Шаг 2. Скачиваем свежий образ n8n
docker compose pull
Docker сравнит вашу текущую версию n8n с актуальной в официальном реестре и скачает новый образ.
Шаг 3. Перезапускаем контейнер
docker compose up -d
Docker Compose автоматически остановит старый контейнер и запустит новый с обновленной версией n8n.
Проверка: выполните docker compose ps — статус контейнера должен быть Up. Номер версии покажет команда docker exec n8n n8n --version.
Совет: тег latest всегда тянет самую свежую стабильную версию, включая крупные (мажорные) обновления, которые могут менять поведение нод. Если n8n у вас работает «в бою», укажите в манифесте конкретную версию (например, docker.n8n.io/n8nio/n8n:2.46.6) и повышайте ее вручную, предварительно прочитав release notes.
Старые образы после обновлений занимают место на диске, их можно удалить командой docker image prune.
Итог: с чего начать и когда нужен сервер с видеокартой
Для большинства задач хватает схемы из этой статьи: бесплатная Community Edition в Docker, база SQLite и недорогой VPS с 2 GB RAM. Сценарии и запуски не ограничены, а нейросети вроде ChatGPT, Claude или Gemini n8n подключает по API: сама модель работает на стороне провайдера, и мощный сервер для этого не нужен. Когда первые сценарии заработают, переходите к AI-агентам в n8n.
Отдельный случай — локальный ИИ на том же сервере, что и n8n. Так делают, когда данные (переписку с клиентами, документы, внутренние базы) нельзя отправлять внешним сервисам или когда запросов к модели так много, что оплата API обходится дороже аренды сервера. В n8n для этого есть ноды Ollama: языковая модель работает в соседнем Docker-контейнере, а n8n обращается к ней как к обычной ноде Chat Model. У разработчиков n8n есть готовая сборка Self-hosted AI Starter Kit: n8n, Ollama, векторная база Qdrant и PostgreSQL в одном docker-compose.yml.
Для локальной модели обычного VPS уже мало: на процессоре ответы генерируются очень медленно. Нужна видеокарта NVIDIA и пакет NVIDIA Container Toolkit, чтобы Docker видел ее. Модели на 7–8 млрд параметров в сжатом (квантованном) виде помещаются в 8 GB видеопамяти, для моделей на 30 млрд параметров и больше нужно от 24 GB. Подобрать сервер с видеокартой для n8n и локальной нейросети можно на нашей главной странице: там собраны тарифы хостеров с GPU, фильтр по модели видеокарты и цены.