Skip to content

404NotFoundTeam4/Orbis-Track

Repository files navigation

Orbis-Track

Orbis-Track

A modern Node.js stack for building reliable web apps — Express API + Vite frontend + PostgreSQL (pgvector) + Redis + SonarQube.

build status Node 22 license: MIT Prisma 6 Express 5 Vite PostgreSQL 17 pgvector enabled Redis 7 SonarQube LTS TypeScript 5 PRs welcome

Tech stack

  • Backend: Node 22, Express 5, Prisma 6
  • DB: PostgreSQL 17 + pgvector (มี shadow DB สำหรับ Prisma)
  • Queue/Cache: Redis 7
  • Frontend: Vite (+ Tailwind)
  • Code Quality: SonarQube LTS

พอร์ตโดยสรุป

Service URL/Port (host) ในคอนเทนเนอร์
App (Vite) http://localhost:4043 5173
API Server http://localhost:4044 4044
Postgres localhost:4045 5432
SonarQube http://localhost:9000 9000
Sonar DB localhost:4050 5432
Redis localhost:6379 6379

Frontend proxy: คำขอที่ขึ้นต้นด้วย /api จะถูกส่งไป server:4044 และ rewrite เป็น /api/v1 อัตโนมัติ


การเตรียมเครื่อง (Prerequisites)

  • Docker & Docker Compose v2
  • Docker Desktop
  • Node.js 22.x + npm 10.x (ใช้แค่สร้าง package-lock.json ที่ root และทำงานกับ workspaces ได้สะดวก)

Development

1) ติดตั้ง dependency (เพื่อให้มี lockfile และ workspace พร้อม)

npm i

2) ติดตั้ง dependency (เพื่อให้มี lockfile และ workspace พร้อม)

สร้าง .env ใน root directory

3) ติดตั้ง dependency (เพื่อให้มี lockfile และ workspace พร้อม)

สร้าง .env ใน folder server

4) รันด้วย Docker (ไฟล์ dev compose)

docker compose -f docker-dev-compose.yml up --build

เสร็จแล้ว:

5) หยุดระบบ

docker compose -f docker-dev-compose.yml down

Production

1) ติดตั้ง dependency (สร้าง lockfile/workspaces ให้พร้อม)

npm i

2) รันด้วย Docker (ไฟล์ compose ปกติ)

docker compose up --build

เสร็จแล้ว:

3) หยุดระบบ

docker compose down

คำสั่งที่มีประโยชน์

# ดู log แบบ real-time
docker compose -f docker-dev-compose.yml logs -f server
docker compose -f docker-dev-compose.yml logs -f app
docker compose -f docker-dev-compose.yml logs -f db
docker compose -f docker-dev-compose.yml logs -f redis
docker compose -f docker-dev-compose.yml logs -f sonarqube sonar-db

# รีสตาร์ทเฉพาะ service
docker compose -f docker-dev-compose.yml restart server
docker compose -f docker-dev-compose.yml restart app

# หยุดเฉพาะ service
docker compose -f docker-dev-compose.yml stop app
docker compose -f docker-dev-compose.yml stop server

# ลบคอนเทนเนอร์ของ service (ไม่แตะ volumes)
docker compose -f docker-dev-compose.yml rm -f app
docker compose -f docker-dev-compose.yml rm -f server

# บิลด์ใหม่เฉพาะ service แล้วสตาร์ท
docker compose -f docker-dev-compose.yml build server && docker compose -f docker-dev-compose.yml up -d server
docker compose -f docker-dev-compose.yml build app && docker compose -f docker-dev-compose.yml up -d app

# เข้า shell ในคอนเทนเนอร์ (ไว้ดีบัก)
docker compose -f docker-dev-compose.yml exec server sh
docker compose -f docker-dev-compose.yml exec app sh
docker compose -f docker-dev-compose.yml exec db sh

# เข้า psql ไปที่ DB หลัก
docker compose -f docker-dev-compose.yml exec db psql -U 404 -d orbis_track

# เช็คการเชื่อมต่อ DB ด้านในคอนเทนเนอร์
docker compose -f docker-dev-compose.yml exec db pg_isready -U 404 -d orbis_track

# Prisma Studio (รันในคอนเทนเนอร์ server)
docker compose -f docker-dev-compose.yml exec server npx prisma studio -p 5555
# แล้วเปิด http://localhost:5555

# Prisma migrate/generate (รันในคอนเทนเนอร์ server)
docker compose -f docker-dev-compose.yml exec server npx prisma migrate dev
docker compose -f docker-dev-compose.yml exec server npx prisma generate

โครงสร้างคร่าว ๆ

.
├─ app/               # Vite + Tailwind
├─ server/            # Express API + Prisma
│  ├─ src/
│  ├─ docker-entrypoint.sh
│  └─ infrastructure/database/prisma/ (schema + migrations)
├─ docker-dev-compose.yml
├─ docker-compose.yml
├─ package.json       # workspaces root
└─ .env               # ดูตัวอย่างด้านบน

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 10