3 Min. Lesezeit

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

Schnelle Validierungs-Checkliste

  • JWT_SECRET ist lang, zufällig und wird nicht zwischen Umgebungen geteilt.
  • DB_USER kann nur auf erwartete Rollen wechseln (Role-Membership-Grants prüfen).
  • TRUSTED_PROXIES ist gesetzt, wenn PgArachne hinter einem Reverse Proxy läuft.
  • LOGIN_RATE_LIMIT ist für öffentlich erreichbare Deployments aktiviert.
  • METRICS_LISTEN_ADDR ist nicht öffentlich (z. B. 127.0.0.1:9090).

Konfigurationsreferenz

VariableErforderlichBeschreibung
Datenbank-Verbindung
DB_HOSTPostgreSQL-Serveradresse (z. B. localhost).
DB_PORTDatenbankport.
DB_USERDer Datenbankbenutzer, mit dem sich PgArachne verbindet.
DB_SSLMODEPostgreSQL-SSL-Modus. Standard: disable.
DB_SSLROOTCERTPfad zum CA-Root-Zertifikat (PEM).
DB_SSLCERTPfad zum Client-Zertifikat (PEM).
DB_SSLKEYPfad zum privaten Client-Schlüssel (PEM).
HTTP-Server
HTTP_PORTPort, auf dem gelauscht wird. Standard: 8080.
API_PREFIXErstes URL-Pfadsegment für alle Datenbank-Endpunkte (/jsonrpc, /sse, /mcp). Standard: db, ergibt Routen wie /db/:datenbank/jsonrpc. Auf api setzen für Legacy-Pfade. Nur Buchstaben, Ziffern, Bindestriche und Unterstriche erlaubt.
PID_FILEPfad zur Daemon-PID-Datei für -start/-stop. Standard: User-Cache-Verzeichnis (Fallback: Temp-Verzeichnis).
ALLOWED_ORIGINSCORS-Einstellungen. Kommagetrennte Liste zulässiger Domains (z. B. https://meineapp.de). Standard: *.
STATIC_FILES_PATHAbsoluter Pfad zum Bereitstellen statischer Dateien (Explorer/Frontend).
Sicherheit (JWT)
JWT_SECRETEine lange, zufällige Zeichenfolge zum Signieren von Sitzungstoken.
JWT_EXPIRY_HOURSGültigkeit der Sitzung in Stunden. Standard: 8.
LOGIN_RATE_LIMITMaximale Login-Versuche pro Zeitfenster. Standard: 5. 0 deaktiviert.
LOGIN_RATE_WINDOWDauer des Zeitfensters. Standard: 1m.
Login-Rate-Limit ist pro Instanz (in-memory). Bei mehreren Instanzen ist ein geteilter Limiter nötig.
TRUSTED_PROXIESVertrauenswürdige Proxy-IPs/CIDRs für X-Forwarded-For. Kommagetrennt. Wenn leer, werden Forwarded-Header ignoriert und die Client-IP aus der direkten Verbindung übernommen.
MAX_REQUEST_BYTESMaximale Request-Body-Größe in Bytes. Standard: 2097152.
METRICS_ENABLEDDedizierten Metrics-Endpunkt aktivieren. Standard: true.
METRICS_LISTEN_ADDRAdresse des Metrics-Listeners (host:port). Standard: 127.0.0.1:9090.
SSE_MAX_CHANNELSMaximale Anzahl von Kanälen pro SSE-Verbindung. Standard: 8.
SSE_MAX_CLIENTSMaximale Anzahl gleichzeitiger SSE-Clients pro Datenbank. Standard: 1000.
SSE_CLIENT_BUFFERSSE-Buffer pro Client (Anzahl Nachrichten). Standard: 64.
SSE_SEND_TIMEOUTMaximale Wartezeit beim Senden an langsame Clients. Standard: 2s.
SSE_HEARTBEATHeartbeat-Intervall für SSE-Verbindungen. Standard: 20s.
SSE_IDLE_TIMEOUTTimeout bei Inaktivität ohne Benachrichtigungen. Standard: 90s.
Logging
LOG_LEVELAusführlichkeit: DEBUG, INFO, WARN, ERROR. Standard: INFO.
LOG_OUTPUTWohin Logs geschrieben werden: stdout oder Dateipfad.

Erforderlich   Optional

Sicherheitsverhalten: Requests ohne gültigen Authorization-Header werden abgelehnt, bevor eine Datenbankverbindung geöffnet wird.

Starten Sie den Server:

./pgarachne -config .env

Siehe auch