Configuration Reference
Conveyor is configured entirely through environment variables, read once at startup.
Environment variables
Section titled “Environment variables”| 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: pointCONVEYOR_TLS_CERTandCONVEYOR_TLS_KEYat your own certificate and key (e.g. from Let’s Encrypt), and Conveyor serves HTTPS with them directly.
Secure cookies and HSTS
Section titled “Secure cookies and HSTS”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.
Deployment retention
Section titled “Deployment retention”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.