Configurazione

PgArachne carica la configurazione dalle variabili d’ambiente o da un file.

Note: schema.sql prova a creare il ruolo pgarachne_admin e a concederlo a pgarachne. Senza privilegi di superuser, la creazione viene saltata. Crea ruolo e grant manualmente se necessario.
L’utente proxy (DB_USER) deve essere membro di pgarachne e pgarachne_admin per verificare e creare token API.
Nota di Sicurezza: PgArachne non gestisce le password del database nel file di configurazione. Si affida al meccanismo standard del file .pgpass di PostgreSQL (o alla variabile di sistema PGPASSWORD) per l’autenticazione.
Suggerimento: Se PgArachne è dietro un reverse proxy, imposta TRUSTED_PROXIES per risolvere correttamente l’IP client ed evitare spoofing del rate limit.
Ordine di Ricerca: Se nessun file di configurazione è specificato via CLI, cerca in:
  1. Directory corrente: ./pgarachne.env (Tutti i SO)
  2. Configurazione utente:
    • Linux / macOS: ~/.config/pgarachne/pgarachne.env
    • Windows: %USERPROFILE%\.config\pgarachne\pgarachne.env
  3. Configurazione di sistema: /etc/pgarachne/pgarachne.env (Solo Linux / macOS)

Esempio di Configurazione Minima

Questo è tutto ciò di cui hai bisogno per iniziare:

DB_HOST=localhost
DB_PORT=5432
DB_USER=pgarachne
JWT_SECRET=change_me_to_something_secure

Configuration Reference

VariabileRichiestoDescrizione
Connessione Database
DB_HOSTIndirizzo del server PostgreSQL (es. localhost).
DB_PORTPorta del database.
DB_USERL’utente del database con cui PgArachne si connette.
DB_SSLMODENoModalità SSL di PostgreSQL. Predefinito: disable.
DB_SSLROOTCERTNoPercorso del certificato root CA (PEM).
DB_SSLCERTNoPercorso del certificato client (PEM).
DB_SSLKEYNoPercorso della chiave privata client (PEM).
Server HTTP
HTTP_PORTNoPorta su cui ascoltare. Default: 8080.
ALLOWED_ORIGINSNoImpostazioni CORS. Elenco separato da virgole dei domini consentiti (es. https://miapp.com). Default: *.
STATIC_FILES_PATHNoPercorso assoluto per servire file statici (Explorer/Frontend).
Sicurezza (JWT)
JWT_SECRETUna stringa lunga e casuale usata per firmare i token di sessione.
JWT_EXPIRY_HOURSNoValidità della sessione in ore. Default: 8.
LOGIN_RATE_LIMITNoNumero massimo di tentativi di login per finestra. Predefinito: 5. 0 disabilita.
LOGIN_RATE_WINDOWNoDurata della finestra di rate limit. Predefinito: 1m.
Il rate limit del login è per istanza (in memoria). In multi‑istanza serve un limiter condiviso.
TRUSTED_PROXIESNoProxy fidati (IP/CIDR) per X-Forwarded-For. Separati da virgole.
MAX_REQUEST_BYTESNoDimensione massima del body in byte. Predefinito: 2097152.
SSE_MAX_CHANNELSNoNumero massimo di canali per connessione SSE. Predefinito: 8.
SSE_MAX_CLIENTSNoNumero massimo di client SSE simultanei per database. Predefinito: 1000.
SSE_CLIENT_BUFFERNoBuffer SSE per client (numero di messaggi). Predefinito: 64.
SSE_SEND_TIMEOUTNoTempo massimo di attesa per inviare a un client lento. Predefinito: 2s.
SSE_HEARTBEATNoIntervallo heartbeat per SSE. Predefinito: 20s.
SSE_IDLE_TIMEOUTNoTimeout di inattività senza notifiche. Predefinito: 90s.
Logging
LOG_LEVELNoVerbosità: DEBUG, INFO, WARN, ERROR. Default: INFO.
LOG_OUTPUTNoDove scrivere i log: stdout o percorso del file.

Start the server:

./pgarachne -config .env