Inspector
Traffic observability web UI for GOST tunnel/proxy nodes. Consumes records published by GOST nodes via Redis Pub/Sub and stores them in MongoDB for querying and live streaming.
Quick start
# Build
go build
# Run with config
./inspector -C inspector.yaml
# Open http://localhost:18000
Configuration
addr: :18000
db:
mongo:
uri: mongodb://localhost:27017
db: gost
timeout: 10s
debug: false
redis:
addr: localhost:6379
log:
level: info # debug, info, warn, error
format: json # json or text
Config is loaded from -C <path>, ./inspector.yaml, or /etc/inspector.yaml.
API
| Method |
Path |
Description |
| GET |
/liveness |
Health check |
| GET |
/api/records/query |
Query historical records (optional client_id, start, end, before, after) |
| WebSocket |
/api/records/tail |
Stream live records for a client_id |
Architecture
- Go backend — Gin HTTP server serving both API and embedded SPA
- React + TypeScript + Tailwind frontend — separate views for HTTP, WebSocket, TLS, and DNS traffic
- MongoDB — persistent record storage
- Redis Pub/Sub — live record streaming
The web UI is embedded into the Go binary via embed.FS — a single static binary with no external assets.