Features

The events that don't reach you are the product.

Roughly nine in ten container events are noise. The other one is the alert.

Quiet by default

When one gets through, it tells you what broke.

Each alert opens with cause, container, and severity. Repeats fold into the existing alert with a count: a Watchtower crash-loop becomes one message that says "47 times."

One-line summary

nginx-proxy
14:23:01ERROR: connect ECONNREFUSED 10.0.2.4:3000
14:23:01ERROR: upstream timed out (110: Connection timed out)
14:23:02WARN: retry attempt 1/3 for service payment-api
14:23:03ERROR: connect ECONNREFUSED 10.0.2.4:3000
14:23:04ERROR: upstream timed out (110: Connection timed out)
14:23:05ERROR: connect ECONNREFUSED 10.0.2.4:3000
14:23:05WARN: circuit breaker opened for payment-api

Repeats folded

api-workerECONNREFUSED 10.0.2.4:54322m ago
api-workerECONNREFUSED 10.0.2.4:54322m ago
api-gatewayECONNREFUSED 10.0.2.4:54323m ago
api-workerECONNREFUSED 10.0.2.4:54324m ago
cron-jobsECONNREFUSED 10.0.2.4:54325m ago
api-gatewaytimeout after 30000ms6m ago
api-workerECONNREFUSED 10.0.2.4:54327m ago

When "what broke" isn't enough Pro

One click to the root cause.

Some failures hide their cause — a crash that's really a dropped VPN sidecar, a freeze that's really memory pressure three containers over. Triage takes a fast look and flags when it couldn't pin it down; a Full investigation keeps going — more passes, a stronger model, correlating across your containers, hosts and timeline — and ends with concrete steps to fix it. Standard triage is on every plan; this is the deep dive.

Root cause

The specific thing that failed, with the evidence that proves it.

Affected services

What else is involved or at risk across your containers and hosts.

How to fix

Concrete steps to take — or exactly what it still couldn't determine.

The spike you slept through

Metrics you keep, alerts inside your logs.

A CPU spike at 3am is useless as a number that has already moved on. CPU, memory, network and disk are stored as history — 24 hours on Free, 30 days on Pro and Team — so you can see how long it lasted, not just that it happened. Metrics don't count against your event limits.

Anchored to the line that tripped it

Scroll back through a container and the alerts that fired in that window are in the stream, attached to the exact log line that caused them. No second tab, no lining up timestamps by eye. Events triage held back are marked on the line, so quiet is visible too.

If cloud is unreachable, your logs still load — the alerts simply don't appear.

14:32:01     worker  processed job 8821
14:32:02  🔕 worker  connection attempt 41 failed
14:32:02     worker  FATAL: connection pool exhausted
14:32:02 │ ALERT  Pool exhaustion under retry storm
         │        47 events · 30m        [Details ›]
14:32:03  ⏱ METRIC  CPU: 91.4%, Memory: 62.0%
14:32:03     worker  retrying in 5s

Also in the box

Six more things, all included.

  1. 1

    Search any event, any host, any time.

    Every event from every connected Dozzle, indexed the moment it arrives. Drill into the second something broke without opening a terminal.

    level:error container:nginx-proxy since:30m
  2. 2

    Channels wherever you already are.

    Pick one. Pick all of them. Per-channel quiet hours and severity filters live next to the toggle. No new app to install, no new inbox to ignore.

    SlackEmailDiscordTelegramntfyWeb push
  3. 3

    MCP for the AI you already trust.

    Preview

    Wire Dozzle Cloud into Claude Desktop, Cursor, or any MCP client. Ask "what broke last night?" from the assistant you already trust. Read-only, free on every plan.

    $ claude mcp add dozzle-cloud \
    --url https://mcp.dozzle.dev/mcp
    --header "Authorization: Bearer dz_mcp_…"
  4. 4

    Every host, one dashboard.

    Homelab, the NAS in the closet, the staging box at work. Cross-instance search, cross-instance alerts, one place for all of it.

    dozzle-cloud
    ├── homelab.local        14 containers
    ├── nas.lan               6 containers
    └── prod.example.com     22 containers
  5. 5

    Live logs from any container, anywhere.

    Live logs in the browser, with split view and live filter. Same as the Dozzle you know, now reachable from your phone.

  6. 6

    Restart at 2am without SSH.

    Start, stop, restart containers from the dashboard. Audited per user. Scoped per host. Off by default.

    startstoprestart

Free to connect. Most weeks, mostly quiet.