3 min čtení

Konfigurace

PgArachne načítá konfiguraci z proměnných prostředí nebo ze souboru.

Note: schema.sql se pokusí vytvořit roli pgarachne_admin a přiřadit ji roli pgarachne. Bez superuser práv se vytvoření přeskočí. V tom případě vytvořte roli a nastavte grant ručně.
Proxy uživatel (DB_USER) musí být členem pgarachne a pgarachne_admin, aby mohl ověřovat a vytvářet API tokeny.
Bezpečnostní poznámka: PgArachne nepracuje s hesly k databázi v konfiguračním souboru. Pro autentizaci spoléhá na standardní mechanismus PostgreSQL souboru .pgpass (nebo systémovou proměnnou PGPASSWORD).
Tip: Pokud běží PgArachne za reverse proxy, nastavte TRUSTED_PROXIES, aby se správně určovala IP klienta a nešlo obejít rate limiting.
Pořadí hledání: Pokud není konfigurační soubor specifikován přes CLI, hledá se v tomto pořadí:
  1. Aktuální složka: ./pgarachne.env (všechny OS)
  2. Uživatelská konfigurace:
    • Linux/macOS: ~/.config/pgarachne/pgarachne.env
    • Windows: %USERPROFILE%\.config\pgarachne\pgarachne.env
  3. Systémová konfigurace: /etc/pgarachne/pgarachne.env (pouze Linux/macOS)

Příklad minimální konfigurace

Pro základní spuštění aplikace postačuje následující nastavení:

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

Rychlý validační checklist

  • JWT_SECRET je dlouhý, náhodný a není sdílený mezi prostředími.
  • DB_USER může přepínat jen do očekávaných rolí (zkontrolujte role membership granty).
  • TRUSTED_PROXIES je nastaveno, pokud běžíte za reverse proxy.
  • LOGIN_RATE_LIMIT je zapnutý pro veřejně dostupné nasazení.
  • METRICS_LISTEN_ADDR je neveřejný (např. 127.0.0.1:9090).

Kompletní přehled nastavení

ProměnnáPovinnéPopis
Připojení k databázi
DB_HOSTAdresa PostgreSQL serveru (např. localhost).
DB_PORTPort databáze.
DB_USERDatabázový uživatel, pod kterým se PgArachne připojuje.
DB_SSLMODESSL režim PostgreSQL. Výchozí: disable.
DB_SSLROOTCERTCesta k CA root certifikátu (PEM).
DB_SSLCERTCesta ke klientskému certifikátu (PEM).
DB_SSLKEYCesta ke klientskému privátnímu klíči (PEM).
HTTP Server
HTTP_PORTPort pro naslouchání. Výchozí: 8080.
API_PREFIXPrvní segment URL cesty pro všechny databázové endpointy (/jsonrpc, /sse, /mcp). Výchozí: db, výsledné cesty jako /db/:databaze/jsonrpc. Nastavte na api pro zachování starých cest. Povoleny jsou pouze písmena, číslice, pomlčky a podtržítka.
PID_FILECesta k PID souboru démona používanému při -start/-stop. Výchozí: cache adresář uživatele (fallback: temp adresář).
ALLOWED_ORIGINSNastavení CORS. Čárkou oddělený seznam povolených domén (např. https://mojeaplikace.cz). Výchozí: *.
STATIC_FILES_PATHAbsolutní cesta k servírování statických souborů (Explorer/Frontend).
Bezpečnost (JWT)
JWT_SECRETDlouhý náhodný řetězec používaný k podepisování relačních tokenů.
JWT_EXPIRY_HOURSPlatnost relace v hodinách. Výchozí: 8.
LOGIN_RATE_LIMITMax. počet pokusů o přihlášení v okně. Pro vypnutí nastavte 0. Výchozí: 5
LOGIN_RATE_WINDOWDélka časového okna pro limit. Výchozí: 1m.
Omezení přihlášení je per instance (v paměti). Ve více instancích je potřeba sdílený limiter pro globální vynucení.
TRUSTED_PROXIESDůvěryhodné proxy IP/CIDR pro zpracování X-Forwarded-For. Čárkou oddělené. Pokud je hodnota prázdná, forwardované hlavičky se ignorují a IP klienta se bere z přímého spojení.
MAX_REQUEST_BYTESMaximální velikost request body v bajtech. Výchozí: 2097152.
METRICS_ENABLEDPovolit dedikovaný endpoint metrik. Výchozí: true.
METRICS_LISTEN_ADDRAdresa listeneru metrik (host:port). Výchozí: 127.0.0.1:9090.
SSE_MAX_CHANNELSMaximální počet kanálů na SSE připojení. Výchozí: 8.
SSE_MAX_CLIENTSMaximální počet současných SSE klientů na databázi. Výchozí: 1000.
SSE_CLIENT_BUFFERVelikost per‑klientského bufferu SSE (počet zpráv). Výchozí: 64.
SSE_SEND_TIMEOUTMaximální čekání při odesílání pomalému klientovi. Výchozí: 2s.
SSE_HEARTBEATInterval heartbeat zpráv pro SSE. Výchozí: 20s.
SSE_IDLE_TIMEOUTTimeout neaktivity bez notifikací. Výchozí: 90s.
Logování
LOG_LEVELÚroveň detailů: DEBUG, INFO, WARN, ERROR. Výchozí: INFO.
LOG_OUTPUTKam zapisovat logy: stdout nebo cesta k souboru.

Povinné   Volitelné

Bezpečnostní chování: požadavky bez validní hlavičky Authorization jsou odmítnuty ještě před navázáním databázového připojení.

Spuštění serveru:

./pgarachne -config .env

Viz také