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
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
FC Member Board — Cafe And SHabu (Next.js + Vercel + Supabase) เว็บชุมชน Free Company ครบวงจร: • กระดานสมาชิก อัปเดตอัตโนมัติทุกวัน (Lodestone + FF Logs + FFXIV Collect) • สมาชิก login ด้วย Discord → claim ตัวละครของตัวเอง → แต่งโปรไฟล์ (bio, จ๊อบโปรด, สีประจำตัว) โชว์บนกระดาน • แอดมิน โพสต์ประกาศหน้าแรก, ซ่อนสมาชิกจากกระดาน, ปลด claim ที่ผิด • โครงหน้า กิจกรรม และ มินิเกม เตรียมไว้สำหรับเฟสถัดไป查看完整 README ↗
เว็บชุมชน Free Company ครบวงจร:
| ส่วน | เทคโนโลยี | หน้าที่ |
|---|---|---|
| หน้าเว็บ | Next.js 15 + TypeScript + Tailwind v4 | UI ทั้งหมด |
| Hosting | Vercel (ฟรี) | deploy อัตโนมัติทุกครั้งที่ push |
| Auth + Database | Supabase (ฟรี) | Discord login, โปรไฟล์, ประกาศ, สิทธิ์แอดมิน |
| Data pipeline | Python บน GitHub Actions | cron ทุกวัน 03:30 น. ไทย |
ความปลอดภัยคุมที่ฐานข้อมูลด้วย Row Level Security: สมาชิกแก้ได้เฉพาะโปรไฟล์ตัวเอง, ตั้ง is_admin เองไม่ได้ (คอลัมน์ถูกล็อกระดับ Postgres), งานแอดมินทำได้เฉพาะบัญชีที่มีสิทธิ์ — ต่อให้แกะโค้ดหน้าเว็บก็ข้ามไม่ได้
เว็บออกแบบให้ทำงานได้ตั้งแต่ยังไม่เชื่อม Supabase (กระดานขึ้นปกติ) — ตั้งค่าเสร็จเมื่อไหร่ ปุ่ม login และฟีเจอร์โปรไฟล์/แอดมินจะเปิดเอง
| # | สิ่งที่ต้องมี | ใช้ทำอะไร | ค่าใช้จ่าย |
|---|---|---|---|
| 1 | บัญชี GitHub | เก็บโค้ด + รัน pipeline | ฟรี |
| 2 | บัญชี Vercel (Continue with GitHub) | โฮสต์เว็บ | ฟรี |
| 3 | FFLogs API Client | ข้อมูล raid | ฟรี |
| 4 | บัญชี Supabase (Continue with GitHub) | login + ฐานข้อมูล | ฟรี |
| 5 | Discord Application (Developer Portal) | ปุ่ม Login Discord | ฟรี |
| 6 | เวลา ~30 นาที | ติดตั้งครั้งแรกครั้งเดียว | - |
git init && git add . && git commit -m "init"
git branch -M main
git remote add origin https://github.com/<username>/<repo>.git
git push -u origin main
FFLOGS_CLIENT_ID และ FFLOGS_CLIENT_SECRET (สมัครที่ https://www.fflogs.com/api/clients)https://<โปรเจกต์>.vercel.appsupabase/schema.sql ทั้งไฟล์ → Runhttps://<project-ref>.supabase.co/auth/v1/callback
(ดู <project-ref> ได้จาก URL โปรเจกต์ Supabase หรือหน้า Auth Provider ในข้อถัดไป ซึ่งแสดง Callback URL ให้ copy เลย)https://<โปรเจกต์>.vercel.app
→ Redirect URLs เพิ่ม: http://localhost:3000/** (ไว้เทสบนเครื่อง)Vercel → Project → Settings → Environment Variables เพิ่ม:
| Name | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | anon public key |
กด Redeploy หนึ่งครั้ง (Deployments → ⋯ → Redeploy)
บนเครื่องตัวเอง: copy .env.local.example เป็น .env.local แล้วใส่ค่าเดียวกัน
select id, discord_username from public.profiles; -- ดูชื่อตัวเอง
update public.profiles set is_admin = true where discord_username = 'ชื่อของคุณ';
รีเฟรชเว็บ → หน้า "โปรไฟล์ของฉัน" จะมีปุ่ม หน้าแอดมิน โผล่มา| ผู้เยี่ยมชม | สมาชิก (login Discord) | แอดมิน | |
|---|---|---|---|
| ดูกระดาน/ค้นหา/กรอง | ✔ | ✔ | ✔ |
| claim ตัวละคร + แต่ง bio/จ๊อบ/สี | ✔ | ✔ | |
| โพสต์/ลบประกาศหน้าแรก | ✔ | ||
| ซ่อนสมาชิกจากกระดาน + โน้ตภายใน | ✔ | ||
| ปลด claim ที่ผิดคน | ✔ |
npm install
npm run dev # http://localhost:3000
CONFIG ใน pipeline/update_members.py · Ultimate ใหม่: เพิ่มใน ULTIMATE_PATTERNS@theme ใน app/globals.csscron ใน .github/workflows/update-data.yml (UTC, ไทย = UTC+7)ฐานพร้อมแล้ว (login + สิทธิ์ + ฐานข้อมูล) เหลือเพิ่มตาราง events, signups, raffle_entries, scores
แล้วเขียนหน้า /events กับ /games ต่อได้เลย — จับรางวัลสดใช้ Supabase Realtime ให้ทุกคนเห็นผลพร้อมกัน
หน้าใหม่: / homepage (hero + ฟีด + timeline + Discord widget + สมาชิกประจำวัน + nameday วันนี้) ·
/members กระดาน + ตัวกรองขั้นสูง + กราฟภาพรวม FC + มุมมองครัว ·
/member/[id] โปรไฟล์รายคน (raid แยก tier ปัจจุบัน/เก่า, ป้ายตำแหน่ง, popoto, การ์ดแชร์ Discord) ·
/compare เทียบ 2 คน
ขั้นตอนเพิ่มจากเดิม 2 อย่าง:
supabase/migration_v2.sql ใน SQL Editor (ต่อจาก schema.sql เดิม)/admin → ส่วน "Discord ของ FC"พฤติกรรม pipeline: รายวันอัปเดต tier ปัจจุบัน + ultimates · ทุกวันอาทิตย์ (หรือกด Run พร้อมติ๊ก full_history)
กวาด savage ทุก tier ย้อนหลัง · ข่าว official กรองเฉพาะแพตช์/อีเวนต์ (แก้คีย์เวิร์ดได้ที่ news_keywords
ใน pipeline/update_members.py) · nameday เก็บวันละ ~80 คนวนจนครบ