Environment variables

DockLog is configured through environment variables in your docker run command or Compose file. Auth mode needs a persistent DB_PATH and a non-default SECRET_KEY in production.

Action permissions

In auth mode, container and pod actions need both a server ALLOW_* flag and the matching per-user can_* permission. In no-auth mode, ALLOW_* env vars are the only gate. Use EXCLUDE_CONTAINERS to hide Docker workloads from every user.

Kubernetes

Set RUNTIME_MODE to kubernetes or both and provide cluster access with KUBECONFIG or in-cluster credentials. Use K8S_NAMESPACES to limit which namespaces DockLog queries at the instance level.

Full reference

VariableDescriptionDefaultMode
DISABLE_AUTHDisable login and JWT. Also accepted as NO_AUTH=true. Forces CLIENT_ACCESS off and uses an in-memory SQLite database when DB_PATH is unset.falseBoth
SECRET_KEYJWT signing secret. Startup fails in production (ENV=production) if the default value is still in use.secret-key-change-thisAuth
DB_PATHSQLite file path. Defaults to docklog.db in auth mode and :memory: in no-auth mode when unset.docklog.dbBoth
PORTHTTP listen port inside the container.8000Both
DOCKER_HOSTDocker daemon address (standard Docker SDK variable). Defaults to the local socket.unix:///var/run/docker.sockBoth
RUNTIME_MODERuntime backend: docker, kubernetes, or both. Controls which APIs and UI sections are enabled.dockerBoth
K8S_NAMESPACESComma-separated namespace allowlist for Kubernetes. Empty means all namespaces allowed by cluster RBAC.(empty)Both
K8S_CONTEXTKubernetes context override from kubeconfig.(empty)Both
KUBECONFIGPath to kubeconfig inside the container. Required for kubernetes or both unless in-cluster.(empty)Both
K8S_API_SERVEROptional Kubernetes API server URL override.(empty)Both
K8S_REWRITE_LOCALHOSTRewrite 127.0.0.1 API URLs to host.docker.internal for Docker Desktop clusters running in a container.(auto on Docker Desktop)Both
K8S_INSECURE_SKIP_TLS_VERIFYSkip TLS verification for local cluster debugging only. Do not use in production.falseBoth
CLIENT_ACCESSstrict or off. In strict mode, browser clients must send X-DockLog-Client: web with an allowed Origin. Native apps use JWT without Origin. Forced off when DISABLE_AUTH=true.strictAuth
ALLOWED_ORIGINSComma-separated browser origins for the Vue UI. Full URLs (https://app.example.com) or host-only entries (app.example.com) are accepted. Use the public HTTPS URL when behind a reverse proxy.(empty)Auth
TRUST_PROXYHonor X-Forwarded-Host and X-Forwarded-Proto from a trusted reverse proxy. Required for correct origin checks and login behind Nginx, Traefik, or Caddy.falseAuth
ENVSet to production (or GO_ENV=production) to enforce a non-default SECRET_KEY and disable localhost origin bypass.(empty)Auth
ALLOW_STARTServer gate for start actions. In auth mode, every user (including admin) also needs can_start in the database. In no-auth mode, this is the only gate.falseBoth
ALLOW_STOPServer gate for stop actions. In auth mode, every user (including admin) also needs can_stop in the database. In no-auth mode, this is the only gate.falseBoth
ALLOW_RESTARTServer gate for restart actions. In auth mode, every user (including admin) also needs can_restart in the database. In no-auth mode, this is the only gate.falseBoth
ALLOW_DELETEServer gate for remove actions. In auth mode, every user (including admin) also needs can_delete in the database. In no-auth mode, this is the only gate.falseBoth
ALLOW_SHELLServer gate for interactive shell over WebSocket. In auth mode, every user (including admin) also needs can_shell in the database. In no-auth mode, this is the only gate.falseBoth
ALLOW_BASHAlias for ALLOW_SHELL=true.falseBoth
EXCLUDE_CONTAINERSComma-separated container names to hide from every user in the dashboard. The DockLog container itself is always hidden (matched by name docklog or image containing docklog).(empty)Both
Tip
Typical RAM use is around 30–40 MB on a small VPS after startup.

Edit or suggest changes on GitHub.