Getting Started

DockLog ships as a single Docker image on Docker Hub. Mount the socket, expose a port, and you're tailing logs in the browser. Auth mode adds SQLite-backed users, RBAC, and audit logs.

Important
The published image is aimldev/docklog:latest (amd64 and arm64). One container bundles the Go backend and Vue 3 UI. No separate frontend image to wire up.

What the image includes

Single-image deployment

Pull, mount the socket, expose a port.

Backend + frontend

API, WebSockets, and Vue UI in one container.

RBAC and actions

Server ALLOW_* gates plus per-user can_* flags.

Audit and persistence

Users and audits in SQLite when auth mode is on.

Webhook notifications

Slack, Teams, Discord, or custom HTTPS webhooks.

Alert rules

Log, event, and metric rules with throttling.

Auth mode (teams)

RBAC, audit log, and JWT sessions. Mount a volume at DB_PATH so users and audits survive restarts. Fresh installs seed admin / admin123.

bash
mkdir -p ./data

docker run -d \
  --name docklog \
  -p 8888:8000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(pwd)/data:/app/data \
  -e SECRET_KEYSECRET_KEY: Secret token string for signing secure JWT user session cookies.=your-secure-key-here \
  -e DB_PATHDB_PATH: SQLite database storage file path for users and audit records.=/app/data/docklog.db \
  -e CLIENT_ACCESSCLIENT_ACCESS: strict or off. Controls browser origin validation for API and WebSocket access.=strict \
  -e ENVENV: Set to production to enforce a non-default SECRET_KEY and disable localhost origin bypass.=production \
  -e TRUST_PROXYTRUST_PROXY: Honor X-Forwarded-* headers from a trusted reverse proxy. Set true behind Nginx, Traefik, or Caddy.=true \
  --restart unless-stopped \
  aimldev/docklog:latest

No-auth mode (local / LAN)

Skips login. Uses in-memory SQLite unless you set DB_PATH. Do not expose on the public internet.

bash
docker run -d \
  --name docklog \
  -p 8888:8000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e DISABLE_AUTHDISABLE_AUTH: Skips the login screen. Fine on a private LAN; don't use on the public internet.=true \
  --restart unless-stopped \
  aimldev/docklog:latest
External exposure
No-auth mode exposes logs to anyone with the URL. Use reverse-proxy auth or keep the service on a private network.

Interactive deployment builder

Pick Compose or docker run, choose a runtime (Docker, Kubernetes, or both), toggle auth and action flags, then copy the snippet:

Deployment Builder

Generate Docker Compose or a plain docker run command with runtime, auth, and action flags


These ALLOW_* flags are the server gate. In auth mode, each user (including admin) also needs matching can_* permissions in Admin → Users.

Generated docker-compose.yaml
yaml
services:
  docklog:
    image: aimldev/docklog:latest
    container_name: docklog
    ports:
      - "8888:8000"
    environment:
      - SECRET_KEYSECRET_KEY: Secret token string for signing secure JWT user session cookies.=generate-secret-here
      - DB_PATHDB_PATH: SQLite database storage file path for users and audit records.=/app/data/docklog.db
      - CLIENT_ACCESSCLIENT_ACCESS: strict or off. Controls browser origin validation for API and WebSocket access.=strict
      - ENVENV: Set to production to enforce a non-default SECRET_KEY and disable localhost origin bypass.=production
      - TRUST_PROXYTRUST_PROXY: Honor X-Forwarded-* headers from a trusted reverse proxy. Set true behind Nginx, Traefik, or Caddy.=true
    volumes:
      - /var/run/docker.sockdocker.sock: Local UNIX host socket allowing direct control of the Docker daemon engine.:/var/run/docker.sockdocker.sock: Local UNIX host socket allowing direct control of the Docker daemon engine.
      - ./data:/app/data
    restart: unless-stopped

Save this into docker-compose.yaml on your server, then run docker compose up -d.

Kubernetes (optional)

Set RUNTIME_MODE=kubernetes or both to enable pod logs, shell, RBAC, alerts, and dashboards for a cluster. Mount kubeconfig or run in-cluster. See the Kubernetes guide for compose examples and Docker Desktop TLS notes.

Environment variables

DockLog is configured with environment variables in Compose or docker run. See the environment variables reference for the full table, including RUNTIME_MODE, KUBECONFIG, and action flags.

Edit or suggest changes on GitHub.