АРХ - NODEDC PLATFORM: запуск локального proxy/Authentik стенда

This commit is contained in:
Codex 2026-05-04 10:31:50 +03:00
parent 55db22b8d2
commit afa53d59c1
6 changed files with 42 additions and 2 deletions

View File

@ -14,6 +14,8 @@
127.0.0.1 dm.local.nodedc
```
На macOS изменение `/etc/hosts` требует admin password. Если агент не может выполнить `sudo`, эти строки нужно добавить вручную.
## Current local apps
Launcher сейчас запускается как Vite app из:
@ -54,6 +56,8 @@ task.local.nodedc -> Plane proxy/runtime
На этом этапе reverse proxy реализуется через Caddy, а Authentik запускается за ним без прямой публикации host ports.
Для текущей локальной машины proxy image задан как `nodedc/plane-proxy:ru`: это уже существующий Caddy-based image из Plane-стенда. На чистой машине можно заменить `PLATFORM_PROXY_IMAGE` на `caddy:2-alpine`.
Текущие приложения подключаются как внешние upstream:
```text
@ -98,9 +102,20 @@ 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: launcher.local.nodedc' http://127.0.0.1/
curl -I -H 'Host: task.local.nodedc' http://127.0.0.1/
```
Текущая локальная проверка:
```text
auth.local.nodedc -> 302 Authentik authentication flow
launcher.local.nodedc -> 200 Launcher/Vite HTML
task.local.nodedc -> 200 Plane HTML
```
Эти проверки выполнены через `curl` с `Host` header. Для проверки в браузере нужны записи в `/etc/hosts`.
## Authentik version note
Официальный compose Authentik для текущей ветки 2026.2 использует PostgreSQL, `server` и `worker`. Redis, указанный в раннем ТЗ как ожидаемый сервис, в актуальном официальном compose не используется. Если позже будет выбран старый pinned Authentik или отдельная HA-схема, Redis надо вернуть отдельной задачей.

View File

@ -5,6 +5,7 @@ TASK_DOMAIN=task.local.nodedc
# proxy
PLATFORM_HTTP_PORT=80
PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru
LOCAL_LAUNCHER_UPSTREAM=host.docker.internal:5173
LOCAL_TASK_MANAGER_UPSTREAM=host.docker.internal:8090

View File

@ -16,6 +16,8 @@
Authentik построен по актуальной официальной Docker Compose схеме 2026.2: PostgreSQL 16, server и worker. Redis для Authentik в этой версии официального compose не используется.
Reverse proxy использует `PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru`, потому что этот локальный образ уже содержит Caddy и не требует отдельного pull с Docker Hub. На чистой машине можно заменить значение на `caddy:2-alpine`.
## Expected files
```text
@ -38,6 +40,8 @@ infra/
127.0.0.1 task.local.nodedc
```
This requires admin rights on macOS.
2. Generate local secrets:
```bash
@ -59,6 +63,25 @@ curl -I -H 'Host: auth.local.nodedc' http://127.0.0.1/
Generated Authentik bootstrap credentials are stored only in `infra/.env`.
## Current local status
This stack was verified locally with `PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru`:
- `auth.local.nodedc` returns `302` to the Authentik authentication flow through Caddy;
- `launcher.local.nodedc` returns `200` from the current Vite launcher through Caddy;
- `task.local.nodedc` returns `200` from the current Plane runtime through Caddy;
- Authentik server, Authentik worker and PostgreSQL report healthy in Docker Compose.
Browser testing still requires `/etc/hosts` entries on the host machine.
## Troubleshooting
If Docker Hub pulls hang on `caddy:2-alpine`, keep `PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru` on this workstation. If the local Plane proxy image is unavailable on a clean machine, set:
```bash
PLATFORM_PROXY_IMAGE=caddy:2-alpine
```
## Current decision
Текущий Plane runtime не переносится в compose платформы до backup и отдельного шага миграции.

View File

@ -2,7 +2,7 @@ name: nodedc-platform
services:
reverse-proxy:
image: docker.io/library/caddy:2-alpine
image: ${PLATFORM_PROXY_IMAGE:-nodedc/plane-proxy:ru}
restart: unless-stopped
env_file:
- path: .env

View File

@ -12,7 +12,7 @@ http://{$AUTH_DOMAIN:auth.local.nodedc} {
http://{$LAUNCHER_DOMAIN:launcher.local.nodedc} {
reverse_proxy {$LOCAL_LAUNCHER_UPSTREAM:host.docker.internal:5173} {
header_up Host {host}
header_up Host localhost:5173
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-For {remote_host}
}

View File

@ -22,6 +22,7 @@ TASK_DOMAIN=task.local.nodedc
# proxy
PLATFORM_HTTP_PORT=80
PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru
LOCAL_LAUNCHER_UPSTREAM=host.docker.internal:5173
LOCAL_TASK_MANAGER_UPSTREAM=host.docker.internal:8090