Everything we shipped, newest first.
About one update a week — mostly in service of making the noise go away.
- New
Your alerts now live inside your logs
I build Dozzle for my own stack first. When something makes my life harder, I fix it for me — and if it looks like it would help everyone else too, it ships. This one started with my own containers spiking CPU while I was away from my computer. By the time I looked, the spike was gone and I had no idea whether it had lasted ten seconds or two hours. Two things came out of that.
Metrics are kept, not just watched. CPU, memory, network and disk are now stored as history the way you'd expect from Prometheus — so a spike that happened while you were asleep is still there when you wake up, with the shape of it intact instead of a number that has already moved on. Free keeps the last 24 hours; Pro and Team keep 30 days. The range picker only offers what your plan actually retains, and metrics still cost you nothing against your event limits.
And alerts now appear inside the log stream itself. This is the part I'm most excited about, because it came from the thing that annoyed me most: reading logs in one window while cross-referencing alerts and metrics in another, trying to line up timestamps by eye.
- Scroll back through a container's logs and the alerts that fired in that window are right there — not in a separate tab, not a marker floating near roughly the right time, but attached to the exact log line that tripped them.
- It works while you watch, too. If a CPU alert fires on a container you have open, it lands in the stream as the logs keep moving, so you see the alert and the lines around it in one place.
- Each alert costs one line: level, headline, event count and how long the incident has been going. Details expands the triage investigation and what was held back; View in Dozzle Cloud opens the full alert.
- Events that triage deliberately held back are marked on the line itself with a 🔕, so you can see what was quiet rather than wondering what was missing.
- Metric and container alerts, which have no log line of their own, get their own row at the moment they fired.
- If Dozzle Cloud is slow or unreachable, your logs still load — the alerts simply don't show up.
You'll need your Dozzle instance linked to Dozzle Cloud and running a recent version. Alerts reach back as far as your plan's retention, so on Free, scrollback older than 24 hours will look quiet even if it wasn't.
- Improved
Log search is an order of magnitude faster
Searching your logs no longer waits on the whole window. A search for a single word used to read every stored line before it could return the first match, which is how a one-word query on a busy account reached the 30-second timeout and showed you nothing at all. Searches now go through the index, and the results are the same ones — just sooner.
- Measured against a day of real traffic: a rare term went from 0.73s to 0.06s, a level filter from 0.13s to 0.05s, and the histogram above an empty query from 0.21s to 0.01s.
- Each page searches the most recent stretch first and reaches further back only as you scroll, sized to how much you actually write — so a busy account gets a fast first page instead of a scan across 30 days of retention. The histogram follows the rows, so the chart always describes the page under it.
- A query that is still too broad now comes back with advice — narrow the range, pick a container — instead of a connection that dies on you.
- LogsQL queries work in the search box again. Valid queries were being rejected before they ever ran.
Metrics links now open on the moment that mattered. Every container is its own page at
/metrics/…, and the link on an alert — in email, Slack, Telegram, Discord and ntfy — opens the charts centred on when that alert fired, with a marker on the instant. If your plan's retention doesn't reach that far back, the page tells you what window it actually served instead of quietly showing you the last 24 hours.- Docker Swarm services link to a container that exists. The link used to carry the task id, which changes on every redeploy — so it was dead on arrival. Links already sitting in your inbox now resolve to the live container too.
- New
See what your containers are actually doing
Metrics are here. Your Dozzle instances now stream CPU, memory, network and disk for every container, and the new Metrics page draws them: a card per container with the live number, its peak, and a sparkline, grouped by host so two machines'
apicontainers never sit side by side pretending to be the same thing. Click any card for full charts — average and peak on the same axis — over 6 hours, 24 hours, 7 days, or 30.- Free keeps 24 hours; Pro and Team keep 30 days. The picker only offers the ranges your plan actually retains, so there's nothing locked to click.
- Metrics cost you nothing against your limits — they don't count as triaged events and don't touch your log volume.
- Rolling out gradually. If you don't see Metrics in the sidebar yet, it's on its way.
One instance picker for the whole dashboard. Alerts, history, logs and metrics each used to ask "which instance?" in their own way, in their own corner — or, on metrics, not at all. Now it's a single control in the sidebar, above the nav it scopes: pick
prodonce and every page opens onprod.And /logs stopped asking nine questions before showing you a log line. It's down to container and query.
- The histogram is real. It was drawn from the newest 200 lines but labelled with the whole window, which is why every bar crowded into the last minute. It's now aggregated across the full range — and you zoom by dragging across the spike you can see, instead of guessing which preset contains it.
- Level filters search the whole window. "Show errors" used to mean "the errors among the newest 200 lines"; now it means the newest 200 errors.
- Scrolling loads more, the time-range and page-size dropdowns are gone, and JSON parsing is simply always on.
- New
A public status page, and live logs are streaming again
See for yourself whether we're up. The status page is now public and needs no login. Every surface — the API, the dashboard, the agent gateway your Dozzle connects to, and the MCP server — is probed once a minute, twice over: from the outside through the same path your browser takes, and again from inside our network. That pairing is the useful part. When the external check goes red and the internal one stays green, the problem is ingress or DNS rather than the app, and the page can say so instead of shrugging.
The page shows the last 24 hours at a glance plus 7- and 30-day uptime for each service, so you can tell a blip from a bad week without asking us.
Live log streaming is fixed. Opening a container's logs from the dashboard had been failing with a bare "Stream error" — for everyone, on every container, since the start of August. A dependency upgrade quietly changed how our WebSocket connections authenticate, and the failure mode was a connection that hung rather than one that errored, so nothing showed up in our logs or our alerts. Your Dozzle instances and your stored logs were never affected; only live streaming in the dashboard was. It works again, and the status page above exists partly so the next one of these doesn't get to hide.
- Pro
A daily scan that finds what your alerts missed
Your daily digest now does real work before it reaches you. Once a day it looks across the last 24 hours of one Dozzle instance like an SRE reading over your shoulder — and surfaces the problems that never fired an alert.
- It goes and looks: searches the day's logs for errors, inspects suspicious containers, and checks live disk, memory, and restart pressure to confirm before flagging anything.
- It hunts the slow burns — a disk creeping toward full, a container quietly restart-looping, errors climbing from low to loud — not the incidents you already saw.
- High bar by design: every finding is something you could actually act on, ranked most-important first. On a healthy day it says so and stays quiet.
- Delivered as a findings-first report email.
This deeper, tool-using scan is a Pro feature. A lighter version for free accounts — which reasons over your activity summary without the live investigation — is currently rolling out slowly.
- New
Bring the Discord bot into your team's channels
The Discord bot now works where your team already is — not just in your DMs.
- Run
/startin any server channel to send alerts there, or in a DM to keep them private. @dozzlethe bot in that channel to ask about your stack, and rate alerts 👍 / 👎 — anyone who can post can chat, all backed by your account and data.- One Discord to set up: no more guessing between two near-identical options.
- Run
- New
Mute the alerts you already know about
Got a recurring error you've already accepted? Mute it, and matching events are dropped before triage — they never reach you and don't count toward your usage.
- Hit Mute these on any alert or event page, ask the assistant to "mute this", or tap the new 🔇 button on alert emails, Telegram, and Discord.
- A 👎 still just means "show me fewer like this" — muting is the hard off-switch for a specific pattern.
- See and undo everything from Events → Muted.
- New
Every alert now shows its work
Open any alert and you'll see the exact checks we ran before deciding to notify you — inspected the container, looked at disk space, pulled the recent logs — laid out as a timeline.
No more guessing why something reached you.
- Improved
Your daily digest leads with the noise we silenced
The daily briefing now opens with everything we kept quiet on your behalf, not just what got through.
A 👎 on any alert also teaches us to suppress similar noise next time.
- New
One search box for your whole stack
A unified search bar now spans the dashboard — type a container, host, or alert and it figures out what you mean.
- Hit
⇧↵to jump straight into log search. - Tap the magnifying glass on mobile for full-screen search.
- Rate any alert 👍 / 👎 — now in email, Discord, and Telegram too.
- Hit
- New
Bring your own AI assistant, and simpler pricing
Connect Dozzle Cloud to Claude Desktop, Cursor, or any MCP client and ask "what broke last night?" from the assistant you already use. Read-only, and free on every plan.
We also lowered Pro and Team prices, and the free tier now covers one Dozzle instance with unlimited hosts behind it.
- New
Smarter alerts: we triage the noise before you see it
New triage reads every event and decides whether it's worth your attention, folds duplicates into one alert with a count, and quietly updates an existing alert instead of pinging you again.
Plus: search your logs by asking in plain English.
- New
Search every log line, not just alerts
Every log from every connected Dozzle is now indexed the moment it arrives, with a redesigned, mobile-friendly search page.
Drill into the second something broke — without opening a terminal.
- New
Chat with your stack from the dashboard
A new chat assistant lives right in the dashboard — press
⌘Kto open it and ask about your containers, with answers pulled from live data.Remote access to your Dozzle is now free for everyone, so you can reach your homelab from anywhere.
- New
Live logs in the browser, plus a Discord bot
Stream live logs from any connected container right in the dashboard, with a Dozzle-style viewer that works on your phone.
And Dozzle Cloud now has a Discord bot with the same two-way chat and commands as Telegram.
- New
Your Dozzle instances connect live, and an AI agent in Telegram
Connect your Dozzle instances over a live link so Dozzle Cloud can read containers and hosts in real time.
The Telegram bot also became a full AI agent — ask it questions and it pulls the answer from your actual stack.