Ne yaptık:
- .github/workflows/deploy.yml: validate (backend pytest + frontend lint/build)
→ build-push GHCR (backend + frontend image) → Coolify webhook
→ verify (Coolify polling + public URL health check) → notify-failure
(GitHub issue auto-create) zinciri eklendi.
- .github/workflows/ci.yml: eski "Deploy to Coolify" job'u kaldırıldı.
CI artık sadece test + build doğrulaması yapıyor; deploy ayrı workflow'a alındı.
- Trigger: main branch'e push (workflow_dispatch ile manuel de tetiklenebilir).
Neden yaptık:
- Şu ana kadar Coolify deploy manuel tetikleniyordu (CLAUDE.md "Coolify deploy
otomatik tetiklenmez" notu). Her push sonrası Coolify panel'inden el ile
redeploy gerekiyordu.
- SellerX'in deploy-frontend.yml mimarisi — validate → build-push → deploy
→ verify zinciri — battle-tested. Aynı pattern'i trendyol-analiz'e port
ediyoruz.
- GHCR'a image push: ileride Coolify build yerine "image: ghcr.io/..." pull
yapabilsin diye. Şu an compose 'build:' kullansa bile cache + rollback için
GHCR'da hazır image bulunuyor.
- verify polling + public URL health check: deploy başarısız olursa GitHub
Actions otomatik fail eder ve notify-failure GitHub Issue açar.
Gerekli GitHub Secrets (Settings → Secrets and variables → Actions):
- COOLIFY_BASE_URL
- COOLIFY_API_TOKEN
- COOLIFY_TRENDYOL_UUID = x4c08gc84kcw4oow0ggg44cg
Coolify remaps volume mounts to its own managed directories, so
./categories was mapped to an empty dir instead of the repo data.
Changes:
- Backend build context changed to repo root (.) so categories/ is accessible
- Dockerfile copies categories into /data/initial-categories/
- startup.sh seeds /data/categories from bundled data if empty
- Removed categories volume mount (reports still persisted via volume)
- Added root .dockerignore (categories NOT excluded)
- Updated CI workflow to match new build context
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix docker-compose.yml for production: use postgres:15-alpine, remove
container names, remove postgres external port, set FRONTEND_URL to
server IP, use empty VITE_API_URL for nginx proxy
- Add production server CORS origins to backend
- Add deploy job to GitHub Actions CI/CD pipeline
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>