|

Docker Шпаргалка: N8N + Caddy – описывает настройку N8N с Caddy в качестве обратного прокси с HTTPS. Оптимизирована для Windows и продакшен-использования.

Docker Шпаргалка: N8N + Caddy

Эта шпаргалка описывает настройку N8N с Caddy в качестве обратного прокси с HTTPS. Оптимизирована для Windows и продакшен-использования.

🛠️ Установка и настройка N8N

1. Создаем папку для данных

mkdir C:\docker-data-dir\n8n-data
Заметка: Убедитесь, что папка доступна для записи пользователем node (в контейнере). Для Windows используйте пути в формате /c/ в командах Docker.

2. Создаем файл окружения

Создайте файл C:\docker-data-dir\n8n-data\.env:

N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=your_secure_password
N8N_HOST=n8n.yourdomain.com
N8N_PROTOCOL=https
Важно: Замените your_secure_password на сложный пароль и n8n.yourdomain.com на ваш домен.

3. Создаем Docker-сеть

docker network create n8n-network

4. Запуск контейнера N8N

docker run -d  --name=n8n --network=n8n-network --user=node --restart=unless-stopped -p 5678:5678 -v c:\docker-data-dir\n8n-data:/home/node/.n8n  --env-file c:\docker-data-dir\n8n-data\.env  n8nio/n8n:1.62.4

Параметры:

  • --network=n8n-network: Подключает контейнер к общей сети.
  • --user=node: Запуск от имени пользователя node для безопасности.
  • -v: Монтирует папку для хранения данных N8N.
  • --env-file: Использует файл окружения для безопасной передачи переменных.
  • --restart=unless-stopped: Автоматический перезапуск при сбоях.
  • :1.62.4: Фиксированная версия образа для стабильности.

🌐 Настройка Caddy (обратный прокси с HTTPS)

1. Создаем папку для конфигурации

mkdir C:\docker-data-dir\caddy

2. Создаем Caddyfile

echo 'n8n.yourdomain.com {
    reverse_proxy n8n:5678 {
        header_up Host {host}
        header_up X-Real-IP {remote}
        header_up X-Forwarded-For {remote}
        header_up X-Forwarded-Proto {scheme}
    }
}' > C:\docker-data-dir\caddy\Caddyfile
Заметка: Для Windows можно использовать PowerShell:
echo 'n8n.yourdomain.com { reverse_proxy n8n:5678 { header_up Host {host} header_up X-Real-IP {remote} header_up X-Forwarded-For {remote} header_up X-Forwarded-Proto {scheme} } }' | Out-File -FilePath C:\docker-data-dir\caddy\Caddyfile -Encoding UTF8

3. Запуск Caddy




docker run -d --name=caddy  --network=n8n-network  --restart=unless-stopped  -p 80:80 -p 443:443  -v c:\docker-data-dir\caddy\Caddyfile:/etc/caddy/Caddyfile  -v caddy_data:/data  caddy:2.8


Параметры:

  • --network=n8n-network: Связывает Caddy с N8N.
  • -v caddy_data:/data: Именованный том для хранения сертификатов HTTPS.
  • :2.8: Фиксированная версия Caddy.

🔧 Полезные команды

Общие команды

docker ps -a                    # Список всех контейнеров
docker logs <container>         # Просмотр логов контейнера
docker restart <container>      # Перезапуск контейнера
docker volume ls                # Список томов

Для N8N

docker exec -it n8n sh          # Вход в контейнер (bash может быть недоступен)
docker logs n8n                 # Просмотр логов N8N

Для Caddy

docker exec caddy caddy reload  # Перезагрузка конфигурации
docker volume inspect caddy_data  # Информация о томе сертификатов
docker logs caddy               # Просмотр логов Caddy

⚠️ Важные заметки

  • Замените n8n.yourdomain.com на ваш домен. Для локального тестирования используйте N8N_HOST=localhost и http://localhost в Caddyfile.
  • Для Windows используйте пути /c/ в Docker (например, /c/docker-data-dir).
  • Откройте порты 80/443 в брандмауэре и настройте DNS-запись (A или CNAME) на публичный IP сервера.
  • Для продакшена используйте сложные пароли и ограничьте доступ по IP (например, через брандмауэр).
  • Логи N8N хранятся в /c/docker-data-dir/n8n-data.
  • Docker Desktop на Windows требует включённого WSL2 для корректной работы с путями.

🛠️ Устранение проблем

Проверка доступности N8N

curl -v http://localhost:5678    # Проверка локального доступа
docker exec caddy curl http://n8n:5678  # Проверка из Caddy

Проверка HTTPS

curl -v https://n8n.yourdomain.com  # Проверка внешнего доступа

Проверка сертификатов Caddy

docker exec caddy ls /data/caddy/certificates

Проверка статуса контейнеров

docker ps -a --filter "name=n8n|caddy"

Ошибки прав доступа

Если N8N не может записывать в /c/docker-data-dir/n8n-data:

docker run --rm -v /c/docker-data-dir/n8n-data:/data busybox chown -R 1000:1000 /data

📋 Что включено

  • Полная настройка N8N с аутентификацией и HTTPS.
  • Конфигурация Caddy с передачей заголовков.
  • Безопасное использование .env файла.
  • Поддержка Windows с WSL2.
  • Команды для диагностики и управления.
  • Рекомендации для продакшена.

Similar Posts

Leave a Reply