-
KI Bildgenerierung
-
- {/* Prompt Editor */}
-
- );
-}
-```
-
-## 🚀 Backend Deployment (Hetzner + Coolify)
-
-### Docker Compose Konfiguration
-```yaml
-# docker-compose.yml für Coolify
-version: '3.8'
-
-services:
- # API Gateway
- gateway:
- image: traefik:v2.9
- ports:
- - "80:80"
- - "443:443"
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - ./traefik.yml:/traefik.yml
- labels:
- - "traefik.enable=true"
-
- # Admin API
- admin-api:
- build: ./services/admin-api
- environment:
- DATABASE_URL: ${DATABASE_URL}
- REPLICATE_API_KEY: ${REPLICATE_API_KEY}
- JWT_SECRET: ${JWT_SECRET}
- labels:
- - "traefik.http.routers.api.rule=Host(`api.memoro-admin.com`)"
- - "traefik.http.services.api.loadbalancer.server.port=3000"
-
- # Image Generator Service
- image-generator:
- build: ./services/image-generator
- environment:
- REPLICATE_API_KEY: ${REPLICATE_API_KEY}
- S3_BUCKET: ${S3_BUCKET}
- REDIS_URL: redis://redis:6379
- depends_on:
- - redis
-
- # Queue Worker
- queue-worker:
- build: ./services/queue-worker
- environment:
- REDIS_URL: redis://redis:6379
- DATABASE_URL: ${DATABASE_URL}
- depends_on:
- - redis
- - postgres
-
- # Database
- postgres:
- image: postgres:15-alpine
- environment:
- POSTGRES_DB: memoro_admin
- POSTGRES_USER: ${DB_USER}
- POSTGRES_PASSWORD: ${DB_PASSWORD}
- volumes:
- - postgres-data:/var/lib/postgresql/data
-
- # Cache & Queue
- redis:
- image: redis:7-alpine
- volumes:
- - redis-data:/data
-
- # Object Storage (MinIO als S3-Alternative)
- minio:
- image: minio/minio
- command: server /data --console-address ":9001"
- environment:
- MINIO_ROOT_USER: ${MINIO_USER}
- MINIO_ROOT_PASSWORD: ${MINIO_PASSWORD}
- volumes:
- - minio-data:/data
- ports:
- - "9001:9001"
-
-volumes:
- postgres-data:
- redis-data:
- minio-data:
-```
-
-### Coolify Deployment Steps
-```bash
-# 1. Repository in Coolify verbinden
-# 2. Environment Variables setzen
-# 3. Docker Compose auswählen
-# 4. Custom Domain konfigurieren
-# 5. SSL aktivieren (Let's Encrypt)
-# 6. Health Checks einrichten
-```
-
-## 💰 Kostenanalyse
-
-### Replicate Kosten
-- **SDXL Model:** ~$0.0023 pro Bild
-- **4 Varianten pro Persona:** ~$0.01
-- **100 Personas:** ~$1.00
-- **Monatliche Regeneration:** ~$12/Jahr
-
-### Hetzner VPS
-- **CPX31:** 16GB RAM, 4 vCPUs = 22€/Monat
-- **Storage:** 160GB SSD inklusive
-- **Traffic:** 20TB inklusive
-
-### Gesamtkosten
-- **Initial:** ~25€ Setup
-- **Monatlich:** ~25€ (Hetzner + Replicate bei moderater Nutzung)
-- **Jährlich:** ~300€
-
-## 🔧 Implementierungsplan
-
-### Phase 1: Proof of Concept (1 Woche)
-1. ✅ Einfache API mit Express.js
-2. ✅ Replicate Integration testen
-3. ✅ Basis UI in Admin-Tool
-4. ✅ Lokales Docker Setup
-
-### Phase 2: MVP (2-3 Wochen)
-1. ⏳ Plugin-System Grundstruktur
-2. ⏳ Personas Plugin mit Bildgenerierung
-3. ⏳ Deployment auf Hetzner
-4. ⏳ Basis-Authentifizierung
-
-### Phase 3: Production Ready (4-6 Wochen)
-1. 📋 Vollständiges Plugin-System
-2. 📋 NPM Package Publishing
-3. 📋 Dokumentation & Examples
-4. 📋 CI/CD Pipeline
-5. 📋 Monitoring & Logging
-
-### Phase 4: Erweiterungen
-1. 🎯 Weitere Plugins (Analytics, SEO, etc.)
-2. 🎯 Community Plugins Support
-3. 🎯 SaaS-Version
-4. 🎯 Multi-Tenancy
-
-## 🎯 Empfehlung
-
-**Empfohlene Architektur:** Plugin-System (Konzept 4) + Microservices Backend
-
-**Begründung:**
-1. **Flexibilität:** Plugins erlauben selektive Feature-Nutzung
-2. **Skalierbarkeit:** Microservices können unabhängig skaliert werden
-3. **Wiederverwendbarkeit:** Core + Plugins in beliebigen Projekten nutzbar
-4. **Zukunftssicher:** Community kann eigene Plugins entwickeln
-5. **Kosteneffizient:** Nur genutzte Services werden deployed
-
-**Nächste Schritte:**
-1. API-Service mit Replicate-Integration entwickeln
-2. Basis Plugin-System implementieren
-3. Personas-Plugin mit Bildgenerierung erstellen
-4. Deployment auf Hetzner/Coolify
-5. Documentation und Examples
-
-## 📚 Technologie-Stack
-
-### Frontend
-- **Core:** TypeScript, Web Components
-- **Adapters:** Astro, React, Vue
-- **UI:** Tailwind CSS, Shadcn/ui
-- **State:** Zustand oder Nanostores
-
-### Backend
-- **API:** Node.js mit Fastify
-- **Queue:** BullMQ + Redis
-- **Database:** PostgreSQL + Prisma
-- **Storage:** MinIO (S3-compatible)
-- **Auth:** JWT + Refresh Tokens
-
-### Infrastructure
-- **Hosting:** Hetzner VPS
-- **Orchestration:** Coolify
-- **Containers:** Docker + Compose
-- **Monitoring:** Prometheus + Grafana
-- **Logging:** Loki + Promtail
-
-## 🔐 Security Considerations
-
-1. **API Security:**
- - Rate Limiting
- - API Key Management
- - CORS Configuration
- - Request Validation
-
-2. **Image Generation:**
- - Content Filtering
- - Usage Limits
- - Watermarking Option
- - GDPR Compliance
-
-3. **Data Protection:**
- - Encryption at Rest
- - Secure Transmission
- - Regular Backups
- - Access Logging
-
-## 📊 Success Metrics
-
-- **Adoption:** Anzahl installierter Instanzen
-- **Usage:** Generierte Bilder pro Monat
-- **Performance:** API Response Time < 200ms
-- **Reliability:** 99.9% Uptime
-- **Cost:** < 30€/Monat bei 1000 Personas
-
-## 🤝 Community & Support
-
-- **Documentation:** docs.memoro-admin.tools
-- **Discord:** Community Support
-- **GitHub:** Issue Tracking
-- **Newsletter:** Updates & Best Practices
-- **Marketplace:** Plugin Directory
-
----
-
-*Dieses Dokument wird kontinuierlich aktualisiert. Letzte Änderung: 28.01.2025*
\ No newline at end of file
diff --git a/apps-archived/memoro/apps/landing/docs/features/netlify-functions-vs-vps-comparison.md b/apps-archived/memoro/apps/landing/docs/features/netlify-functions-vs-vps-comparison.md
deleted file mode 100644
index 12206a5b8..000000000
--- a/apps-archived/memoro/apps/landing/docs/features/netlify-functions-vs-vps-comparison.md
+++ /dev/null
@@ -1,344 +0,0 @@
-# Netlify Functions vs. Hetzner VPS - Vergleich für Replicate Integration
-
-## 🎯 Übersicht
-
-Vergleich zwischen **Netlify Functions** (Serverless) und **Hetzner VPS** (Self-Hosted) für die Replicate API Integration.
-
-## 💰 Kostenvergleich
-
-### Netlify Functions
-
-**Free Tier:**
-
-- 125.000 Requests/Monat
-- 100 Stunden Compute-Zeit/Monat
-- Perfekt für Development & kleine Projekte
-
-**Pro Tier ($19/Monat):**
-
-- 1 Million Requests/Monat
-- 1000 Stunden Compute-Zeit
-
-**Kosten für Replicate Bildgenerierung:**
-
-- Replicate API: ~$0.01 pro 4 Bilder
-- Netlify Functions: GRATIS im Free Tier
-- **Gesamtkosten: Nur Replicate-Nutzung (~$1-10/Monat)**
-
-### Hetzner VPS + Coolify
-
-**CPX31 Server:**
-
-- €22/Monat (16GB RAM, 4 vCPUs)
-- Unbegrenzte Requests
-- Kann mehrere Services hosten
-
-**Zusatzkosten:**
-
-- Domain/SSL: €0 (Let's Encrypt)
-- Backup: €2/Monat
-- **Gesamtkosten: €24/Monat + Replicate**
-
-## 🚀 Implementierungsvergleich
-
-### Option 1: Netlify Functions (EMPFOHLEN) ⭐
-
-**Implementierung:**
-
-```javascript
-// netlify/functions/generate-persona-image.js
-import Replicate from 'replicate';
-
-export async function handler(event, context) {
- // CORS Headers
- if (event.httpMethod === 'OPTIONS') {
- return {
- statusCode: 200,
- headers: {
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Headers': 'Content-Type, X-API-Key',
- 'Access-Control-Allow-Methods': 'POST, OPTIONS',
- },
- };
- }
-
- // Check API Key
- const apiKey = event.headers['x-api-key'];
- if (apiKey !== process.env.API_KEY) {
- return {
- statusCode: 401,
- body: JSON.stringify({ error: 'Unauthorized' }),
- };
- }
-
- // Parse request
- const { personaData, prompt, style = 'portrait', count = 4 } = JSON.parse(event.body);
-
- // Initialize Replicate
- const replicate = new Replicate({
- auth: process.env.REPLICATE_API_TOKEN,
- });
-
- try {
- // Generate images
- const output = await replicate.run(
- 'stability-ai/sdxl:39ed52f2a78e934b3ba6e2a89f5b1c712de7dfea535525255b1aa35c5565e08b',
- {
- input: {
- prompt: prompt || buildPromptFromPersona(personaData, style),
- negative_prompt: 'ugly, distorted, blurry, low quality',
- width: 1024,
- height: 1024,
- num_outputs: count,
- scheduler: 'K_EULER',
- num_inference_steps: 30,
- guidance_scale: 7.5,
- },
- }
- );
-
- return {
- statusCode: 200,
- headers: {
- 'Content-Type': 'application/json',
- 'Access-Control-Allow-Origin': '*',
- },
- body: JSON.stringify({
- success: true,
- images: output,
- }),
- };
- } catch (error) {
- return {
- statusCode: 500,
- body: JSON.stringify({
- success: false,
- error: error.message,
- }),
- };
- }
-}
-
-function buildPromptFromPersona(personaData, style) {
- // Prompt building logic
- const { appearance, demographics, professional } = personaData;
- // ... (same as before)
-}
-```
-
-**Setup:**
-
-```bash
-# 1. Install Netlify CLI
-npm install -g netlify-cli
-
-# 2. Create netlify.toml
-cat > netlify.toml << EOF
-[build]
- command = "npm run build"
- publish = "dist"
-
-[functions]
- directory = "netlify/functions"
-
-[build.environment]
- NODE_VERSION = "20"
-EOF
-
-# 3. Add environment variables in Netlify UI
-# REPLICATE_API_TOKEN = "..."
-# API_KEY = "..."
-
-# 4. Deploy
-netlify deploy --prod
-```
-
-**Frontend Integration bleibt gleich:**
-
-```javascript
-// Nur API URL ändern
-const API_URL = '/.netlify/functions';
-// Statt: const API_URL = 'http://localhost:3001/api';
-```
-
-### Option 2: Vercel Functions (Alternative)
-
-**Ähnlich wie Netlify:**
-
-- Free Tier: 100GB-Hrs/Monat
-- Pro: $20/Monat
-- Edge Functions möglich
-- Bessere TypeScript-Unterstützung
-
-```typescript
-// api/generate-persona-image.ts
-import { VercelRequest, VercelResponse } from '@vercel/node';
-
-export default async function handler(req: VercelRequest, res: VercelResponse) {
- // Similar implementation
-}
-```
-
-### Option 3: Astro SSR mit API Routes (Neu in Astro 4.0)
-
-**In deinem bestehenden Projekt:**
-
-```typescript
-// src/pages/api/generate-persona-image.ts
-import type { APIRoute } from 'astro';
-import Replicate from 'replicate';
-
-export const POST: APIRoute = async ({ request }) => {
- const data = await request.json();
- // Implementation
- return new Response(JSON.stringify(result), {
- status: 200,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
-};
-```
-
-## 📊 Entscheidungsmatrix
-
-| Kriterium | Netlify Functions | Hetzner VPS | Gewichtung |
-| ------------------ | --------------------- | -------------- | ---------- |
-| **Kosten** | ⭐⭐⭐⭐⭐ (€0-19/Mo) | ⭐⭐ (€24/Mo) | 30% |
-| **Einfachheit** | ⭐⭐⭐⭐⭐ | ⭐⭐ | 25% |
-| **Skalierbarkeit** | ⭐⭐⭐⭐ | ⭐⭐⭐ | 15% |
-| **Kontrolle** | ⭐⭐ | ⭐⭐⭐⭐⭐ | 10% |
-| **Performance** | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 10% |
-| **Wartung** | ⭐⭐⭐⭐⭐ (keine) | ⭐⭐ (manuell) | 10% |
-
-**Gewinner: Netlify Functions** 🏆
-
-## 🎯 Empfehlung
-
-### Für dein Memoro-Projekt: **Netlify Functions**
-
-**Warum:**
-
-1. **Kostenlos** für Development und kleine Nutzung
-2. **Zero DevOps** - kein Server-Management
-3. **Automatisches Scaling** - zahle nur was du nutzt
-4. **5 Minuten Setup** vs. Stunden für VPS
-5. **Integriert** mit deinem bestehenden Netlify Hosting
-
-### Migrations-Pfad:
-
-```bash
-# Phase 1: Development (JETZT)
-Netlify Functions Free Tier
-- Test mit echten Usern
-- Kosten: €0 + Replicate
-
-# Phase 2: Growth (100+ Personas/Monat)
-Netlify Functions Pro
-- Kosten: €19/Monat + Replicate
-
-# Phase 3: Scale (1000+ Personas/Monat)
-Evaluiere Hetzner VPS für mehrere Services
-- Kosten: €24/Monat + Replicate
-```
-
-## 🚀 Quick Start mit Netlify Functions
-
-### 1. Erstelle Function-Datei:
-
-```bash
-mkdir -p netlify/functions
-touch netlify/functions/generate-persona-image.js
-```
-
-### 2. Kopiere Code von oben
-
-### 3. Environment Variables in Netlify:
-
-```
-Site Settings > Environment Variables:
-- REPLICATE_API_TOKEN
-- API_KEY
-```
-
-### 4. Deploy:
-
-```bash
-git add .
-git commit -m "Add Netlify Function for image generation"
-git push
-```
-
-### 5. Fertig! 🎉
-
-## 💡 Pro-Tipps
-
-### Bildoptimierung mit Netlify:
-
-```javascript
-// Nutze Netlify Image CDN für generierte Bilder
-const optimizedUrl = `/.netlify/images?url=${imageUrl}&w=1024&q=80`;
-```
-
-### Caching Strategy:
-
-```javascript
-// Cache Replicate responses in Netlify Blobs (Free)
-import { getStore } from '@netlify/blobs';
-
-const store = getStore('persona-images');
-await store.set(personaId, imageUrls);
-```
-
-### Rate Limiting:
-
-```javascript
-// Nutze Netlify Edge Functions für Rate Limiting
-export const config = {
- path: '/api/generate-image',
- rateLimit: {
- windowMs: 60000, // 1 minute
- max: 5, // 5 requests per minute
- },
-};
-```
-
-## 📈 Kosten-Beispielrechnung
-
-### Szenario: 50 Personas pro Monat
-
-| Service | Netlify Functions | Hetzner VPS |
-| --------------- | ----------------- | ----------- |
-| Hosting | €0 (Free Tier) | €24 |
-| Replicate | €0.50 | €0.50 |
-| Zeit-Investment | 5 Minuten | 2-4 Stunden |
-| **Total** | **€0.50** | **€24.50** |
-
-### Szenario: 500 Personas pro Monat
-
-| Service | Netlify Functions | Hetzner VPS |
-| --------- | ----------------- | ----------- |
-| Hosting | €19 (Pro) | €24 |
-| Replicate | €5 | €5 |
-| **Total** | **€24** | **€29** |
-
-## 🏁 Fazit
-
-**Netlify Functions ist die beste Wahl für dein Projekt:**
-
-✅ **Sofort einsatzbereit** - keine Server-Konfiguration
-✅ **Kosteneffizient** - zahle nur was du nutzt
-✅ **Automatisches Scaling** - keine Sorgen bei Traffic-Spitzen
-✅ **Integriert** - funktioniert nahtlos mit Astro
-✅ **Zukunftssicher** - einfache Migration wenn nötig
-
-**Hetzner VPS nur wenn:**
-
-- Du mehrere Backend-Services brauchst
-- Du volle Kontrolle willst
-- Du bereits DevOps-Erfahrung hast
-- Du >1000 Requests/Tag erwartest
-
----
-
-_Empfehlung: Starte mit Netlify Functions Free Tier und skaliere bei Bedarf._
diff --git a/apps-archived/memoro/apps/landing/services/admin-api/README.md b/apps-archived/memoro/apps/landing/services/admin-api/README.md
index 6ad101a68..57589e669 100644
--- a/apps-archived/memoro/apps/landing/services/admin-api/README.md
+++ b/apps-archived/memoro/apps/landing/services/admin-api/README.md
@@ -160,13 +160,13 @@ curl -X POST http://localhost:3001/api/personas/generate-images \
}'
```
-## 🚢 Production Deployment (Hetzner + Coolify)
+## 🚢 Production Deployment (Hetzner VPS)
1. Push to GitHub
-2. Connect repository in Coolify
+2. SSH to server and pull repository
3. Set environment variables
-4. Deploy as Docker Compose stack
-5. Configure custom domain & SSL
+4. Deploy with Docker Compose
+5. Configure custom domain & SSL via Nginx/Certbot
## 📄 License
diff --git a/apps-archived/nutriphi/apps/backend/.env.example b/apps-archived/nutriphi/apps/backend/.env.example
index 78644fc86..3ba103fd1 100644
--- a/apps-archived/nutriphi/apps/backend/.env.example
+++ b/apps-archived/nutriphi/apps/backend/.env.example
@@ -5,7 +5,6 @@ GEMINI_API_KEY=your-gemini-api-key-here
DATABASE_URL=postgresql://nutriphi:nutriphi_dev_password@localhost:5435/nutriphi
# Hetzner Object Storage (S3-compatible)
-# Create in Coolify Dashboard -> S3 Storages
S3_ENDPOINT=https://fsn1.your-objectstorage.com
S3_ACCESS_KEY_ID=your-access-key-id
S3_SECRET_ACCESS_KEY=your-secret-access-key
diff --git a/apps-archived/uload/.env.example b/apps-archived/uload/.env.example
index 2f7f0c241..53e2994c5 100644
--- a/apps-archived/uload/.env.example
+++ b/apps-archived/uload/.env.example
@@ -7,7 +7,7 @@ PUBLIC_APP_URL=https://ulo.ad
# Database (PostgreSQL)
# Development: Use local Docker container
DATABASE_URL=postgresql://uload:uload_dev_password_123@localhost:5432/uload_dev
-# Production: Use your Coolify/Hetzner PostgreSQL container
+# Production: Use your Hetzner PostgreSQL container
# DATABASE_URL=postgresql://uload:your_password@uload-db-prod:5432/uload_prod
# File Storage (Cloudflare R2)
@@ -30,7 +30,7 @@ PUBLIC_UMAMI_WEBSITE_ID=your-website-id
# AUTH_PROVIDER_CLIENT_ID=
# AUTH_PROVIDER_CLIENT_SECRET=
-# Coolify specific (if needed)
-# These will be set automatically by Coolify
-# COOLIFY_URL=
-# COOLIFY_TOKEN=
+# Docker Compose specific (if needed)
+# These can be set in your .env.production
+# DEPLOY_URL=
+# DEPLOY_TOKEN=
diff --git a/apps-archived/uload/Dockerfile b/apps-archived/uload/Dockerfile
index f013e41c9..74ccdcd58 100644
--- a/apps-archived/uload/Dockerfile
+++ b/apps-archived/uload/Dockerfile
@@ -1,6 +1,6 @@
# =============================================================================
# uload Web Application Dockerfile
-# Multi-stage build for production deployment with Coolify
+# Multi-stage build for production deployment
#
# IMPORTANT: This Dockerfile must be built from the MONOREPO ROOT, not from uload/
# docker build -f uload/Dockerfile -t uload-web .
diff --git a/apps-archived/uload/README.md b/apps-archived/uload/README.md
index bde7ba971..df527a5c0 100644
--- a/apps-archived/uload/README.md
+++ b/apps-archived/uload/README.md
@@ -12,7 +12,7 @@ A modern URL shortener and link management platform built with SvelteKit and Poc
- **Frontend:** SvelteKit 2.0 + Svelte 5
- **Backend:** PocketBase (embedded)
- **Styling:** Tailwind CSS 4.0
-- **Deployment:** Docker + Coolify on Hetzner VPS
+- **Deployment:** Docker Compose on Hetzner VPS
- **Database:** SQLite (via PocketBase)
## 📦 Features
@@ -59,7 +59,7 @@ docker-compose up --build
- [Deployment Guide](./DEPLOYMENT.md) - Complete Docker Compose deployment instructions
- [Lessons Learned](./DEPLOYMENT_LESSONS_LEARNED.md) - Troubleshooting and insights
- [Domain Setup](./DOMAIN_SETUP_ULO_AD.md) - ulo.ad configuration
-- [Coolify Setup](./COOLIFY_SETUP.md) - Detailed Coolify configuration
+- [Docker Setup](./DOCKER_SETUP.md) - Detailed Docker configuration
## 🔧 Environment Variables
@@ -95,23 +95,23 @@ uload/
## 🚢 Deployment
-The application is deployed on Hetzner VPS using Coolify with automatic deployments on push to main branch.
+The application is deployed on Hetzner VPS using Docker Compose with GitHub Actions for CI/CD.
```bash
# Commit and push to deploy
git add .
git commit -m "Update"
git push origin main
-# Coolify automatically deploys
+# GitHub Actions handles deployment
```
### Manual Deployment Steps:
-1. Set DNS A record to `91.99.221.179`
-2. Add domain in Coolify
+1. Set DNS A record to your server IP
+2. Configure Nginx reverse proxy
3. Update environment variables
-4. Enable SSL certificate
-5. Deploy application
+4. Enable SSL certificate via Certbot
+5. Deploy application with docker compose
## 📊 Monitoring
@@ -142,7 +142,7 @@ Common issues and solutions are documented in [DEPLOYMENT_LESSONS_LEARNED.md](./
For support, check:
-- Application logs in Coolify
+- Application logs via `docker compose logs`
- Health endpoint status
- PocketBase admin panel
diff --git a/apps-archived/uload/apps/web/.env.example b/apps-archived/uload/apps/web/.env.example
index 2f7f0c241..53e2994c5 100644
--- a/apps-archived/uload/apps/web/.env.example
+++ b/apps-archived/uload/apps/web/.env.example
@@ -7,7 +7,7 @@ PUBLIC_APP_URL=https://ulo.ad
# Database (PostgreSQL)
# Development: Use local Docker container
DATABASE_URL=postgresql://uload:uload_dev_password_123@localhost:5432/uload_dev
-# Production: Use your Coolify/Hetzner PostgreSQL container
+# Production: Use your Hetzner PostgreSQL container
# DATABASE_URL=postgresql://uload:your_password@uload-db-prod:5432/uload_prod
# File Storage (Cloudflare R2)
@@ -30,7 +30,7 @@ PUBLIC_UMAMI_WEBSITE_ID=your-website-id
# AUTH_PROVIDER_CLIENT_ID=
# AUTH_PROVIDER_CLIENT_SECRET=
-# Coolify specific (if needed)
-# These will be set automatically by Coolify
-# COOLIFY_URL=
-# COOLIFY_TOKEN=
+# Docker Compose specific (if needed)
+# These can be set in your .env.production
+# DEPLOY_URL=
+# DEPLOY_TOKEN=
diff --git a/apps-archived/uload/apps/web/src/routes/test-redis/+server.ts b/apps-archived/uload/apps/web/src/routes/test-redis/+server.ts
index 6b96d8191..04e67a55e 100644
--- a/apps-archived/uload/apps/web/src/routes/test-redis/+server.ts
+++ b/apps-archived/uload/apps/web/src/routes/test-redis/+server.ts
@@ -183,7 +183,7 @@ export const GET: RequestHandler = async () => {
next_steps: [
'1. Add REDIS_URL environment variable to your main app',
'2. Format: redis://username:password@host:port',
- '3. Use the exact Redis service name from Coolify',
+ '3. Use the exact Redis service name from Docker Compose',
'4. Copy credentials from Redis service configuration',
],
},
diff --git a/apps-archived/uload/docker-compose.prod.yml b/apps-archived/uload/docker-compose.prod.yml
index 33485d846..db5d17034 100644
--- a/apps-archived/uload/docker-compose.prod.yml
+++ b/apps-archived/uload/docker-compose.prod.yml
@@ -1,8 +1,7 @@
# =============================================================================
# uload Docker Compose - Production (standalone)
# =============================================================================
-# Use this for manual production deployment without Coolify.
-# For Docker Compose deployments, use docker-compose.coolify.yml instead.
+# Use this for production deployment with Docker Compose.
# =============================================================================
services:
diff --git a/apps-archived/uload/docs/ADMIN_ACCESS_GUIDE.md b/apps-archived/uload/docs/ADMIN_ACCESS_GUIDE.md
deleted file mode 100644
index ec5559ac1..000000000
--- a/apps-archived/uload/docs/ADMIN_ACCESS_GUIDE.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# 🔑 Admin Panel Zugang - Schnellanleitung
-
-## Der EINFACHSTE Weg:
-
-### 1️⃣ **Coolify Terminal nutzen**
-
-1. Login in Coolify: https://coolify.ulo.ad (oder deine Coolify-URL)
-2. Navigiere zu: **Applications → uLoad → Terminal**
-3. Führe aus:
-
-```bash
-# Admin-Account erstellen
-./pocketbase superuser create
-
-# Eingabe:
-# Email: admin@ulo.ad
-# Password: [sicheres Passwort]
-```
-
-### 2️⃣ **SSH Tunnel einrichten** (von deinem Computer)
-
-```bash
-# Windows (PowerShell/Terminal):
-ssh -L 8090:localhost:8090 root@91.99.221.179
-
-# Mac/Linux:
-ssh -L 8090:localhost:8090 root@91.99.221.179
-
-# Passwort eingeben (dein Server-Root-Passwort)
-```
-
-### 3️⃣ **Admin Panel öffnen**
-
-Browser öffnen und navigieren zu:
-
-```
-http://localhost:8090/_/
-```
-
-Mit den Zugangsdaten aus Schritt 1 einloggen.
-
----
-
-## Alternative: Temporärer Web-Zugang
-
-**⚠️ NUR für initiale Einrichtung!**
-
-1. In Coolify → Configuration → Advanced → Custom Nginx:
-
-```nginx
-location /temp-admin/ {
- allow 91.99.221.179; # DEINE IP hier!
- deny all;
-
- rewrite ^/temp-admin/(.*)$ /$1 break;
- proxy_pass http://127.0.0.1:8090;
-}
-```
-
-2. Speichern & Redeploy
-
-3. Zugriff über: `https://ulo.ad/temp-admin/_/`
-
-4. **WICHTIG**: Nach Setup wieder entfernen!
-
----
-
-## Was du im Admin Panel tun solltest:
-
-1. ✅ **Admin-Account sichern**
- - Starkes Passwort setzen
- - 2FA aktivieren (wenn verfügbar)
-
-2. ✅ **Collections prüfen**
- - `users` → Username-Feld vorhanden?
- - `links` → use_username Feld vorhanden?
- - `folders` → Struktur korrekt?
-
-3. ✅ **Test-User anlegen**
- - Username: till
- - Email: deine@email.de
- - Passwort setzen
-
-4. ✅ **API Rules kontrollieren**
- - users: Öffentliche Profile erlaubt?
- - links: Richtige Berechtigungen?
-
----
-
-## Troubleshooting:
-
-**Problem: SSH Connection refused**
-
-```bash
-# Prüfe ob SSH auf dem Server läuft
-ssh root@91.99.221.179 "echo SSH works"
-```
-
-**Problem: localhost:8090 zeigt nichts**
-
-```bash
-# Prüfe ob PocketBase läuft (im SSH):
-curl http://localhost:8090/api/health
-```
-
-**Problem: Permission denied im Terminal**
-
-```bash
-# Als root ausführen:
-sudo su
-cd /app
-./pocketbase superuser create
-```
-
----
-
-## Sicherheits-Checkliste:
-
-- [ ] Admin-Account mit starkem Passwort
-- [ ] SSH-Key statt Passwort für Server
-- [ ] Keine öffentliche Admin-Route
-- [ ] Regelmäßige Backups eingerichtet
-- [ ] Monitoring aktiviert
-
-Der SSH-Tunnel ist die sicherste Methode!
diff --git a/apps-archived/uload/docs/COMPLETE-POCKETBASE-DEV-SETUP.md b/apps-archived/uload/docs/COMPLETE-POCKETBASE-DEV-SETUP.md
index 3b59f0f6f..5dc20b2b1 100644
--- a/apps-archived/uload/docs/COMPLETE-POCKETBASE-DEV-SETUP.md
+++ b/apps-archived/uload/docs/COMPLETE-POCKETBASE-DEV-SETUP.md
@@ -451,8 +451,8 @@ NODE_ENV=development npm run dev
| Feature | Development | Production |
|---------|------------|------------|
| PocketBase URL | http://localhost:8090 | https://pb.ulo.ad |
-| Database | Local SQLite | Cloud (Coolify) |
-| Redis | localhost:6379 | Coolify Redis |
+| Database | Local SQLite | Cloud (Docker) |
+| Redis | localhost:6379 | Docker Redis |
| Stripe | Test keys | Live keys |
| SSL | No (HTTP) | Yes (HTTPS) |
| Auth | Test accounts | Real users |
diff --git a/apps-archived/uload/docs/DEPLOYMENT.md b/apps-archived/uload/docs/DEPLOYMENT.md
deleted file mode 100644
index 397b600ca..000000000
--- a/apps-archived/uload/docs/DEPLOYMENT.md
+++ /dev/null
@@ -1,441 +0,0 @@
-# Deployment Guide: Hetzner VPS mit Coolify
-
-## Übersicht
-
-Diese Anleitung beschreibt das Deployment einer SvelteKit + PocketBase Anwendung auf einem Hetzner VPS mit Coolify. Die Lösung kombiniert Frontend und Backend in einem einzelnen Docker Container für einfaches Deployment und Management.
-
-## Voraussetzungen
-
-- Hetzner VPS mit installiertem Coolify
-- GitHub Repository mit dem Projekt
-- Domain oder Subdomain (optional, aber empfohlen)
-
-## Architektur
-
-```
-┌─────────────────────────────────────┐
-│ Hetzner VPS │
-│ │
-│ ┌─────────────────────────────┐ │
-│ │ Docker Compose │ │
-│ │ │ │
-│ │ ┌───────────────────────┐ │ │
-│ │ │ Docker Container │ │ │
-│ │ │ │ │ │
-│ │ │ ┌─────────────────┐ │ │ │
-│ │ │ │ SvelteKit App │ │ │ │
-│ │ │ │ (Port 3000) │ │ │ │
-│ │ │ └─────────────────┘ │ │ │
-│ │ │ │ │ │
-│ │ │ ┌─────────────────┐ │ │ │
-│ │ │ │ PocketBase │ │ │ │
-│ │ │ │ (Port 8090) │ │ │ │
-│ │ │ └─────────────────┘ │ │ │
-│ │ └───────────────────────┘ │ │
-│ └─────────────────────────────┘ │
-└─────────────────────────────────────┘
-```
-
-## Schritt 1: Dockerfile erstellen
-
-Erstelle eine `Dockerfile` im Root-Verzeichnis des Projekts:
-
-```dockerfile
-# Build Stage
-FROM node:20-alpine AS builder
-
-WORKDIR /app
-
-# Dependencies installieren
-COPY package*.json ./
-RUN npm ci --only=production
-
-# Dev dependencies für Build
-COPY package*.json ./
-RUN npm ci
-
-# App kopieren und bauen
-COPY . .
-RUN npm run build
-
-# Production Stage
-FROM node:20-alpine
-
-# System dependencies
-RUN apk add --no-cache \
- ca-certificates \
- wget \
- supervisor
-
-WORKDIR /app
-
-# PocketBase herunterladen
-RUN wget https://github.com/pocketbase/pocketbase/releases/download/v0.26.2/pocketbase_0.26.2_linux_amd64.zip \
- && unzip pocketbase_0.26.2_linux_amd64.zip \
- && rm pocketbase_0.26.2_linux_amd64.zip \
- && chmod +x pocketbase
-
-# Node.js App kopieren
-COPY --from=builder /app/build build/
-COPY --from=builder /app/package*.json ./
-COPY --from=builder /app/node_modules node_modules/
-
-# PocketBase Daten (falls vorhanden)
-COPY backend/pb_data /app/pb_data
-
-# Supervisor config
-RUN mkdir -p /etc/supervisor/conf.d
-COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
-
-# Ports
-EXPOSE 3000 8090
-
-# Start mit Supervisor
-CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
-```
-
-## Schritt 2: Supervisor Konfiguration
-
-Erstelle eine `supervisord.conf` Datei für das Process Management:
-
-```ini
-[supervisord]
-nodaemon=true
-user=root
-logfile=/var/log/supervisor/supervisord.log
-pidfile=/var/run/supervisord.pid
-
-[program:pocketbase]
-command=/app/pocketbase serve --http=0.0.0.0:8090 --dir=/app/pb_data
-directory=/app
-autostart=true
-autorestart=true
-stdout_logfile=/var/log/supervisor/pocketbase.log
-stderr_logfile=/var/log/supervisor/pocketbase_err.log
-environment=HOME="/app"
-
-[program:sveltekit]
-command=node build
-directory=/app
-autostart=true
-autorestart=true
-stdout_logfile=/var/log/supervisor/sveltekit.log
-stderr_logfile=/var/log/supervisor/sveltekit_err.log
-environment=NODE_ENV="production",PORT="3000",ORIGIN="https://your-domain.com",PUBLIC_POCKETBASE_URL="http://localhost:8090"
-```
-
-## Schritt 3: Environment Variables
-
-Erstelle eine `.env.production` Datei (nicht ins Git committen!):
-
-```bash
-# SvelteKit
-PORT=3000
-ORIGIN=https://your-domain.com
-NODE_ENV=production
-
-# PocketBase Connection
-PUBLIC_POCKETBASE_URL=http://localhost:8090
-
-# Optional: PocketBase Admin
-POCKETBASE_ADMIN_EMAIL=admin@example.com
-POCKETBASE_ADMIN_PASSWORD=your-secure-password
-```
-
-## Schritt 4: Docker Compose (für lokales Testen)
-
-Erstelle eine `docker-compose.yml` für lokale Tests:
-
-```yaml
-version: '3.8'
-
-services:
- app:
- build: .
- ports:
- - '3000:3000'
- - '8090:8090'
- volumes:
- - pb_data:/app/pb_data
- environment:
- - NODE_ENV=production
- - PORT=3000
- - ORIGIN=http://localhost:3000
- - PUBLIC_POCKETBASE_URL=http://localhost:8090
- restart: unless-stopped
-
-volumes:
- pb_data:
- driver: local
-```
-
-Lokaler Test:
-
-```bash
-docker-compose up --build
-```
-
-## Schritt 5: Deployment mit Coolify
-
-### 5.1 Repository vorbereiten
-
-1. Committe alle Änderungen:
-
-```bash
-git add Dockerfile supervisord.conf
-git commit -m "Add Docker deployment configuration"
-git push origin main
-```
-
-### 5.2 Coolify Konfiguration
-
-1. **Login** in Coolify Dashboard
-
-2. **Neue Ressource erstellen:**
- - Klicke auf "New Resource"
- - Wähle "Application"
- - Source: "GitHub"
-
-3. **Repository verbinden:**
- - Repository URL eingeben
- - Branch: `main`
- - Auto-Deploy aktivieren (optional)
-
-4. **Build Configuration:**
- - Build Pack: `Dockerfile`
- - Dockerfile Path: `./Dockerfile`
- - Build Context: `.`
-
-5. **Environment Variables:**
-
- ```
- NODE_ENV=production
- PORT=3000
- ORIGIN=https://your-domain.com
- PUBLIC_POCKETBASE_URL=https://your-domain.com/api
- ```
-
-6. **Networking:**
- - Port Mapping: `3000:3000`
- - Zusätzlich für PocketBase API: `8090:8090`
- - Domain: `your-domain.com`
- - SSL: Automatisch via Let's Encrypt
-
-7. **Storage (wichtig für Daten-Persistenz):**
- - Volume hinzufügen:
- - Container Path: `/app/pb_data`
- - Host Path: `/data/your-app/pb_data`
- - Type: `Bind Mount`
-
-### 5.3 Nginx Proxy Konfiguration (in Coolify)
-
-Füge folgende Proxy-Regeln hinzu:
-
-```nginx
-# SvelteKit App
-location / {
- proxy_pass http://localhost:3000;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection 'upgrade';
- proxy_set_header Host $host;
- proxy_cache_bypass $http_upgrade;
-}
-
-# PocketBase API
-location /api/ {
- rewrite ^/api/(.*) /$1 break;
- proxy_pass http://localhost:8090;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection 'upgrade';
- proxy_set_header Host $host;
-}
-
-# PocketBase Admin UI
-location /_/ {
- proxy_pass http://localhost:8090;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection 'upgrade';
- proxy_set_header Host $host;
-}
-```
-
-## Schritt 6: Deployment durchführen
-
-1. **Initial Deployment:**
- - In Coolify: "Deploy" Button klicken
- - Build Logs überwachen
- - Warten bis Status "Running" ist
-
-2. **Domain Setup:**
- - DNS A-Record auf Server IP zeigen
- - In Coolify SSL aktivieren
- - Force HTTPS aktivieren
-
-3. **PocketBase Admin Setup:**
- - Navigiere zu `https://your-domain.com/_/`
- - Admin Account erstellen
- - Collections konfigurieren
-
-## Schritt 7: Monitoring & Wartung
-
-### Logs einsehen
-
-In Coolify Dashboard:
-
-- Application → Logs
-- Real-time Logs für beide Services
-
-### Backup Strategie
-
-1. **Automatisches Backup mit Coolify:**
- - Settings → Backups
- - Schedule: Täglich um 3:00 Uhr
- - Retention: 7 Tage
-
-2. **Manuelles PocketBase Backup:**
-
-```bash
-# SSH zum Server
-ssh user@your-server.com
-
-# Backup erstellen
-docker exec