Home aktualisiert
parent
21469360db
commit
1d5dddcf5f
1 changed files with 117 additions and 58 deletions
173
Home.md
173
Home.md
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
**Pure Lua HTTP-Server für digitale Souveränität**
|
**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.
|
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 und kontrollierbar.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|
@ -11,92 +11,135 @@ Furt ist ein minimalistisches, multi-tenant API-Gateway basierend auf Lua 5.1. D
|
||||||
- **Rate Limiting** - Schutz vor Missbrauch
|
- **Rate Limiting** - Schutz vor Missbrauch
|
||||||
- **CORS-Support** - Frontend-Integration
|
- **CORS-Support** - Frontend-Integration
|
||||||
- **nginx-style Konfiguration** - Vertraute Syntax für Admins
|
- **nginx-style Konfiguration** - Vertraute Syntax für Admins
|
||||||
- **Distribution-agnostic** - OpenBSD, Debian, Arch, FreeBSD Support
|
- **Distribution-agnostic** - OpenBSD, Debian, Arch Support
|
||||||
|
|
||||||
## Quick Start
|
## Installation
|
||||||
|
|
||||||
### 1. Installation
|
Furt bietet drei Installationswege:
|
||||||
|
|
||||||
|
### Package-basierte Installation
|
||||||
```bash
|
```bash
|
||||||
# Git-basierte Installation (empfohlen für Development)
|
# Versioniertes Package herunterladen
|
||||||
git clone https://github.com/dragons-at-work/furt.git
|
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
|
||||||
|
|
||||||
|
# 6-Phasen-Installation mit Helper Scripts
|
||||||
|
sudo ./install.sh # Fresh Installation
|
||||||
|
sudo ./install.sh --upgrade # Update bestehender Installation
|
||||||
|
```
|
||||||
|
|
||||||
|
Das modulare Installationssystem führt automatisch durch:
|
||||||
|
1. System-Benutzer erstellen (`_furt` oder `furt`)
|
||||||
|
2. Verzeichnisstruktur anlegen (OS-spezifische Pfade)
|
||||||
|
3. Source-Code synchronisieren
|
||||||
|
4. System-Service einrichten (rc.d oder systemd)
|
||||||
|
5. Konfiguration validieren
|
||||||
|
6. Health-Check durchführen
|
||||||
|
|
||||||
|
**→ [Installation automatisiert](Installation-automatisiert.md)** - Komplette Anleitung für Helper Scripts
|
||||||
|
|
||||||
|
### Git-basierte Installation
|
||||||
|
```bash
|
||||||
|
# Repository clonen
|
||||||
|
git clone https://smida.dragons-at-work.de/DAW/furt.git
|
||||||
cd furt
|
cd furt
|
||||||
./install.sh
|
|
||||||
|
|
||||||
# Package-basierte Installation (empfohlen für Production)
|
# Gleiche Helper Scripts verfügbar
|
||||||
curl -O https://releases.../furt-api-gateway-v1.0.0.tar.gz
|
sudo ./install.sh
|
||||||
tar xzf furt-api-gateway-v1.0.0.tar.gz
|
|
||||||
cd furt-api-gateway-v1.0.0
|
|
||||||
./install.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Basis-Konfiguration
|
Git-Installation ermöglicht einfache Updates via `git pull` und lokale Code-Anpassungen. Aktuell ist kein Code-Rückfluss möglich da smida.dragons-at-work.de keine öffentliche Registrierung unterstützt.
|
||||||
|
|
||||||
|
### Manuelle Installation
|
||||||
|
Schritt-für-Schritt-Installation um jeden Aspekt zu verstehen:
|
||||||
|
|
||||||
|
**→ [Installation manuell](Installation.md)** - Detaillierte manuelle Anleitung
|
||||||
|
|
||||||
|
**→ [Installation Scripts](Installation-Scripte.md)** - Verständnis der Helper Scripts
|
||||||
|
|
||||||
|
## Konfiguration
|
||||||
|
|
||||||
|
Nach der Installation muss die Konfigurationsdatei angepasst werden:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Config-Template kopieren
|
# Betriebssystem-spezifische Config-Pfade
|
||||||
# BSD-Systeme: Packages gehören nach /usr/local/etc/ (klare Trennung base/ports)
|
# OpenBSD: /usr/local/etc/furt/furt.conf
|
||||||
doas cp config/furt.conf.example /usr/local/etc/furt/furt.conf # OpenBSD/FreeBSD
|
# Linux (Debian/Arch): /etc/furt/furt.conf
|
||||||
|
|
||||||
# Linux-Systeme: Alles nach /etc/ (einheitlicher Namespace)
|
# OpenBSD
|
||||||
sudo cp config/furt.conf.example /etc/furt/furt.conf # Debian/Arch
|
doas $EDITOR /usr/local/etc/furt/furt.conf
|
||||||
|
|
||||||
# API-Keys und SMTP konfigurieren
|
# Linux
|
||||||
# doas = OpenBSD-Standard (minimaler sudo-Ersatz, weniger Angriffsfläche)
|
sudo $EDITOR /etc/furt/furt.conf
|
||||||
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
|
Mindestens SMTP-Zugangsdaten und API-Keys müssen konfiguriert werden für funktionsfähigen Betrieb.
|
||||||
|
|
||||||
|
**→ [Konfiguration](Konfiguration.md)** - Vollständige Konfigurations-Dokumentation
|
||||||
|
|
||||||
|
## Service-Management
|
||||||
|
|
||||||
|
Nach erfolgreicher Installation und Konfiguration:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# BSD-Systeme: Native Service-Management (kein systemd)
|
# OpenBSD
|
||||||
doas rcctl enable furt && doas rcctl start furt # OpenBSD (rcctl = OpenBSD service manager)
|
doas rcctl start furt
|
||||||
doas service furt enable && doas service furt start # FreeBSD (rc.conf-basiert)
|
doas rcctl check furt
|
||||||
|
|
||||||
# Linux-Systeme: systemd als Standard
|
# Linux
|
||||||
# systemd = umfangreich aber einheitlich über Distributionen
|
sudo systemctl start furt
|
||||||
sudo systemctl enable furt && sudo systemctl start furt
|
sudo systemctl status furt
|
||||||
|
|
||||||
|
# Service-Test
|
||||||
|
curl http://localhost:7811/health
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Testen
|
Bei Problemen bieten die Individual-Scripts jeweils eigene Troubleshooting-Sektionen.
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Für lokale Code-Anpassungen nach Git-Installation:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl http://localhost:8080/health
|
# Code bearbeiten
|
||||||
|
vim src/main.lua
|
||||||
|
|
||||||
|
# Änderungen testen
|
||||||
|
sudo ./scripts/sync-files.sh
|
||||||
|
sudo systemctl restart furt
|
||||||
|
|
||||||
|
# Updates vom Repository
|
||||||
|
git pull
|
||||||
|
sudo ./install.sh --upgrade
|
||||||
```
|
```
|
||||||
|
|
||||||
## Navigation
|
**→ [Development Setup](Development.md)** - In Planung
|
||||||
|
|
||||||
### Installation & Setup
|
**→ [API Documentation](API-Documentation.md)** - In Planung
|
||||||
- **[Installation](Installation.md)** - Vollständige Installationsanleitung
|
|
||||||
- **[Konfiguration](Configuration.md)** - Config-System Dokumentation
|
|
||||||
- **[Troubleshooting](Troubleshooting.md)** - Häufige Probleme
|
|
||||||
|
|
||||||
### Development
|
## Current Status
|
||||||
- **[Development Setup](Development.md)** - Lokale Entwicklungsumgebung
|
|
||||||
- **[API Documentation](API-Documentation.md)** - Endpunkte und Verwendung
|
|
||||||
- **[Contributing](Contributing.md)** - Beitrag zum Projekt
|
|
||||||
|
|
||||||
### Current Status
|
**v0.1.2 Features:**
|
||||||
|
- ✅ Mail-Service (`POST /v1/mail/send`) - formular2mail integriert
|
||||||
**v1.0.0 Features:**
|
|
||||||
- ✅ Mail-Service (`POST /v1/mail/send`)
|
|
||||||
- ✅ Health-Check (`GET /health`)
|
- ✅ Health-Check (`GET /health`)
|
||||||
- ✅ API-Key Authentication
|
- ✅ API-Key Authentication
|
||||||
- ✅ Multi-Tenant Configuration
|
- ✅ Multi-Tenant Configuration
|
||||||
- ✅ Rate Limiting
|
- ✅ Rate Limiting
|
||||||
- ✅ CORS Support
|
- ✅ CORS Support
|
||||||
|
- ✅ Modulares Installationssystem
|
||||||
|
|
||||||
**Roadmap:**
|
**In Planung:**
|
||||||
- 🔄 Comment-Service (sagjan integration)
|
- Roadmap wird nach DAW-Website-Launch definiert
|
||||||
- 📋 Project-Management-Service (lengan)
|
|
||||||
- 💳 Payment-Service (wixlaz)
|
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
Furt folgt dem **Service-Separation-Prinzip**:
|
Furt ist aktuell ein integrierter HTTP-Server mit eingebautem Mail-Service (formular2mail). Die Service-Separation in eigenständige Module ist für zukünftige Versionen geplant.
|
||||||
- **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.
|
**Aktuelle v0.1.2 Architektur:**
|
||||||
|
- **furt** enthält Mail-Routing als integrierten Service
|
||||||
|
- **Multi-Tenant-Konfiguration** über API-Keys
|
||||||
|
- **Plugin-ready** für zukünftige Service-Module
|
||||||
|
|
||||||
**Technische Basis:**
|
**Technische Basis:**
|
||||||
- **Lua 5.1** als Implementierungssprache
|
- **Lua 5.1** als Implementierungssprache
|
||||||
|
|
@ -104,8 +147,24 @@ Jeder Service behält seine eigene Konfiguration, furt koordiniert nur die Disco
|
||||||
- **Multi-OS Support** über distribution-spezifische Package-Layouts
|
- **Multi-OS Support** über distribution-spezifische Package-Layouts
|
||||||
- **Socket-basierter HTTP-Server** ohne externe Dependencies
|
- **Socket-basierter HTTP-Server** ohne externe Dependencies
|
||||||
|
|
||||||
|
## Navigation
|
||||||
|
|
||||||
|
### Installation & Setup
|
||||||
|
- **[Installation automatisiert](Installation-automatisiert.md)** - Helper Scripts für wiederkehrende Installationen
|
||||||
|
- **[Installation manuell](Installation.md)** - Vollständige manuelle Installationsanleitung
|
||||||
|
- **[Installation Scripts](Installation-Scripte.md)** - Helper Scripts verstehen und nutzen
|
||||||
|
- **[Konfiguration](Konfiguration.md)** - Config-System für Multi-Tenant-Setup
|
||||||
|
|
||||||
|
### Development & API
|
||||||
|
- **Development Setup** - In Planung
|
||||||
|
- **API Documentation** - In Planung
|
||||||
|
- **Contributing** - In Planung (aktuell kein Code-Rückfluss möglich)
|
||||||
|
|
||||||
|
### Support
|
||||||
|
- **Helper Script Troubleshooting** - Jedes Installation-Script enthält eigene Fehlerbehebung
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Projekt:** [Dragons@Work Digital Sovereignty](https://dragons-at-work.de)
|
**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)
|
**Repository:** [Forgejo](https://smida.dragons-at-work.de/DAW/furt)
|
||||||
**License:** Apache 2.0
|
**License:** ISC
|
||||||
Loading…
Add table
Add a link
Reference in a new issue