Home hinzugefügt

michael 2025-08-16 20:36:58 +02:00
commit c0feed3ab8

111
Home.md Normal file

@ -0,0 +1,111 @@
# Furt API Gateway
**Pure Lua HTTP-Server für digitale Souveränität**
Furt ist ein minimalistisches, multi-tenant API-Gateway basierend auf Lua 5.1. Der gesamte Code ist in unter 1000 Zeilen Lua geschrieben und damit vollständig nachvollziehbar.
## Features
- **Multi-Tenant Mail-Routing** - Ein Gateway für viele Websites
- **API-Key-basierte Authentifizierung** - Granulare Berechtigungen pro Client
- **Rate Limiting** - Schutz vor Missbrauch
- **CORS-Support** - Frontend-Integration
- **nginx-style Konfiguration** - Vertraute Syntax für Admins
- **Distribution-agnostic** - OpenBSD, Debian, Arch, FreeBSD Support
## Quick Start
### 1. Installation
```bash
# Git-basierte Installation (empfohlen für Development)
git clone https://github.com/dragons-at-work/furt.git
cd furt
./install.sh
# Package-basierte Installation (empfohlen für Production)
curl -O https://releases.../furt-api-gateway-v1.0.0.tar.gz
tar xzf furt-api-gateway-v1.0.0.tar.gz
cd furt-api-gateway-v1.0.0
./install.sh
```
### 2. Basis-Konfiguration
```bash
# Config-Template kopieren
# BSD-Systeme: Packages gehören nach /usr/local/etc/ (klare Trennung base/ports)
doas cp config/furt.conf.example /usr/local/etc/furt/furt.conf # OpenBSD/FreeBSD
# Linux-Systeme: Alles nach /etc/ (einheitlicher Namespace)
sudo cp config/furt.conf.example /etc/furt/furt.conf # Debian/Arch
# API-Keys und SMTP konfigurieren
# doas = OpenBSD-Standard (minimaler sudo-Ersatz, weniger Angriffsfläche)
doas nano /usr/local/etc/furt/furt.conf # OpenBSD/FreeBSD
# sudo = Linux-Standard (komplexer, aber bekannt)
sudo nano /etc/furt/furt.conf # Debian/Arch
```
### 3. Service starten
```bash
# BSD-Systeme: Native Service-Management (kein systemd)
doas rcctl enable furt && doas rcctl start furt # OpenBSD (rcctl = OpenBSD service manager)
doas service furt enable && doas service furt start # FreeBSD (rc.conf-basiert)
# Linux-Systeme: systemd als Standard
# systemd = umfangreich aber einheitlich über Distributionen
sudo systemctl enable furt && sudo systemctl start furt
```
### 4. Testen
```bash
curl http://localhost:8080/health
```
## Navigation
### Installation & Setup
- **[Installation](Installation.md)** - Vollständige Installationsanleitung
- **[Konfiguration](Configuration.md)** - Config-System Dokumentation
- **[Troubleshooting](Troubleshooting.md)** - Häufige Probleme
### Development
- **[Development Setup](Development.md)** - Lokale Entwicklungsumgebung
- **[API Documentation](API-Documentation.md)** - Endpunkte und Verwendung
- **[Contributing](Contributing.md)** - Beitrag zum Projekt
### Current Status
**v1.0.0 Features:**
- ✅ Mail-Service (`POST /v1/mail/send`)
- ✅ Health-Check (`GET /health`)
- ✅ API-Key Authentication
- ✅ Multi-Tenant Configuration
- ✅ Rate Limiting
- ✅ CORS Support
**Roadmap:**
- 🔄 Comment-Service (sagjan integration)
- 📋 Project-Management-Service (lengan)
- 💳 Payment-Service (wixlaz)
## Architecture
Furt folgt dem **Service-Separation-Prinzip**:
- **furt** = Service-Discovery-Coordinator
- **sagjan** = Comments (separate namespace)
- **formular2mail** = Mail-Routing (separate namespace)
Jeder Service behält seine eigene Konfiguration, furt koordiniert nur die Discovery und das Routing.
**Technische Basis:**
- **Lua 5.1** als Implementierungssprache
- **nginx-style Konfiguration** für vertraute Admin-Workflows
- **Multi-OS Support** über distribution-spezifische Package-Layouts
- **Socket-basierter HTTP-Server** ohne externe Dependencies
---
**Projekt:** [Dragons@Work Digital Sovereignty](https://dragons-at-work.de)
**Repository:** [Forgejo](https://smida.dragons-at-work.de/DAW/furt) | [GitHub Mirror](https://github.com/dragons-at-work/furt)
**License:** Apache 2.0