Это старая версия документа!
Установка n8n через Docker
Инструкция по развертыванию n8n с автоматическим SSL сертификатом Let's Encrypt.
Требования
- Ubuntu 20.04/22.04/24.04 LTS
- Доменное имя, направленное на сервер
- Минимум 1 ГБ RAM
- Открытые порты 80 и 443
Шаг 1: Обновление системы
sudo apt update && sudo apt upgrade -y
Шаг 2: Установка Docker
Вариант A: Установка из репозитория Ubuntu
sudo apt install -y docker.io docker-compose-plugin sudo systemctl enable --now docker
Вариант B: Установка из официального репозитория Docker
sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") 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 newgrp docker
Шаг 3: Создание структуры папок
sudo mkdir -p /opt/n8n/{certs,vhost.d,html,n8n_data,n8n_nodes} sudo chown -R $USER:$USER /opt/n8n cd /opt/n8n
Шаг 4: Создание сети Docker
docker network create webproxy
Шаг 5: Создание файла переменных окружения
cd /opt/n8n nano .env
Содержимое файла .env:
N8N_ENCRYPTION_KEY=сгенерируйте_случайный_ключ
Генерация ключа:
openssl rand -hex 32
Шаг 6: Создание docker-compose.yml
nano docker-compose.yml
Содержимое файла docker-compose.yml:
Шаг 7: Запуск контейнеров
cd /opt/n8n docker compose up -d
Шаг 8: Проверка статуса
docker compose ps docker compose logs -f n8n
Обновление n8n
Стандартное обновление
cd /opt/n8n docker compose pull docker compose up -d
Обновление с резервным копированием
cd /opt/n8n tar -czvf n8n_backup_$(date +%Y%m%d).tar.gz n8n_data docker compose pull docker compose up -d
Очистка старых образов
docker image prune -f
Проверка версии
docker inspect n8n --format '{{.Config.Image}}' docker compose logs --tail 50 n8n
Полезные команды
| Команда | Описание |
|---|---|
docker compose ps | Статус контейнеров |
docker compose logs -f n8n | Логи в реальном времени |
docker compose logs –tail 100 n8n | Последние 100 строк логов |
docker compose restart n8n | Перезапуск контейнера |
docker compose down | Остановка и удаление контейнеров |
docker compose up -d | Запуск в фоновом режиме |
docker compose exec n8n sh | Вход в контейнер |
Резервное копирование
Создание бэкапа
cd /opt/n8n tar -czvf n8n_backup_$(date +%Y%m%d_%H%M%S).tar.gz n8n_data .env docker-compose.yml
Восстановление из бэкапа
cd /opt/n8n docker compose down tar -xzvf n8n_backup_YYYYMMDD_HHMMSS.tar.gz docker compose up -d
Устранение неполадок
Проверка логов
docker compose logs nginx-proxy docker compose logs nginx-letsencrypt docker compose logs n8n
Перезапуск всех сервисов
cd /opt/n8n docker compose down docker compose up -d
Проверка сертификатов
ls -la /opt/n8n/certs/
Проверка сети
docker network inspect webproxy
Настройка без nginx-proxy
Если у вас уже есть внешний reverse proxy (например, Nginx Proxy Manager), используйте упрощенный docker-compose.yml:
services: n8n: image: n8nio/n8n:latest env_file: - .env container_name: n8n restart: always environment: - TZ=Europe/Moscow - N8N_HOST=n8n.example.com - WEBHOOK_URL=https://n8n.example.com - N8N_PROXY_HOPS=1 - N8N_SECURE_COOKIE=false - N8N_EXPERIMENTAL_CHAT=true - N8N_ENABLE_COMMUNITY_NODES=true - N8N_ALLOW_SUPERDANGEROUS_EXECUTION=true - N8N_CUSTOM_EXTENSIONS=/home/node/custom/nodes - N8N_SMTP_HOST=mail.example.com - N8N_SMTP_PORT=465 - N8N_SMTP_USER=noreply@example.com - N8N_SMTP_PASS=your_smtp_password - N8N_SMTP_SENDER=noreply@example.com - N8N_SMTP_SECURE=true volumes: - ./n8n_data:/home/node/.n8n - ./n8n_nodes:/home/node/custom/nodes networks: - webproxy networks: webproxy: external: true