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
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.
- Команды для диагностики и управления.
- Рекомендации для продакшена.