- Replace Go-based architecture with C+Lua hybrid approach - Eliminate Google-controlled dependencies per tech-reference analysis - Add master strategy document for 18-24 month migration roadmap - Define modular architecture with <200 lines per script constraint - Specify Pure Lua → C+Lua → OpenBSD migration path - Document SMTP integration for mail.dragons-at-work.de Files modified: - devdocs/KONZEPT.md (complete rewrite) - devdocs/MASTER_STRATEGY.md (new) Resolves concept phase, enables Week 1 Lua implementation.
8 KiB
8 KiB
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)
- 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
- Verstehbarkeit vor Features
- Kleine Module vor Monolithen
- Eigene Kontrolle vor Convenience
- Langfristig stabil vor "Modern"
- 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)
-- 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
-- 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
-- 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
{{< furt-mail
api-endpoint="https://api.dragons-at-work.de/v1/mail/send"
api-key="hugo-frontend-key"
success-url="/contact/thanks/"
>}}
Progressive Enhancement
<!-- Form funktioniert ohne JavaScript -->
<form method="POST" action="/v1/mail/send">
<input name="name" required>
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button type="submit">Senden</button>
</form>
<!-- JavaScript für UX-Enhancement -->
<script>
// AJAX-Submit, aber Fallback auf normale Form
</script>
📈 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
- Lua-Dependencies installieren
- Basic HTTP-Server (50-100 Zeilen)
- Request-Parsing (POST-Body, Headers)
- Response-Formatting (JSON)
- Error-Handling (Basic)
Session-Deliverable
src/main.lua- Funktionierender HTTP-Servertest/test_http.lua- Basis-Testsscripts/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.