docs: remove all Coolify references from codebase

Replace Coolify with Docker Compose throughout documentation.
The project never used Coolify - a removal script was created but
never executed, leaving incorrect documentation.

Changes:
- Delete 13 heavily Coolify-focused docs files
- Update ~30 files replacing Coolify → Docker Compose
- Remove obsolete removal script
- Fix deployment references in active and archived projects

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Wuesteon 2025-12-10 01:56:38 +01:00
parent 79b4bb07ed
commit c61dcb8ff9
42 changed files with 176 additions and 4741 deletions

View file

@ -745,20 +745,20 @@ pnpm docker:down
---
### 2. Production Orchestration (Coolify)
### 2. Production Orchestration (Docker Compose)
**Coolify Configuration:** `.coolify/docker-compose.prod.yml`
**Production Configuration:** `docker-compose.production.yml`
```yaml
version: '3.9'
# Production Docker Compose for Coolify Deployment
# Coolify will handle:
# - Automatic SSL (Let's Encrypt)
# Production Docker Compose Deployment
# With:
# - Automatic SSL (Certbot/Let's Encrypt)
# - Health check monitoring
# - Auto-restart on failure
# - Log aggregation
# - Resource limits
# - Nginx reverse proxy
services:
chat-backend:
@ -785,19 +785,18 @@ services:
retries: 3
start_period: 40s
labels:
- "coolify.managed=true"
- "coolify.project=chat"
- "coolify.service=backend"
- "coolify.port=3002"
- "coolify.domain=api-chat.manacore.app"
- "com.manacore.project=chat"
- "com.manacore.service=backend"
- "com.manacore.port=3002"
- "com.manacore.domain=api-chat.manacore.app"
```
**Coolify Deployment Strategy:**
**Docker Compose Deployment Strategy:**
1. **Per-project services**: Each project (chat, maerchenzauber, etc.) deployed as separate Coolify application
2. **Resource pools**: Shared PostgreSQL and Redis as Coolify resources
3. **Auto-scaling**: Configure horizontal scaling based on CPU/memory
4. **Blue-green deployments**: Coolify's native zero-downtime deployment
1. **Per-project services**: Each project (chat, picture, etc.) deployed as separate service stack
2. **Shared infrastructure**: PostgreSQL and Redis in dedicated compose file
3. **Manual scaling**: Scale with `docker compose up --scale service=N`
4. **Blue-green deployments**: Scripted zero-downtime deployment via Nginx
---
@ -967,7 +966,7 @@ k8s/
│ │
│ [Development] → [Staging] → [Production] │
│ ↓ ↓ ↓ │
│ Local Docker Coolify Coolify/K8s
│ Local Docker Docker Docker/K8s
│ 127.0.0.1 staging.* app domains │
│ Hot reload Manual test Blue-green │
│ No SSL Let's Encrypt Let's Encrypt │
@ -1042,7 +1041,7 @@ k8s/
│ BLUE-GREEN DEPLOYMENT │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [Load Balancer / Coolify Proxy]
│ [Load Balancer / Nginx Proxy]
│ ↓ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ BLUE (Live) │ │ GREEN (Standby) │ │
@ -1066,7 +1065,7 @@ k8s/
```bash
# Instant rollback by switching traffic back to BLUE
coolify switch-deployment blue
./scripts/switch-deployment.sh blue
# Or with Kubernetes
kubectl set image deployment/chat-backend chat-backend=registry.manacore.app/chat-backend:v1.5.2
@ -1246,8 +1245,8 @@ Development → Staging → Production
# Manual trigger (after staging validation)
kubectl exec -it chat-backend-pod -- pnpm migration:run
# Or automated (Coolify)
coolify deploy chat-backend --run-migrations
# Or automated (via deploy script)
./scripts/deploy/deploy-hetzner.sh chat-backend --run-migrations
```
**Migration Safety Rules:**
@ -1419,7 +1418,7 @@ async updateCredits(userId: string, amount: number) {
│ - https://docs.manacore.app → API documentation │
│ │
│ All domains: │
│ - SSL via Let's Encrypt (Coolify auto-provision) │
│ - SSL via Let's Encrypt (Certbot auto-provision) │
│ - HTTP/2 enabled │
│ - HSTS headers (max-age=31536000) │
│ - Cloudflare DNS (with proxy for DDoS protection) │
@ -1432,7 +1431,7 @@ async updateCredits(userId: string, amount: number) {
```
Type Name Target Proxy
─────────────────────────────────────────────────────────────────────
A chat.manacore.app 185.230.123.45 (Coolify IP) Yes
A chat.manacore.app 185.230.123.45 (Server IP) Yes
A app-chat.manacore.app 185.230.123.45 Yes
A api-chat.manacore.app 185.230.123.45 No*
CNAME *.manacore.app manacore.app Yes
@ -1444,16 +1443,14 @@ CNAME *.manacore.app manacore.app Yes
### 2. SSL/TLS Certificate Management
**Coolify Automatic SSL:**
**Automatic SSL (Certbot):**
```yaml
# .coolify/settings.yml
ssl:
provider: letsencrypt
email: devops@manacore.app
staging: false # Use production Let's Encrypt
auto_renew: true
renewal_days_before: 30
```bash
# Install certbot
apt-get install certbot python3-certbot-nginx
# Configure auto-renewal
systemctl enable certbot.timer
```
**Manual SSL (Certbot):**
@ -1513,7 +1510,7 @@ server {
- **Simplicity**: Each backend has its own domain
- **Low traffic volume**: Gateway overhead not justified yet
- **Independent scaling**: Services scale independently
- **Coolify routing**: Built-in reverse proxy handles routing
- **Nginx routing**: Reverse proxy handles routing
**Future API Gateway (Kong/Traefik) - When to Adopt:**
@ -1704,13 +1701,13 @@ location ~* \.(html)$ {
**Secret Management:**
- **Development:** `.env.development` (committed to git)
- **Staging/Production:** Coolify secrets UI or Kubernetes secrets
- **Staging/Production:** Environment files or Kubernetes secrets
```bash
# Coolify secret injection
coolify env set chat-backend \
AZURE_OPENAI_API_KEY=secret123 \
DATABASE_URL=postgresql://...
# Docker Compose secret injection via .env files
# /opt/manacore/.env.production
AZURE_OPENAI_API_KEY=secret123
DATABASE_URL=postgresql://...
```
**Kubernetes Secrets:**
@ -2163,14 +2160,14 @@ jobs:
url: https://staging-chat.manacore.app
steps:
- name: Deploy to Coolify (Staging)
- name: Deploy to Staging
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.COOLIFY_STAGING_HOST }}
username: ${{ secrets.COOLIFY_SSH_USER }}
key: ${{ secrets.COOLIFY_SSH_KEY }}
host: ${{ secrets.STAGING_HOST }}
username: ${{ secrets.STAGING_SSH_USER }}
key: ${{ secrets.STAGING_SSH_KEY }}
script: |
cd /var/lib/coolify/apps/chat-staging
cd /opt/manacore/chat-staging
docker compose pull
docker compose up -d --force-recreate
docker compose exec -T chat-backend pnpm migration:run
@ -2192,14 +2189,14 @@ jobs:
url: https://chat.manacore.app
steps:
- name: Deploy to Coolify (Production)
- name: Deploy to Production
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.COOLIFY_PROD_HOST }}
username: ${{ secrets.COOLIFY_SSH_USER }}
key: ${{ secrets.COOLIFY_SSH_KEY }}
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_SSH_USER }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
script: |
cd /var/lib/coolify/apps/chat-production
cd /opt/manacore/chat-production
# Blue-green deployment: Deploy to green environment
docker compose -f docker-compose.green.yml pull
@ -2214,8 +2211,8 @@ jobs:
# Health check green environment
curl -f http://localhost:3002/api/health || exit 1
# Switch traffic to green (update Coolify routing)
coolify switch-deployment chat green
# Switch traffic to green (update Nginx routing)
./scripts/switch-deployment.sh chat green
# Keep blue running for 1 hour (rollback window)
# Decommission blue after validation
@ -2356,8 +2353,9 @@ curl -f https://api-chat.manacore.app/api/health
```bash
# 1. Provision new server (same specs)
# 2. Install Docker + Coolify
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
# 2. Install Docker + Docker Compose
curl -fsSL https://get.docker.com | bash
apt-get update && apt-get install -y docker-compose-plugin
# 3. Clone repository
git clone https://github.com/manacore/manacore-monorepo.git
@ -2577,7 +2575,7 @@ services:
### 3. Secrets Management
**Current:** Coolify environment variables UI (encrypted at rest)
**Current:** Docker Compose environment files (encrypted at rest)
**Future:** HashiCorp Vault or AWS Secrets Manager
@ -2691,7 +2689,7 @@ Permissions-Policy: geolocation=(), microphone=(), camera=()
- [ ] Set up GitHub Actions workflows (per project)
- [ ] Configure Docker image registry (GitHub Container Registry)
- [ ] Implement automated testing in CI
- [ ] Set up staging environment on Coolify
- [ ] Set up staging environment with Docker Compose
- [ ] Implement blue-green deployment scripts
### Phase 3: Production Deployment (Week 5-6)