-
v0.1.2 Stable
released this
2025-09-10 14:28:28 +02:00 | 8 commits to main since this releaseFurt API Gateway v0.1.2
Production-Ready Multi-Tenant API Gateway in Pure Lua
Furt v0.1.2 ist die erste produktionsreife Version des minimalistischen API-Gateways für digitale Souveränität. Der gesamte Code umfasst unter 1000 Zeilen Lua und ist damit vollständig nachvollziehbar und kontrollierbar.
🎯 Key Features
Multi-Tenant Architecture
- Ein Gateway, viele Websites: Jeder API-Key erhält isolierte Konfiguration
- Tenant-spezifische Mail-Konfiguration: Eigene SMTP-Server und Empfänger pro Client
- Granulare Berechtigungen: API-Key-basierte Authentifizierung mit IP-Beschränkungen
Mail Service Integration
- Formular-zu-E-Mail-Weiterleitung: Vollständige Kontaktformular-Integration
- Input-Validation: Schutz vor Spam und ungültigen Daten
- Subject-Präfixe: Tenant-spezifische E-Mail-Kennzeichnung
- Request-Tracking: Eindeutige Request-IDs für Debugging
Production Features
- Rate Limiting: Konfigurierbare Limits pro API-Key (Default: 60 RPM)
- CORS Support: Nahtlose Frontend-Integration
- Health Monitoring:
/healthEndpoint mit merkwerk-Integration - Structured Error Codes: Programmatische Fehlerbehandlung
Distribution Support
- Multi-Platform: OpenBSD, Debian, Arch Linux
- Modulares Installationssystem: 6-Phasen helper scripts
- Service Integration: systemd (Linux) und rc.d (OpenBSD)
- Reverse Proxy Ready: Apache, nginx, OpenBSD httpd, relayd
📦 Installation
Package Installation (Empfohlen)
curl -OJ https://smida.dragons-at-work.de/api/packages/DAW/generic/furt-api-gateway/0.1.2/furt-api-gateway-v0.1.2.tar.gz tar xzf furt-api-gateway-v0.1.2.tar.gz cd furt-api-gateway-v0.1.2 sudo ./install.shGit Installation
git clone https://smida.dragons-at-work.de/DAW/furt.git cd furt sudo ./install.shUpgrade von früheren Versionen
sudo ./install.sh --upgrade🔧 Quick Configuration
Minimal Setup
# Config-Pfad (abhängig vom OS) # OpenBSD: /usr/local/etc/furt/furt.conf # Linux: /etc/furt/furt.conf # API-Key erstellen api_key = "your-website-key" key_name = "your-website" permissions = "mail:send" # SMTP-Konfiguration smtp_server = "mail.example.com" smtp_port = 587 smtp_username = "noreply@example.com" smtp_password = "your-password" to_address = "contact@example.com" from_address = "noreply@example.com"Service starten
# OpenBSD doas rcctl start furt # Linux sudo systemctl start furt # Health Check curl http://localhost:7811/health🚀 API Usage
Mail senden
curl -X POST https://api.example.com/v1/mail/send \ -H "Content-Type: application/json" \ -H "X-API-Key: your-website-key" \ -d '{ "name": "John Doe", "email": "john@example.com", "subject": "Contact Request", "message": "Hello, I would like to get in touch." }'Hugo-Integration
{{< furt-contact-form api-endpoint="https://api.example.com/v1/mail/send" api-key="your-website-key" success-url="/contact/thanks/" >}}📋 Available Endpoints
Endpoint Method Auth Description /healthGET None System health check /v1/mail/sendPOST Required Mail service /auth/statusGET Required Auth verification 📚 Documentation
Vollständige API-Dokumentation verfügbar im Wiki:
- API Documentation - Vollständige API-Referenz
- Mail Service API - Detaillierte Mail-Service-Dokumentation
- Health Endpoint - Monitoring und Diagnostics
- Installation Guide - Vollständige Installationsanleitung
🔒 Security Features
- API-Key Authentication: Granulare Berechtigungen pro Client
- IP Allowlisting: Zusätzliche Sicherheit durch IP-Beschränkungen
- Input Validation: Schutz vor Injection-Attacks und Spam
- Rate Limiting: Schutz vor Missbrauch und DoS-Attacks
- Isolation: Vollständige Tenant-Trennung in Multi-Client-Setups
🛠️ Technical Details
- Language: Pure Lua 5.1 (unter 1000 Zeilen Code)
- Dependencies: Minimale externe Abhängigkeiten
- Memory Usage: Unter 10MB Speicherverbrauch
- Performance: Bis 1000+ Requests/Sekunde bei geringer CPU-Last
- Monitoring: merkwerk-Integration für präzises Version-Tracking
🔄 Migration & Compatibility
- Backward Compatible: Vollständig kompatibel mit bestehenden Konfigurationen
- Upgrade Path: Nahtlose Updates von Development-Versionen
- Config Migration: Automatische Konfigrations-Validierung und -Migration
🐛 Known Limitations
- Service Discovery: Aktuell nur integrierte Services (Service-Discovery für v0.2.x geplant)
- Configuration API: Tenant-Konfiguration nur via Config-Datei (API geplant)
- WebSocket Support: Nicht implementiert (auf Anfrage möglich)
🗺️ Roadmap
- v0.2.x: Service-Discovery für eigenständige Services (sagjan, lengan, etc.)
- v0.3.x: Configuration API für dynamische Tenant-Verwaltung
- v1.0.x: Federation zwischen Gateway-Instanzen
📞 Support
- Repository: Forgejo
- Issues: Issue Tracker
- Wiki: Documentation
- License: ISC
🏆 Production Ready
Furt v0.1.2 läuft bereits produktiv für die Dragons@Work Website und verarbeitet täglich Kontaktformular-Anfragen. Die Architektur ist bewährt, stabil und bereit für den Einsatz in kritischen Umgebungen.
Dragons@Work Digital Sovereignty Project
Building truly independent, controllable technology