update api.dragons-at-work.de to api.example.com
parent
ec1b44ad7c
commit
d33bd17ccd
14 changed files with 90 additions and 76 deletions
|
|
@ -9,7 +9,7 @@ Furt bietet eine REST-API für die Integration mit Websites und Anwendungen. Die
|
|||
## Base URL
|
||||
|
||||
```
|
||||
Production: https://api.dragons-at-work.de
|
||||
Production: https://api.example.com
|
||||
Development: http://localhost:7811
|
||||
```
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ Die Request-ID wird in allen Responses zurückgegeben und in den Server-Logs mit
|
|||
|
||||
- Eigene SMTP-Konfiguration
|
||||
- Eigene Mail-Empfänger
|
||||
- Eigene Subject-Präfixe
|
||||
- Eigene Subject-Präfixe
|
||||
- Eigene Rate-Limits
|
||||
- Isolierte Logs und Metriken
|
||||
|
||||
|
|
@ -148,7 +148,7 @@ async function sendContactForm(formData) {
|
|||
},
|
||||
body: JSON.stringify(formData)
|
||||
});
|
||||
|
||||
|
||||
const result = await response.json();
|
||||
return result;
|
||||
}
|
||||
|
|
@ -157,7 +157,7 @@ async function sendContactForm(formData) {
|
|||
### curl (Testing)
|
||||
|
||||
```bash
|
||||
curl -X POST https://api.dragons-at-work.de/v1/mail/send \
|
||||
curl -X POST https://api.example.com/v1/mail/send \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: your-api-key" \
|
||||
-d '{"name":"Test","email":"test@example.com","message":"Test message"}'
|
||||
|
|
@ -166,7 +166,7 @@ curl -X POST https://api.dragons-at-work.de/v1/mail/send \
|
|||
### Hugo Shortcode Integration
|
||||
|
||||
```html
|
||||
{{< furt-contact-form
|
||||
{{< furt-contact-form
|
||||
api-endpoint="https://api.example.com/v1/mail/send"
|
||||
api-key="your-api-key"
|
||||
success-url="/contact/thanks/"
|
||||
|
|
@ -199,4 +199,5 @@ curl http://localhost:7811/health
|
|||
curl -H "X-API-Key: test" http://localhost:7811/auth/status
|
||||
```
|
||||
|
||||
**Development-Endpoint:** Der `/test` Endpoint ist nur verfügbar wenn in der Konfiguration aktiviert. Er dient zum Testen der Request-Verarbeitung ohne Side-Effects.
|
||||
**Development-Endpoint:** Der `/test` Endpoint ist nur verfügbar wenn in der Konfiguration aktiviert. Er dient zum Testen der Request-Verarbeitung ohne Side-Effects.
|
||||
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ scrape_configs:
|
|||
- job_name: 'furt-gateway'
|
||||
metrics_path: '/health'
|
||||
static_configs:
|
||||
- targets: ['api.dragons-at-work.de:443']
|
||||
- targets: ['api.example.com:443']
|
||||
```
|
||||
|
||||
**Health-to-Metrics Mapping:**
|
||||
|
|
@ -363,4 +363,5 @@ Health-Endpoint-Aufrufe erscheinen in den Server-Logs:
|
|||
[2024-09-10 12:34:56] merkwerk health info: version=0.1.2, source=merkwerk
|
||||
```
|
||||
|
||||
**Request-ID:** Health-Checks erhalten keine Request-ID da sie stateless sind.
|
||||
**Request-ID:** Health-Checks erhalten keine Request-ID da sie stateless sind.
|
||||
|
||||
|
|
|
|||
13
Home.md
13
Home.md
|
|
@ -31,7 +31,7 @@ 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)
|
||||
2. Verzeichnisstruktur anlegen (OS-spezifische Pfade)
|
||||
3. Source-Code synchronisieren
|
||||
4. System-Service einrichten (rc.d oder systemd)
|
||||
5. Konfiguration validieren
|
||||
|
|
@ -70,7 +70,7 @@ Nach der Installation muss die Konfigurationsdatei angepasst werden:
|
|||
# OpenBSD
|
||||
doas $EDITOR /usr/local/etc/furt/furt.conf
|
||||
|
||||
# Linux
|
||||
# Linux
|
||||
sudo $EDITOR /etc/furt/furt.conf
|
||||
```
|
||||
|
||||
|
|
@ -88,7 +88,7 @@ doas rcctl start furt
|
|||
doas rcctl check furt
|
||||
|
||||
# Linux
|
||||
sudo systemctl start furt
|
||||
sudo systemctl start furt
|
||||
sudo systemctl status furt
|
||||
|
||||
# Service-Test
|
||||
|
|
@ -191,6 +191,7 @@ Furt ist aktuell ein integrierter HTTP-Server mit eingebautem Mail-Service (form
|
|||
|
||||
---
|
||||
|
||||
**Projekt:** [Dragons@Work Digital Sovereignty](https://dragons-at-work.de)
|
||||
**Repository:** [Forgejo](https://smida.dragons-at-work.de/DAW/furt)
|
||||
**License:** ISC
|
||||
**Projekt:** [Dragons@Work Digital Sovereignty](https://dragons-at-work.de)
|
||||
**Repository:** [Forgejo](https://smida.dragons-at-work.de/DAW/furt)
|
||||
**License:** ISC
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Warum modulare Scripts?
|
||||
|
|
@ -21,13 +21,13 @@ Die sechs Helper Scripts folgen einer klaren Abhängigkeitskette. Das `setup-use
|
|||
|
||||
```bash
|
||||
# Abhängigkeitskette bei Fresh Installation:
|
||||
setup-user.sh # Erstellt _furt oder furt Benutzer
|
||||
setup-user.sh # Erstellt _furt oder furt Benutzer
|
||||
↓
|
||||
setup-directories.sh # Nutzt Benutzer für chown-Operationen
|
||||
↓
|
||||
↓
|
||||
sync-files.sh # Kopiert in die erstellten Verzeichnisse
|
||||
↓
|
||||
create-service.sh # Verwendet die kopierten Service-Templates
|
||||
create-service.sh # Verwendet die kopierten Service-Templates
|
||||
↓
|
||||
validate-config.sh # Prüft die installierte Konfiguration
|
||||
↓
|
||||
|
|
@ -43,7 +43,7 @@ Diese Reihenfolge ist nicht willkürlich. Jedes Script baut auf den Ergebnissen
|
|||
|
||||
Das Script prüft ob der Benutzer bereits existiert und überspringt die Erstellung falls nötig. Diese Idempotenz macht das Script sicher für mehrfache Ausführung.
|
||||
|
||||
### Phase 2: Verzeichnisstruktur erstellen
|
||||
### Phase 2: Verzeichnisstruktur erstellen
|
||||
**[setup-directories.sh](setup-directories-sh.md)** legt die komplette furt-Verzeichnisstruktur an. Es versteht die Unterschiede zwischen BSD und Linux Filesystem-Konventionen: OpenBSD verwendet `/usr/local/etc/` für selbst-installierte Software um eine klare Trennung zur Basis-Installation zu schaffen. Linux-Distributionen legen alle Konfiguration in `/etc/`.
|
||||
|
||||
```bash
|
||||
|
|
@ -53,7 +53,7 @@ Das Script prüft ob der Benutzer bereits existiert und überspringt die Erstell
|
|||
/var/log/furt/ # Logs (furt-writable)
|
||||
/var/run/furt/ # PID-Files (furt-writable)
|
||||
|
||||
# Linux Struktur
|
||||
# Linux Struktur
|
||||
/etc/furt/ # Konfiguration
|
||||
/usr/local/share/furt/ # Source-Code (read-only)
|
||||
/var/log/furt/ # Logs (furt-writable)
|
||||
|
|
@ -77,7 +77,7 @@ Unter OpenBSD wird das rc.d-Script nach `/etc/rc.d/furt` kopiert, ausführbar ge
|
|||
|
||||
Das Script kann auch bestehende Konfigurationen auf Vollständigkeit prüfen - es erkennt fehlende Sektionen oder ungültige Werte und gibt entsprechende Hinweise.
|
||||
|
||||
### Phase 6: System-Test durchführen
|
||||
### Phase 6: System-Test durchführen
|
||||
**[health-check.sh](health-check-sh.md)** versucht den furt-Service zu erreichen und seine grundlegenden Funktionen zu testen. Bei einer Fresh Installation kann dieser Test fehlschlagen weil der Service noch nicht gestartet wurde - das ist normal und erwartet.
|
||||
|
||||
Das Script kann auch gegen entfernte furt-Installationen getestet werden um zu verifizieren dass Updates korrekt funktionieren.
|
||||
|
|
@ -92,7 +92,7 @@ Das Orchestrator-Script `install.sh` unterstützt zwei Modi die sich in der Anza
|
|||
```
|
||||
Führt alle sechs Phasen aus. Geeignet für neue Installationen auf Systemen wo furt noch nie installiert war.
|
||||
|
||||
### Upgrade Installation
|
||||
### Upgrade Installation
|
||||
```bash
|
||||
./install.sh --upgrade
|
||||
```
|
||||
|
|
@ -127,7 +127,7 @@ Das modulare Design hilft erheblich bei der Fehlerdiagnose. Wenn die orchestrier
|
|||
|
||||
```bash
|
||||
[INFO] Phase 1: Setting up system user... OK
|
||||
[INFO] Phase 2: Creating directory structure... OK
|
||||
[INFO] Phase 2: Creating directory structure... OK
|
||||
[INFO] Phase 3: Installing source code... FAILED
|
||||
[ERROR] sync-files.sh: Permission denied writing to /usr/local/share/furt/
|
||||
```
|
||||
|
|
@ -153,4 +153,5 @@ Das Script-System ist für Erweiterungen designt. Neue Scripts können einfach i
|
|||
|
||||
Diese Konsistenz macht es einfach das System zu verstehen und zu erweitern ohne bestehende Funktionalität zu beeinträchtigen.
|
||||
|
||||
Die Helper Scripts transformieren die manuelle furt-Installation von einem fehleranfälligen, wiederholenden Prozess zu einem robusten, automatisierten Workflow der bei Bedarf fein-granular gesteuert werden kann.
|
||||
Die Helper Scripts transformieren die manuelle furt-Installation von einem fehleranfälligen, wiederholenden Prozess zu einem robusten, automatisierten Workflow der bei Bedarf fein-granular gesteuert werden kann.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Automatisierung verstehen
|
||||
|
|
@ -24,7 +24,7 @@ doas pkg_add lua lua-socket lua-cjson luasec
|
|||
# Debian
|
||||
sudo apt install lua5.1 lua-socket lua-cjson lua-sec
|
||||
|
||||
# Arch Linux
|
||||
# Arch Linux
|
||||
sudo pacman -S lua51 lua51-socket lua51-dkjson lua51-sec
|
||||
```
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ Für eine neue furt-Installation führst du einfach das Orchestrator-Script aus:
|
|||
doas ./install.sh
|
||||
|
||||
# Linux
|
||||
sudo ./install.sh
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
Das Script durchläuft sechs Phasen und gibt für jeden Schritt eine Statusmeldung aus:
|
||||
|
|
@ -76,7 +76,7 @@ furt installation completed successfully
|
|||
|
||||
Next steps:
|
||||
1. Edit configuration file: /usr/local/etc/furt/furt.conf
|
||||
2. Start the service: doas rcctl start furt
|
||||
2. Start the service: doas rcctl start furt
|
||||
3. Test the API: curl http://127.0.0.1:7811/health
|
||||
```
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ Nach der Konfiguration startest du furt mit den Standard-System-Tools:
|
|||
doas rcctl start furt
|
||||
doas rcctl check furt
|
||||
|
||||
# Linux
|
||||
# Linux
|
||||
sudo systemctl start furt
|
||||
sudo systemctl status furt
|
||||
```
|
||||
|
|
@ -168,7 +168,7 @@ Jedes Helper Script kann auch einzeln ausgeführt werden. Dies ist nützlich fü
|
|||
# Nur Source-Code aktualisieren
|
||||
sudo ./scripts/sync-files.sh
|
||||
|
||||
# Nur Konfiguration validieren
|
||||
# Nur Konfiguration validieren
|
||||
sudo ./scripts/validate-config.sh
|
||||
|
||||
# Nur Health Check
|
||||
|
|
@ -185,4 +185,5 @@ Häufige Probleme sind fehlende Berechtigungen, bereits existierende Benutzer od
|
|||
|
||||
Bei komplexeren Problemen kannst du zur manuellen Installation zurückkehren um jeden Schritt einzeln zu kontrollieren und zu verstehen wo der Fehler auftritt.
|
||||
|
||||
Die automatisierte Installation beschleunigt wiederkehrende furt-Deployments erheblich und reduziert die Wahrscheinlichkeit von Tippfehlern bei der manuellen Installation.
|
||||
Die automatisierte Installation beschleunigt wiederkehrende furt-Deployments erheblich und reduziert die Wahrscheinlichkeit von Tippfehlern bei der manuellen Installation.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Systemanforderungen verstehen
|
||||
|
|
@ -77,7 +77,7 @@ Jetzt erstellen wir die benötigten Verzeichnisse mit korrekten Berechtigungen:
|
|||
```bash
|
||||
# OpenBSD Verzeichnisse
|
||||
doas mkdir -p /usr/local/etc/furt
|
||||
doas mkdir -p /usr/local/share/furt
|
||||
doas mkdir -p /usr/local/share/furt
|
||||
doas mkdir -p /var/log/furt
|
||||
doas mkdir -p /var/run/furt
|
||||
|
||||
|
|
@ -89,10 +89,10 @@ doas chown _furt:_furt /var/run/furt
|
|||
Unter Linux ist die Struktur identisch, nur das Config-Verzeichnis liegt direkt in `/etc/`:
|
||||
|
||||
```bash
|
||||
# Linux Verzeichnisse
|
||||
# Linux Verzeichnisse
|
||||
sudo mkdir -p /etc/furt
|
||||
sudo mkdir -p /usr/local/share/furt
|
||||
sudo mkdir -p /var/log/furt
|
||||
sudo mkdir -p /var/log/furt
|
||||
sudo mkdir -p /var/run/furt
|
||||
|
||||
sudo chown furt:furt /var/log/furt
|
||||
|
|
@ -108,7 +108,7 @@ Der furt-Quellcode wird nach `/usr/local/share/furt/` kopiert. Dieses Verzeichni
|
|||
sudo cp -r src/ config/ scripts/ integrations/ /usr/local/share/furt/
|
||||
|
||||
# Versions-Dateien für merkwerk-Integration falls vorhanden
|
||||
sudo cp VERSION /usr/local/share/furt/ 2>/dev/null || true
|
||||
sudo cp VERSION /usr/local/share/furt/ 2>/dev/null || true
|
||||
sudo cp .version_history /usr/local/share/furt/ 2>/dev/null || true
|
||||
```
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ sudo chmod +x /usr/local/share/furt/scripts/start.sh
|
|||
Unter Linux ist die Gruppe `root`:
|
||||
|
||||
```bash
|
||||
# Linux nutzt root als Standard-Gruppe
|
||||
# Linux nutzt root als Standard-Gruppe
|
||||
sudo chown -R root:root /usr/local/share/furt
|
||||
sudo chmod -R 644 /usr/local/share/furt
|
||||
sudo find /usr/local/share/furt -type d -exec chmod 755 {} \;
|
||||
|
|
@ -149,7 +149,7 @@ Die wichtigsten Anpassungen betreffen die SMTP-Zugangsdaten und API-Keys. Öffne
|
|||
```ini
|
||||
[smtp_default]
|
||||
host = mail.example.com
|
||||
user = noreply@example.com
|
||||
user = noreply@example.com
|
||||
password = your-smtp-password-here
|
||||
```
|
||||
|
||||
|
|
@ -166,7 +166,7 @@ Da die Konfigurationsdatei SMTP-Passwörter enthält, beschränken wir den Zugri
|
|||
|
||||
```bash
|
||||
# OpenBSD Berechtigungen
|
||||
doas chmod 640 /usr/local/etc/furt/furt.conf
|
||||
doas chmod 640 /usr/local/etc/furt/furt.conf
|
||||
doas chown root:_furt /usr/local/etc/furt/furt.conf
|
||||
|
||||
# Linux Berechtigungen
|
||||
|
|
@ -192,7 +192,7 @@ Das `furt_flags=` in `/etc/rc.conf.local` ermöglicht es später Command-Line-Pa
|
|||
Unter Linux verwenden wir systemd:
|
||||
|
||||
```bash
|
||||
sudo cp deployment/linux/furt.service /etc/systemd/system/
|
||||
sudo cp deployment/linux/furt.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable furt
|
||||
```
|
||||
|
|
@ -212,7 +212,7 @@ doas rcctl check furt
|
|||
Der `rcctl check` Befehl zeigt ob der Service läuft. Bei Problemen findest du Fehlerdetails im System-Log.
|
||||
|
||||
```bash
|
||||
# Linux Service-Start
|
||||
# Linux Service-Start
|
||||
sudo systemctl start furt
|
||||
sudo systemctl status furt
|
||||
```
|
||||
|
|
@ -231,14 +231,15 @@ Die Response zeigt Service-Status, Version und verfügbare Features. Um die Mail
|
|||
|
||||
```bash
|
||||
curl -X POST http://127.0.0.1:7811/v1/mail/send \
|
||||
-H "X-API-Key: website-key" \
|
||||
-H "X-API-Key: website-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"name": "Installation Test",
|
||||
"email": "test@example.com",
|
||||
"subject": "furt Test",
|
||||
"subject": "furt Test",
|
||||
"message": "Installation erfolgreich"
|
||||
}'
|
||||
```
|
||||
|
||||
Eine erfolgreiche Response bestätigt dass SMTP-Konfiguration und API-Key korrekt funktionieren. Die Test-Mail sollte an die in der Konfiguration angegebene Adresse ankommen.
|
||||
Eine erfolgreiche Response bestätigt dass SMTP-Konfiguration und API-Key korrekt funktionieren. Die Test-Mail sollte an die in der Konfiguration angegebene Adresse ankommen.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Konfigurationskonzept verstehen
|
||||
|
|
@ -213,7 +213,7 @@ furt liest die Konfigurationsdatei beim Start. Nach Änderungen musst du den Ser
|
|||
# OpenBSD
|
||||
doas rcctl restart furt
|
||||
|
||||
# Linux
|
||||
# Linux
|
||||
sudo systemctl restart furt
|
||||
```
|
||||
|
||||
|
|
@ -239,4 +239,5 @@ curl -X POST http://127.0.0.1:7811/v1/mail/send \
|
|||
|
||||
Der Auth-Status-Endpunkt zeigt welche Permissions der verwendete API-Key hat. Der Mail-Test sendet eine echte E-Mail an die konfigurierte Adresse und bestätigt dass SMTP-Routing funktioniert.
|
||||
|
||||
Diese flexible Konfigurationsarchitektur ermöglicht es furt als zentraler Mail-Gateway für komplexe Multi-Website-Umgebungen zu fungieren, während jede Website ihre spezifischen Routing- und Sicherheitsanforderungen erfüllen kann.
|
||||
Diese flexible Konfigurationsarchitektur ermöglicht es furt als zentraler Mail-Gateway für komplexe Multi-Website-Umgebungen zu fungieren, während jede Website ihre spezifischen Routing- und Sicherheitsanforderungen erfüllen kann.
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ X-API-Key: your-tenant-api-key
|
|||
|
||||
**Warum Tenant-basiert:** Jeder API-Key definiert:
|
||||
- Eigenen Mail-Empfänger
|
||||
- Eigene SMTP-Konfiguration
|
||||
- Eigene SMTP-Konfiguration
|
||||
- Eigene Subject-Präfixe
|
||||
- Isolierte Mail-Logs
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ Dadurch kann ein Furt-Gateway Kontaktformulare für mehrere Websites gleichzeiti
|
|||
```json
|
||||
// Invalid examples
|
||||
{"name": ""} // Empty string
|
||||
{"name": " "} // Only whitespace
|
||||
{"name": " "} // Only whitespace
|
||||
{"name": null} // Null value
|
||||
{"name": 123} // Wrong type
|
||||
```
|
||||
|
|
@ -205,7 +205,7 @@ Website: your-website (your-api-key)
|
|||
From: John Doe <john@example.com>
|
||||
Subject: Partnership Inquiry
|
||||
|
||||
Hello, I'm interested in discussing a potential partnership.
|
||||
Hello, I'm interested in discussing a potential partnership.
|
||||
Could we schedule a call this week?
|
||||
|
||||
---
|
||||
|
|
@ -259,10 +259,10 @@ X-RateLimit-Reset: 1632150000
|
|||
```javascript
|
||||
document.getElementById('contact-form').addEventListener('submit', async (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
|
||||
const formData = new FormData(e.target);
|
||||
const data = Object.fromEntries(formData);
|
||||
|
||||
|
||||
try {
|
||||
const response = await fetch('/v1/mail/send', {
|
||||
method: 'POST',
|
||||
|
|
@ -272,9 +272,9 @@ document.getElementById('contact-form').addEventListener('submit', async (e) =>
|
|||
},
|
||||
body: JSON.stringify(data)
|
||||
});
|
||||
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
|
||||
if (result.success) {
|
||||
alert('Message sent successfully!');
|
||||
e.target.reset();
|
||||
|
|
@ -290,8 +290,8 @@ document.getElementById('contact-form').addEventListener('submit', async (e) =>
|
|||
### Hugo Shortcode Integration
|
||||
|
||||
```go
|
||||
{{< furt-contact-form
|
||||
api-endpoint="https://api.dragons-at-work.de/v1/mail/send"
|
||||
{{< furt-contact-form
|
||||
api-endpoint="https://api.example.com/v1/mail/send"
|
||||
api-key="your-api-key"
|
||||
success-url="/contact/thanks/"
|
||||
fields="name,email,subject,message"
|
||||
|
|
@ -302,18 +302,18 @@ document.getElementById('contact-form').addEventListener('submit', async (e) =>
|
|||
|
||||
```bash
|
||||
# Valid request
|
||||
curl -X POST https://api.dragons-at-work.de/v1/mail/send \
|
||||
curl -X POST https://api.example.com/v1/mail/send \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: your-api-key" \
|
||||
-d '{
|
||||
"name": "Test User",
|
||||
"email": "test@example.com",
|
||||
"email": "test@example.com",
|
||||
"subject": "Test Message",
|
||||
"message": "This is a test message from the API."
|
||||
}'
|
||||
|
||||
# Test validation error
|
||||
curl -X POST https://api.dragons-at-work.de/v1/mail/send \
|
||||
curl -X POST https://api.example.com/v1/mail/send \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: your-api-key" \
|
||||
-d '{
|
||||
|
|
@ -377,4 +377,5 @@ Sending mail for tenant: your-website
|
|||
To: contact@your-website.com
|
||||
From: noreply@your-website.com
|
||||
SMTP: mail.your-provider.com:587
|
||||
```
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Zweck des Scripts
|
||||
|
|
@ -254,4 +254,5 @@ cp deployment/openbsd/rc.d-furt /etc/rc.d/furt
|
|||
sed -i "s|/usr/local|$PREFIX|g" /etc/rc.d/furt
|
||||
```
|
||||
|
||||
Das `create-service.sh` Script abstrahiert die Komplexität verschiedener Service-Management-Systeme und macht furt zu einem echten System-Service der automatisch startet, überwacht wird und in die Betriebssystem-Verwaltung integriert ist.
|
||||
Das `create-service.sh` Script abstrahiert die Komplexität verschiedener Service-Management-Systeme und macht furt zu einem echten System-Service der automatisch startet, überwacht wird und in die Betriebssystem-Verwaltung integriert ist.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Zweck des Scripts
|
||||
|
|
@ -43,7 +43,7 @@ Die zweistufige Validierung deckt verschiedene Fehlerszenarien ab:
|
|||
Der `/health` Endpunkt testet die gesamte furt-Applikations-Pipeline:
|
||||
|
||||
- **Lua-Runtime:** Script-Loading und Execution
|
||||
- **HTTP-Server:** Request-Parsing und Response-Generation
|
||||
- **HTTP-Server:** Request-Parsing und Response-Generation
|
||||
- **Konfiguration:** Config-File-Loading und Validation
|
||||
- **Features:** SMTP-Integration und Auth-System-Status
|
||||
|
||||
|
|
@ -194,7 +194,7 @@ Das Script verwendet Standardwerte falls Parameter nicht erkannt werden:
|
|||
# Korrekte Syntax
|
||||
./scripts/health-check.sh --host 192.168.1.10 --port 8080
|
||||
|
||||
# Nicht:
|
||||
# Nicht:
|
||||
./scripts/health-check.sh 192.168.1.10 8080
|
||||
```
|
||||
|
||||
|
|
@ -256,4 +256,5 @@ else
|
|||
fi
|
||||
```
|
||||
|
||||
Das `health-check.sh` Script ist der Schlussstein des modularen furt-Installationssystems und stellt sicher dass alle vorherigen Installationsschritte erfolgreich waren und der Service vollständig betriebsbereit ist.
|
||||
Das `health-check.sh` Script ist der Schlussstein des modularen furt-Installationssystems und stellt sicher dass alle vorherigen Installationsschritte erfolgreich waren und der Service vollständig betriebsbereit ist.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Zweck des Scripts
|
||||
|
|
@ -197,4 +197,5 @@ CONFIG_DIR="$PREFIX/etc/furt"
|
|||
SHARE_DIR="$PREFIX/share/furt"
|
||||
```
|
||||
|
||||
Das `setup-directories.sh` Script schafft eine konsistente, sichere Verzeichnisstruktur die sich nahtlos in verschiedene Betriebssysteme integriert und dabei bewährte Admin-Praktiken respektiert.
|
||||
Das `setup-directories.sh` Script schafft eine konsistente, sichere Verzeichnisstruktur die sich nahtlos in verschiedene Betriebssysteme integriert und dabei bewährte Admin-Praktiken respektiert.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Zweck des Scripts
|
||||
|
|
@ -116,7 +116,7 @@ getent passwd | grep -E '(furt|_furt)'
|
|||
# BSD-spezifisch
|
||||
id _furt
|
||||
|
||||
# Linux-spezifisch
|
||||
# Linux-spezifisch
|
||||
id furt
|
||||
```
|
||||
|
||||
|
|
@ -173,4 +173,5 @@ groupadd -g 1100 _furt 2>/dev/null || true
|
|||
useradd -u 1100 -g _furt -s /bin/false -d /var/empty _furt 2>/dev/null || true
|
||||
```
|
||||
|
||||
Das `setup-user.sh` Script reduziert die komplexen Unterschiede zwischen Betriebssystemen auf ein einfaches, einheitliches Interface. Es ist der erste Baustein des modularen Installationssystems und demonstriert wie kleine, spezialisierte Scripts robuste Automatisierung ermöglichen können.
|
||||
Das `setup-user.sh` Script reduziert die komplexen Unterschiede zwischen Betriebssystemen auf ein einfaches, einheitliches Interface. Es ist der erste Baustein des modularen Installationssystems und demonstriert wie kleine, spezialisierte Scripts robuste Automatisierung ermöglichen können.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Zweck des Scripts
|
||||
|
|
@ -138,7 +138,7 @@ stat -c "%a %n" /usr/local/share/furt/scripts/start.sh
|
|||
Korrekte Synchronisation zeigt alle Source-Verzeichnisse mit entsprechenden Berechtigungen:
|
||||
```
|
||||
drwxr-xr-x root wheel 512 src
|
||||
drwxr-xr-x root wheel 512 config
|
||||
drwxr-xr-x root wheel 512 config
|
||||
drwxr-xr-x root wheel 512 scripts
|
||||
-rwxr-xr-x root wheel 1234 scripts/start.sh
|
||||
```
|
||||
|
|
@ -208,4 +208,5 @@ if [ -d "$TARGET" ]; then
|
|||
fi
|
||||
```
|
||||
|
||||
Das `sync-files.sh` Script schließt die Lücke zwischen Development und Installation durch automatisierte, sichere Synchronisation aller furt-Komponenten mit betriebssystem-angemessenen Berechtigungen.
|
||||
Das `sync-files.sh` Script schließt die Lücke zwischen Development und Installation durch automatisierte, sichere Synchronisation aller furt-Komponenten mit betriebssystem-angemessenen Berechtigungen.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Getestet unter
|
||||
- OpenBSD 7.7
|
||||
- Debian 12
|
||||
- Debian 12
|
||||
- Arch Linux
|
||||
|
||||
## Zweck des Scripts
|
||||
|
|
@ -246,4 +246,5 @@ if ! grep -q '^port' "$CONFIG_FILE"; then
|
|||
fi
|
||||
```
|
||||
|
||||
Das `validate-config.sh` Script ist ein kritischer Sicherheits-Checkpoint der verhindert dass furt mit defekter Konfiguration startet und dadurch unvorhersagbare Fehler oder Sicherheitslücken entstehen. Es balanciert gründliche Validierung mit praktischer Nutzbarkeit.
|
||||
Das `validate-config.sh` Script ist ein kritischer Sicherheits-Checkpoint der verhindert dass furt mit defekter Konfiguration startet und dadurch unvorhersagbare Fehler oder Sicherheitslücken entstehen. Es balanciert gründliche Validierung mit praktischer Nutzbarkeit.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue