probod via the -cfg-file flag. The entrypoint also supports generating the config from environment variables — see the Docker deployment page for details.
Full example config
Configuration sections
probod.base-url
The public URL at which your Probo instance is reachable. This value is used to construct links in emails, OAuth callbacks, and the trust center.
probod.encryption-key
A secret key used to encrypt sensitive data at rest. Must be at least 32 bytes, base64-encoded.
probod.chrome-dp-addr
The Chrome DevTools Protocol address for the headless Chrome instance used to generate PDF exports.
probod.identity-and-access-management
Controls user signup, invitation tokens, password hashing, and session cookies.
signup
signup
| Field | Type | Description |
|---|---|---|
enabled | boolean | Allow new users to self-register. Set to false to require invitations in production. |
invitation-token-validity | integer (seconds) | How long an invitation link remains valid. Default: 3600 (1 hour). |
password
password
| Field | Type | Description |
|---|---|---|
pepper | string | A secret string mixed into the password hash before storage. Must be at least 32 bytes. Changing this value invalidates all existing passwords. |
session
session
| Field | Type | Description |
|---|---|---|
duration | string | How long a user session remains valid (e.g. 7d). |
cookie.name | string | Name of the session cookie. Default: SSID. |
cookie.domain | string | Domain scope of the cookie. Set to your Probo hostname. |
cookie.secret | string | HMAC secret for signing cookies. Must be at least 32 bytes. |
cookie.duration | integer (hours) | Cookie expiry in hours. |
cookie.secure | boolean | Set to true in production to restrict cookies to HTTPS. |
probod.trust-center
Bind addresses for the trust center server, which serves your public compliance portal.
| Field | Description |
|---|---|
http-addr | Address for the plain HTTP listener. Used for ACME HTTP-01 challenge redirects. |
https-addr | Address for the TLS listener. Serves the public trust center. |
probod.api
Configuration for the main API server.
| Field | Description |
|---|---|
addr | The address and port the API server listens on. |
default.cors.allowed-origins | List of origins allowed to make cross-origin requests. Include your console’s URL. |
probod.pg
PostgreSQL connection settings.
| Field | Description |
|---|---|
addr | Host and port of the PostgreSQL server. |
username | Database user. |
password | Database password. |
database | Database name. |
pool-size | Maximum number of connections in the connection pool. |
probod.aws
S3-compatible file storage configuration. In production, use AWS S3 or a compatible service such as MinIO or Cloudflare R2.
| Field | Description |
|---|---|
region | AWS region or the region identifier for your S3-compatible service. |
bucket | Name of the bucket where Probo stores uploaded files. |
access-key-id | S3 access key. |
secret-access-key | S3 secret access key. |
endpoint | Custom endpoint URL for S3-compatible services. Omit to use native AWS S3. |
probod.notifications.mailer
Outbound email configuration for notifications such as invitations and alerts.
| Field | Description |
|---|---|
sender-name | Display name shown in the From field. |
sender-email | From address for outgoing email. |
smtp.addr | SMTP server address and port. |
smtp.tls-required | Require STARTTLS when connecting to the SMTP server. Set to true in production. |
mailer-interval | Polling interval in seconds for the email delivery worker. |
probod.agents
AI provider configuration used by Probo’s automated compliance agents.
| Field | Description |
|---|---|
providers.openai.api-key | Your OpenAI API key. |
default.provider | Which provider to use for agent tasks. Currently openai. |
default.model-name | Model to use (e.g. gpt-4o). |
default.temperature | Sampling temperature. Lower values give more deterministic outputs. |
default.max-tokens | Maximum tokens per agent response. |
probod.custom-domains
Settings for the trust center’s custom domain provisioning, including automatic TLS certificate issuance via ACME (Let’s Encrypt).
| Field | Description |
|---|---|
renewal-interval | How often (in seconds) to check for certificates needing renewal. |
provision-interval | How often (in seconds) to attempt provisioning pending certificates. |
cname-target | The CNAME target your customers should point their custom domain at. |
acme.directory | ACME directory URL. Use the Let’s Encrypt production URL in production. |
acme.email | Contact email registered with the ACME provider for expiry notifications. |
acme.key-type | Key type for issued certificates. EC256 is recommended. |
The trust center must be reachable on port 80 for ACME HTTP-01 domain validation to succeed.
probod.connectors
OAuth connector configurations for third-party integrations. Each connector entry specifies the provider, OAuth endpoints, credentials, and scopes.
Slack connector
Slack connector
signing-secret is used to verify incoming Slack events.Google Workspace connector
Google Workspace connector
Docker deployment
Run Probo with Docker Compose, including infrastructure setup and production considerations.
Observability
Set up metrics, tracing, and log aggregation for your self-hosted instance.