A self-hosted web dashboard to manage GooseRelayVPN and FlowDriver client cores. Create, configure, start/stop, and monitor multiple tunnel cores from one browser tab — no terminal required.
Supported engines:
- GooseRelayVPN — SOCKS5 VPN tunneling via Google Apps Script
- FlowDriver — SOCKS5 VPN tunneling via Google Drive API (OAuth2 flow built-in)
- 🖥️ Web UI — manage all cores from a browser
▶️ Start / Stop / Restart cores with one click- 📋 Live log streaming — real-time output via SSE
- 📊 Usage statistics — per-core daily & total request counters
- 🔑 Multiple script keys per core with round-robin load balancing (GooseRelayVPN)
- 🌊 FlowDriver support — OAuth2 browser flow built-in, credentials.json upload, Google Drive API tunneling (FlowDriver)
- 🔒 Secure login — JWT session, bcrypt-style timing-safe credential check
- 📦 Offline bundles — pre-built archives with embedded Node.js (no dependencies needed)
- 🐳 Docker support — one-command deployment with Docker Compose
No Node.js, npm, or internet connection required on the target machine.
# Download the bundle for your platform from the Releases page
tar xzf ggoose-ui-vX.Y.Z-linux-x64.tar.gz
cd ggoose-ui-vX.Y.Z-linux-x64
./install-offline.sh # first-time setup (sets credentials, initialises DB)
./start.sh # start the serverOpen http://SERVER_IP:3000 in your browser.
- Download and extract the
.zipbundle from the Releases page - Double-click
install.bat(first-time setup) - Double-click
start.batto start the server
Open http://localhost:3000 in your browser.
The bundle already includes the
goose-clientbinary — no manual download needed.
Requires Docker and Docker Compose (internet access for the initial pull).
git clone https://github.com/RevocGG/GGoose-ui.git
cd GGoose-ui
cp .env.example .env
# Edit .env — set ADMIN_USERNAME, ADMIN_PASSWORD, AUTH_SECRET
docker compose up -dOpen http://localhost:3000.
To update:
docker compose pull
docker compose up -dRequires Node.js 20+ and npm.
git clone https://github.com/RevocGG/GGoose-ui.git
cd GGoose-ui
npm install
npx prisma generate
cp .env.example .env # edit credentials
node scripts/setup.js # initialise DB
npm run build
node .next/standalone/server.jsCopy .env.example to .env and set:
| Variable | Required | Description |
|---|---|---|
ADMIN_USERNAME |
✅ | Login username |
ADMIN_PASSWORD |
✅ | Login password |
AUTH_SECRET |
✅ | 64-char random hex — signs JWT sessions. Generate with openssl rand -hex 32 |
PORT |
— | HTTP port (default 3000) |
DATABASE_URL |
— | SQLite path (default file:./data/goose.db) |
CORES_DIR |
— | Directory for core binaries (default data/cores) |
- Dashboard → Cores → New Core → GooseRelayVPN
- Fill in:
- Name — display name
- Binary —
goose-clientbinary filename indata/cores/ - SOCKS port — local port (e.g.
1080) - Script keys — your Google Apps Script deployment IDs
- Tunnel key — 64-char hex AES key (must match your VPS server config)
- Click Create, then Start
FlowDriver Core 🌊 (FlowDriver)
- Dashboard → Cores → New Core → FlowDriver
- Fill in:
- Name — display name
- Binary — FlowDriver client binary filename in
data/cores/ - Listen Address — local SOCKS5 address (e.g.
127.0.0.1:1080) - credentials.json — upload your Google OAuth2 credentials file (from Google Cloud Console) or enter the absolute path
- Click Create, then Start
- On first start, an OAuth2 authentication dialog appears — complete the browser auth flow in the Logs tab
- After first auth, a
.tokenfile is saved — future starts are silent
| Platform | Offline Bundle | Docker |
|---|---|---|
| Linux x64 | ✅ | ✅ |
| Linux arm64 | ✅ | ✅ |
| macOS x64 (Intel) | ✅ | — |
| macOS arm64 (Apple Silicon) | ✅ | — |
| Windows x64 | ✅ | — |
Push a tag vX.Y.Z to trigger the release workflow:
git tag v1.0.0
git push origin v1.0.0The workflow:
- Builds the Next.js standalone bundle
- Downloads
goose-clientfor each target platform from GooseRelayVPN releases - Embeds Node.js 22 binary
- Creates platform archives and publishes a GitHub Release
GGoose-ui/
├── src/
│ ├── app/ # Next.js App Router pages & API routes
│ ├── components/ # UI components (cores, dashboard, auth)
│ └── lib/ # process-manager, db, config-writer, auth
├── scripts/
│ ├── setup.js # Idempotent DB initialiser (no Prisma CLI needed)
│ ├── install-offline.sh # First-time setup for offline bundles
│ ├── start.sh # Launcher script (Linux/macOS)
│ ├── install.bat # First-time setup (Windows)
│ └── start.bat # Launcher script (Windows)
├── data/
│ ├── cores/ # Place goose-client binary here
│ └── configs/ # Auto-generated per-core JSON configs
├── prisma/ # Prisma schema + migrations
├── Dockerfile
├── docker-compose.yml
└── .github/workflows/
└── release.yml # Build & release workflow
If you find this project useful, consider supporting its development:
| Network | Address |
|---|---|
| TON | UQBW_LoEhcYPIzZL_dzp-OMsqI5uAwv8p6dXy8wzzkPU-CQQ |
| BNB / USDT (BEP-20) | 0x951acaf8d4b61a000d3b5c697abcabf52973d0cf |
| TRX | TL4Kej6DjJmT9gQ5ghmQcvsEUHPdnNNPyj |
| SOL | 45kAfGyh13bcyYTdbNLkVfBGtMgq4WMijLgdBK9G9ugN |
- GooseRelayVPN — SOCKS5 VPN via Google Apps Script (client + server + Apps Script)
- FlowDriver — SOCKS5 VPN via Google Drive API
- MasterHttpRelayVPN — the project that inspired GooseRelayVPN
MIT
