АРХ - NODEDC PLATFORM: запуск локального proxy/Authentik стенда
This commit is contained in:
parent
55db22b8d2
commit
afa53d59c1
|
|
@ -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 надо вернуть отдельной задачей.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 и отдельного шага миграции.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue