From c61dcb8ff91335adebe31cf11a3bc72f024481c2 Mon Sep 17 00:00:00 2001 From: Wuesteon Date: Wed, 10 Dec 2025 01:56:38 +0100 Subject: [PATCH 1/3] docs: remove all Coolify references from codebase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- CI_CD_IMPLEMENTATION_SUMMARY.md | 2 +- HIVE_MIND_FINAL_REPORT.md | 18 +- ...odularization-and-replicate-integration.md | 561 -------------- .../netlify-functions-vs-vps-comparison.md | 344 --------- .../apps/landing/services/admin-api/README.md | 8 +- .../nutriphi/apps/backend/.env.example | 1 - apps-archived/uload/.env.example | 10 +- apps-archived/uload/Dockerfile | 2 +- apps-archived/uload/README.md | 18 +- apps-archived/uload/apps/web/.env.example | 10 +- .../apps/web/src/routes/test-redis/+server.ts | 2 +- apps-archived/uload/docker-compose.prod.yml | 3 +- .../uload/docs/ADMIN_ACCESS_GUIDE.md | 125 --- .../docs/COMPLETE-POCKETBASE-DEV-SETUP.md | 4 +- apps-archived/uload/docs/DEPLOYMENT.md | 441 ----------- apps-archived/uload/docs/DEPLOYMENT_GUIDE.md | 217 ------ .../uload/docs/DEPLOYMENT_LESSONS_LEARNED.md | 314 -------- .../uload/docs/DOMAIN_SETUP_ULO_AD.md | 362 --------- apps-archived/uload/docs/MIGRATION_GUIDE.md | 2 +- apps-archived/uload/docs/POCKETBASE_ADMIN.md | 2 +- apps-archived/uload/docs/README_DEPLOYMENT.md | 135 ---- apps-archived/uload/docs/REDIS-SETUP.md | 6 +- .../uload/docs/SECURITY_BEST_PRACTICES.md | 4 +- .../uload/docs/SETUP_POCKETBASE_SERVER.md | 2 +- .../docs/features/downtime-prevention-plan.md | 10 +- .../pocketbase/pocketbase-local-setup.md | 6 +- .../redis_docs/reddis-ressourcen-hosting.md | 513 ------------- .../Marktpositionierung+Zielgruppen.md | 2 +- .../docs/reports/landing-page-strategie.md | 2 +- .../self-hosted-geolocation-solutions.md | 335 --------- .../uload/docs/stripe/deployment-setup.md | 2 +- cicd/CHANGELOG.md | 4 +- cicd/COMPLETED.md | 4 +- cicd/PLAN.md | 4 +- cicd/SETUP.md | 46 +- docs/DEPLOYMENT.md | 2 +- docs/DEPLOYMENT_ARCHITECTURE.md | 106 ++- docs/DEPLOYMENT_DIAGRAMS.md | 18 +- docs/DEPLOYMENT_RUNBOOKS.md | 37 +- docs/SELF-HOSTING-GUIDE.md | 709 ------------------ docs/ULOAD-DEPLOYMENT.md | 451 ----------- scripts/remove-coolify-references.sh | 73 -- 42 files changed, 176 insertions(+), 4741 deletions(-) delete mode 100644 apps-archived/memoro/apps/landing/docs/features/admin-tool-modularization-and-replicate-integration.md delete mode 100644 apps-archived/memoro/apps/landing/docs/features/netlify-functions-vs-vps-comparison.md delete mode 100644 apps-archived/uload/docs/ADMIN_ACCESS_GUIDE.md delete mode 100644 apps-archived/uload/docs/DEPLOYMENT.md delete mode 100644 apps-archived/uload/docs/DEPLOYMENT_GUIDE.md delete mode 100644 apps-archived/uload/docs/DEPLOYMENT_LESSONS_LEARNED.md delete mode 100644 apps-archived/uload/docs/DOMAIN_SETUP_ULO_AD.md delete mode 100644 apps-archived/uload/docs/README_DEPLOYMENT.md delete mode 100644 apps-archived/uload/docs/features/redis_docs/reddis-ressourcen-hosting.md delete mode 100644 apps-archived/uload/docs/reports/self-hosted-geolocation-solutions.md delete mode 100644 docs/SELF-HOSTING-GUIDE.md delete mode 100644 docs/ULOAD-DEPLOYMENT.md delete mode 100755 scripts/remove-coolify-references.sh diff --git a/CI_CD_IMPLEMENTATION_SUMMARY.md b/CI_CD_IMPLEMENTATION_SUMMARY.md index f325de822..6f2702af7 100644 --- a/CI_CD_IMPLEMENTATION_SUMMARY.md +++ b/CI_CD_IMPLEMENTATION_SUMMARY.md @@ -52,7 +52,7 @@ All scripts in `scripts/deploy/`: | Script | Purpose | Features | | ------------------- | ---------------------------- | -------------------------------------------------- | | `build-and-push.sh` | Build and push Docker images | Error handling, colored output, progress tracking | -| `deploy-hetzner.sh` | Deploy to Hetzner/Coolify | Zero-downtime, health checks, rollback on failure | +| `deploy-hetzner.sh` | Deploy to Hetzner VPS | Zero-downtime, health checks, rollback on failure | | `health-check.sh` | Verify service health | Multiple endpoints, timeout handling | | `rollback.sh` | Emergency rollback | Automated backup restoration, confirmation prompts | | `migrate-db.sh` | Run database migrations | Supabase + Drizzle support, safe execution | diff --git a/HIVE_MIND_FINAL_REPORT.md b/HIVE_MIND_FINAL_REPORT.md index 7657122bb..478a9b9d7 100644 --- a/HIVE_MIND_FINAL_REPORT.md +++ b/HIVE_MIND_FINAL_REPORT.md @@ -13,7 +13,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a **complete production-ready deployment system** for the manacore-monorepo. Through coordinated effort across 4 specialized worker agents, we've delivered: -- **Comprehensive hosting platform analysis** (Hetzner + Coolify recommended) +- **Comprehensive hosting platform analysis** (Hetzner + Docker Compose recommended) - **Complete deployment architecture** for 39 services across 10 projects - **Fully automated CI/CD pipeline** with GitHub Actions - **Production-ready testing infrastructure** targeting 80% coverage @@ -29,7 +29,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a ### 1️⃣ RESEARCHER AGENT - Infrastructure Analysis -**Mission**: Research and compare Hetzner vs Coolify hosting options +**Mission**: Research and compare Hetzner hosting options **Key Findings**: @@ -70,7 +70,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a **Architecture Highlights**: -- **Environment Stages**: Development (local) β†’ Staging (Coolify) β†’ Production (Coolify/K8s) +- **Environment Stages**: Development (local) β†’ Staging (Docker Compose) β†’ Production (Docker Compose/K8s) - **Domain Strategy**: `{service}.manacore.app` (e.g., `api-chat.manacore.app`) - **Disaster Recovery**: RTO < 1 hour, RPO < 24 hours, automated daily backups - **Resource Requirements**: 15 vCPU, 15 GB RAM, 100 GB SSD (~$150-300/month single-server) @@ -169,7 +169,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a - **Reasoning**: Instant rollback, minimal risk, production-proven - **Vote**: Unanimous approval -3. **Container Orchestration**: Start with Coolify, migrate to K8s when scale demands +3. **Container Orchestration**: Start with Docker Compose, migrate to K8s when scale demands - **Reasoning**: Simplicity now, scalability later - **Vote**: Unanimous approval @@ -256,7 +256,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a **Week 3-4**: - [ ] Provision production server(s) -- [ ] Set up production environment in Coolify +- [ ] Set up production environment with Docker Compose - [ ] Deploy mana-core-auth service - [ ] Deploy first 2 projects (chat, picture) - [ ] Configure monitoring (Prometheus + Grafana) @@ -409,7 +409,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a - βœ… ISO 27001 certified infrastructure (Hetzner) - βœ… SOC 2 Type II (Supabase) - βœ… Automated backup retention policies -- βœ… Audit logs (GitHub Actions, Coolify, Supabase) +- βœ… Audit logs (GitHub Actions, Supabase) --- @@ -489,7 +489,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a **Session 2: Infrastructure Setup (2 hours)** - Hands-on: Set up Hetzner server -- Hands-on: Install and configure Coolify +- Hands-on: Set up Docker Compose - Practice: Deploy test service **Session 3: CI/CD Operations (2 hours)** @@ -572,7 +572,7 @@ The Hive Mind collective has successfully analyzed, designed, and implemented a ### Long-Term (6-12 Months) 1. **Kubernetes Migration** - - Migrate from Coolify to Hetzner Kubernetes + - Migrate from Docker Compose to Hetzner Kubernetes - Implement Helm charts for all services - Set up Istio service mesh @@ -829,7 +829,7 @@ pnpm test:e2e **Official Documentation**: - [Hetzner Cloud Docs](https://docs.hetzner.com/) -- [Coolify Documentation](https://coolify.io/docs) +- [Docker Compose Documentation](https://docs.docker.com/compose/) - [Turborepo Docs](https://turbo.build/repo/docs) - [pnpm Workspaces](https://pnpm.io/workspaces) - [GitHub Actions](https://docs.github.com/en/actions) diff --git a/apps-archived/memoro/apps/landing/docs/features/admin-tool-modularization-and-replicate-integration.md b/apps-archived/memoro/apps/landing/docs/features/admin-tool-modularization-and-replicate-integration.md deleted file mode 100644 index 39a90be56..000000000 --- a/apps-archived/memoro/apps/landing/docs/features/admin-tool-modularization-and-replicate-integration.md +++ /dev/null @@ -1,561 +0,0 @@ -# Admin-Tool Modularisierung & Replicate-Integration - -> **Dokument erstellt:** 28.01.2025 -> **Status:** Konzeptphase -> **Ziel:** Wiederverwendbares Admin-Tool mit KI-Bildgenerierung - -## πŸ“‹ Executive Summary - -Das Memoro Admin-Tool entwickelt sich zu einem eigenstΓ€ndigen, wertvollen Werkzeug. Dieses Dokument beschreibt Konzepte zur: -1. **Modularisierung** des Admin-Tools fΓΌr Wiederverwendbarkeit in anderen Projekten -2. **Integration von Replicate** zur KI-basierten Bildgenerierung fΓΌr Personas -3. **Backend-Architektur** auf Hetzner VPS mit Coolify - -## 🎯 Anforderungen - -### Funktionale Anforderungen -- Admin-Tool soll in anderen Websites wiederverwendbar sein -- Komplette Trennung von Code und Content -- KI-basierte Bildgenerierung fΓΌr Personas via Replicate -- Zentrale Backend-Services auf Hetzner VPS -- Verwaltung via Coolify (Docker-basiert) - -### Nicht-funktionale Anforderungen -- Einfache Installation/Integration -- Minimale Dependencies -- Skalierbare Architektur -- Sichere API-Kommunikation -- Kosteneffiziente Bildgenerierung - -## πŸ—οΈ Modularisierungskonzepte - -### Konzept 1: NPM Package + API Backend -**Architektur:** -``` -@memoro/admin-tool (NPM Package) -β”œβ”€β”€ components/ # Wiederverwendbare UI-Komponenten -β”œβ”€β”€ layouts/ # Admin-Layouts -β”œβ”€β”€ hooks/ # React/Vue Hooks fΓΌr API -β”œβ”€β”€ types/ # TypeScript Definitionen -└── utils/ # Helper Functions - -@memoro/admin-api (Separates Backend) -β”œβ”€β”€ /api/personas # Personas CRUD -β”œβ”€β”€ /api/images # Bildgenerierung -β”œβ”€β”€ /api/content # Content Management -└── /api/auth # Authentication -``` - -**Vorteile:** -- βœ… Maximale Wiederverwendbarkeit -- βœ… Framework-agnostisch (Adapter Pattern) -- βœ… Versionskontrolle via NPM -- βœ… Type-Safety durch TypeScript - -**Nachteile:** -- ❌ Komplexe Initial-Setup -- ❌ Wartung von zwei Packages -- ❌ Breaking Changes Management - -**Integration:** -```typescript -// In beliebiger Astro/Next/Vue App -import { AdminTool } from '@memoro/admin-tool'; -import { MemoroadminProvider } from '@memoro/admin-tool/providers'; - -// Konfiguration -const config = { - apiUrl: 'https://api.memoro-admin.com', - apiKey: process.env.MEMORO_API_KEY, - features: ['personas', 'content', 'images'] -}; - - - - -``` - -### Konzept 2: Monorepo mit Shared Packages -**Struktur:** -``` -memoro-workspace/ -β”œβ”€β”€ apps/ -β”‚ β”œβ”€β”€ memoro-website/ # Aktuelle Website -β”‚ β”œβ”€β”€ admin-dashboard/ # Standalone Admin -β”‚ └── api-backend/ # Zentrales Backend -β”œβ”€β”€ packages/ -β”‚ β”œβ”€β”€ admin-ui/ # UI Components -β”‚ β”œβ”€β”€ admin-core/ # Business Logic -β”‚ β”œβ”€β”€ content-types/ # Shared Types -β”‚ └── api-client/ # API Client Library -└── services/ - β”œβ”€β”€ image-generator/ # Replicate Service - └── content-sync/ # Content Synchronization -``` - -**Vorteile:** -- βœ… Einheitliche Entwicklung -- βœ… Shared Dependencies -- βœ… Einfaches Testing -- βœ… Atomic Commits - -**Nachteile:** -- ❌ Grâßeres Repository -- ❌ Komplexere CI/CD -- ❌ Schwieriger fΓΌr externe Nutzer - -**Tools:** -- Turborepo oder NX fΓΌr Monorepo Management -- Changesets fΓΌr Versionierung -- pnpm Workspaces fΓΌr Dependencies - -### Konzept 3: Microservices + Web Components -**Architektur:** -``` -Frontend (Web Components) -β”œβ”€β”€ -β”œβ”€β”€ -β”œβ”€β”€ -└── - -Microservices (Docker/Coolify) -β”œβ”€β”€ persona-service/ # Node.js/Fastify -β”œβ”€β”€ image-service/ # Python/FastAPI + Replicate -β”œβ”€β”€ content-service/ # Node.js/Express -β”œβ”€β”€ auth-service/ # Node.js/JWT -└── gateway/ # Kong/Traefik -``` - -**Vorteile:** -- βœ… Framework-unabhΓ€ngig -- βœ… Isolierte Services -- βœ… UnabhΓ€ngige Skalierung -- βœ… Native Browser-Support - -**Nachteile:** -- ❌ Komplexe Orchestrierung -- ❌ Network Latency -- ❌ Service Discovery - -**Integration:** -```html - - - - -``` - -### Konzept 4: Plugin-System (Empfohlen) ⭐ -**Architektur:** -``` -@memoro/admin-core -β”œβ”€β”€ core/ -β”‚ β”œβ”€β”€ plugin-system.ts # Plugin Registry -β”‚ β”œβ”€β”€ api-client.ts # API Abstraction -β”‚ └── auth.ts # Auth Management -β”œβ”€β”€ plugins/ -β”‚ β”œβ”€β”€ personas/ # Personas Plugin -β”‚ β”œβ”€β”€ image-generator/ # Replicate Plugin -β”‚ β”œβ”€β”€ content-manager/ # Content Plugin -β”‚ └── analytics/ # Analytics Plugin -└── adapters/ - β”œβ”€β”€ astro/ # Astro Integration - β”œβ”€β”€ nextjs/ # Next.js Integration - └── vue/ # Vue Integration -``` - -**Plugin-Beispiel:** -```typescript -// personas-plugin.ts -export const personasPlugin: AdminPlugin = { - id: 'personas', - name: 'Personas Management', - version: '1.0.0', - routes: [ - { path: '/personas', component: PersonasList }, - { path: '/personas/:id', component: PersonaDetail } - ], - api: { - endpoints: [ - { method: 'GET', path: '/personas', handler: getPersonas }, - { method: 'POST', path: '/personas/:id/image', handler: generateImage } - ] - }, - permissions: ['personas.read', 'personas.write', 'personas.generate'], - config: { - replicateModel: 'stability-ai/sdxl', - imageStyles: ['portrait', 'professional', 'casual'] - } -}; -``` - -**Vorteile:** -- βœ… Maximale FlexibilitΓ€t -- βœ… Einfache Erweiterung -- βœ… Selective Features -- βœ… Community Plugins mΓΆglich - -**Nachteile:** -- ❌ Initial-KomplexitΓ€t -- ❌ Plugin-KompatibilitΓ€t -- ❌ Versioning-Challenges - -## πŸ–ΌοΈ Replicate Integration - -### Backend Service Architektur -```typescript -// services/image-generator/src/replicate-service.ts -import Replicate from 'replicate'; -import { Queue } from 'bullmq'; -import { S3 } from '@aws-sdk/client-s3'; - -export class ReplicateImageService { - private replicate: Replicate; - private queue: Queue; - private storage: S3; - - async generatePersonaImage(persona: Persona): Promise { - // 1. Prompt generieren basierend auf Persona-Daten - const prompt = this.buildPrompt(persona); - - // 2. Job in Queue einreihen - const job = await this.queue.add('generate-image', { - personaId: persona.id, - prompt, - model: 'stable-diffusion-xl', - parameters: { - width: 1024, - height: 1024, - num_outputs: 4, - guidance_scale: 7.5 - } - }); - - // 3. Auf Completion warten - const result = await job.waitUntilFinished(); - - // 4. Bilder in S3/Hetzner speichern - const imageUrls = await this.storeImages(result.images); - - return imageUrls; - } - - private buildPrompt(persona: Persona): string { - const { appearance, outfits, demographics } = persona; - - return ` - Professional portrait photo of a ${demographics.age} year old ${demographics.gender}, - ${appearance.description}, - ${appearance.hairColor} hair in ${appearance.hairStyle}, - ${appearance.eyeColor} eyes, - wearing ${outfits[0]?.items.top || 'business attire'}, - ${appearance.firstImpression}, - studio lighting, high quality, detailed, realistic - `; - } -} -``` - -### Admin UI Integration -```typescript -// components/PersonaImageGenerator.tsx -export function PersonaImageGenerator({ persona }: Props) { - const [generating, setGenerating] = useState(false); - const [images, setImages] = useState([]); - const [selectedImage, setSelectedImage] = useState(); - const [prompt, setPrompt] = useState(''); - - const generateImages = async () => { - setGenerating(true); - - const response = await fetch(`/api/personas/${persona.id}/generate-images`, { - method: 'POST', - body: JSON.stringify({ - prompt: prompt || buildDefaultPrompt(persona), - style: selectedStyle, - count: 4 - }) - }); - - const data = await response.json(); - setImages(data.images); - setGenerating(false); - }; - - return ( -
-

KI Bildgenerierung

- - {/* Prompt Editor */} -