From aeeb57b89da8918715050b20430a1526853140be Mon Sep 17 00:00:00 2001 From: sagit Date: Sun, 8 Feb 2026 11:49:15 +0000 Subject: [PATCH] chore: rebrand to FLVX and fix docker multi-arch build --- AGENTS.md | 26 ++++++++++-------- README.md | 4 ++- doc/index.md | 6 ++-- doc/install.md | 2 +- go-backend/AGENTS.md | 47 ++++++++++++++++++++++++++++++++ go-backend/Dockerfile | 4 ++- mkdocs.yml | 4 +-- vite-frontend/AGENTS.md | 2 +- vite-frontend/index.html | 8 +++--- vite-frontend/src/config/site.ts | 4 +-- 10 files changed, 82 insertions(+), 25 deletions(-) create mode 100644 go-backend/AGENTS.md diff --git a/AGENTS.md b/AGENTS.md index 8537fcc..c949413 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,17 +5,15 @@ **Branch:** beta ## OVERVIEW -Flux Panel is a traffic forwarding management system built on a forked GOST v3 stack. It ships as Dockerized Spring Boot (admin API) + Vite/React UI + Go forwarding agent, with optional mobile WebView wrappers. +FLVX (formerly Flux Panel) is a traffic forwarding management system built on a forked GOST v3 stack. It ships as a Go-based admin API (SQLite) + Vite/React UI + Go forwarding agent, with optional mobile WebView wrappers. ## STRUCTURE ``` ./ ├── go-gost/ # Go forwarding agent (forked gost + local x/) │ └── x/ # Local fork of github.com/go-gost/x (replace => ./x) -├── springboot-backend/ # Java/Spring Boot admin API (SQLite/MyBatis) +├── go-backend/ # Go Admin API (SQLite, net/http) ├── vite-frontend/ # React/Vite dashboard (HeroUI + Tailwind) -├── android-app/ # Android WebView wrapper (optional) -├── ios-app/ # iOS WebView wrapper (optional) ├── docker-compose-v4.yml # Panel deploy (IPv4-only bridge) ├── docker-compose-v6.yml # Panel deploy (IPv6-enabled bridge) ├── panel_install.sh # Panel installer/upgrader (downloads compose) @@ -30,13 +28,19 @@ Flux Panel is a traffic forwarding management system built on a forked GOST v3 s | **Deploy (IPv6)** | `docker-compose-v6.yml` | Same as v4 + IPv6-enabled bridge | | **Panel install** | `panel_install.sh` | Picks v4/v6, generates `JWT_SECRET`, downloads compose | | **Node install** | `install.sh` | Installs `/etc/flux_agent/flux_agent` + writes `config.json`/`gost.json` + systemd `flux_agent.service` | -| **Admin API entry** | `springboot-backend/src/main/java/com/admin/AdminApplication.java` | Spring Boot app | -| **Admin API routes** | `springboot-backend/src/main/java/com/admin/controller/` | Mostly `/api/v1/*` controllers | -| **Admin auth** | `springboot-backend/src/main/java/com/admin/common/interceptor/JwtInterceptor.java` | Checks `Authorization` header | -| **Web UI routing** | `vite-frontend/src/App.tsx` | React Router v6 + ProtectedRoute/H5 layouts | -| **Web UI API client** | `vite-frontend/src/api/network.ts` | Axios `baseURL` + `Authorization` header | -| **Go agent entry** | `go-gost/main.go` | Reads panel `config.json` + starts gost services | -| **Go x fork** | `go-gost/x/` | Handlers/listeners/dialers + management API | +| **Admin API** | `go-backend/` | Go Admin API (SQLite) | +| **Web UI** | `vite-frontend/` | React/Vite dashboard (HeroUI + Tailwind) | +| **Go Agent** | `go-gost/` | Forwarding agent (forked gost + local x/) | +| **Go Core** | `go-gost/x/` | Handlers/listeners/dialers + management API | + +## CODE MAP +| Symbol | Type | Location | Role | +|--------|------|----------|------| +| `flux-panel` | Project | `.` | Root directory | +| `main` | Func | `go-backend/cmd/paneld/main.go` | Backend Entry | +| `App` | Component | `vite-frontend/src/App.tsx` | Frontend Entry | +| `main` | Func | `go-gost/main.go` | Agent Entry | + ## CONVENTIONS - `Authorization` header carries the raw JWT token (no `Bearer` prefix) between `vite-frontend/` and `springboot-backend/`. diff --git a/README.md b/README.md index 403adda..d09cb84 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# flux-panel转发面板 哆啦A梦转发面板 +# FLVX + +> 📞 **联系我们**: [Telegram群组](https://t.me/flvxpanel) 本项目基于 [go-gost/gost](https://github.com/go-gost/gost) 和 [go-gost/x](https://github.com/go-gost/x) 两个开源库,实现了转发面板。 --- diff --git a/doc/index.md b/doc/index.md index 997ae5c..2672494 100644 --- a/doc/index.md +++ b/doc/index.md @@ -1,6 +1,8 @@ -# Flux Panel 官方文档 +# FLVX 官方文档 -**Flux Panel (哆啦A梦转发面板)** 是一个基于 [go-gost/gost](https://github.com/go-gost/gost) 和 [go-gost/x](https://github.com/go-gost/x) 开发的高性能流量转发管理系统。 +**FLVX** 是一个基于 [go-gost/gost](https://github.com/go-gost/gost) 和 [go-gost/x](https://github.com/go-gost/x) 开发的高性能流量转发管理系统。 + +> 📞 **联系我们**: [Telegram群组](https://t.me/flvxpanel) ## 核心特性 diff --git a/doc/install.md b/doc/install.md index aeb2d35..c76fbde 100644 --- a/doc/install.md +++ b/doc/install.md @@ -1,6 +1,6 @@ # 安装部署指南 -本文档介绍如何部署 Flux Panel 面板端及节点端。 +本文档介绍如何部署 FLVX 面板端及节点端。 ## 一、面板端部署 diff --git a/go-backend/AGENTS.md b/go-backend/AGENTS.md new file mode 100644 index 0000000..204c8e9 --- /dev/null +++ b/go-backend/AGENTS.md @@ -0,0 +1,47 @@ +# GO BACKEND KNOWLEDGE BASE + +## OVERVIEW +Go-based Admin API for FLVX (formerly Flux Panel). Replaces the legacy Spring Boot backend. +**Stack:** Go 1.23, net/http (std lib), SQLite (modernc.org/sqlite). + +## STRUCTURE +``` +go-backend/ +├── cmd/paneld/main.go # Entry point; starts HTTP server + WebSocket +├── internal/ +│ ├── http/ # HTTP layer +│ │ ├── router.go # Routes (NewServeMux) + Middleware chain +│ │ ├── handler/ # API Handlers (User, Tunnel, Node, etc.) +│ │ ├── middleware/ # JWT, CORS, Logging, Recover +│ │ └── response/ # JSON response helpers +│ ├── store/sqlite/ # Data Access Layer (Repository pattern) +│ │ ├── repository.go # SQL queries & Struct definitions +│ │ └── sql/ # Embedded schema.sql & data.sql +│ └── auth/ # Auth logic +├── tests/ # Integration/Contract tests +├── Dockerfile # Multi-stage build (alpine) +└── Makefile # Build commands +``` + +## WHERE TO LOOK +| Task | Location | Notes | +|------|----------|-------| +| **API Routes** | `go-backend/internal/http/router.go` | Registers handlers to `http.ServeMux` | +| **DB Schema** | `go-backend/internal/store/sqlite/sql/schema.sql` | Embedded in binary | +| **SQL Queries** | `go-backend/internal/store/sqlite/repository.go` | Raw SQL, no ORM | +| **Auth Middleware** | `go-backend/internal/http/middleware/jwt.go` | Extracts `Authorization` header | +| **WebSocket** | `go-backend/internal/ws/` | Real-time updates (traffic, status) | + +## CONVENTIONS +- **No ORM**: Uses raw SQL with `database/sql` and `modernc.org/sqlite`. +- **Standard Lib**: Uses `net/http` for routing (Go 1.22+ patterns). +- **Auth**: Expects raw JWT in `Authorization` header (no `Bearer` prefix). +- **Config**: Loaded from environment variables (see `cmd/paneld/main.go`). + +## COMMANDS +```bash +cd go-backend +go run ./cmd/paneld +go test ./... +make build +``` diff --git a/go-backend/Dockerfile b/go-backend/Dockerfile index fcc41d4..92c8db4 100644 --- a/go-backend/Dockerfile +++ b/go-backend/Dockerfile @@ -5,7 +5,9 @@ COPY go.mod ./ RUN go mod download COPY . . -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/paneld ./cmd/paneld +ARG TARGETOS +ARG TARGETARCH +RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} ${TARGETARCH:+GOARCH=${TARGETARCH}} go build -o /out/paneld ./cmd/paneld FROM debian:bookworm-slim WORKDIR /app diff --git a/mkdocs.yml b/mkdocs.yml index bcfb716..f058de8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,6 +1,6 @@ -site_name: Flux Panel 文档 +site_name: FLVX 文档 site_url: https://sagit-chu.github.io/flux-panel/ -site_description: Flux Panel 哆啦A梦转发面板官方文档 +site_description: FLVX官方文档 site_author: Sagit-chu theme: diff --git a/vite-frontend/AGENTS.md b/vite-frontend/AGENTS.md index 2b62f41..2ebe205 100644 --- a/vite-frontend/AGENTS.md +++ b/vite-frontend/AGENTS.md @@ -3,7 +3,7 @@ **Generated:** Mon Feb 02 2026 ## OVERVIEW -Web management console for Flux Panel. +Web management console for FLVX (formerly Flux Panel). **Stack:** React 18, Vite 5, TypeScript, TailwindCSS 4, HeroUI. ## STRUCTURE diff --git a/vite-frontend/index.html b/vite-frontend/index.html index 7c3bc59..0c45f44 100644 --- a/vite-frontend/index.html +++ b/vite-frontend/index.html @@ -4,7 +4,7 @@ - flux-panel + FLVX