Monorepo for Rust server WebRCON management:
apps/web: Next.js 16 (React 19) + shadcn (Base UI)apps/gateway: Rustaxumgateway for RCON sessions + log streaming
- Bun (
bun --version) - Rust toolchain (
cargo --version)
# from repo root
bun install
cp apps/web/.env.example apps/web/.env
cp apps/gateway/.env.example apps/gateway/.env
# keep these two values aligned across files:
# - GATEWAY_INTERNAL_TOKEN
# - GATEWAY_PUBLIC_WS_URL (web) / GATEWAY_PUBLIC_WS_BASE (gateway)
bun --cwd apps/web run db:generate
bun --cwd apps/web run db:migrate
bun --cwd apps/web run db:seed# parallel startup (default)
bun run dev
# sequential startup (gateway healthy first, then web)
bun run dev:seqEndpoints:
- Web: http://localhost:3000
- Gateway health: http://localhost:4000/health
bun run dev:web # only Next.js app
bun run dev:gateway # only Rust gateway
bun run build # web build + gateway release build
bun run check # web lint + gateway cargo check- Keep real secrets only in local
.envfiles (already gitignored) - Commit
.env.examplefiles only - Commit
apps/web/bun.lockfor reproducible Bun installs - Run
bun run checkbefore pushing
This project follows Facepunch WebRCON convention:
ws(s)://<host>:<port>/<rcon_password>