55 lines
2.7 KiB
Markdown
55 lines
2.7 KiB
Markdown
|
|
# n8n на n8n.clientright.ru
|
|||
|
|
|
|||
|
|
Развёртывание n8n в Docker с PostgreSQL, SSL (Let's Encrypt) и выборочным прокси для части доменов (OpenAI, Anthropic и др.).
|
|||
|
|
|
|||
|
|
## Состав
|
|||
|
|
|
|||
|
|
- **n8n** (n8nio/n8n:2.7.5) — за Nginx по HTTPS
|
|||
|
|
- **PostgreSQL 16** — хранилище n8n
|
|||
|
|
- **Squid** — локальный прокси: часть доменов идёт через внешний прокси, остальное — напрямую
|
|||
|
|
|
|||
|
|
## Требования
|
|||
|
|
|
|||
|
|
- Docker и Docker Compose
|
|||
|
|
- Nginx как reverse proxy с SSL для `n8n.clientright.ru`
|
|||
|
|
- Файл `.env` (см. ниже)
|
|||
|
|
|
|||
|
|
## Быстрый старт
|
|||
|
|
|
|||
|
|
1. Скопировать `.env.example` в `.env` и заполнить значения (пароли, внешний прокси при необходимости).
|
|||
|
|
2. Запуск:
|
|||
|
|
```bash
|
|||
|
|
docker compose up -d
|
|||
|
|
```
|
|||
|
|
3. Открыть https://n8n.clientright.ru и создать первого пользователя.
|
|||
|
|
|
|||
|
|
## Переменные окружения (.env)
|
|||
|
|
|
|||
|
|
Файл `.env` не коммитится в репозиторий. Пример структуры — в `.env.example`.
|
|||
|
|
|
|||
|
|
- **POSTGRES_*** — пользователь, пароль и БД для PostgreSQL.
|
|||
|
|
- **EXTERNAL_PROXY_*** — внешний HTTP-прокси (host, port, при необходимости user/pass). Через него идут только домены из `proxy/squid.conf` (по умолчанию openai.com, anthropic.com, googleapis.com).
|
|||
|
|
- Остальной трафик n8n выходит в интернет напрямую.
|
|||
|
|
|
|||
|
|
## Прокси
|
|||
|
|
|
|||
|
|
- n8n использует только локальный Squid (`http://proxy:3128`).
|
|||
|
|
- В `proxy/squid.conf` заданы домены (acl `to_parent_proxy`), которые маршрутизируются во внешний прокси; для них включён `never_direct allow to_parent_proxy`.
|
|||
|
|
- Добавить домен: дописать в `proxy/squid.conf` строку вида `acl to_parent_proxy dstdomain .example.com`, пересобрать и перезапустить proxy:
|
|||
|
|
`docker compose build proxy && docker compose up -d proxy`.
|
|||
|
|
|
|||
|
|
## Обновление n8n
|
|||
|
|
|
|||
|
|
Изменить тег образа в `docker-compose.yml` (например, `n8nio/n8n:2.7.6`), затем:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker compose pull n8n
|
|||
|
|
docker compose up -d n8n
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Файлы
|
|||
|
|
|
|||
|
|
- `docker-compose.yml` — сервисы n8n, postgres, proxy
|
|||
|
|
- `proxy/` — образ и конфиг Squid (Dockerfile, squid.conf, entrypoint.sh)
|
|||
|
|
- `n8n.clientright.ru.conf` — пример конфига Nginx (реальный конфиг на сервере в `/etc/nginx/conf.d/`)
|