mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-30 08:16:37 +08:00
4bdfa50b0c
- Update root AGENTS.md to commit 21008cc / tag 2.1.5-rc15
- Add CI workflows info (ci-build.yml, docker-build.yml, deploy-docs.yml)
- Add Repository Layer and Contract Tests to WHERE TO LOOK
- Add websocket_reporter to CODE MAP
- Add Go version conventions (1.24/1.23/1.22)
- Add PostgreSQL migration support note
- Update go-backend AGENTS.md with PostgreSQL support and contract tests
- Update go-gost AGENTS.md with CI build conventions
- Update vite-frontend AGENTS.md with component counts
- Update go-gost/x AGENTS.md with file counts and registry reference
- Update handler AGENTS.md with LOC estimates
45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# GO-GOST SERVICE KNOWLEDGE BASE
|
|
|
|
**Generated:** Thu Feb 26 2026
|
|
|
|
## OVERVIEW
|
|
Forwarding agent built on GOST v3 with a local fork of `github.com/go-gost/x` under `x/`.
|
|
**Stack:** Go 1.23, github.com/go-gost/core v0.3.1, local `go-gost/x` module.
|
|
|
|
## STRUCTURE
|
|
```
|
|
go-gost/
|
|
├── main.go # Entry; reads panel config.json; starts svc.Run(program)
|
|
├── config.go # Panel config.json loader (addr/secret + ports)
|
|
├── program.go # GOST runtime: parse config, run/reload services
|
|
├── x/ # Local fork of github.com/go-gost/x (has its own go.mod)
|
|
└── go.mod # replace github.com/go-gost/x => ./x
|
|
```
|
|
|
|
## WHERE TO LOOK
|
|
| Task | Location | Notes |
|
|
|------|----------|-------|
|
|
| **Panel integration config** | `go-gost/config.go` | Expects `config.json` in cwd by default |
|
|
| **Service lifecycle/reload** | `go-gost/program.go` | Parses config; handles SIGHUP reload |
|
|
| **WebSocket reporting** | `go-gost/main.go` | Starts reporter + sets HTTP report URL |
|
|
| **Protocol behaviors** | `go-gost/x/` | Handlers/listeners/dialers live here |
|
|
| **Build** | `go-gost/Makefile` | Cross-compile targets for amd64/arm64 |
|
|
|
|
## CONVENTIONS
|
|
- Two configs exist: panel integration uses `config.json`; forwarding services use GOST config (defaults to `gost.{json,yaml}` via viper search paths).
|
|
- `go-gost/x/` is the primary extension surface; avoid editing vendored deps.
|
|
- Agent communicates with panel via WebSocket (real-time commands) + HTTP (batch traffic reports).
|
|
- All panel communication uses AES encryption with node `secret` as PSK.
|
|
- CI builds with `CGO_ENABLED=0` for static binaries, then compresses with UPX.
|
|
|
|
## ANTI-PATTERNS
|
|
- **DO NOT EDIT** generated protobuf in `x/internal/util/grpc/proto/`.
|
|
|
|
## COMMANDS
|
|
```bash
|
|
cd go-gost
|
|
go run .
|
|
go test ./...
|
|
go build .
|
|
```
|