АРХ - NODEDC PLATFORM: локальный Authentik и reverse proxy

This commit is contained in:
Codex
2026-05-04 10:17:04 +03:00
parent 0f89c4d126
commit 55db22b8d2
9 changed files with 327 additions and 13 deletions
+40 -1
View File
@@ -52,6 +52,17 @@ task.local.nodedc -> Plane proxy/runtime
Все внешние запросы идут через reverse proxy.
На этом этапе reverse proxy реализуется через Caddy, а Authentik запускается за ним без прямой публикации host ports.
Текущие приложения подключаются как внешние upstream:
```text
launcher.local.nodedc -> host.docker.internal:5173
task.local.nodedc -> host.docker.internal:8090
```
Это сохраняет Launcher и Plane в их текущих репозиториях и runtime-папках.
## Environment
Базовые переменные должны жить в:
@@ -66,11 +77,39 @@ platform/infra/.env
platform/infra/.env.example
```
Для генерации локальных secrets:
```bash
cd /Users/dcconstructions/Downloads/mnt/NODEDC/platform
./infra/scripts/init-dev-env.sh
```
Скрипт создает `platform/infra/.env`, выставляет права `600` и не перезаписывает существующий файл.
## Start commands
```bash
cd /Users/dcconstructions/Downloads/mnt/NODEDC/platform
docker compose --env-file infra/.env -f infra/docker-compose.dev.yml up -d
```
Проверка:
```bash
docker compose --env-file infra/.env -f infra/docker-compose.dev.yml ps
curl -I -H 'Host: auth.local.nodedc' http://127.0.0.1/
curl -I -H 'Host: task.local.nodedc' http://127.0.0.1/
```
## Authentik version note
Официальный compose Authentik для текущей ветки 2026.2 использует PostgreSQL, `server` и `worker`. Redis, указанный в раннем ТЗ как ожидаемый сервис, в актуальном официальном compose не используется. Если позже будет выбран старый pinned Authentik или отдельная HA-схема, Redis надо вернуть отдельной задачей.
## Implementation order
1. Согласовать локальные domain/port bindings.
2. Добавить reverse proxy config.
3. Поднять Authentik server, worker, Postgres и Redis.
3. Поднять Authentik server, worker и Postgres.
4. Прокинуть Authentik за proxy с корректными headers.
5. Подключить текущий Launcher как внешний сервис или через compose service.
6. Подключить текущий Plane runtime как внешний service target.
+4 -3
View File
@@ -2,13 +2,13 @@
## Network
- [ ] Наружу опубликованы только reverse proxy ports.
- [x] Local dev compose публикует только reverse proxy port.
- [ ] Postgres не опубликован наружу в staging/production.
- [ ] Redis не опубликован наружу в staging/production.
- [ ] MinIO/storage не опубликован наружу в staging/production.
- [ ] Внутренние API не доступны напрямую извне.
- [ ] Authentik получает корректные `X-Forwarded-Proto`, `X-Forwarded-For`, `Host`.
- [ ] WebSocket headers настроены для Authentik/Plane/live.
- [x] Authentik получает `X-Forwarded-Proto`, `X-Forwarded-For`, `Host` через Caddy.
- [x] Caddy reverse proxy сохраняет HTTP/1.1/WebSocket upgrade behavior для upstream.
## Authentik
@@ -17,6 +17,7 @@
- [ ] Для каждого приложения задана отдельная access policy.
- [ ] Группы app access заведены отдельно от app-local ролей.
- [ ] MFA/enrollment policy вынесены в отдельный этап.
- [x] Authentik local compose не публикует server/worker/Postgres ports напрямую.
## Launcher