Files
mini/DEPLOYMENT_RISK_ASSESSMENT.md

68 lines
2.8 KiB
Markdown

# ✈️ Deployment Risk Assessment: God Mode (Valhalla)
**Date:** December 14, 2025
**System:** God Mode v1.0.0
**Deployment Target:** Docker / Coolify
---
## 1. 🔍 Environment Variable Audit
**Risk Level:** 🟡 **MEDIUM**
| Variable | Source Code (`src/`) | Docker Config | Status | Risk |
| :--- | :--- | :--- | :--- | :--- |
| `DATABASE_URL` | `src/lib/db.ts` | `docker-compose.yml` | ✅ Matched | Low |
| `REDIS_HOST` | `src/lib/queue/config.ts` | **MISSING** | ⚠️ Mismatch | **High** |
| `REDIS_PORT` | `src/lib/queue/config.ts` | **MISSING** | ⚠️ Mismatch | **High** |
| `GOD_MODE_TOKEN` | `src/middleware/auth.ts` (Implied) | `docker-compose.yml` | ✅ Matched | Low |
> **CRITICAL FINDING:** `src/lib/queue/config.ts` expects `REDIS_HOST` and `REDIS_PORT`, but `docker-compose.yml` only provides `REDIS_URL`.
> * **Impact:** The queue connection will FAIL by defaulting to 'localhost', which isn't reachable if Redis is a separate service.
> * **Fix:** Ensure `REDIS_URL` is parsed in `config.ts`, OR provide `REDIS_HOST/PORT` in Coolify/Docker environment.
---
## 2. 🔌 Connectivity & Infrastructure
**Risk Level:** 🟢 **LOW**
### Database (PostgreSQL)
* **Driver:** `pg` (Pool)
* **Connection Limit:** `max: 10` (Hardcoded in `db.ts`).
* **Observation:** This hardcoded limit (10) conflicts with the "God Tier" goal of 10,000 connections.
* *Real-world:* Each Node process gets 10. If you scale replicas, it multiplies.
* *Recommendation:* Make `max` configurable via `DB_POOL_SIZE` env var.
### Queue (Redis/BullMQ)
* **Driver:** `ioredis`
* **Persistence:** `redis-data` volume in Docker.
* **Safety:** `maxRetriesPerRequest: null` is correctly set for BullMQ.
---
## 3. 🛡️ Port & Network Conflicts
**Risk Level:** 🟢 **LOW**
* **App Port:** `4321` (Mapped to `80:4321` in some configs, or standalone).
* **Redis Port:** `6379`.
* **Verdict:** Standard ports. No conflicts detected within the declared stack.
---
## 4. 🚨 Failure Scenarios & Mitigation
| Scenario | Probability | Impact | Auto-Mitigation |
| :--- | :--- | :--- | :--- |
| **Missing Redis** | Medium | App Crash on Boot | None (Process exits) |
| **DB Overload** | Low | Query Timeouts | `BatchProcessor` throttle |
| **OOM (Memory)** | High (at >100k) | Service Restart | `SystemController` standby check |
---
## ✅ Pre-Flight Checklist (Action Items)
1. [ ] **Fix Redis Config:** Update `src/lib/queue/config.ts` to support `REDIS_URL` OR add `REDIS_HOST` to env.
2. [ ] **Verify Secrets:** Ensure `GOD_MODE_TOKEN` is actually set in Coolify (deployment often fails if secrets are empty).
3. [ ] **Scale Pool:** Consider patching `db.ts` to allow larger connection pools via Env.
**Overall Readiness:** ⚠️ **GO WITH CAUTION** (Fix Redis Env first)