Configuration

PgArachne charge la configuration depuis des variables d’environnement ou un fichier.

Note: schema.sql tente de créer le rôle pgarachne_admin et de l’accorder à pgarachne. Sans droits superuser, la création est ignorée. Créez le rôle et le grant manuellement si besoin.
L’utilisateur proxy (DB_USER) doit être membre de pgarachne et pgarachne_admin pour vérifier et créer des tokens API.
Note de sécurité : PgArachne ne gère pas les mots de passe de la base de données dans le fichier de configuration. Il s’appuie sur le mécanisme standard du fichier .pgpass de PostgreSQL (ou la variable système PGPASSWORD) pour l’authentification.
Astuce : Si PgArachne est derrière un reverse proxy, définis TRUSTED_PROXIES pour résoudre correctement l’IP client et éviter le spoofing du rate limit.
Ordre de recherche : Si aucun fichier de configuration n’est spécifié via CLI, il cherche :
  1. Répertoire actuel : ./pgarachne.env (Tous les OS)
  2. Configuration utilisateur :
    • Linux / macOS : ~/.config/pgarachne/pgarachne.env
    • Windows : %USERPROFILE%\.config\pgarachne\pgarachne.env
  3. Configuration système : /etc/pgarachne/pgarachne.env (Linux / macOS uniquement)

Exemple de configuration minimale

Voici tout ce dont vous avez besoin pour commencer :

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

Configuration Reference

VariableRequisDescription
Connexion Base de Données
DB_HOSTOuiAdresse du serveur PostgreSQL (ex : localhost).
DB_PORTOuiPort de la base de données.
DB_USEROuiL’utilisateur de base de données avec lequel PgArachne se connecte.
DB_SSLMODENonMode SSL PostgreSQL. Par défaut : disable.
DB_SSLROOTCERTNonChemin vers le certificat racine CA (PEM).
DB_SSLCERTNonChemin vers le certificat client (PEM).
DB_SSLKEYNonChemin vers la clé privée du client (PEM).
Serveur HTTP
HTTP_PORTNonPort d’écoute. Défaut : 8080.
ALLOWED_ORIGINSNonParamètres CORS. Liste séparée par des virgules des domaines autorisés (ex : https://monapp.com). Défaut : *.
STATIC_FILES_PATHNonChemin absolu pour servir les fichiers statiques (Explorer/Frontend).
Sécurité (JWT)
JWT_SECRETOuiUne longue chaîne aléatoire utilisée pour signer les jetons de session.
JWT_EXPIRY_HOURSNonValidité de la session en heures. Défaut : 8.
LOGIN_RATE_LIMITNonNombre maximum de tentatives de connexion par fenêtre. Par défaut : 5. 0 désactive.
LOGIN_RATE_WINDOWNonDurée de la fenêtre de limitation. Par défaut : 1m.
Le rate limit de login est par instance (en mémoire). En multi‑instance, utilisez un limiteur partagé.
TRUSTED_PROXIESNonProxys de confiance (IP/CIDR) pour X-Forwarded-For. Séparés par des virgules.
MAX_REQUEST_BYTESNoTaille maximale du body en octets. Par défaut : 2097152.
SSE_MAX_CHANNELSNoNombre maximal de canaux par connexion SSE. Par défaut : 8.
SSE_MAX_CLIENTSNoNombre maximal de clients SSE simultanés par base. Par défaut : 1000.
SSE_CLIENT_BUFFERNoBuffer SSE par client (nombre de messages). Par défaut : 64.
SSE_SEND_TIMEOUTNoDélai max pour envoyer à un client lent. Par défaut : 2s.
SSE_HEARTBEATNoIntervalle de heartbeat pour SSE. Par défaut : 20s.
SSE_IDLE_TIMEOUTNoDélai d’inactivité sans notifications. Par défaut : 90s.
Logging
LOG_LEVELNonVerbosité : DEBUG, INFO, WARN, ERROR. Défaut : INFO.
LOG_OUTPUTNonOù écrire les logs : stdout ou chemin du fichier.

Démarrez le serveur :

./pgarachne -config .env