# LeoCRM Deployment Guide

## Coolify Deployment

### Application Info
- **Coolify App UUID:** `stvabl4vaqru7jclx4ittzr3`
- **App ID:** 12
- **Domain:** `https://crm.media-on.de`
- **Git Repo:** `https://forgejo.media-on.de/Leopoldadmin/leocrm.git`
- **Branch:** `main`
- **Build Pack:** Dockerfile (Multi-Stage: Frontend + Backend)
- **Health Check:** `GET /api/v1/health` → 200

### Deploy Process
1. **Code pushen:** `git push origin main`
2. **Coolify Deploy triggern:**
   - Option A: Coolify Dashboard → `https://server.media-on.de` → App → Deploy
   - Option B: API: `POST https://server.media-on.de/api/v1/deploy` mit `{"uuid": "stvabl4vaqru7jclx4ittzr3"}`
3. **Build dauert ~2-5 Min** (Multi-Stage: npm install + vite build + pip install + runtime)
4. **Container wird automatisch ausgetauscht** wenn Build erfolgreich

### Manueller Build (Fallback)
Wenn Coolify den Build nicht ausführt:
```bash
ssh root@46.225.91.159
cd /tmp && git clone https://Leopoldadmin:<token>@forgejo.media-on.de/Leopoldadmin/leocrm.git leocrm-build
cd leocrm-build
docker build -t stvabl4vaqru7jclx4ittzr3:<commit-hash> .
cd /data/coolify/applications/stvabl4vaqru7jclx4ittzr3
# docker-compose.yaml Image-Tag aktualisieren
# .env SOURCE_COMMIT aktualisieren
docker compose up -d
docker stop <old-container> && docker rm <old-container>
```

### Bekannte Probleme
- **Build schlägt fehl bei JSX/TS-Fehlern:** Vite-Build bricht ab → Coolify zeigt FAIL nach ~30s
- **docker-compose.yaml wird VOR dem Build aktualisiert:** Wenn Build fehlschlägt, bleibt nicht-existentes Image in der Config
- **Coolify Queue kann hängen:** Manchmal wird Deploy gequeued aber nicht verarbeitet — dann manuell bauen

### Pre-Deploy Checklist
- [ ] `npx tsc --noEmit` — keine neuen TSC-Fehler (pre-existing Dms.tsx errors sind OK)
- [ ] `npx vite build` — Frontend-Build erfolgreich
- [ ] `git push origin main` — Code auf Forgejo
- [ ] Coolify Deploy triggern
- [ ] Health-Check: `curl https://crm.media-on.de/api/v1/health`

### Server Info
- **Host:** `46.225.91.159` (coolify-01)
- **SSH Key:** `/a0/usr/workdir/.ssh/coolify-01-root`
- **Coolify API Token:** `2|UnMMp2WYbXFJCrOuZ1yqSK96hMooPTAfAJPIXiQc1e47154e`
- **Coolify Dashboard:** `https://server.media-on.de`
- **PostgreSQL:** `crm-postgres` container (pgvector/pgvector:pg16)
- **Redis:** `crm-redis` container
