Some checks failed
CI / Detect changes (push) Has been cancelled
CI / API Lint (push) Has been cancelled
CI / Admin UI Tests (push) Has been cancelled
CI / Admin UI Build (push) Has been cancelled
CI / API Tests (push) Has been cancelled
CI / Scanner Lint (push) Has been cancelled
CI / Scanner Tests (push) Has been cancelled
CI / Banner Lint & Typecheck (push) Has been cancelled
CI / Banner Tests (push) Has been cancelled
CI / Banner Build (push) Has been cancelled
CI / Admin UI Typecheck (push) Has been cancelled
- Dockerfile.app: single container with supervisord (API + Worker + Beat + Scanner) - supervisord.conf: process manager for 4 services in one container - EASYPANEL.md: step-by-step deploy guide for Easypanel - EASYPANEL-README.md: repo structure and deploy flow overview
3.3 KiB
3.3 KiB
ConsentOS — Repository Structure for Easypanel
Files to Add to Repository
consent-os/ ← ต้อง push ขึ้น Git
├── Dockerfile.app ← ✅ สร้างใหม่ (API container)
├── supervisord.conf ← ✅ สร้างใหม่ (process manager)
├── docker-compose.yml ← ✅ สร้างให้แล้ว
├── .env.example ← ✅ สร้างให้แล้ว
├── DEPLOY.md ← ✅ คู่มือ deploy ทั่วไป
└── EASYPANEL.md ← ✅ คู่มือ deploy บน Easypanel
Files ที่มีอยู่แล้วใน Repo (อย่าลบ)
consent-os/
├── apps/
│ ├── api/ ← ✅ keep
│ │ ├── Dockerfile ← ใช้แทน Dockerfile.app สำหรับ dev
│ │ ├── src/ ← ✅ keep
│ │ ├── pyproject.toml ← ✅ keep
│ │ └── ...
│ ├── scanner/ ← ✅ keep
│ │ ├── Dockerfile ← ใช้แทน Dockerfile.app สำหรับ dev
│ │ └── ...
│ ├── admin-ui/ ← ✅ keep (deploy แยก)
│ │ └── Dockerfile
│ └── banner/ ← ✅ keep (admin-ui ดึงมาตอน build)
└── ...
Deploy Flow on Easypanel
Git push
│
├──► Project: consentos
│ Service: consentos-db (Postgres) ───┐
│ Service: consentos-redis (Redis) ───┤
│ Service: consentos-app (App) ───┤
│ ───┘
│ (auto network)
│
└──► Project: consentos-admin
Service: consentos-admin (Admin UI)
Important Notes
1. Database Connection
- Easypanel ใช้ service name เป็น hostname ภายใน Docker network
DATABASE_URL=postgresql+asyncpg://consentos:PASS@consentos-db:5432/consentosREDIS_URL=redis://:PASS@consentos-redis:6379/0
2. Dockerfile.app Location
- ต้องอยู่ที่ root ของ repo ไม่ใช่ใน apps/
- เพราะ Easypanel build จาก repo root
3. Admin UI Deploy แยก
- Admin UI deploy เป็น separate project/service เพราะ:
- ใช้ Dockerfile คนละตัว
- ต้องการ domain + SSL แยก
- nginx รันใน container ของตัวเอง
4. CORS
- หลัง deploy admin UI → copy domain ไปใส่ใน
ALLOWED_ORIGINSของ consentos-app
Quick Setup Commands
# Clone repo
git clone https://github.com/kunthawat/consentos.git
cd consentos
# Copy deployment files
cp ~/consent-deploy/Dockerfile.app .
cp ~/consent-deploy/supervisord.conf .
cp ~/consent-deploy/docker-compose.yml .
cp ~/consent-deploy/.env.example .env
cp ~/consent-deploy/EASYPANEL.md .
# Push to your Git
git add .
git commit -m "Add Easypanel deployment config"
git push