АРХ - NODEDC PLATFORM: запуск локального proxy/Authentik стенда
This commit is contained in:
parent
55db22b8d2
commit
afa53d59c1
|
|
@ -14,6 +14,8 @@
|
||||||
127.0.0.1 dm.local.nodedc
|
127.0.0.1 dm.local.nodedc
|
||||||
```
|
```
|
||||||
|
|
||||||
|
На macOS изменение `/etc/hosts` требует admin password. Если агент не может выполнить `sudo`, эти строки нужно добавить вручную.
|
||||||
|
|
||||||
## Current local apps
|
## Current local apps
|
||||||
|
|
||||||
Launcher сейчас запускается как Vite app из:
|
Launcher сейчас запускается как Vite app из:
|
||||||
|
|
@ -54,6 +56,8 @@ task.local.nodedc -> Plane proxy/runtime
|
||||||
|
|
||||||
На этом этапе reverse proxy реализуется через Caddy, а Authentik запускается за ним без прямой публикации host ports.
|
На этом этапе reverse proxy реализуется через Caddy, а Authentik запускается за ним без прямой публикации host ports.
|
||||||
|
|
||||||
|
Для текущей локальной машины proxy image задан как `nodedc/plane-proxy:ru`: это уже существующий Caddy-based image из Plane-стенда. На чистой машине можно заменить `PLATFORM_PROXY_IMAGE` на `caddy:2-alpine`.
|
||||||
|
|
||||||
Текущие приложения подключаются как внешние upstream:
|
Текущие приложения подключаются как внешние upstream:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
@ -98,9 +102,20 @@ docker compose --env-file infra/.env -f infra/docker-compose.dev.yml up -d
|
||||||
```bash
|
```bash
|
||||||
docker compose --env-file infra/.env -f infra/docker-compose.dev.yml ps
|
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: 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/
|
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
|
## Authentik version note
|
||||||
|
|
||||||
Официальный compose Authentik для текущей ветки 2026.2 использует PostgreSQL, `server` и `worker`. Redis, указанный в раннем ТЗ как ожидаемый сервис, в актуальном официальном compose не используется. Если позже будет выбран старый pinned Authentik или отдельная HA-схема, Redis надо вернуть отдельной задачей.
|
Официальный compose Authentik для текущей ветки 2026.2 использует PostgreSQL, `server` и `worker`. Redis, указанный в раннем ТЗ как ожидаемый сервис, в актуальном официальном compose не используется. Если позже будет выбран старый pinned Authentik или отдельная HA-схема, Redis надо вернуть отдельной задачей.
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ TASK_DOMAIN=task.local.nodedc
|
||||||
|
|
||||||
# proxy
|
# proxy
|
||||||
PLATFORM_HTTP_PORT=80
|
PLATFORM_HTTP_PORT=80
|
||||||
|
PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru
|
||||||
LOCAL_LAUNCHER_UPSTREAM=host.docker.internal:5173
|
LOCAL_LAUNCHER_UPSTREAM=host.docker.internal:5173
|
||||||
LOCAL_TASK_MANAGER_UPSTREAM=host.docker.internal:8090
|
LOCAL_TASK_MANAGER_UPSTREAM=host.docker.internal:8090
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
Authentik построен по актуальной официальной Docker Compose схеме 2026.2: PostgreSQL 16, server и worker. Redis для Authentik в этой версии официального compose не используется.
|
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
|
## Expected files
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
@ -38,6 +40,8 @@ infra/
|
||||||
127.0.0.1 task.local.nodedc
|
127.0.0.1 task.local.nodedc
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This requires admin rights on macOS.
|
||||||
|
|
||||||
2. Generate local secrets:
|
2. Generate local secrets:
|
||||||
|
|
||||||
```bash
|
```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`.
|
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
|
## Current decision
|
||||||
|
|
||||||
Текущий Plane runtime не переносится в compose платформы до backup и отдельного шага миграции.
|
Текущий Plane runtime не переносится в compose платформы до backup и отдельного шага миграции.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ name: nodedc-platform
|
||||||
|
|
||||||
services:
|
services:
|
||||||
reverse-proxy:
|
reverse-proxy:
|
||||||
image: docker.io/library/caddy:2-alpine
|
image: ${PLATFORM_PROXY_IMAGE:-nodedc/plane-proxy:ru}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- path: .env
|
- path: .env
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ http://{$AUTH_DOMAIN:auth.local.nodedc} {
|
||||||
|
|
||||||
http://{$LAUNCHER_DOMAIN:launcher.local.nodedc} {
|
http://{$LAUNCHER_DOMAIN:launcher.local.nodedc} {
|
||||||
reverse_proxy {$LOCAL_LAUNCHER_UPSTREAM:host.docker.internal:5173} {
|
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-Proto {scheme}
|
||||||
header_up X-Forwarded-For {remote_host}
|
header_up X-Forwarded-For {remote_host}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ TASK_DOMAIN=task.local.nodedc
|
||||||
|
|
||||||
# proxy
|
# proxy
|
||||||
PLATFORM_HTTP_PORT=80
|
PLATFORM_HTTP_PORT=80
|
||||||
|
PLATFORM_PROXY_IMAGE=nodedc/plane-proxy:ru
|
||||||
LOCAL_LAUNCHER_UPSTREAM=host.docker.internal:5173
|
LOCAL_LAUNCHER_UPSTREAM=host.docker.internal:5173
|
||||||
LOCAL_TASK_MANAGER_UPSTREAM=host.docker.internal:8090
|
LOCAL_TASK_MANAGER_UPSTREAM=host.docker.internal:8090
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue