# Furt: Master-Strategie & Technologie-Migration **Erstellt:** 17. Juni 2025 **Letzte Aktualisierung:** 17. Juni 2025 **Version:** 1.0 **Verantwortlich:** DAW-Team **Dateipfad:** devdocs/MASTER_STRATEGY.md ## Zweck dieses Dokuments Dieses Dokument definiert die langfristige Technologie-Migrationsstrategie für das gesamte Dragons@Work Ökosystem, mit Furt als erstem Schritt zur vollständigen digitalen Souveränität. ## 🎯 Gesamtvision: Komplette Tech-Souveränität ### Ausgangssituation (Juni 2025) - **Server:** Ubuntu + Apache + ISPConfig - **Website:** Hugo + digitalindependent Theme - **Planned API:** Go-basiertes Furt (noch nicht implementiert) - **Dependencies:** Viele Corporate-controlled Tools ### Zielsituation (18-24 Monate) - **Server:** OpenBSD + httpd + eigene Scripts - **Website:** vefari (eigener Generator) + eigenes Theme - **API:** C + Lua Furt (vollständig souverän) - **Dependencies:** Minimal, alle selbst-kontrolliert ## 📋 Migration-Roadmap ### Phase 1: Furt API-Grundlagen (4 Wochen) **Woche 1: Mail-Service (Pure Lua)** - [x] Entscheidung: Pure Lua statt Go - [ ] HTTP-Server (lua-socket) - [ ] Mail-Handler (SMTP zu Postfix) - [ ] API-Key-Auth - [ ] Hugo-Integration (POST-based) **Woche 2-3: Service-Expansion** - [ ] Comment-Service (sagjan-Integration) - [ ] Health-Checks - [ ] Error-Handling - [ ] Basic Logging **Woche 4: Production-Ready** - [ ] HTTPS (Lua-SSL) - [ ] Systemd-Integration - [ ] Monitoring - [ ] Documentation ### Phase 2: C-Integration (4-6 Wochen) **Performance-Layer:** - [ ] C-HTTP-Server (< 500 Zeilen) - [ ] C ↔ Lua Bridge - [ ] Memory-Management - [ ] Security-Hardening ### Phase 3: Infrastructure-Migration (6-12 Monate) **Server-Migration:** - [ ] OpenBSD-Evaluation - [ ] ISPConfig → eigene Scripts - [ ] Apache → OpenBSD httpd - [ ] SSL-Management ohne Corporate-Tools ### Phase 4: Website-Migration (3-6 Monate parallel) **vefari-Entwicklung:** - [ ] Hugo-Kompatibilität (Templates/Content) - [ ] Markdown-Processing - [ ] Multi-Language-Support - [ ] Build-System ### Phase 5: Complete Independence (langfristig) **Advanced Features:** - [ ] Eigener Browser (Exploration) - [ ] Föderation zwischen Furt-Instanzen - [ ] Advanced Services (Shop, Calendar, etc.) ## 🏗️ Architektur-Prinzipien ### Modularität (Anti-Monolith) ``` Jedes Script/Modul: < 200 Zeilen Jede Funktion: < 50 Zeilen Jede Datei: Ein klarer Zweck Keine 800-Zeilen-Monster! ``` ### Technologie-Auswahl nach Tech-Reference ✅ **Erlaubt (Souverän):** - C + GCC/musl - Lua (PUC-Rio University) - LMDB (Howard Chu/Symas) - OpenBSD httpd ❌ **Vermeiden (Corporate-Controlled):** - Go (Google) - Node.js (Corporate-Oligopol) - Apache (Corporate-finanziert) - MariaDB (VC-finanziert) ⚠️ **Temporary OK (Migration-Pfad):** - Ubuntu (→ OpenBSD) - Apache (→ OpenBSD httpd) ### Development-Prinzipien 1. **Verstehbarkeit** vor Features 2. **Kleine Module** vor Monolithen 3. **Eigene Kontrolle** vor Convenience 4. **Langfristig stabil** vor "Modern" 5. **Testing** für alles ## 🔧 Technical Implementation Strategy ### Furt-Architecture (Final) ``` ┌─────────────────┐ │ OpenBSD httpd │ (SSL-Terminierung) │ (Port 443) │ └─────────┬───────┘ │ ┌─────────▼───────┐ │ C-HTTP-Gateway │ (Routing, Auth) │ (Port 8080) │ └─────────┬───────┘ │ ┌─────▼─────┐ ┌─────────┐ ┌─────────┐ │ Lua-Mail │ │Lua-Comm│ │Lua-Shop │ │(Port 8081)│ │(8082) │ │(8083) │ └───────────┘ └─────────┘ └─────────┘ ``` ### Service-Pattern (Standardisiert) ```lua -- services/template.lua local service = { name = "service_name", port = 808X, -- Standard Interface handle_request = function(self, request) -- Input-Validation (< 20 Zeilen) -- Business-Logic (< 50 Zeilen) -- Response-Formatting (< 10 Zeilen) end, health_check = function(self) -- Health-Logic (< 10 Zeilen) end } ``` ### Testing-Strategy ``` tests/ ├── unit/ # Lua-Modul-Tests │ ├── test_mail.lua │ └── test_auth.lua ├── integration/ # Service-Tests │ └── test_api.lua ├── system/ # End-to-End-Tests │ └── test_hugo.lua └── performance/ # Load-Tests └── test_load.lua ``` ## 📊 SMTP-Configuration (Week 1) ### Postfix-Integration ```lua -- config/mail.lua return { smtp = { server = "mail.dragons-at-work.de", port = 465, username = os.getenv("MAIL_USERNAME"), -- xxxx@dragons-at-work.de password = os.getenv("MAIL_PASSWORD"), security = "ssl/tls", from = "noreply@dragons-at-work.de", to = "michael@dragons-at-work.de" } } ``` ### Security-Pattern ```lua -- Nie Passwörter in Code! -- Environment-Variables für Secrets -- API-Keys in LMDB -- IP-Allowlisting für Hugo ``` ## 🚀 Hugo-Integration (Week 1) ### Shortcode-Pattern ```hugo {{< furt-mail api-endpoint="https://api.dragons-at-work.de/v1/mail/send" api-key="hugo-frontend-key" success-url="/contact/thanks/" >}} ``` ### Progressive Enhancement ```html
``` ## 📈 Success-Metrics ### Week 1 Success-Criteria - [ ] HTTP-Request funktioniert - [ ] Mail wird via SMTP gesendet - [ ] API-Key-Auth schützt Endpoint - [ ] Hugo-Form sendet erfolgreich - [ ] < 100ms Response-Time - [ ] Jedes Modul < 200 Zeilen ### Phase 1 Success-Criteria - [ ] Production-ready Mail-Service - [ ] Comment-Service implementiert - [ ] HTTPS mit Lua-SSL - [ ] Systemd-Service läuft stabil - [ ] Documentation komplett ### Long-term Success-Criteria - [ ] Komplette Ubuntu → OpenBSD Migration - [ ] Hugo → vefari Migration - [ ] < 10 MB Total Memory für alle Services - [ ] Zero Corporate-Dependencies ## 🔄 Migration-Safety ### Parallel-Betrieb-Strategie ``` Week 1-4: Lua-Furt || Apache (parallel) Month 2-6: C+Lua-Furt || Apache (parallel) Month 6+: C+Lua-Furt || OpenBSD-httpd (parallel) ``` ### Rollback-Plan - Jede Migration-Phase kann rückgängig gemacht werden - Hugo bleibt funktionsfähig während vefari-Entwicklung - Apache bleibt als Fallback während OpenBSD-Migration ### Testing vor Production - Alle Changes erst auf Testumgebung - Graduelle Umstellung Service für Service - Monitoring für Performance-Regression ## 📝 Documentation-Strategy ### Development-Docs - [ ] **Installation-Guide** (Linux → OpenBSD) - [ ] **API-Documentation** (OpenAPI-Style) - [ ] **Service-Development-Guide** (Lua-Pattern) - [ ] **Testing-Guide** (Unit + Integration) ### User-Docs - [ ] **Hugo-Integration-Guide** - [ ] **vefari-Migration-Guide** - [ ] **Self-Hosting-Guide** ### Philosophy-Docs - [ ] **Tech-Souveränität-Rationale** - [ ] **Corporate-Capture-Analysis** - [ ] **Long-term-Vision** ## 🎯 Next Session Preparation ### Session-Focus: Lua-HTTP-Server Start 1. **Lua-Dependencies** installieren 2. **Basic HTTP-Server** (50-100 Zeilen) 3. **Request-Parsing** (POST-Body, Headers) 4. **Response-Formatting** (JSON) 5. **Error-Handling** (Basic) ### Session-Deliverable - `src/main.lua` - Funktionierender HTTP-Server - `test/test_http.lua` - Basis-Tests - `scripts/start.sh` - Start-Script ### Session-Success-Metric - `curl -X POST http://localhost:8080/test` → HTTP 200 Response --- **Diese Master-Strategie dient als Kompass für alle technischen Entscheidungen und stellt sicher, dass jeder kleine Schritt zum großen Ziel der technologischen Souveränität beiträgt.**