What's new, newest first.

About one update a week, most of them about making the noise go away.

  1. New

    From notifying to watching: updates got checked, and a broken one can be rolled back

    Dozzle Cloud started as a way to get notified. The idea behind it was always bigger: something that watches your containers on its own and acts when something goes wrong, not just a message after the fact. This week was the first real step there. Cloud now watches every update Dozzle makes on its schedule, decides whether it broke something, and offers to undo it.

    For now, every action waits for your approval: Cloud proposes, you confirm. The direction is a Cloud that is trusted to make some of those calls by itself, once its decisions have earned it.

    Before this, Dozzle's scheduled updates finished silently: a new image went in overnight, and the first sign it broke something was whatever broke.

    • Each update was measured against the container's own history. Errors that appeared after the update were marked as known or never seen before, the error rate and log volume were compared with the hour just before the update and with the same time on earlier days, and the container's state was checked for a crash loop, an unhealthy status or an out-of-memory kill. The verdict reads looks fine, may have a problem or looks broken. A loud failure is called within about 10 minutes; the rest get their verdict from 30 minutes after the update.
    • A broken update that could not wait arrived at once. A container that was down, crash looping, unhealthy or killed for memory went straight to the alert channels. Everything else waited for the morning report, which opened with one line: "Updated 14 containers overnight. 13 clean.", plus a card for each update that looked broken.
    • Roll back or Keep. Telegram and Discord carried both buttons; every other channel linked to the update's own page. A rollback asked before it ran, and 15 minutes later a second message said whether the errors had stopped. Keep left the new version in place and closed the question. Roll back needs a Dozzle version that can roll back.
    • An Updates page listed every update with its verdict, and a container's page showed its latest one.

    The assistant asked before changing a container. Restarting, stopping, removing, updating or rolling back a container from chat — on the web, Telegram or Discord — showed Confirm and Cancel first, and nothing ran until Confirm. Pressing Roll back twice brought back the same question instead of asking twice.

    Also this week:

    • Update and confirmation messages arrived in your language, in all seven languages emails already use.
    • The first review of a freshly installed server stopped reporting its first boot. A database initialising, migrations creating tables and one-off startup warnings no longer became findings; a container that keeps failing after it started still does.
    • Container charts marked what happened. Updates, rollbacks, metric alerts, exits, restarts and out-of-memory kills appeared on every metrics chart, with memory and CPU limit lines once usage got close.
    • Routine problems stopped coming back as new findings, on Pro and Team. A camera that reboots every Sunday at 02:00 was filed again each week. A problem that recurs on its own schedule is now left out of the daily report, which names it in one "Left out as routine" line, and Tell me next time brings it back.
    • AI apps connected over MCP stayed signed in. A second sign-in no longer ended on "This app is not registered", and two sessions of the same app no longer signed each other out.
    • A Dozzle server with agents stopped counting their containers twice on the Instances page.
    • Feedback became a short conversation: write what happened, answer at most three questions, and check the summary before it is sent.
  2. Improved

    One alert per problem, and "I fixed it"

    One outage used to reach a phone as two to four pushes within a minute: the same crash loop sent twice 220ms apart, an event matched by two rules alerting once for each, a database failure followed by three timeouts it caused, each with its own push. On Sep 29 that was 27 same-container repeats in a single day, against 15 the whole week before. Now one problem is one alert that keeps counting.

    • A follow-on failure joins the alert you just got. A different error on a container that alerted in the last 15 minutes is counted into that alert. A crash, out-of-memory kill or unhealthy status after it still arrives, as an update to the same alert.
    • Throwaway containers share one incident. Every docker compose run and every unnamed docker run gets a fresh name, so each run looked like a container never seen before, and its first failure always pushed — 22% of all alerts sent on Sep 29. Runs now group by service or by image. The first failure of a one-off job still alerts; the next seven failing the same way are counted into it.
    • A known condition stops re-announcing itself daily. "CPU high" on the same container exactly 24 hours apart, every day, is gone. A condition gets a reminder or two, then stays in the daily report unless it gets worse or changes.
    • Fewer misreadings. DEBUG output that arrived labelled fatal no longer pages, exit code 141 is explained as a broken pipe rather than "stopped externally", and a full disk is named as the host disk instead of /etc/resolv.conf.

    Mark as fixed, on Pro and Team. On a finding or an alert, it says you dealt with it. The finding closes now instead of waiting for the review to stop seeing it, and the alert stops absorbing new occurrences. If the problem shows up after the fix, it comes back as a new finding, or a new alert saying it came back — never folded silently into the one you closed. Reopen takes it back, and on a Team account the activity log records who did both.

    Add Dozzle Cloud to Claude, ChatGPT, Codex or Cursor by URL. https://mcp.dozzle.dev/mcp is all a client needs: the first time it connects, it opens Dozzle Cloud in the browser to sign in, with no token to paste. Integrations → MCP has the steps for each client and lists every connected app, each one revocable on its own. Tokens keep working for scripts and CI.

    The assistant shows its work. While it answers, the chat lists each step as it happens — which container it searched, what came back — and folds into "Worked for 18s" once the answer arrives. Close the chat mid-answer and it keeps going; a notification says when it is ready. Telegram and Discord show the same steps as a checklist that is replaced by the answer.

    Also this week:

    • A runaway crash loop no longer eats the event allowance. Past about ten quick repeats of the same event, further ones are added to a count instead of being stored one by one, and the rest of the instance is not slowed down.
    • The Instances page walks through linking when nothing is linked yet, and each instance is a cleaner card with its status, host and container counts.
    • On a phone, the dashboard feels like an app: a floating tab bar, bottom sheets, and a long log line expands in place from its chevron.
    • Upgrading from Pro to Team now sticks. It could revert to Pro.
    • Zooming the log histogram no longer leaves rows from outside the new range on screen.
  3. Recap

    Teams, a Cloud inside Dozzle, and email that stopped flooding

    The month Cloud got more than one person, a place inside Dozzle, and a cheaper way to keep the free review running.

    • Team accounts. Pro for up to five people, $15 a month flat. Members can do everything but billing and team changes; viewers read everything and change nothing. Every action is recorded against the person who took it, and I'm on it on an alert or a finding tells the rest of the team someone has it.
    • Dozzle Cloud lives inside Dozzle v11. A rail beside the log stream holds Ask Dozzle, stored Metrics history and the Alerts for the containers in view, each ending in Show me the lines. Alerts survive a reload, and asking from inside Dozzle never tells Cloud who is asking.
    • A 7-day Pro trial, and a weekly free review. Every new account gets the whole Pro tier for a week from its first connect. After that, Free is reviewed weekly and leads with its most serious finding; Pro and Team every day.
    • Event limits went up five times — Free 2,000, Pro 50,000, Team 250,000 — and email batches instead of dropping or flooding: updates to an incident arrive hourly, alerts past 20 a day are held for one batch, and an inbox nobody has opened in a month goes weekly until it is opened again.
    • The assistant cites its sources, linking straight to the logs, metrics, alerts and findings behind an answer, and the web chat got a rework: a one-line composer, timestamps, typing ahead while an answer streams.
    • Install Dozzle Cloud as an app, with push notifications on iPhone and iPad, shortcuts to Findings, Alerts and Logs, and a count of findings on the icon.
    • Findings you do not care about can be ignored, and log search matches every word you type, in any order.
    • An outage to own up to. On Sep 11 the host provider went down and Cloud was unreachable for about three hours. Your own Dozzle kept running and nothing stored was lost. The status page is where this shows up while it is happening.
  4. Recap

    Cloud started reading logs nobody asked it to read

    The month Cloud stopped waiting for an alert rule to exist.

    • A daily review of your error logs, with no rules to configure. Most people connect an instance and never write an alert rule, which left Cloud watching in silence. Now it reads the day's errors, collapses three hundred lines of the same thing into one pattern with a count, and reports what is worth fixing. Findings have a life — New, Still happening, day 4, Resolved — so a daily report stops restating Monday every morning, and they have their own page with the containers, the log lines and links into metrics. Free names the problem; Pro investigates it and says what to do.
    • Alerts appear inside the log stream, attached to the exact line that tripped them rather than floating near roughly the right time — live as well as in scrollback. Events triage held back are marked with a 🔕, so quiet is visible instead of looking like nothing happened.
    • Metrics are kept, not just watched. CPU, memory, network and disk are stored as history, so a spike at 3am still has its shape in the morning. There is a Metrics page per container and per host, and metrics never count against event or log limits. Free keeps 24 hours, Pro and Team 30 days.
    • Log search got an order of magnitude faster — a rare term went from 0.73s to 0.06s — by going through the index instead of reading the window. Searches that used to hit a 30-second timeout and show nothing now return.
    • One instance picker for the whole dashboard. Pick prod once and every page opens on prod.
    • A public status page, probed every minute from outside and inside, so an ingress problem can be told apart from an app problem. It went up alongside a fix for live log streaming, which had been failing for everyone since the start of August.
    • Log limits went up — Free 5 GB → 10 GB, Pro 25 GB → 50 GB — because running out now stops the daily review, not just alerting.
  5. Recap

    A scan that goes looking

    The daily report learned to investigate before it arrived: searching the day's logs for errors, inspecting suspicious containers, and checking live disk, memory and restart pressure to confirm a problem before flagging it. It hunts slow burns — a disk creeping toward full, a container quietly restart-looping — rather than the incidents you already saw, and on a healthy day it says so and stays quiet.

  6. Recap

    Triage, and the mute button

    The month alerting stopped being a regex and a webhook.

    • Triage reads every event, decides whether it is worth your attention, folds duplicates into one alert with a count, and updates an existing alert instead of pinging you again.
    • Mute what you have already accepted. Matching events are dropped before triage, so they never reach you and never count against usage — from any alert, from the bot, or from a button in the email. A 👎 means "fewer like this"; a mute is the hard off-switch.
    • Every alert shows its work — the exact checks run before deciding to notify you, laid out as a timeline.
    • The daily digest leads with what was silenced, not only with what got through.
    • One search box across containers, hosts and alerts, with ⇧↵ to jump into log search.
    • Bring your own AI assistant. Claude Desktop, Cursor, or any MCP client can ask "what broke last night?" — read-only, and free on every plan.
    • The Discord bot moved into team channels, not just DMs.
    • Pro and Team prices came down, and Free covers one instance with unlimited hosts behind it.
  7. Recap

    The live link, and an agent that answers

    Where it started. Dozzle instances connect over a live outbound link, so Cloud can read containers and hosts in real time with no inbound port to open. Every log line is indexed the moment it arrives and searchable to the second. The Telegram bot became a full AI agent that pulls answers from your actual stack, a Discord bot followed with the same commands, and a chat assistant landed in the dashboard on ⌘K. Live log streaming in the browser works on a phone, and remote access to your own Dozzle became free for everyone.

Morning report

now

3 things need fixing

  • postgres · disk almost full
  • immich · keeps crashing
  • nginx · security certificate expires in 4 days

Let it read your logs tonight.

Get started

Free. No credit card. Nothing to set up. · See the features ›