TunnelHunt

Установка n8n локально через Docker Compose: запуск и данные

4 мин чтения

Запускаем n8n на компьютере через Docker Compose: постоянный том, резервная копия и восстановление, обновление контейнера и HTTPS для вебхуков.

Контейнер n8n и отдельное хранилище данных

Для локального n8n достаточно Docker Compose и постоянного тома с данными. Контейнер можно пересоздать, а workflows и credentials должны сохраниться. В этом руководстве настроим новое окружение на компьютере, сделаем резервную копию и разберём подключение HTTPS.

Если n8n уже установлен, не заменяйте его конфигурацию этим примером: сначала выясните, где хранятся данные и какая база используется. Ниже — один контейнер со стандартной SQLite, без внешнего PostgreSQL и очереди workers.

Подготовка

Установите Docker по официальной инструкции, запустите его и проверьте:

docker version
docker compose version

На Windows используйте Docker с Linux-контейнерами. Команды архивирования ниже с перенаправлением бинарных данных выполняйте в Bash, например в WSL; не копируйте их в старый Windows PowerShell. Для macOS и Linux подойдёт обычный терминал.

Создайте отдельную папку проекта:

mkdir n8n-local
cd n8n-local

Compose-файл с постоянным томом

Сохраните в compose.yaml:

name: n8n-local
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:2.35.0
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      GENERIC_TIMEZONE: Europe/Moscow
      TZ: Europe/Moscow
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

Версия закреплена для воспроизводимости примера. Перед установкой для реальных задач проверьте поддерживаемую версию и изменения в официальных релизах n8n. Не используйте два независимых окружения с одним именем проекта и одним томом.

Порт привязан к 127.0.0.1: редактор доступен с этого компьютера. Том n8n_data подключён к каталогу состояния n8n. Если вы задаёте собственный N8N_ENCRYPTION_KEY, храните его резервную копию отдельно от контейнера и не меняйте при обновлении.

Первый запуск и проверка сохранения

docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=50 n8n
curl -i http://127.0.0.1:5678/healthz

После запуска откройте http://localhost:5678, создайте владельца и тестовый workflow с понятным именем, например «Проверка сохранения». Сохраните его. Затем пересоздайте контейнер:

docker compose up -d --force-recreate n8n

Войдите снова и убедитесь, что workflow остался. Пересоздание контейнера отличается от удаления тома: не добавляйте -v к docker compose down, если хотите сохранить данные.

Резервная копия SQLite-окружения

Дождитесь завершения важных выполнений и остановите n8n. Затем создайте архив всего каталога данных через одноразовый контейнер того же сервиса:

docker compose stop n8n
docker compose run --rm --no-deps -T --entrypoint tar n8n -C /home/node/.n8n -czf - . > n8n-backup.tgz
tar -tzf n8n-backup.tgz
docker compose up -d n8n

Каждый раз используйте новое имя архива: перенаправление > перезаписывает существующий файл. Проверяйте код завершения команды и содержимое архива. Остановка исключает запись SQLite во время копирования. Архив содержит чувствительные данные окружения: храните его вне публичной папки и репозитория, вместе с копией Compose-файла и сведениями о версии.

Для проверки восстановления создайте новую пустую папку, скопируйте туда compose.yaml и архив, измените name на n8n-restore-check, а внешний порт на 127.0.0.1:5679:5678. Из этой новой папки выполните:

docker compose run --rm --no-deps -T --entrypoint tar n8n -C /home/node/.n8n -xzf - < n8n-backup.tgz

До запуска восстановленной копии отключите её автоматические workflow, чтобы не повторить реальные события:

docker compose run --rm --no-deps -T n8n unpublish:workflow --all
docker compose up -d n8n

Откройте http://localhost:5679, проверьте вход и сохранённый workflow. Не подключайте этой копии рабочий webhook. Архив для PostgreSQL требует отдельного бэкапа базы; копии .n8n для такого развёртывания недостаточно. Команды управления workflows описаны в CLI n8n.

Обновление

Сначала сделайте и проверьте резервную копию. Изучите изменения целевой версии, поменяйте тег образа в compose.yaml, затем выполните:

docker compose pull n8n
docker compose up -d n8n
docker compose logs --tail=50 n8n

Обычный restart не применяет изменённые переменные окружения и не заменяет образ. После обновления проверьте вход, тестовый workflow и используемые интеграции. При миграции базы простого возврата старого тега может быть недостаточно: восстановление должно использовать совместимые версию приложения и резервную копию данных.

HTTPS и Telegram Trigger

Локальный запуск ещё не даёт внешнему сервису адрес для вебхука. Для тестовых интеграций можно открыть HTTPS-туннель к 5678 и указать внешний URL в n8n. Полная настройка переменной URL, тестового и рабочего webhook и Telegram Trigger — в гайде n8n через HTTPS.

Создайте владельца до открытия туннеля: через него будет доступна и страница входа редактора. Пока компьютер спит или Docker остановлен, автоматизации не работают. restart: unless-stopped помогает после перезапуска Docker, но не превращает ноутбук в круглосуточный сервер.

Готовы запустить свой первый туннель?

Начните использовать TunnelHunt бесплатно уже сегодня и откройте доступ к локальному серверу всего одной командой.

Зарегистрироваться бесплатно →

По теме

n8n локально: вебхуки и Telegram Trigger через HTTPS-туннель

n8n локально: вебхуки и Telegram Trigger через HTTPS-туннель

11 сентября 2026 г.

Настраиваем публичный URL для n8n на localhost: Docker Compose, N8N_WEBHOOK_URL, тестовый и рабочий webhook, Telegram Trigger и диагностика ошибок.

Читать далее →
Docker и TunnelHunt: Как дать временный доступ к контейнеру без боли и страданий

Docker и TunnelHunt: Как дать временный доступ к контейнеру без боли и страданий

5 сентября 2025 г.

Узнайте, как с помощью одной SSH-команды безопасно предоставить временный доступ к сервису, запущенному в Docker-контейнере, будь то база данных или локальное API.

Читать далее →
Как открыть localhost в интернете: публичный HTTPS через SSH

Как открыть localhost в интернете: публичный HTTPS через SSH

11 сентября 2026 г.

Пошагово открываем локальный сайт из интернета без настройки роутера: SSH-туннель, проверка ссылки, Docker, Vite и диагностика ошибок.

Читать далее →
Три направления соединения через SSH-туннель

SSH-туннель: примеры -L, -R и -D для проброса портов

12 сентября 2026 г.

Как выбрать локальный, обратный или SOCKS-туннель SSH: команды, проверка соединения, ошибки портов и публичный HTTPS для localhost.

Читать далее →