Konfiguration
PgArachne lädt die Konfiguration aus Umgebungsvariablen oder einer Datei.
Note:
Der Proxy-User (
schema.sql versucht, die Rolle pgarachne_admin zu erstellen und an pgarachne zu vergeben. Ohne Superuser-Rechte wird die Erstellung übersprungen. Rolle und Grant ggf. manuell anlegen.Der Proxy-User (
DB_USER) muss Mitglied von pgarachne und pgarachne_admin sein, um API-Token zu prüfen und zu erstellen.Sicherheitshinweis: PgArachne verarbeitet keine Datenbankpasswörter in der
Konfigurationsdatei.
Es verlässt sich auf den Standardmechanismus der
.pgpass-Datei von PostgreSQL (oder die
systemweite Variable
PGPASSWORD) für die Authentifizierung.Tipp: Wenn PgArachne hinter einem Reverse Proxy läuft, setze
TRUSTED_PROXIES, damit die Client-IP korrekt ermittelt wird und das Rate Limiting nicht spoofbar ist.Suchreihenfolge: Wenn keine Konfigurationsdatei über CLI angegeben ist, wird wie folgt gesucht:
- Aktuelles Verzeichnis:
./pgarachne.env(Alle Betriebssysteme) - Benutzerkonfiguration:
- Linux / macOS:
~/.config/pgarachne/pgarachne.env - Windows:
%USERPROFILE%\.config\pgarachne\pgarachne.env
- Linux / macOS:
- Systemkonfiguration:
/etc/pgarachne/pgarachne.env(Nur Linux / macOS)
Minimales Konfigurationsbeispiel
Das ist alles, was Sie zum Einstieg benötigen:
DB_HOST=localhost
DB_PORT=5432
DB_USER=pgarachne
JWT_SECRET=change_me_to_something_secureKonfigurationsreferenz
| Variable | Erforderlich | Beschreibung |
|---|---|---|
| Datenbank-Verbindung | ||
DB_HOST | Ja | PostgreSQL-Serveradresse (z. B. localhost). |
DB_PORT | Ja | Datenbankport. |
DB_USER | Ja | Der Datenbankbenutzer, mit dem sich PgArachne verbindet. |
DB_SSLMODE | Nein | PostgreSQL-SSL-Modus. Standard: disable. |
DB_SSLROOTCERT | Nein | Pfad zum CA-Root-Zertifikat (PEM). |
DB_SSLCERT | Nein | Pfad zum Client-Zertifikat (PEM). |
DB_SSLKEY | Nein | Pfad zum privaten Client-Schlüssel (PEM). |
| HTTP-Server | ||
HTTP_PORT | Nein | Port, auf dem gelauscht wird. Standard: 8080. |
ALLOWED_ORIGINS | Nein | CORS-Einstellungen. Kommagetrennte Liste zulässiger Domains (z. B. https://meineapp.de).
Standard: *. |
STATIC_FILES_PATH | Nein | Absoluter Pfad zum Bereitstellen statischer Dateien (Explorer/Frontend). |
| Sicherheit (JWT) | ||
JWT_SECRET | Ja | Eine lange, zufällige Zeichenfolge zum Signieren von Sitzungstoken. |
JWT_EXPIRY_HOURS | Nein | Gültigkeit der Sitzung in Stunden. Standard: 8. |
LOGIN_RATE_LIMIT | Nein | Maximale Login-Versuche pro Zeitfenster. Standard: 5. 0 deaktiviert. |
LOGIN_RATE_WINDOW | Nein | Dauer des Zeitfensters. Standard: 1m. |
| Login-Rate-Limit ist pro Instanz (in-memory). Bei mehreren Instanzen ist ein geteilter Limiter nötig. | ||
TRUSTED_PROXIES | Nein | Vertrauenswürdige Proxy-IPs/CIDRs für X-Forwarded-For. Kommagetrennt. |
MAX_REQUEST_BYTES | No | Maximale Request-Body-Größe in Bytes. Standard: 2097152. |
SSE_MAX_CHANNELS | No | Maximale Anzahl von Kanälen pro SSE-Verbindung. Standard: 8. |
SSE_MAX_CLIENTS | No | Maximale Anzahl gleichzeitiger SSE-Clients pro Datenbank. Standard: 1000. |
SSE_CLIENT_BUFFER | No | SSE-Buffer pro Client (Anzahl Nachrichten). Standard: 64. |
SSE_SEND_TIMEOUT | No | Maximale Wartezeit beim Senden an langsame Clients. Standard: 2s. |
SSE_HEARTBEAT | No | Heartbeat-Intervall für SSE-Verbindungen. Standard: 20s. |
SSE_IDLE_TIMEOUT | No | Timeout bei Inaktivität ohne Benachrichtigungen. Standard: 90s. |
| Logging | ||
LOG_LEVEL | Nein | Ausführlichkeit: DEBUG, INFO, WARN, ERROR.
Standard: INFO. |
LOG_OUTPUT | Nein | Wohin Logs geschrieben werden: stdout oder Dateipfad. |
Starten Sie den Server:
./pgarachne -config .env