# Nodbot n8n production kit

Практический комплект для развёртывания self-hosted n8n на VPS или выделенном сервере.

Состав:

- `docker-compose.yml` — n8n main + worker + PostgreSQL + Redis + Caddy reverse proxy.
- `.env.example` — переменные окружения, которые нужно заполнить перед запуском.
- `Caddyfile` — HTTPS reverse proxy для домена n8n.
- `scripts/bootstrap.sh` — создаёт `.env` из примера и генерирует секреты.
- `scripts/check-config.sh` — проверяет, что placeholders заменены.
- `scripts/backup.sh` — бэкап PostgreSQL, `.env` и volume n8n.
- `scripts/restore-postgres.sh` — восстановление PostgreSQL из дампа.
- `scripts/update.sh` — безопасная последовательность обновления контейнеров.
- `scripts/healthcheck.sh` — базовая проверка доступности и контейнеров.

## Быстрый старт

```bash
cp .env.example .env
bash scripts/bootstrap.sh
nano .env
bash scripts/check-config.sh
docker compose pull
docker compose up -d
docker compose logs -f n8n
```

После запуска откройте `https://YOUR_N8N_DOMAIN` и создайте первый аккаунт.

## Что обязательно поменять

- `N8N_HOST` — домен n8n без `https://`.
- `N8N_ENCRYPTION_KEY` — постоянный ключ шифрования credentials.
- `POSTGRES_PASSWORD` — длинный пароль.
- `N8N_BASIC_AUTH_USER` и `N8N_BASIC_AUTH_PASSWORD`, если хотите включить дополнительный базовый доступ перед UI.
- `GENERIC_TIMEZONE` — например, `Europe/Moscow` или `Europe/Amsterdam`.

## Важные правила

1. Не меняйте `N8N_ENCRYPTION_KEY` после запуска: credentials могут перестать расшифровываться.
2. Не публикуйте `.env` и backups в web-root.
3. Перед обновлением запускайте `scripts/backup.sh`.
4. Для внешних webhook обязательно проверьте `WEBHOOK_URL`.
5. Для высокой нагрузки используйте queue mode и отдельный worker.
