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
Portal do servidor RF Echelon: download, doações e fórum da comunidade.
Translation pending
GamesTypeScript · CSSGitHub @tiagotvcOnlineOwner 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.
Portal responsivo do servidor RF Echelon: home, campanha de abertura, download, doações, fórum, conta, admin visual e páginas LGPD. • DESIGN_SYSTEM.md — tokens, direção visual e componentes • CONTENT.md — conteúdo e valores oficiais • BACKEND_REQUIREMENTS.md — persistência, segurança e integrações pendentes • CLAUDE.md — instruções para continuidade no Claude Code Configurações de data, taxas, rotas e pacotes ficam em app/config/site.ts.Read the full README ↗
Portal responsivo do servidor RF Echelon: home, campanha de abertura, download, doações, fórum, conta, admin visual e páginas LGPD.
DESIGN_SYSTEM.md — tokens, direção visual e componentesCONTENT.md — conteúdo e valores oficiaisBACKEND_REQUIREMENTS.md — persistência, segurança e integrações pendentesCLAUDE.md — instruções para continuidade no Claude CodeConfigurações de data, taxas, rotas e pacotes ficam em app/config/site.ts.
O frontend está visualmente completo. O fórum já tem persistência real (Postgres); cadastro/login de jogador (conta do jogo), pagamentos, uploads e solicitações LGPD ainda são protótipos. Login da equipe (admin) já é real.
Next.js (App Router) puro, hospedado na Vercel. Banco de dados: Postgres via Drizzle ORM — antes rodava em Cloudflare Workers + D1 (SQLite), migrado porque o site passou a ser hospedado na Vercel e o banco de contas do jogo vive numa VPS separada.
>=22.13.0DATABASE_URL)Ver .env.example. Resumo:
DATABASE_URL — connection string do Postgres. Sem ela, qualquer página que
toca o banco (fórum, admin) falha com um erro explícito em vez de mostrar
dado falso — ver db/index.ts.SESSION_SECRET — chave usada pra assinar o cookie de sessão da equipe.ADMIN_PASSWORD — senha de login da equipe em /admin/entrar.Não existe mais Sign-In-With-ChatGPT (dependia da plataforma OpenAI Apps/Sites, que injetava headers de identidade — não existe na Vercel). Hoje:
ADMIN_PASSWORD) em /admin/entrar,
sessão via cookie assinado (app/lib/auth.ts). Único jeito de logar hoje.BACKEND_REQUIREMENTS.md).Por enquanto, só a equipe consegue criar tópicos e responder no fórum
(db/forum.ts, createForumTopic/createForumReply) — a regra por mural
(canCreateTopics/canReply em app/config/forum.ts) volta a valer quando
contas de jogador existirem.
db/schema.ts — schema Drizzle (Postgres)db/index.ts — conexão (postgres-js), lê DATABASE_URLnpm run db:generate — gera migrations Drizzle a partir do schemadb/forum.ts tem um ensureForumSchema() que cria as tabelas e roda
migrações idempotentes automaticamente na primeira query de cada instância —
não precisa rodar migration manual pra subir do zeronpm run dev: inicia o servidor de desenvolvimento Next.jsnpm run build: build de produção (next build, com type-check completo)npm run start: roda o build de produção localmentenpm run lint: eslintnpm run db:generate: gera migrations Drizzle após mudar o schema