diff --git a/Home.md b/Home.md index 8ad031f..12ac41f 100644 --- a/Home.md +++ b/Home.md @@ -2,7 +2,7 @@ **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 @@ -11,92 +11,135 @@ Furt ist ein minimalistisches, multi-tenant API-Gateway basierend auf Lua 5.1. D - **Rate Limiting** - Schutz vor Missbrauch - **CORS-Support** - Frontend-Integration - **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 -# Git-basierte Installation (empfohlen für Development) -git clone https://github.com/dragons-at-work/furt.git +# Versioniertes Package herunterladen +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 -./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 +# Gleiche Helper Scripts verfügbar +sudo ./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 -# 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 +# Betriebssystem-spezifische Config-Pfade +# OpenBSD: /usr/local/etc/furt/furt.conf +# Linux (Debian/Arch): /etc/furt/furt.conf -# Linux-Systeme: Alles nach /etc/ (einheitlicher Namespace) -sudo cp config/furt.conf.example /etc/furt/furt.conf # Debian/Arch +# OpenBSD +doas $EDITOR /usr/local/etc/furt/furt.conf -# 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 +# Linux +sudo $EDITOR /etc/furt/furt.conf ``` -### 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 -# 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) +# OpenBSD +doas rcctl start furt +doas rcctl check furt -# Linux-Systeme: systemd als Standard -# systemd = umfangreich aber einheitlich über Distributionen -sudo systemctl enable furt && sudo systemctl start furt +# Linux +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 -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 -- **[Installation](Installation.md)** - Vollständige Installationsanleitung -- **[Konfiguration](Configuration.md)** - Config-System Dokumentation -- **[Troubleshooting](Troubleshooting.md)** - Häufige Probleme +**→ [API Documentation](API-Documentation.md)** - In Planung -### Development -- **[Development Setup](Development.md)** - Lokale Entwicklungsumgebung -- **[API Documentation](API-Documentation.md)** - Endpunkte und Verwendung -- **[Contributing](Contributing.md)** - Beitrag zum Projekt +## Current Status -### Current Status - -**v1.0.0 Features:** -- ✅ Mail-Service (`POST /v1/mail/send`) +**v0.1.2 Features:** +- ✅ Mail-Service (`POST /v1/mail/send`) - formular2mail integriert - ✅ Health-Check (`GET /health`) - ✅ API-Key Authentication - ✅ Multi-Tenant Configuration - ✅ Rate Limiting - ✅ CORS Support +- ✅ Modulares Installationssystem -**Roadmap:** -- 🔄 Comment-Service (sagjan integration) -- 📋 Project-Management-Service (lengan) -- 💳 Payment-Service (wixlaz) +**In Planung:** +- Roadmap wird nach DAW-Website-Launch definiert ## Architecture -Furt folgt dem **Service-Separation-Prinzip**: -- **furt** = Service-Discovery-Coordinator -- **sagjan** = Comments (separate namespace) -- **formular2mail** = Mail-Routing (separate namespace) +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. -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:** - **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 - **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) -**Repository:** [Forgejo](https://smida.dragons-at-work.de/DAW/furt) | [GitHub Mirror](https://github.com/dragons-at-work/furt) -**License:** Apache 2.0 +**Projekt:** [Dragons@Work Digital Sovereignty](https://dragons-at-work.de) +**Repository:** [Forgejo](https://smida.dragons-at-work.de/DAW/furt) +**License:** ISC \ No newline at end of file