deeplo

Environment variables

Runtime settings for the daemon.

The environment layer holds runtime settings, paths, and credentials for the machine running the daemon. The structural deployment config lives in the separate Config file layer.

Only two variables are required

Everything else has a default.

  • DEEPLO_DATA_DIR: state, cache, and git mirrors.
  • DEEPLO_SSH_PRIVATE_KEY_FILE: the key used for git and host SSH.

The Docker image already sets DEEPLO_DATA_DIR to /var/lib/deeplo.


Environment variables

Config file

VariableDefaultDescription
DEEPLO_CONFIG_FILE/etc/deeplo/config.ymlPath to the local config file
DEEPLO_CONFIG_WATCHfalseWatch the local config file and reload valid changes. In Docker, see the bind-mount note.
DEEPLO_CONFIG_REPO_URL-Git clone URL of the config repo. When set, the config is read from git. See Config sources.
DEEPLO_CONFIG_REPO_BRANCHmainBranch to track in the config repo
DEEPLO_CONFIG_REPO_FILEconfig.ymlFile path within the config repo
DEEPLO_CONFIG_REPO_MODEpollHow config repo changes are detected: poll, webhook, or hybrid
DEEPLO_CONFIG_REPO_INTERVAL60sHow often to check for config changes in poll or hybrid mode

Data and SSH

VariableDefaultDescription
DEEPLO_DATA_DIR-Data/cache root directory. Required for native installs, the Docker image sets it to /var/lib/deeplo.
DEEPLO_SSH_PRIVATE_KEY_FILE-SSH private key for deploy hosts and git repo access. Required.
DEEPLO_SSH_USERdeployDefault SSH username on deploy hosts. hosts[].user overrides it per host.
DEEPLO_SSH_PORT22Default SSH port on deploy hosts. hosts[].port overrides it per host.
DEEPLO_SSH_KNOWN_HOSTSDEEPLO_DATA_DIR/known_hostsknown_hosts file for all SSH connections
DEEPLO_SSH_HOST_KEY_POLICYaccept-newaccept-new (TOFU, accept and remember new keys) or strict (require pre-existing entry)

HTTP and admin

VariableDefaultDescription
DEEPLO_HTTP_PORT8470HTTP listener for webhooks and health (also run logs when DEEPLO_LOG_SERVER_PORT matches it).
DEEPLO_PUBLIC_URL-Public base URL for webhook setup and GitHub "Details" log links.
DEEPLO_LOG_SERVERfalseServe run logs over HTTP at /runs/{id}/logs.
DEEPLO_LOG_SERVER_PORT8470Logs listener port. Use the HTTP port to share the main listener, or another port for a dedicated one. Only used when DEEPLO_LOG_SERVER is on.
DEEPLO_UNIX_SOCKET/run/deeplo/deeplo.sockUnix socket path for the admin API (used by the CLI).
DEEPLO_ADMIN_GROUP-Group given access to the admin socket for non-root CLI use. The native installer sets this to your primary group, empty means the socket stays deeplo:deeplo.

Deploys and shutdown

VariableDefaultDescription
DEEPLO_MAX_WORKERS0Maximum concurrent deploys across all hosts. 0 uses the number of CPUs.
DEEPLO_MAX_HOST_CONCURRENCY1Maximum concurrent deploys per host.
DEEPLO_DEPLOY_TIMEOUT0Per-deploy timeout (Go duration, e.g. 10m). 0 means no limit.
DEEPLO_SHUTDOWN_GRACE30sOn shutdown, how long in-flight deploys may finish before being cancelled.

Logging

VariableDefaultDescription
DEEPLO_LOG_LEVELinfoLog level: debug, info, warn, error.
DEEPLO_LOG_FORMATprettyLog format: pretty, text, json.
DEEPLO_LOG_COLORtrueEnable color output in pretty format.
DEEPLO_LOG_RETENTION_DAYS14Log file retention in days. 0 means keep forever.

GitHub integration

VariableDefaultDescription
DEEPLO_GITHUB_WEBHOOK_SECRET_FILE-File containing the GitHub webhook HMAC secret
DEEPLO_GITHUB_TOKEN_FILE-File containing a GitHub PAT, enables deployment reporting when set
DEEPLO_GITHUB_ENVIRONMENT-Optional prefix for the GitHub environment name
DEEPLO_GITHUB_ENVIRONMENT_HOSTfalseSet to true to use <host>/<project> as the environment name (default: <project>)

On this page