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
| Container | Status | Actions | ||||
|---|---|---|---|---|---|---|
Loading containers… | ||||||
No containers · page 1 of 1
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.
| Feature | LogDeck | Dozzle |
|---|---|---|
| Stored log history | On disk, searchable, survives rebuild and removal | None: live only, history via Dozzle Cloud |
| Search | Regex, level, and time range on the server, across history | Regex on the live view, SQL over JSON logs in the browser |
| Alerts | Event and log rules, rate windows, cooldowns, delivery history | Event, log, and metric rules with an expression language |
| Alert channels | Webhook (Slack and Discord as-is), ntfy, Gotify, Telegram | Webhook, Slack, Discord, ntfy; Telegram and email via Cloud |
| Edit env vars and resource limits | Yes, with .env import and Coolify sync | No |
| Compose stacks | Start, stop, restart a whole stack; merged logs | Merged group logs |
| Multi-host | Local, TCP, or SSH; no agents | TCP, or an agent container on each host |
| Web terminal | Yes | Yes |
| Split-screen log view | No | Yes |
| Swarm and Kubernetes | No | Yes |
| CLI and MCP | logdeck CLI on the server API; MCP with read and action tools | No API CLI; read-only MCP |
| Users and auth | Single admin, scoped API tokens, read-only mode | Multiple users, OIDC, forward proxy, per-user roles |
| Hosted tier | None | Dozzle Cloud (paid tiers) |
| License | GPL-3.0 | MIT |
Checked against the Dozzle v11 docs, September 2026. Spot something stale? Open an issue.
Questions before you install
- Is LogDeck free?
- Yes. LogDeck is open source under GPL-3.0 and runs on your own server. There is no paid tier, no cloud version, and no account to create.
- Does LogDeck keep logs after a container is removed?
- Yes. LogDeck stores every container's logs in a SQLite database on its own disk, so history survives restarts, rebuilds, and removal, up to the retention caps you set (50 MB per container and 1024 MB in total by default). Mount /data as a volume, or the store is lost when LogDeck itself is recreated.
- Does it work with Podman?
- Yes. LogDeck talks to Podman through its Docker-compatible API socket, rootless or rootful, and one setup can mix Docker and Podman hosts. Health badges are the one gap: they only show for Docker containers.
- Do I need to install anything on remote hosts?
- No. The one LogDeck container connects to remote engines over TCP or SSH. Nothing extra runs on the other hosts.
- How is LogDeck different from Dozzle?
- Dozzle is a live log viewer. LogDeck also stores log history, sends alerts, edits environment variables and resource limits, runs Compose stack actions, and has a CLI and an MCP server that can act. Dozzle has multiple users, SSO, split-screen logs, and Swarm and Kubernetes support, which LogDeck does not.
- Can an AI agent use LogDeck?
- Yes. Run logdeck mcp and point Claude, Cursor, or any MCP client at it. With a read-scoped API token the agent can search logs, history, and stats. An admin token also lets it restart containers, run commands, and edit environment variables.
- Where do alerts go?
- To any webhook (Slack and Discord incoming webhooks work as-is), ntfy, Gotify, or Telegram. Rules cover container deaths with a non-zero exit code, OOM kills, failing health checks, and log patterns, with rate windows and cooldowns.
- Does LogDeck support multiple users or SSO?
- No. LogDeck has one admin login. Scripts, agents, and teammates get their own read or admin API tokens, and read-only mode locks down an instance everyone can see.
Your logs, your disk, your call.
Free, open source, one binary. Runs next to your containers on Docker or Podman.