Underground 2 Revived
Chrome과 Firefox에서 Need for Speed Underground 2를 WebGPU로 두고 팬 프로젝트입니다
GeoFS 비행 시뮬레이터용 실시간 항공기 추적, 비행 기록·경로 저장·항공 날씨·공항 차트 등 제공
Real-time aircraft tracking for GeoFS flight simulator. Track flights, record routes, access aviation weather, airport charts, and more.
게임TypeScript · JavaScriptGitHub @mansoorbarri온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A radar for GeoFS
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A modern, real-time flight radar for the GeoFS flight simulator. RadarThing tracks live traffic, records flight history, overlays weather and airport data, and gives pilots and controllers a cleaner operating picture than the original GeoFS radar.
Tampermonkey installs are persistent. Console installs use the same hosted loader, but they need to be run again after a full GeoFS page reload.
Core tracking is free. RadarThing PRO unlocks more aviation data and analytics.
| Free | PRO |
|---|---|
| Live aircraft tracking | Everything in Free |
| Search, filters, multi-select, and follow mode | Full NOTAM access with decoded text |
| Flight recording and replay | AIRMET and SIGMET overlays |
| Remote autopilot commands | Global airport charts and procedures |
| Basic flight stats | Full flight history and advanced analytics |
| Precipitation overlay | Radar Mode and chart-focused workflows |
| Live ATC indicators and audio | Shareable flight cards |
| Aircraft image uploads | Subscription management through Stripe |
Editable userscript source files live in:
userscript.jsseabus.jsuserscript-src/radarthing-runtime.jsuserscript-src/config.jsonscripts/build-userscript.mjsGenerated userscript files are built into public/userscript/ and radarthing.user.js. Do not hand-edit or commit those generated artifacts. Rebuild them from source instead:
pnpm run build:userscript
To test unpublished userscript changes in GeoFS, run pnpm run build:userscript:dev and install the generated radarthing.dev.user.js in Tampermonkey. This standalone build uses the current branch code and sends ACARS requests to http://localhost:3000; run pnpm dev for the local website and API. Disable the regular RadarThing userscript while testing to avoid loading both copies. The local app needs its Convex functions configured for ACARS publishing.
The public install flow is:
/userscript redirects Tampermonkey users to /userscript/radarthing.user.js./loader./userscript/latest.json.ACARS entries can be published from the GeoFS panel after saving an active flight, provided the GeoFS ID is linked to a RadarThing account. They appear on RadarThing as soon as the pilot publishes or removes them. A local word filter checks text before publication; edit src/lib/acars-moderation.ts to update its blocked words. Viewer reports and blocked submissions are reviewed by RT ID at /admin/acars-moderation.
Aircraft SVG icons in public/icons/aircraft/adsb-radar/ are by ADS-B Radar for macOS: https://adsb-radar.com, App Store listing.
App: Next.js 15, React 19, TypeScript, Tailwind CSS, shadcn-style UI components
Data: Convex for users, flight history, charts, aircraft images, virtual airlines, challenges, and moderation data
Realtime: SSE traffic stream served by the companion ../radar-sse service
Mapping: Leaflet with custom aircraft markers, weather overlays, chart overlays, and map layer presets
Auth and billing: Clerk, Stripe, UploadThing, Resend, and PostHog
Install dependencies:
pnpm install
If pnpm is not installed yet, enable it through Corepack first:
corepack enable
Run checks:
pnpm lint
pnpm typecheck
pnpm run check
Format code:
pnpm run format:write
Supporting services:
pnpm run cf # Cloudflare tunnel
pnpm run stripe # Stripe webhook listener
Convex development:
pnpm run convex:dev
After changing files in convex/, run Convex locally and deploy the Convex changes with the project deploy process.
Production Convex backups are exported by the Convex Backup GitHub Actions workflow and uploaded to UploadThing.
UploadThing free apps do not allow private files, so backups are encrypted locally before upload and stored as .zip.enc files. Treat BACKUP_ENCRYPTION_KEY like a production database password: keep it in a password manager. If this key is lost, existing encrypted backups cannot be restored.
Backup filenames are target-aware and human-readable, for example:
radarthing-prod-db-only-2026-05-07_08-00-00Z.zip.enc
radarthing-prod-db-and-files-2026-05-07_08-00-00Z.zip.enc
Required GitHub Actions repository secrets:
CONVEX_DEPLOY_KEY
UPLOADTHING_TOKEN
BACKUP_ENCRYPTION_KEY
Generate the encryption key with:
openssl rand -base64 48
Trigger a manual backup from GitHub:
The workflow runs daily at 08:00 UTC and prunes encrypted UploadThing backups older than 30 days.
Run the backup locally:
pnpm run backup:convex -- --label prod --retention-days 30
Sync production data into the default Convex dev deployment for local testing:
pnpm run sync:convex:prod-to-dev
The sync script exports a backup of the current dev deployment first, then
replaces the default dev deployment with production data via
convex import --replace-all. It refuses to run if CONVEX_DEPLOY_KEY is set.
Include Convex file storage:
pnpm run backup:convex -- --label prod --include-file-storage --retention-days 30
Decrypt a downloaded backup:
BACKUP_ENCRYPTION_KEY="<same key used for backups>" pnpm run backup:convex -- \
--decrypt ./radarthing-prod-db-only-2026-05-07_08-00-00Z.zip.enc \
--output ./radarthing-prod-db-only-2026-05-07_08-00-00Z.zip
Restore with Convex after decrypting, preferably into a non-production deployment first:
pnpm exec convex import ./radarthing-prod-db-only-2026-05-07_08-00-00Z.zip
Environment variables are validated in src/env.js using T3 Env. Server-side variables include Clerk, Stripe, UploadThing, and Resend keys. Client-side variables must use the NEXT_PUBLIC_ prefix. Add new variables to .env.example when introducing them.
Found a bug or have a suggestion? Open an issue on GitHub or join the RadarThing Discord from the homepage.
Guide copy lives in content/guides/*.md as plain Markdown. Edit those files to update the public /guides/[slug] pages; JSX is not needed for article content. The server renders Markdown with react-markdown (raw HTML is not enabled).
To add a guide, create a Markdown file with one H1 title and add its slug, title, and description to src/lib/guides.ts. That registry drives navigation, static routes, metadata, and sitemap entries. Use root-relative links for site pages. Check instructions against the current UI and subscription limits before publishing.