diff --git a/.gitea/workflows/ci-docker.yml b/.gitea/workflows/ci-docker.yml new file mode 100644 index 0000000..c011816 --- /dev/null +++ b/.gitea/workflows/ci-docker.yml @@ -0,0 +1,32 @@ +name: Build & Push Docker Image (Backend) + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + YOUR_DH_USER/lms-backend:latest + YOUR_DH_USER/lms-backend:${{ gitea.sha }} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..05b6f1b --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +# LMS Backend + +โปรเจกต์ **lms-backend** เป็นระบบ Backend / Back Office +สำหรับรองรับการบริหารจัดการ **Learning Management System (LMS)** + +ระบบนี้ถูกออกแบบเพื่อ: +- รองรับการจัดการข้อมูลผู้ใช้งาน เนื้อหา และการเรียนรู้ +- ทำหน้าที่เป็น Back Office สำหรับ **LMS สาธารณะ** ที่มีแผนพัฒนาและเปิดให้ใช้งานในอนาคต +- รองรับการพัฒนาและขยายระบบในระยะยาว + +--- + +## Purpose + +- เป็นศูนย์กลางการจัดการระบบ LMS +- รองรับการเชื่อมต่อกับ Frontend และบริการอื่นในอนาคต +- ออกแบบให้เหมาะกับการใช้งานในระดับองค์กรและสาธารณะ + +--- + +## Technical Overview + +- Backend Framework: Django +- Containerization: Docker +- CI: Gitea Actions +- Deployment: Kubernetes (k3s) + GitOps (ArgoCD) + +--- + +## Deployment Model + +โปรเจกต์นี้ใช้แนวทาง **CI/CD + GitOps** + +- Source code ใช้ Gitea +- Build Docker Image และจัดเก็บใน Docker Hub +- การ deploy ควบคุมผ่าน GitOps repository (`lms-k8s`) +- ArgoCD ทำหน้าที่ deploy ไปยัง Kubernetes cluster + +--- + +## Notes + +- Repository นี้โฟกัสเฉพาะ Backend / Back Office +- Configuration และ Kubernetes manifests แยกอยู่ใน GitOps repository +- โครงสร้างระบบถูกออกแบบให้พร้อมรองรับ LMS สาธารณะในอนาคต \ No newline at end of file