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.

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.