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

Kompletní přehled nastavení

ProměnnáPovinnéPopis
Připojení k databázi
DB_HOSTAnoAdresa PostgreSQL serveru (např. localhost).
DB_PORTAnoPort databáze.
DB_USERAnoDatabázový uživatel, pod kterým se PgArachne připojuje.
DB_SSLMODENeSSL režim PostgreSQL. Výchozí: disable.
DB_SSLROOTCERTNeCesta k CA root certifikátu (PEM).
DB_SSLCERTNeCesta ke klientskému certifikátu (PEM).
DB_SSLKEYNeCesta ke klientskému privátnímu klíči (PEM).
HTTP Server
HTTP_PORTNePort pro naslouchání. Výchozí: 8080.
ALLOWED_ORIGINSNeNastavení CORS. Čárkou oddělený seznam povolených domén (např. https://mojeaplikace.cz). Výchozí: *.
STATIC_FILES_PATHNeAbsolutní cesta k servírování statických souborů (Explorer/Frontend).
Bezpečnost (JWT)
JWT_SECRETAnoDlouhý náhodný řetězec používaný k podepisování relačních tokenů.
JWT_EXPIRY_HOURSNePlatnost relace v hodinách. Výchozí: 8.
LOGIN_RATE_LIMITNeMax. počet pokusů o přihlášení v okně. Pro vypnutí nastavte 0. Výchozí: 5
LOGIN_RATE_WINDOWNeDé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_PROXIESNeDůvěryhodné proxy IP/CIDR pro zpracování X-Forwarded-For. Čárkou oddělené.
MAX_REQUEST_BYTESNoMaximální velikost request body v bajtech. Výchozí: 2097152.
SSE_MAX_CHANNELSNoMaximální počet kanálů na SSE připojení. Výchozí: 8.
SSE_MAX_CLIENTSNoMaximální počet současných SSE klientů na databázi. Výchozí: 1000.
SSE_CLIENT_BUFFERNoVelikost per‑klientského bufferu SSE (počet zpráv). Výchozí: 64.
SSE_SEND_TIMEOUTNoMaximální čekání při odesílání pomalému klientovi. Výchozí: 2s.
SSE_HEARTBEATNoInterval heartbeat zpráv pro SSE. Výchozí: 20s.
SSE_IDLE_TIMEOUTNoTimeout neaktivity bez notifikací. Výchozí: 90s.
Logování
LOG_LEVELNeÚroveň detailů: DEBUG, INFO, WARN, ERROR. Výchozí: INFO.
LOG_OUTPUTNeKam zapisovat logy: stdout nebo cesta k souboru.

Spuštění serveru:

./pgarachne -config .env