Logs, alerts, and control for every container you run

One free binary for Docker and Podman. Keeps your logs, tells you once when it breaks, lets you fix it.

Open source, self-hosted, no cloud tier. Keep your deploy tool.

Containers

0 containers on this host · unknown

CPU0%
Mem0%
ContainerStatusActions
Loading containers…

No containers · page 1 of 1

Rows per page

Live demo. Click anything.

Works with what you already run.

  • Docker
  • Podman
  • Docker Compose
  • podman-compose
  • SSH hosts
  • Coolify
  • ntfy
  • Gotify
  • Telegram
  • Slack
  • Discord
  • Claude
  • Cursor
  • Any MCP client

For everything after docker compose up -d

Dozzle for logs, Uptime Kuma for pings, ntfy glued on, a Grafana stack nobody finished. LogDeck does the three jobs that matter in one binary. Keep your deploy tool.

Watch
Live tail and stored history for every container on every host, stats beside it.
Get told
Died, OOM-killed, unhealthy, or logging errors. One alert to ntfy, Telegram, or a webhook.
Fix
Raise a limit, edit env, restart the stack, open a shell. Browser, CLI, or your AI agent.

Logs that outlive the container

Every container’s logs are stored on LogDeck’s own disk. Restart, rebuild, or remove it and the history is still there, searchable by regex, level, and time.

One alert, not two hundred

Rules for deaths, OOM kills, health checks, and log patterns. Rate windows and cooldowns turn a crash loop into one message to ntfy, Gotify, Telegram, or a webhook.

Fix it from the same screen

Raise a memory limit live, edit env vars, restart a Compose stack, or open a shell in the container. No SSH into the host.

Ask your agent what broke at 3am

Point Claude, Cursor, or any MCP client at LogDeck and ask what happened overnight. It can search history and pull stats, or act too with an admin token.

Up and running in a minute

One container for the server, one command for the CLI, one JSON block for your agent. Mount a volume or lose the history on recreate.

services:
  logdeck:
    image: amoabakelvin/logdeck:latest
    ports:
      - "8123:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /proc:/host/proc:ro
      - logdeck-data:/data   # config, log history, alert history
    environment:
      # DOCKER_HOSTS: local=unix:///var/run/docker.sock,prod=ssh://deploy@prod.example.com
      # ADMIN_USERNAME: admin
      # ADMIN_PASSWORD: your-bcrypt-hash
      # JWT_SECRET: your-super-secret-key-min-32-chars
    restart: unless-stopped

volumes:
  logdeck-data:

# then: docker compose up -d  →  http://localhost:8123
Not a deploy tool
Keep Dockge, Komodo, or plain Compose for shipping. LogDeck picks up after up -d.
One admin login
No multi-user or SSO. Hand out read or admin tokens to scripts, agents, and teammates.
Logs live on this disk
Stored on the LogDeck host, capped by the retention you set. Health badges are Docker-only.

Auth, more hosts, retention caps? See the configuration guide.

Everything else, no extra containers

One Go binary with the frontend embedded. No database to run, no agents on your hosts, no cloud tier.

Multi-host, no agents

Local sockets, TCP, or SSH with key auth. One list, nothing to install remotely.

Docker and Podman, mixed

Auto-detects Docker and rootless or rootful Podman. Mix both in one setup.

Live tail that keeps up

WebSocket tail with pause, timestamps, collapsible JSON, and line pinning.

Stats without a metrics stack

CPU and memory per container with sparklines, plus engine and host stats.

A CLI on the same API

grep every host, follow a service, restart a stack. JSON on every command.

A shell in the browser

Open a terminal in any running container, or run one command and get the exit code.

Scoped tokens, read-only mode

Admin and read tokens, plus a read-only switch for the instance everyone can see.

Images, volumes, networks

Read-only views of everything else on every host, in one filterable list.

How it compares to Dozzle

Dozzle is the live log viewer most people try first. Here’s where LogDeck differs, and where it doesn’t.

FeatureLogDeckDozzle
Stored log historyOn disk, searchable, survives rebuild and removalNone: live only, history via Dozzle Cloud
SearchRegex, level, and time range on the server, across historyRegex on the live view, SQL over JSON logs in the browser
AlertsEvent and log rules, rate windows, cooldowns, delivery historyEvent, log, and metric rules with an expression language
Alert channelsWebhook (Slack and Discord as-is), ntfy, Gotify, TelegramWebhook, Slack, Discord, ntfy; Telegram and email via Cloud
Edit env vars and resource limitsYes, with .env import and Coolify syncNo
Compose stacksStart, stop, restart a whole stack; merged logsMerged group logs
Multi-hostLocal, TCP, or SSH; no agentsTCP, or an agent container on each host
Web terminalYesYes
Split-screen log viewNoYes
Swarm and KubernetesNoYes
CLI and MCPlogdeck CLI on the server API; MCP with read and action toolsNo API CLI; read-only MCP
Users and authSingle admin, scoped API tokens, read-only modeMultiple users, OIDC, forward proxy, per-user roles
Hosted tierNoneDozzle Cloud (paid tiers)
LicenseGPL-3.0MIT

Checked against the Dozzle v11 docs, September 2026. Spot something stale? Open an issue.

Your logs, your disk, your call.

Free, open source, one binary. Runs next to your containers on Docker or Podman.