- Remove Dokploy deploy jobs from GitHub CI workflow (test + build only) - Add .gitea/workflows/ci.yml (Gitea Actions: lint, tests, docker build verify) - Rewrite deploy.sh: set -euo pipefail, mandatory .env.<env>, --env-file, healthcheck on /api/health with log dump on failure - Delete Dokploy-specific docs (3 files), update references in README, TODO.md, architecture.md, guides, dev plan - Remove DOKPLOY_* env vars from proto/.env.local
3.8 KiB
Executable File
3.8 KiB
Executable File
CI/CD Guide - Code & Deployment
🎯 Cél
A projekt CI/CD rendszere Gitea Actions-en fut (git.mozdit.hu), a deploy pedig natív Docker Compose (deploy.sh). Dokploy nem használt.
🔄 Architektúra
Pipeline Folyamat:
graph TD
A[Code Push] --> B[Gitea Actions]
B --> C[Run Tests]
B --> D[Build Docker Image]
E[main push] --> F[Manuális deploy a szerveren]
F --> G[deploy.sh — docker compose up --build]
H[Manual Trigger] --> B
Mit kezel a CI/CD:
- ✅ Test Execution (unit, browser, docker integration)
- ✅ Docker Image build ellenőrzés (nincs registry push)
- ✅ Deployment natív docker compose-szal (
deploy.sh) - ✅ Build Artifacts és reporting
🐙 Gitea Actions Workflow (.gitea/workflows/ci.yml)
Trigger Events:
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
Job Sequence:
- 🧪 Test Phase — lint + unit + browser tesztek
- 🏗️ Build Phase — production Docker image build (verifikáció, nem push)
A .github/workflows/ci.yml (GitHub) hasonló teszteket futtat, de nincs deploy lépése — a deploy mindig a szerveren történik.
🚀 Deployment (natív docker compose)
Deploy a szerveren:
# Staging
./deploy.sh staging
# Production
./deploy.sh production
Mit csinál a deploy.sh:
git pull origin main.env.<env>fájl betöltése (kötelező)docker compose --env-file .env.<env> -f docker-compose.prod.yml up --build -d- Healthcheck a
/api/healthendpointon (60s timeout, hiba esetén log dump)
Szükséges fájlok a szerveren:
# .env.production — production környezeti változók
MONGODB_URI=mongodb://admin:XXX@mongodb:27017/mozdit?authSource=admin
MONGODB_DB=mozdit
NEXT_PUBLIC_SITE_URL=https://mozdit.hu
NEXT_PUBLIC_CONTACT_EMAIL=info@mozdit.hu
LOKI_HOST=http://loki:3100
APP_PORT=8080
# .env.staging — staging változók (hasonlóan)
⚠️ A
.env.*fájlok sosem kerülnek git-be — a szerveren kell létrehozni őket.
Reverse proxy / SSL:
A docker-compose.prod.yml csak az app + MongoDB-t futtatja. A TLS/SSL és rate limit az infra szintű Nginx/caddy reverse proxy feladata (nem része a repónak).
📊 Monitoring
- Logok:
docker compose -f docker-compose.prod.yml logs -f app - Health:
GET /api/health→{ success: true, data: {...} } - Winston + Loki: alkalmazás logok (ha Loki elérhető a stackben)
🔧 Konfiguráció
Környezeti változók (CI):
env:
NODE_VERSION: '20'
Branch stratégia:
main→ production (deploy:./deploy.sh production)develop→ staging (deploy:./deploy.sh staging)feature/*→ fejlesztői branch-ek
🛠️ Local Development
# Tesztek futtatása (ugyanaz, mint CI-ben)
cd proto && npm run test:all
# Docker build tesztelése lokálisan
cd proto && npm run docker:build
🔍 Troubleshooting
1. Deploy hiba — healthcheck nem OK
./deploy.sh production # hibaüzenet + app logok dump
docker compose -f docker-compose.prod.yml logs -f app
- Ellenőrizd a
.env.productiontartalmát - Ellenőrizd, hogy a MongoDB konténer elérhető-e
- Ellenőrizd a lokális teszteket:
cd proto && npm run test:all
2. CI hiba
- Nézd meg a futást a Gitea Actions fülön:
https://git.mozdit.hu/si/websitedev/actions - Helyi reprodukció:
cd proto && npm run lint && npm run test:all
🔗 Kapcsolódó Dokumentumok
Utolsó frissítés: 2026-08-17 Státusz: Dokploy eltávolítva, natív docker compose + Gitea Actions