Files
auth-portal/README.md
T
DenozordecandCursor 9b4c7b8b9d
Build and Push Auth Portal Docker Image / build-and-push (push) Failing after 1m15s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
feat(auth): добавить приложение fw для EvoFirewall
Каталог permissions fw:*, app switcher и docs; убран bgp:firewall после cutover.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 19:50:54 +07:00

77 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Auth Portal
Единый auth-портал для CFDM, VPS Tracker и EvoBGP (`auth.shnt.top`).
## Стек
- Monorepo: pnpm workspaces + turbo
- `apps/web` — Vite + React 19 + TanStack Router/Query + shadcn/ui + ReUI
- `apps/api` — Fastify 5 + JWT + SQLite (better-sqlite3 / Drizzle)
- `packages/ui``@authportal/ui` (shadcn primitives)
- `packages/shared` — Zod-контракты
- `packages/db` — схема и клиент SQLite
## Быстрый старт
```bash
pnpm install
cp .env.example .env
# ReUI PRO key уже в apps/web/.env.local (gitignored) — или скопируйте из другого проекта
pnpm --filter @authportal/api dev # :8080
pnpm --filter web dev # :5175
```
## Интеграция с VPS Tracker
См. [`docs/integrate-vps-tracker.md`](docs/integrate-vps-tracker.md) — SSO handoff (`return_to` + `#access_token`), общий `JWT_SECRET`, RBAC `vps:*`.
См. [`docs/integrate-cfdm.md`](docs/integrate-cfdm.md) — то же для Cloudflare Domain Manager (`cfdm:*`, порт Vite `5174`).
См. [`docs/integrate-evobgp.md`](docs/integrate-evobgp.md) — EvoBGP (`bgp:*`).
См. [`docs/integrate-evofirewall.md`](docs/integrate-evofirewall.md) — EvoFirewall (`fw:*`).
Корень:
```bash
pnpm dev # turbo: api + web
pnpm build
pnpm test
pnpm lint
```
## ReUI PRO
```bash
cd apps/web
# нужен REUI_LICENSE_KEY в .env.local
pnpm dlx shadcn@latest add @reui/auth-13 --yes
```
`components.json` → registry `@reui` с `Authorization: Bearer ${REUI_LICENSE_KEY}`.
## Docker / Gitea CI
- Workflow: `.gitea/workflows/docker.yml` (как CFDM)
- Secrets: `ACTIONS_PAT`, `GITEA_TOKEN`
- Образ: `git.shts.su/denozord/auth-portal`
Локально / без reverse proxy:
```bash
docker compose up -d --build
```
**Production (один Compose: Traefik + auth-portal, HTTPS Cloudflare DNS challenge):**
[`docs/deploy-traefik.md`](docs/deploy-traefik.md) · [`deploy/docker-compose.traefik.yml`](deploy/docker-compose.traefik.yml) · [`deploy/env.traefik.example`](deploy/env.traefik.example)
## Структура
```
apps/web/src/ # SPA (routes, components/reui, reui-kit)
apps/api/src/ # Fastify
packages/ui/ # shadcn CLI output
packages/shared/ # contracts
packages/db/ # drizzle schema
.gitea/workflows/ # CI/CD
```