Skip to content

Configuration Reference

Concourse is configured through a YAML file mounted at /etc/concourse/config.yaml. All values can also be set via environment variables or CLI arguments.

Configuration values are resolved in this order (highest priority first):

  1. CLI arguments
  2. Environment variables
  3. YAML config file
  4. Built-in defaults

The config file supports environment variable substitution:

  • ${VAR} — substitutes the value of VAR. Fails if unset.
  • ${VAR:-default} — substitutes the value of VAR, or default if unset.
server:
host: 0.0.0.0 # Bind address
port: 8080 # Listen port
jwt_secret: ${CONCOURSE_JWT_SECRET} # Required. Min 32 bytes.
public_url: ${CONCOURSE_PUBLIC_URL:-} # For client autodiscovery
name: ${CONCOURSE_NAME:-My Company} # Organization display name
extensions_url: ${CONCOURSE_EXTENSIONS_URL:-} # Extension registry URL
database:
url: ${DATABASE_URL:-sqlite:///data/concourse.db}
auth:
password_enabled: true
oidc:
enabled: false
issuer: https://accounts.google.com
client_id: ${OIDC_CLIENT_ID}
client_secret: ${OIDC_CLIENT_SECRET}
redirect_uri: ${OIDC_REDIRECT_URI:-http://localhost:8080/api/v1/auth/oidc/callback}
saml:
enabled: false
metadata_url: ${SAML_METADATA_URL}
entity_id: ${SAML_ENTITY_ID:-https://concourse.example.com}
acs_url: ${SAML_ACS_URL:-http://localhost:8080/api/v1/auth/saml/acs}
bootstrap:
admin_email: ${CONCOURSE_ADMIN_EMAIL}
admin_password: ${CONCOURSE_ADMIN_PASSWORD}
admin_name: ${CONCOURSE_ADMIN_NAME:-}
audit:
enabled: true
database:
url: ${AUDIT_DATABASE_URL:-file:///data/audit.db}
webhook:
enabled: false
url: ${AUDIT_WEBHOOK_URL:-}
headers:
Authorization: Bearer ${AUDIT_WEBHOOK_TOKEN:-}
batch_size: 100
flush_interval_secs: 5
timeout_secs: 30
FieldTypeDefaultDescription
server.hoststring0.0.0.0Bind address for the HTTP server.
server.portinteger8080Listen port for HTTP and WebSocket.
server.jwt_secretstringRequired. Secret used to sign JWT tokens. Must be at least 32 bytes.
server.public_urlstringPublic URL of this Concourse instance. Used for client autodiscovery and SSO callback URLs.
server.namestringMy CompanyOrganization name displayed in the inboard app.
server.extensions_urlstringURL of the extension registry. Defaults to the inboard-hosted registry if unset.
FieldTypeDefaultDescription
database.urlstringsqlite:///data/concourse.dbPrimary database URL. Supports sqlite://, file://, libsql://, and :memory:.
FieldTypeDefaultDescription
auth.password_enabledbooleantrueEnable email/password authentication.
auth.oidc.enabledbooleanfalseEnable OpenID Connect authentication.
auth.oidc.issuerstringOIDC issuer URL (e.g., https://accounts.google.com).
auth.oidc.client_idstringOIDC client ID from your identity provider.
auth.oidc.client_secretstringOIDC client secret.
auth.oidc.redirect_uristringhttp://localhost:8080/api/v1/auth/oidc/callbackOIDC callback URL. Must match your IdP configuration.
auth.saml.enabledbooleanfalseEnable SAML 2.0 authentication.
auth.saml.metadata_urlstringURL to your IdP’s SAML metadata XML.
auth.saml.entity_idstringhttps://concourse.example.comSAML Service Provider entity ID.
auth.saml.acs_urlstringhttp://localhost:8080/api/v1/auth/saml/acsSAML Assertion Consumer Service URL.
FieldTypeDefaultDescription
bootstrap.admin_emailstringEmail for the initial admin user. Used only on first startup.
bootstrap.admin_passwordstringPassword for the initial admin user.
bootstrap.admin_namestringDisplay name for the initial admin user.
FieldTypeDefaultDescription
audit.enabledbooleantrueEnable audit logging.
audit.database.urlstringfile:///data/audit.dbAudit database URL. Separate from the primary database for tamper resistance.
audit.webhook.enabledbooleanfalseEnable webhook forwarding of audit events.
audit.webhook.urlstringSIEM or log collector webhook URL.
audit.webhook.headersmapHTTP headers to include in webhook requests.
audit.webhook.batch_sizeinteger100Number of events to batch before sending.
audit.webhook.flush_interval_secsinteger5Maximum seconds between webhook flushes.
audit.webhook.timeout_secsinteger30HTTP timeout for webhook requests.