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_secretstring—Required. Secret used to sign JWT tokens. Must be at least 32 bytes.
server.public_urlstring—Public URL of this Concourse instance. Used for client autodiscovery and SSO callback URLs.
server.namestringMy CompanyOrganization name displayed in the inboard app.
server.extensions_urlstring—URL 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.issuerstring—OIDC issuer URL (e.g., https://accounts.google.com).
auth.oidc.client_idstring—OIDC client ID from your identity provider.
auth.oidc.client_secretstring—OIDC 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_urlstring—URL 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_emailstring—Email for the initial admin user. Used only on first startup.
bootstrap.admin_passwordstring—Password for the initial admin user.
bootstrap.admin_namestring—Display 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.urlstring—SIEM or log collector webhook URL.
audit.webhook.headersmap—HTTP 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.