Skip to content

Configuration Reference

Conveyor is configured entirely through environment variables, read once at startup.

Variable Required Default Description
CONVEYOR_ENCRYPTION_KEY Yes 64-character hex string (32 bytes) for AES-256-GCM. Must decode to exactly 32 bytes or Conveyor refuses to start.
CONVEYOR_PORT No 8080 Listen port.
CONVEYOR_BASE_URL No http://localhost:<port> Used to build the webhook and deploy-API URLs shown in the UI, and to decide whether CONVEYOR_SECURE_COOKIES=auto should mark cookies Secure.
CONVEYOR_DATA_DIR No /data Directory for the SQLite database and, if CONVEYOR_TLS_MODE=self-signed, the generated TLS certificate.
CONVEYOR_SESSION_MAX_AGE No 86400 Session TTL in seconds.
CONVEYOR_ADMIN_EMAIL No Creates an admin user on first boot, only if the database has no users yet. Ignored after that.
CONVEYOR_ADMIN_PASSWORD No Password for the first-boot admin user. Used together with CONVEYOR_ADMIN_EMAIL.
CONVEYOR_TLS_MODE No off off, self-signed, or custom.
CONVEYOR_TLS_CERT No Certificate file path. Required if CONVEYOR_TLS_MODE=custom.
CONVEYOR_TLS_KEY No Key file path. Required if CONVEYOR_TLS_MODE=custom.
CONVEYOR_SECURE_COOKIES No auto auto, true, or false. Controls whether the session and CSRF cookies get the Secure flag.
CONVEYOR_DEPLOYMENT_RETENTION_DAYS No 90 Deletes finished deployment records and their logs older than N days; 0 disables this cleanup entirely.

Only CONVEYOR_ENCRYPTION_KEY is required. Leave any other variable unset to use its default.

Conveyor can serve HTTPS directly, with no reverse proxy required:

  • off (default): plain HTTP.
  • self-signed: Conveyor generates a self-signed certificate on first boot and persists it under $CONVEYOR_DATA_DIR/tls, so it survives restarts. This gets you HTTPS with no external dependencies, but browsers will show a warning since the certificate isn’t signed by a trusted CA.
  • custom: point CONVEYOR_TLS_CERT and CONVEYOR_TLS_KEY at your own certificate and key (e.g. from Let’s Encrypt), and Conveyor serves HTTPS with them directly.

When TLS is enabled (or CONVEYOR_BASE_URL starts with https://), CONVEYOR_SECURE_COOKIES=auto (the default) marks the session and CSRF cookies Secure, and Conveyor adds an HSTS header. Set CONVEYOR_SECURE_COOKIES explicitly to true or false to override the automatic behavior. For example, set true if you terminate TLS at a reverse proxy that talks to Conveyor over plain HTTP.

CONVEYOR_DEPLOYMENT_RETENTION_DAYS controls a background job that runs once at startup and then every 24 hours, deleting finished deployment records (and their step logs) from the database older than the configured number of days. Set it to 0 to keep deployment history forever.

This only prunes rows in Conveyor’s own database. Release directories on your target servers are unaffected; those are cleaned up per-project by the purge step and each project’s Releases to Keep setting (see Deploy Steps).

See Installation for how to set these when starting Conveyor, and Security for the recommended network posture around exposing it.