Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Tournaments platform
Translation pending
GamesGo · JavaScriptGitHub @OkaforDavisOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Competitive mobile football (EA SPORTS FC Mobile, eFootball, Dream League Soccer) with real-money 1v1 challenges and tournaments, AI-verified results and automatic payouts. 18+, Nigeria and Ghana.Read the full README ↗Competitive mobile football (EA SPORTS FC Mobile, eFootball, Dream League Soccer) with real-money 1v1 challenges and tournaments, AI-verified results and automatic payouts. 18+, Nigeria and Ghana.
backend/ Go (Fiber) server — API, WebSocket, automation, OCR, serves the PWA
db/ PostgreSQL connection + versioned migrations
middleware/ Firebase auth, CORS, rate limits
routes/ HTTP handlers (me, wallet, lobby, matches, tournaments, admin, …)
services/ Business logic (matches, OCR, tournaments, wallet, Paystack, notifications)
ws/ WebSocket hub
static/ PWA: index.html, css/, js/ (ES modules, no build step), sw.js, legal/
brand/ Source logo files
render.yaml Render blueprint
Needs Go 1.26+ and PostgreSQL.
cd backend
cp .env.example .env # or create .env with the variables below
go run .
Without FIREBASE_PROJECT_ID and outside production, the server accepts test logins:
open http://localhost:3000/?dev=alice to sign in as a test user called alice
(set [email protected] and use ?dev=admin for the admin).
Tests: go test ./...
| Variable | Purpose |
|---|---|
DATABASE_URL | PostgreSQL connection string |
GO_ENV | production on Render (disables test logins) |
FIREBASE_PROJECT_ID, FIREBASE_SERVICE_ACCOUNT_JSON | Sign-in verification |
GEMINI_API_KEY, GEMINI_MODEL | Screenshot reading. GEMINI_MODEL is a comma-separated list tried in order (busy models are retried, then the next is used); gemini-3.8-flash,gemini-3.5-flash are always included as fallbacks |
ANTHROPIC_API_KEY, CLAUDE_MODEL | Backup screenshot reader (Claude, default claude-opus-5) used when Gemini is busy or down |
OCR_PROVIDERS | Order of screenshot readers, default gemini,claude (use claude,gemini to prefer Claude) |
PAYSTACK_PUBLIC_KEY, PAYSTACK_SECRET_KEY (+ _GH) | Deposits and withdrawals |
VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY | Web Push notifications |
ADMIN_EMAIL | Verified email that gets admin access |
APP_URL | Public URL (Paystack return link) |
LIVEKIT_API_KEY, LIVEKIT_API_SECRET, LIVEKIT_URL | Live streams |
FORCE_UPDATE | true forces every installed app to update before continuing |
Every deploy stamps the git commit into index.html and sw.js. Installed apps detect
the new service worker (and poll /api/version) and show "New version available — Update".
Set FORCE_UPDATE=true for a release that must be installed before anyone can keep playing.
Paystack webhook URL: https://<your-app>/api/payments/webhook