Real-time, mode-based chat for SmashKarts, built as:
play mode)server/ Rust backend (/ws, /health, /metrics, /log)extension/ Chrome extension sourceload-test/ Node.js load test scriptsscripts/package-extension.mjs production extension packaging scriptplans/ planning and rollout docshttps://smashkarts.io/*/wsgoogle_access_token or play)mode)cd /Users/prakharojha/Desktop/me/personal/smash-karts-chat/server
GOOGLE_CLIENT_ID=local-dev-placeholder BIND_ADDR=127.0.0.1:8080 cargo run
Notes:
GOOGLE_CLIENT_ID is required at startup.provider=play) still works even if Google auth is not configured.chrome://extensions/Users/prakharojha/Desktop/me/personal/smash-karts-chat/extensionCurrent source defaults:
WS_BASE=ws://localhost:8080/wsLOG_URL=http://localhost:8080/logcurl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/metrics
Service configuration:
/server/health/server/**Environment variables:
GOOGLE_CLIENT_ID=<your chrome oauth client id>BIND_ADDR=0.0.0.0:8080LOG_PATH=game-traffic.log (or mounted volume path)RUST_LOG=info (optional)Once deployed, verify:
curl https://<your-domain>/health
curl https://<your-domain>/metrics
Use the packager to inject production URL + OAuth client ID into a clean release output:
cd /Users/prakharojha/Desktop/me/personal/smash-karts-chat
node scripts/package-extension.mjs \
--server-url https://<your-domain> \
--oauth-client-id <your-google-oauth-client-id>
Generated artifacts:
dist/smash-karts-chat-extension.zip (upload to Chrome Web Store)dist/extension-release/ (rendered extension files)wss:// domainscripts/package-extension.mjsprivacy-policy.md)cd /Users/prakharojha/Desktop/me/personal/smash-karts-chat/load-test
npm install
npm run light
npm run medium
GET /health liveness checkGET /metrics runtime countersGET /ws?mode=<mode>&provider=<...> websocket endpointPOST /log game traffic logging endpointGOOGLE_CLIENT_ID is set in RailwayBIND_ADDR=0.0.0.0:8080/extension (source). For production-configured testing, load /dist/extension-release.privacy-policy.mdidentity, storage, required host permissionsAdd your preferred license in this repository (e.g., MIT) before broad distribution.