โอเพ่นซอร์สทางเลือกของ GitHub อย่างง่ายบน GitHub (แดกดันใช่ไหม) มันมีจุดมุ่งหมายคือการใช้งานได้อย่างสมบูรณ์ด้วยคุณสมบัติหลักบางอย่างของการทำงานของ GitHub
ดู #84 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติที่รองรับ
คาดหวังสิ่งที่จะทำลาย
git push และ git remote ก่อนอื่นคุณต้องโคลนที่เก็บ
git clone https://github.com/Fredkiss3/gh-next.gitเริ่มอินสแตนซ์ Docker Compose เพื่อเริ่มอินสแตนซ์ DB + REDIS:
docker-compose up -d --remove-orphansติดตั้งการอ้างอิง:
pnpm install เปลี่ยนชื่อ .env.example เป็น .env.local และเปลี่ยนไฟล์เป็นความต้องการของคุณ
และเปิดตัวโครงการ:
pnpm run devแอพจะแสดงที่ http: // localhost: 3000
เปิดซอร์สโค้ดและเริ่มโยก! -
ดูไฟล์และไดเรกทอรีระดับบนสุดที่คุณจะเห็นในโครงการนี้อย่างรวดเร็ว
.
├── src/
│ ├── app
│ ├── actions
│ ├── components
│ ├── models
│ └── lib/
│ ├── client
│ ├── server
│ └── shared
├── biome.json
├── pnpm-lock.yaml
└── tsconfig.json
src/app/ : โฟลเดอร์นี้มีเส้นทางและหน้าทั้งหมดของแอปของเรา
src/actions : โฟลเดอร์นี้มีตรรกะทั้งหมดของแอพของเรา
src/components : โฟลเดอร์นี้มีส่วนประกอบทั้งหมดของแอปของเรา
src/models : โฟลเดอร์นี้มีรุ่น DB ทั้งหมดของแอพของเรา
src/lib/ : โฟลเดอร์นี้มี utils & helpers ที่ใช้ตลอดทั้งแอปของเรา:
client : โฟลเดอร์นี้มียูทิลิตี้ทั้งหมดที่เป็นลูกค้าเท่านั้นซึ่งมักใช้โดยส่วนประกอบของลูกค้า มันมีตะขอเป็นหลัก
server : โฟลเดอร์นี้มียูทิลิตี้ทั้งหมดที่เป็นเซิร์ฟเวอร์เท่านั้นสำหรับใช้ภายในส่วนประกอบเซิร์ฟเวอร์และการกระทำของเซิร์ฟเวอร์ นอกจากนี้ยังมี db schemas ภายใน db/schema
shared : โฟลเดอร์นี้มียูทิลิตี้ทั้งหมดที่แชร์ระหว่างเซิร์ฟเวอร์และไคลเอนต์สามารถใช้งานได้ทุกที่ในแอพ
biome.json : ไฟล์นี้มีการกำหนดค่าสำหรับ Biome เพื่อเปิดใช้งานการกำหนดค่าอัตโนมัติ
pnpm-lock.yaml : ไฟล์นี้มีการล็อคการพึ่งพาสำหรับ repo
tsconfig.json : ไฟล์นี้มีการกำหนดค่าสำหรับ TypeScript ซึ่งใช้โดยแพ็คเกจพื้นฐานทั้งหมด
| นาม | บทบาท |
|---|---|
SESSION_SECRET | แบบสุ่ม 32 สตริงความยาว Chars ที่ใช้ในการเข้ารหัส ID เซสชัน |
REDIS_HTTP_URL | URL ไปยังการเชื่อมต่อกับ REDIS HTTP สำหรับที่เก็บคีย์/ค่า |
DATABASE_URL | URL ไปยังฐานข้อมูลการเชื่อมต่อกับ Postres |
REDIS_HTTP_USERNAME | URL เซิร์ฟเวอร์ไฟล์ท้องถิ่นสำหรับการจัดเก็บค่าคีย์ |
REDIS_HTTP_PASSWORD | URL เซิร์ฟเวอร์ไฟล์ท้องถิ่นสำหรับการจัดเก็บค่าคีย์ |
GITHUB_CLIENT_ID | รหัสไคลเอนต์ GitHub ที่เก็บไว้สำหรับแอปของเราที่ใช้สำหรับการตรวจสอบผู้ใช้ด้วย GitHub |
GITHUB_PERSONAL_ACCESS_TOKEN | โทเค็นไคลเอนต์ GitHub ที่เก็บไว้สำหรับแอพของเราที่ใช้สำหรับการตรวจสอบสิทธิ์ผู้ใช้ด้วย GitHub |
GITHUB_REDIRECT_URI | URL เพื่อเปลี่ยนเส้นทางเมื่อผู้ใช้ได้รับการรับรองความถูกต้อง |
GITHUB_SECRET | GitHub Secret เก็บไว้สำหรับแอปของเรา |