Configurazione
PgArachne carica la configurazione dalle variabili d’ambiente o da un file.
Note:
L’utente proxy (
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:
- Directory corrente:
./pgarachne.env(Tutti i SO) - Configurazione utente:
- Linux / macOS:
~/.config/pgarachne/pgarachne.env - Windows:
%USERPROFILE%\.config\pgarachne\pgarachne.env
- Linux / macOS:
- 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_secureConfiguration Reference
| Variabile | Richiesto | Descrizione |
|---|---|---|
| Connessione Database | ||
DB_HOST | Sì | Indirizzo del server PostgreSQL (es. localhost). |
DB_PORT | Sì | Porta del database. |
DB_USER | Sì | L’utente del database con cui PgArachne si connette. |
DB_SSLMODE | No | Modalità SSL di PostgreSQL. Predefinito: disable. |
DB_SSLROOTCERT | No | Percorso del certificato root CA (PEM). |
DB_SSLCERT | No | Percorso del certificato client (PEM). |
DB_SSLKEY | No | Percorso della chiave privata client (PEM). |
| Server HTTP | ||
HTTP_PORT | No | Porta su cui ascoltare. Default: 8080. |
ALLOWED_ORIGINS | No | Impostazioni CORS. Elenco separato da virgole dei domini consentiti (es. https://miapp.com).
Default: *. |
STATIC_FILES_PATH | No | Percorso assoluto per servire file statici (Explorer/Frontend). |
| Sicurezza (JWT) | ||
JWT_SECRET | Sì | Una stringa lunga e casuale usata per firmare i token di sessione. |
JWT_EXPIRY_HOURS | No | Validità della sessione in ore. Default: 8. |
LOGIN_RATE_LIMIT | No | Numero massimo di tentativi di login per finestra. Predefinito: 5. 0 disabilita. |
LOGIN_RATE_WINDOW | No | Durata della finestra di rate limit. Predefinito: 1m. |
| Il rate limit del login è per istanza (in memoria). In multi‑istanza serve un limiter condiviso. | ||
TRUSTED_PROXIES | No | Proxy fidati (IP/CIDR) per X-Forwarded-For. Separati da virgole. |
MAX_REQUEST_BYTES | No | Dimensione massima del body in byte. Predefinito: 2097152. |
SSE_MAX_CHANNELS | No | Numero massimo di canali per connessione SSE. Predefinito: 8. |
SSE_MAX_CLIENTS | No | Numero massimo di client SSE simultanei per database. Predefinito: 1000. |
SSE_CLIENT_BUFFER | No | Buffer SSE per client (numero di messaggi). Predefinito: 64. |
SSE_SEND_TIMEOUT | No | Tempo massimo di attesa per inviare a un client lento. Predefinito: 2s. |
SSE_HEARTBEAT | No | Intervallo heartbeat per SSE. Predefinito: 20s. |
SSE_IDLE_TIMEOUT | No | Timeout di inattività senza notifiche. Predefinito: 90s. |
| Logging | ||
LOG_LEVEL | No | Verbosità: DEBUG, INFO, WARN, ERROR.
Default: INFO. |
LOG_OUTPUT | No | Dove scrivere i log: stdout o percorso del file. |
Start the server:
./pgarachne -config .env