feat: реализовать EvoFirewall V1 control plane
Build and Push EvoFirewall Docker Image / build-and-push (push) Failing after 25s
Build and Push EvoFirewall Docker Image / create-release (push) Skipped

API, UI, Linux/MikroTik agents, IP lists, политики, stats, CI и интеграция с auth-portal/EvoBGP.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-07-20 19:50:54 +07:00
co-authored by Cursor
parent d71b45d86f
commit ebadf70e2b
107 changed files with 15196 additions and 99 deletions
+19 -44
View File
@@ -1,67 +1,42 @@
# EvoFirewall
Централизованный firewall controller: Linux / MikroTik agents, blocklists, статистика.
Централизованный firewall controller: Linux / MikroTik agents, IP lists, allow/deny политики, статистика.
Интеграции (план): **auth-portal** (SSO, app id `fw`), **EvoBGP** (источник префиксов).
Интеграции: **auth-portal** (SSO, app id `fw`), **EvoBGP** (источник префиксов).
## Стек (как CFDM / VPS Tracker)
## Стек
- Monorepo: pnpm workspaces + turbo
- `apps/web` — Vite + React + TanStack Router/Query + shadcn/ui + ReUI
- `apps/api` — Fastify + Drizzle + SQLite
- `packages/ui` `@evofw/ui` (shadcn primitives)
- `packages/shared` — Zod-контракты
- `packages/db` — схема и репозитории
## Структура
```
apps/
web/ # SPA
api/ # HTTP API
packages/
ui/ # shadcn CLI output
shared/ # contracts
db/ # drizzle
docs/
deploy/
scripts/
data/ # SQLite (gitignored)
```
- `apps/web` — Vite + React + TanStack + shadcn/ui + ReUI Frame
- `apps/api` — Fastify 5 + Drizzle + SQLite
- Packages: `@evofw/ui`, `@evofw/shared`, `@evofw/db`
## Быстрый старт
```bash
pnpm install
cp .env.example .env
# ReUI PRO: apps/web/.env.local уже с ключом (из CFDM) или скопируйте:
# copy ..\cloudflare-domain-manager\apps\web\.env.local apps\web\.env.local
pnpm --filter @evofw/db build
pnpm --filter @evofw/shared build
pnpm --filter @evofw/api dev # :8080
pnpm --filter @evofw/web dev # :5177
```
Scaffold пока без Vite/Fastify — следующий шаг: init web/api по образцу CFDM.
## ReUI PRO
Skill + MCP установлены официальным инсталлером (`https://mcp.reui.io/install`):
- Skill: `.agents/skills/reui` (версия `42d70dcc3d`)
- MCP: `.mcp.json` / `.cursor/mcp.json``https://mcp.reui.io/api/mcp`
- Rules: `.cursor/rules/reui-mcp.mdc`, `reui.mdc`, `shadcn-*.mdc`, `frontend-*.mdc`
- Contract: [`docs/ui-design-contract.md`](docs/ui-design-contract.md) — surface **frame**
Linux agent:
```bash
cd apps/web
# нужен REUI_LICENSE_KEY в .env.local (уже из CFDM)
pnpm dlx shadcn@latest add @reui/frame --yes
curl -fsSL http://localhost:8080/v1/agent/install.sh | \
EVOFW_CP_URL=http://localhost:8080 \
EVOFW_SEED=dev-enroll-seed-change-me \
EVOFW_CLIENT_NAME="web-01" \
bash
```
Обновить skill/MCP:
Затем Approve в UI `/agents`.
```bash
curl -fsSL https://mcp.reui.io/install | node -
```
## Docs
Docs: https://reui.io/docs/license-setup · https://reui.io/llms.txt · https://reui.io/docs/mcp · https://reui.io/docs/agent-skills
См. [`docs/README.md`](docs/README.md).
## Git