Configuration¶
Bifract is configured with environment variables. The installer generates them, with random secrets, so most installs only change a few later (domain, SSO, archive). On Docker Compose they live in /opt/bifract/.env; on Kubernetes, in the bifract-secrets Secret (see Post-deploy configuration).
Change a setting (Docker Compose)¶
- Edit
/opt/bifract/.env. - Apply it:
- Domain, TLS or IP access:
sudo bifract --reconfigure(regenerates the Caddyfile and Compose file, then restarts what changed). - Anything else:
cd /opt/bifract && sudo docker compose up -d.
- Domain, TLS or IP access:
Note
--reconfigure and --upgrade rewrite .env. Keys you added yourself are kept at the end of the file; comments are not.
Variables¶
Network and access (apply with --reconfigure):
| Variable | Description |
|---|---|
BIFRACT_DOMAIN |
Hostname or IPv4 address Caddy serves. When you change it, update BIFRACT_CORS_ORIGINS to match. |
BIFRACT_CORS_ORIGINS |
Comma-separated allowed origins. The installer sets https://<domain>. |
BIFRACT_SSL_MODE |
self-signed, letsencrypt or custom |
BIFRACT_SSL_EMAIL |
Let's Encrypt contact email |
BIFRACT_CERT_PATH, BIFRACT_KEY_PATH |
Certificate and key for custom |
BIFRACT_IP_ACCESS |
all, restrict-app, restrict-all or mtls-app. See Access control. |
BIFRACT_ALLOWED_IPS |
Comma-separated IPs or CIDRs for the restrict-* modes |
BIFRACT_SECURE_COOKIES |
true sets the Secure flag on session cookies. The installer enables it for any domain other than localhost. |
Application (apply with docker compose up -d):
| Variable | Default | Description |
|---|---|---|
BIFRACT_BASE_URL |
https://<domain> |
Base URL used in alert links and as the OIDC redirect base |
BIFRACT_EXCHANGE_URL |
Bifract repository on GitHub | Index the Exchange reads, for example a mirror for an offline install. off removes it |
BIFRACT_MEM_LIMIT |
4g |
Memory limit of the app container |
BIFRACT_INGEST_MEM_LIMIT |
4g |
Memory limit of the ingest container |
BIFRACT_LLM_PROVIDER, BIFRACT_LLM_API_KEY, BIFRACT_LLM_MODEL, BIFRACT_LLM_BASE_URL |
anthropic, empty |
Model provider for AI Chat |
BIFRACT_OIDC_* |
empty | Single sign-on. See OIDC / SSO. |
BIFRACT_S3_* |
empty | Off-host PostgreSQL backups. See Backup & Restore. |
BIFRACT_ARCHIVE_* |
archive off | Iceberg archive. See Iceberg Archive. |
MAXMIND_LICENSE_KEY, MAXMIND_ACCOUNT_ID |
empty | GeoIP enrichment |
BIFRACT_INGEST_* |
see tuning | Ingest queue, workers and rate limit. See Ingestion Tuning. |
Generated secrets (set once by the installer; do not change):
| Variable | Why it must not change |
|---|---|
BIFRACT_PASSWORD_PEPPER |
Mixed into every password hash; changing it locks out all local users |
BIFRACT_FEED_ENCRYPTION_KEY |
Encrypts Git credentials for alert feeds |
BIFRACT_BACKUP_ENCRYPTION_KEY |
Encrypts PostgreSQL backups; without it they cannot be restored |
POSTGRES_PASSWORD, CLICKHOUSE_PASSWORD, BIFRACT_INGEST_*_PASSWORD |
Database and service credentials already stored in those services |
Note
The full list of variables the server reads, with comments, is in .env.example. The installer's Compose file fixes some of them (database hosts, ports, BIFRACT_MAX_QUERY_ROWS), so setting those in .env has no effect on a wizard install.