АРХ - NODEDC PLATFORM: локальный Authentik и reverse proxy
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user