n8n + PostgreSQL в Docker Compose
Кейс о n8n с отдельной базой PostgreSQL в Docker Compose на домашнем сервере за туннелем. Конфиги, установка с нуля, резервная копия с проверкой восстановления и исправление двух найденных проблем.
- Формат
- PDF RU + EN
- Файлы
- Конфиги и команды
- Стек
- n8n 2.25.6 · PostgreSQL 16
- Сервер
- Debian 13, Docker 29.5.3, Compose v5.1.4
Что внутри
- Схема стека и разбор ключевых решений: закреплённая версия образа, порт n8n только на localhost, ожидание готовности базы, явный ключ шифрования учётных данных, секреты в
.env. - Установка стека с нуля: полный
docker-compose.yml, образец.env, запуск и проверка. - Резервная копия базы перед изменениями и проверка, что дамп восстанавливается, во временном контейнере.
- Две проблемы, найденные в рабочей конфигурации: образ на теге
latestи порт n8n, открытый для всей локальной сети. Как они исправлены и что показали проверки до и после. - Что значат строки в логе n8n, которые выглядят как ошибки.
- Чек-лист повторения.
В тексте отмечено, что проверено на работающем сервере, а что нет.
Что в архиве
- PDF на русском и английском;
docker-compose.yml;env.example;commands.txt– все команды из текста по разделам.
Для кого
- Для тех, кто держит n8n на своём сервере в Docker или собирается это сделать.
- Нужно заранее: сервер с Docker и Docker Compose, пользователь в группе
docker,python3; для доступа из интернета – работающий туннель и домен.
Что не входит
- Установка Debian и Docker.
- Настройка туннеля Cloudflare и файрвола.
- Ежедневный бэкап всего сервера.
- Готовые сценарии n8n.
- Обновление версии n8n описано, но не проверялось на сервере и помечено в тексте как непроверенное.
Состав кейса
Схема и решения
Схема стека и шесть ключевых решений: закреплённая версия образа, порт только на localhost, ожидание готовности базы, явный ключ шифрования, политика перезапуска и секреты в .env.
Установка с нуля
Каталог стека, полный docker-compose.yml, .env с правами 600, запуск и проверка ответа n8n изнутри контейнера.
Резервная копия
Дамп базы через pg_dump с set -o pipefail, проверкой архива gzip -t и правами 600.
Проверка восстановления
Восстановление дампа во временный контейнер PostgreSQL и сверка числа таблиц с рабочей базой.
Закрепление версии и порта
Переход с тега latest на 2.25.6 и публикация порта n8n только на 127.0.0.1 на работающем стеке.
Проверка до и после
Шесть команд, которыми снято состояние стека до и после изменения, и таблица с результатами.
Чек-лист
Пункты для установки, проверки доступа и подготовки к любому изменению стека.