Konfiguration

PgArachne lädt die Konfiguration aus Umgebungsvariablen oder einer Datei.

Note: 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:
  1. Aktuelles Verzeichnis: ./pgarachne.env (Alle Betriebssysteme)
  2. Benutzerkonfiguration:
    • Linux / macOS: ~/.config/pgarachne/pgarachne.env
    • Windows: %USERPROFILE%\.config\pgarachne\pgarachne.env
  3. 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_secure

Konfigurationsreferenz

VariableErforderlichBeschreibung
Datenbank-Verbindung
DB_HOSTJaPostgreSQL-Serveradresse (z. B. localhost).
DB_PORTJaDatenbankport.
DB_USERJaDer Datenbankbenutzer, mit dem sich PgArachne verbindet.
DB_SSLMODENeinPostgreSQL-SSL-Modus. Standard: disable.
DB_SSLROOTCERTNeinPfad zum CA-Root-Zertifikat (PEM).
DB_SSLCERTNeinPfad zum Client-Zertifikat (PEM).
DB_SSLKEYNeinPfad zum privaten Client-Schlüssel (PEM).
HTTP-Server
HTTP_PORTNeinPort, auf dem gelauscht wird. Standard: 8080.
ALLOWED_ORIGINSNeinCORS-Einstellungen. Kommagetrennte Liste zulässiger Domains (z. B. https://meineapp.de). Standard: *.
STATIC_FILES_PATHNeinAbsoluter Pfad zum Bereitstellen statischer Dateien (Explorer/Frontend).
Sicherheit (JWT)
JWT_SECRETJaEine lange, zufällige Zeichenfolge zum Signieren von Sitzungstoken.
JWT_EXPIRY_HOURSNeinGültigkeit der Sitzung in Stunden. Standard: 8.
LOGIN_RATE_LIMITNeinMaximale Login-Versuche pro Zeitfenster. Standard: 5. 0 deaktiviert.
LOGIN_RATE_WINDOWNeinDauer des Zeitfensters. Standard: 1m.
Login-Rate-Limit ist pro Instanz (in-memory). Bei mehreren Instanzen ist ein geteilter Limiter nötig.
TRUSTED_PROXIESNeinVertrauenswürdige Proxy-IPs/CIDRs für X-Forwarded-For. Kommagetrennt.
MAX_REQUEST_BYTESNoMaximale Request-Body-Größe in Bytes. Standard: 2097152.
SSE_MAX_CHANNELSNoMaximale Anzahl von Kanälen pro SSE-Verbindung. Standard: 8.
SSE_MAX_CLIENTSNoMaximale Anzahl gleichzeitiger SSE-Clients pro Datenbank. Standard: 1000.
SSE_CLIENT_BUFFERNoSSE-Buffer pro Client (Anzahl Nachrichten). Standard: 64.
SSE_SEND_TIMEOUTNoMaximale Wartezeit beim Senden an langsame Clients. Standard: 2s.
SSE_HEARTBEATNoHeartbeat-Intervall für SSE-Verbindungen. Standard: 20s.
SSE_IDLE_TIMEOUTNoTimeout bei Inaktivität ohne Benachrichtigungen. Standard: 90s.
Logging
LOG_LEVELNeinAusführlichkeit: DEBUG, INFO, WARN, ERROR. Standard: INFO.
LOG_OUTPUTNeinWohin Logs geschrieben werden: stdout oder Dateipfad.

Starten Sie den Server:

./pgarachne -config .env