Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Установка n8n через Docker ====== Инструкция по развертыванию n8n в Docker с папкой данных в /opt/n8n. ===== Требования ===== * Ubuntu 20.04/22.04/24.04 LTS * Минимум 1 ГБ RAM * Настроенный reverse proxy (Nginx Proxy Manager или аналог) ===== Шаг 1: Обновление системы ===== <code bash> sudo apt update && sudo apt upgrade -y </code> ===== Шаг 2: Установка Docker ===== ==== Вариант A: Установка из репозитория Ubuntu ==== <code bash> sudo apt install -y docker.io docker-compose-plugin sudo systemctl enable --now docker </code> ==== Вариант B: Установка из официального репозитория Docker ==== <code bash> 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 </code> ==== Добавление пользователя в группу docker ==== <code bash> sudo usermod -aG docker $USER newgrp docker </code> ===== Шаг 3: Создание структуры папок ===== <code bash> sudo mkdir -p /opt/n8n/{n8n_data,n8n_nodes} sudo chown -R $USER:$USER /opt/n8n cd /opt/n8n </code> ===== Шаг 4: Создание сети Docker ===== <code bash> docker network create webproxy </code> ===== Шаг 5: Создание файла переменных окружения ===== <code bash> cd /opt/n8n nano .env </code> Содержимое файла **.env**: <code> N8N_ENCRYPTION_KEY=сгенерируйте_случайный_ключ </code> Генерация ключа: <code bash> openssl rand -hex 32 </code> ===== Шаг 6: Создание docker-compose.yml ===== <code bash> nano docker-compose.yml </code> Содержимое файла **docker-compose.yml**: <code yaml> 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_ALLOW_CODE_ENV_VARS=true - N8N_EXPERIMENTAL_CHAT=true - N8N_ENABLE_COMMUNITY_NODES=true - N8N_ALLOW_SUPERDANGEROUS_EXECUTION=true - N8N_ALLOW_DANGEROUS_NODES=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 </code> ===== Шаг 7: Запуск контейнера ===== <code bash> cd /opt/n8n docker compose up -d </code> ===== Шаг 8: Проверка статуса ===== <code bash> docker compose ps docker compose logs -f n8n </code> ====== N8N_ENCRYPTION_KEY ====== ===== Назначение ===== **N8N_ENCRYPTION_KEY** — ключ шифрования для защиты конфиденциальных данных в базе n8n: * Credentials (API ключи, пароли, токены доступа) * OAuth токены * Другие секретные данные в workflows **Важно:** Если ключ потерян или изменён — все сохранённые credentials станут нечитаемыми и их придётся создавать заново. ===== Поведение n8n ===== ^ Ситуация ^ Поведение ^ | Ключ не задан | n8n автоматически сгенерирует случайный ключ и сохранит в файл config | | Ключ задан в .env | Используется указанный ключ | | Ключ изменён | Все ранее сохранённые credentials перестанут работать | | Миграция на другой сервер | Необходимо использовать тот же ключ | ===== Как посмотреть текущий ключ ===== ==== Способ 1: Из файла config на хосте ==== <code bash> cat /opt/n8n/n8n_data/config </code> ==== Способ 2: Изнутри контейнера ==== <code bash> docker compose exec n8n cat /home/node/.n8n/config </code> ==== Способ 3: Через grep ==== <code bash> grep -i encryptionkey /opt/n8n/n8n_data/config </code> ===== Рекомендации ===== **Новая установка n8n:** * Сгенерируйте ключ заранее: ''openssl rand -hex 32'' * Добавьте ключ в файл .env * Сохраните ключ в надёжном месте (менеджер паролей, vault) **Существующая установка n8n:** * Не добавляйте новый ключ в .env * Используйте ключ, который n8n уже сгенерировал автоматически * Если нужно перенести — скопируйте ключ из файла config **Миграция на другой сервер:** * Скопируйте папку n8n_data целиком * Убедитесь, что N8N_ENCRYPTION_KEY совпадает с оригиналом * Проверьте работу credentials после миграции ====== Обновление n8n ====== ===== Стандартное обновление ===== <code bash> cd /opt/n8n docker compose pull docker compose up -d </code> ===== Обновление с резервным копированием ===== <code bash> cd /opt/n8n tar -czvf n8n_backup_$(date +%Y%m%d).tar.gz n8n_data .env docker-compose.yml docker compose pull docker compose up -d </code> ===== Очистка старых образов ===== <code bash> docker image prune -f </code> ===== Проверка версии ===== <code bash> docker inspect n8n --format '{{.Config.Image}}' docker compose logs --tail 50 n8n </code> ====== Полезные команды ====== ^ Команда ^ Описание ^ | ''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'' | Вход в контейнер | ====== Резервное копирование ====== ===== Создание бэкапа ===== <code bash> cd /opt/n8n tar -czvf n8n_backup_$(date +%Y%m%d_%H%M%S).tar.gz n8n_data .env docker-compose.yml </code> ===== Восстановление из бэкапа ===== <code bash> cd /opt/n8n docker compose down tar -xzvf n8n_backup_YYYYMMDD_HHMMSS.tar.gz docker compose up -d </code> ====== Устранение неполадок ====== ===== Проверка логов ===== <code bash> docker compose logs n8n </code> ===== Перезапуск сервиса ===== <code bash> cd /opt/n8n docker compose down docker compose up -d </code> ===== Проверка сети ===== <code bash> docker network inspect webproxy </code> ====== Переменные окружения ====== ^ Переменная ^ Описание ^ | ''N8N_ENCRYPTION_KEY'' | Ключ шифрования credentials (обязательно сохранить!) | | ''N8N_HOST'' | Доменное имя n8n | | ''WEBHOOK_URL'' | URL для вебхуков | | ''N8N_PROXY_HOPS'' | Количество прокси перед n8n | | ''N8N_SECURE_COOKIE'' | Использовать secure cookies | | ''N8N_ALLOW_CODE_ENV_VARS'' | Доступ к ENV из Code node | | ''N8N_ALLOW_DANGEROUS_NODES'' | Разрешить ExecuteCommand и LocalFileTrigger | | ''N8N_ENABLE_COMMUNITY_NODES'' | Разрешить community nodes | | ''N8N_CUSTOM_EXTENSIONS'' | Путь к кастомным нодам | ====== Ссылки ====== * [[https://docs.n8n.io/|Официальная документация n8n]] * [[https://hub.docker.com/r/n8nio/n8n|Docker Hub n8n]] * [[https://community.n8n.io/|Форум сообщества n8n]] vm/n8n/01-install_vps.txt Последнее изменение: 2025/12/09 22:00 — admin