docs: give Dozzle Cloud its own section, move dtop and alerts (#5044)

This commit is contained in:
Amir Raminfar
2026-09-07 20:24:35 -07:00
committed by GitHub
parent 333f7a5b86
commit b2982e80cf
47 changed files with 2376 additions and 664 deletions
+9 -4
View File
@@ -8,7 +8,7 @@ export const de: Labels = {
sections: {
introduction: "Einführung",
platforms: "Plattformen",
notifications: "Benachrichtigungen",
cloud: "Dozzle Cloud",
advanced: "Erweiterte Konfiguration",
troubleshooting: "Fehlerbehebung",
about: "Über",
@@ -18,16 +18,21 @@ export const de: Labels = {
hosts: "Hosts verbinden",
control: "Container-Steuerung",
logs: "Logs & Abfragen",
tools: "Werkzeuge & Integrationen",
},
pages: {
"what-is-dozzle": "Was ist Dozzle?",
"getting-started": "Erste Schritte",
dtop: "dtop vorgestellt 🚀",
"swarm-mode": "Swarm",
k8s: "Kubernetes",
podman: "Podman",
"alerts-and-webhooks": "Alarme & Webhooks",
"dozzle-cloud": "Dozzle Cloud",
"dozzle-cloud": "Überblick",
"dozzle-cloud/connecting": "Instanz verbinden",
"dozzle-cloud/channels": "Benachrichtigungskanäle",
"dozzle-cloud/plans": "Tarife & Limits",
"dozzle-cloud/your-data": "Deine Daten",
"alerts-and-webhooks": "Alarme",
dtop: "dtop CLI",
authentication: "Authentifizierung",
"authentication/simple": "Einfach (users.yml)",
"authentication/oauth": "GitHub & OIDC",
+9 -4
View File
@@ -8,7 +8,7 @@ export const en: Labels = {
sections: {
introduction: "Introduction",
platforms: "Platforms",
notifications: "Notifications",
cloud: "Dozzle Cloud",
advanced: "Advanced Configuration",
troubleshooting: "Troubleshooting",
about: "About",
@@ -18,16 +18,21 @@ export const en: Labels = {
hosts: "Connecting Hosts",
control: "Container Control",
logs: "Logs & Queries",
tools: "Tools & Integrations",
},
pages: {
"what-is-dozzle": "What is Dozzle?",
"getting-started": "Getting Started",
dtop: "Introducing dtop 🚀",
"swarm-mode": "Swarm",
k8s: "Kubernetes",
podman: "Podman",
"alerts-and-webhooks": "Alerts & Webhooks",
"dozzle-cloud": "Dozzle Cloud",
"dozzle-cloud": "Overview",
"dozzle-cloud/connecting": "Connecting Your Instance",
"dozzle-cloud/channels": "Notification Channels",
"dozzle-cloud/plans": "Plans & Limits",
"dozzle-cloud/your-data": "Your Data",
"alerts-and-webhooks": "Alerts",
dtop: "dtop CLI",
authentication: "Authentication",
"authentication/simple": "Simple (users.yml)",
"authentication/oauth": "GitHub & OIDC",
+9 -4
View File
@@ -8,7 +8,7 @@ export const es: Labels = {
sections: {
introduction: "Introducción",
platforms: "Plataformas",
notifications: "Notificaciones",
cloud: "Dozzle Cloud",
advanced: "Configuración avanzada",
troubleshooting: "Solución de problemas",
about: "Acerca de",
@@ -18,16 +18,21 @@ export const es: Labels = {
hosts: "Conectar hosts",
control: "Control de contenedores",
logs: "Registros y consultas",
tools: "Herramientas e integraciones",
},
pages: {
"what-is-dozzle": "¿Qué es Dozzle?",
"getting-started": "Primeros pasos",
dtop: "Presentamos dtop 🚀",
"swarm-mode": "Swarm",
k8s: "Kubernetes",
podman: "Podman",
"alerts-and-webhooks": "Alertas y webhooks",
"dozzle-cloud": "Dozzle Cloud",
"dozzle-cloud": "Descripción general",
"dozzle-cloud/connecting": "Vincular tu instancia",
"dozzle-cloud/channels": "Canales de notificación",
"dozzle-cloud/plans": "Planes y límites",
"dozzle-cloud/your-data": "Tus datos",
"alerts-and-webhooks": "Alertas",
dtop: "dtop CLI",
authentication: "Autenticación",
"authentication/simple": "Simple (users.yml)",
"authentication/oauth": "GitHub y OIDC",
+9 -4
View File
@@ -8,7 +8,7 @@ export const fr: Labels = {
sections: {
introduction: "Introduction",
platforms: "Plateformes",
notifications: "Notifications",
cloud: "Dozzle Cloud",
advanced: "Configuration avancée",
troubleshooting: "Dépannage",
about: "À propos",
@@ -18,16 +18,21 @@ export const fr: Labels = {
hosts: "Connexion des hôtes",
control: "Contrôle des conteneurs",
logs: "Journaux et requêtes",
tools: "Outils & intégrations",
},
pages: {
"what-is-dozzle": "Qu'est-ce que Dozzle ?",
"getting-started": "Démarrage",
dtop: "Découvrir dtop 🚀",
"swarm-mode": "Swarm",
k8s: "Kubernetes",
podman: "Podman",
"alerts-and-webhooks": "Alertes & Webhooks",
"dozzle-cloud": "Dozzle Cloud",
"dozzle-cloud": "Vue d'ensemble",
"dozzle-cloud/connecting": "Relier votre instance",
"dozzle-cloud/channels": "Canaux de notification",
"dozzle-cloud/plans": "Offres et limites",
"dozzle-cloud/your-data": "Vos données",
"alerts-and-webhooks": "Alertes",
dtop: "dtop CLI",
authentication: "Authentification",
"authentication/simple": "Simple (users.yml)",
"authentication/oauth": "GitHub et OIDC",
+13 -3
View File
@@ -11,9 +11,18 @@ export type Item = string | { slug: string; items: string[] } | { group: string;
export type Section = { key: string; items: Item[] };
export const SECTIONS: Section[] = [
{ key: "introduction", items: ["what-is-dozzle", "getting-started", "dtop"] },
{ key: "introduction", items: ["what-is-dozzle", "getting-started"] },
{ key: "platforms", items: ["swarm-mode", "k8s", "podman"] },
{ key: "notifications", items: ["alerts-and-webhooks", "dozzle-cloud"] },
{
key: "cloud",
items: [
"dozzle-cloud",
"dozzle-cloud/connecting",
"dozzle-cloud/channels",
"dozzle-cloud/plans",
"dozzle-cloud/your-data",
],
},
{
key: "advanced",
items: [
@@ -25,7 +34,8 @@ export const SECTIONS: Section[] = [
{ group: "hosts", items: ["remote-hosts", "agent", "hostname"] },
{ group: "control", items: ["actions", "shell"] },
{ group: "logs", items: ["sql-engine", "log-files-on-disk"] },
"mcp",
{ group: "tools", items: ["dtop", "mcp"] },
"alerts-and-webhooks",
"changing-base",
"filters",
"default-profile",
+9 -4
View File
@@ -8,7 +8,7 @@ export const zh: Labels = {
sections: {
introduction: "介绍",
platforms: "平台",
notifications: "通知",
cloud: "Dozzle Cloud",
advanced: "高级配置",
troubleshooting: "故障排查",
about: "关于",
@@ -18,16 +18,21 @@ export const zh: Labels = {
hosts: "连接主机",
control: "容器控制",
logs: "日志与查询",
tools: "工具与集成",
},
pages: {
"what-is-dozzle": "什么是 Dozzle?",
"getting-started": "快速开始",
dtop: "认识 dtop 🚀",
"swarm-mode": "Swarm",
k8s: "Kubernetes",
podman: "Podman",
"alerts-and-webhooks": "警报与 Webhook",
"dozzle-cloud": "Dozzle Cloud",
"dozzle-cloud": "概览",
"dozzle-cloud/connecting": "连接你的实例",
"dozzle-cloud/channels": "通知渠道",
"dozzle-cloud/plans": "套餐与限制",
"dozzle-cloud/your-data": "你的数据",
"alerts-and-webhooks": "警报",
dtop: "dtop CLI",
authentication: "身份验证",
"authentication/simple": "简单模式 (users.yml)",
"authentication/oauth": "GitHub 与 OIDC",
+7 -5
View File
@@ -1,11 +1,13 @@
---
title: Alarme & Webhooks
sourceHash: daf372975955
title: Alarme
sourceHash: 71776f8fae5c
---
# Alarme & Webhooks
# Alarme
Dozzle hat ein Alarmsystem, mit dem du Container-Logs, Ressourcenmetriken und Lebenszyklus-Ereignisse überwachst und benachrichtigt wirst, sobald bestimmte Bedingungen zutreffen. Alarme filtern Container und Auslösebedingungen über anpassbare Ausdrücke und können Benachrichtigungen an Webhooks, Slack, Discord, ntfy oder [Dozzle Cloud](/de/guide/dozzle-cloud) schicken.
Dozzle kann Container-Logs, Ressourcenmetriken und Lebenszyklus-Ereignisse überwachen und dich benachrichtigen, sobald eine von dir beschriebene Bedingung zutrifft. Regeln werden als Ausdrücke geschrieben, auf deiner eigenen Instanz ausgewertet und an einen Webhook, an Slack, Discord oder ntfy zugestellt.
Regeln liegen immer hier, auf der selbst gehosteten Instanz, weil dort deine Logs sind. Wenn du die Instanz mit [Dozzle Cloud](/de/guide/dozzle-cloud) verbunden hast, speisen dieselben Regeln auch Cloud, und die Zustellung (Bündelung, Zusammenfassungen, Stummschaltung, mobile Kanäle) konfigurierst du dort statt unten pro Ziel.
## <Icon icon="mdi:format-list-bulleted-type" inline /> Alarmtypen
@@ -81,7 +83,7 @@ Du kannst auch ein eigenes Payload-Template mit der `text/template`-Syntax von G
### Dozzle Cloud
Du kannst Alarme auch an [Dozzle Cloud](/de/guide/dozzle-cloud) schicken, um mehrere Dozzle-Instanzen zentral zu überwachen. Mehr Details stehen im [Leitfaden zu Dozzle Cloud](/de/guide/dozzle-cloud).
Verbundene Instanzen bekommen **Dozzle Cloud** automatisch als Ziel. Anders als ein reiner Webhook bündelt es wiederkehrende Fehler zu einer einzigen Benachrichtigung, fasst zusammen was passiert ist, und verteilt an E-Mail, Telegram, Discord, Slack, ntfy und Browser-Push, ohne dass du jeden Kanal hier einrichten musst. Siehe [Dozzle Cloud](/de/guide/dozzle-cloud).
## <Icon icon="mdi:plus-circle-outline" inline /> Einen Alarm anlegen
+34 -90
View File
@@ -1,112 +1,56 @@
---
title: Dozzle Cloud
sourceHash: 34c0056128a5
sourceHash: 49197a749322
---
# Dozzle Cloud
[Dozzle Cloud](https://cloud.dozzle.dev) ist eine optionale, verwaltete Ergänzung zum selbst gehosteten Dozzle. Es verbindet deine Instanzen miteinander, fasst Container-Ereignisse zusammen, verteilt Alarme über mehrere Kanäle und lässt dich aus dem Chat heraus Fragen zu deiner Infrastruktur stellen. Dozzle selbst bleibt vollständig Open Source und selbst gehostet; Cloud setzt obendrauf.
[Dozzle Cloud](https://cloud.dozzle.dev) ist ein optionaler verwalteter Begleiter für selbst gehostetes Dozzle. Dozzle selbst bleibt vollständig quelloffen und selbst gehostet; Cloud setzt darauf auf und übernimmt den Teil, der wirklich schwer selbst zu betreiben ist: die Entscheidung, was dich aufwecken darf, und die Frage, was tatsächlich kaputtgegangen ist.
Das Ziel: Dozzle Cloud soll sich wie der persönliche SRE-Assistent anfühlen, von dem du nicht wusstest, dass du ihn willst. Es beobachtet deine Container, sagt dir Bescheid, wenn etwas wichtig ist, und hält sich raus, wenn nichts los ist.
Dein Dozzle baut eine ausgehende Verbindung zu Cloud auf. Es gibt keinen eingehenden Port, keine öffentliche IP und keinen Agent zu installieren.
## Funktionen
**Kostenlos hält dir den Rücken frei. Pro geht selbst auf die Suche.**
### <Icon icon="mdi:text-box-outline" inline /> Log-Zusammenfassungen
## <Icon icon="mdi:bell-ring-outline" inline /> Kostenlos: eine intelligente Benachrichtigungsebene
Container-Ereignisse werden gebündelt und von einem LLM zusammengefasst. Jede Zusammenfassung hält den Schweregrad und den Quell-Container fest und verlinkt zurück auf die vollständige Logzeile in deiner Dozzle-Instanz.
Die meisten Log-Alarme sind ein Regex plus ein Webhook. Beim ersten Crash-Loop werden daraus zweihundert identische Nachrichten und du schaltest den Kanal stumm. Genau diesen Teil behebt die kostenlose Stufe, und sie ist das vollständige Alarmierungsprodukt, nicht dessen Testversion.
### <Icon icon="mdi:group" inline /> Muster-Clustering
- **Intelligente Alarme** — jeder Alarm, den deine Dozzle-Regeln auslösen, wird zu einem Satz aufbereitet, der die Ursache, den Container und den Schweregrad nennt, mit einem Link zurück auf genau die Log-Zeile in deinem eigenen Dozzle.
- **Wiederholungen werden gebündelt** — 47 Abstürze kommen als ein Alarm an, der 47 sagt. Kommt der Container wieder hoch, bekommst du eine Entwarnung.
- **Standardmäßig ruhig** — Unterdrückung, Schweregrad-Filter und musterbasiertes Stummschalten auf jedem Kanal. Stelle _diese Art von Alarm_ stumm statt nur diesen einen; alles wirklich Neue kommt weiterhin durch.
- **Alle Kanäle** — E-Mail, Telegram, Discord, Slack, ntfy, Webhooks und Browser-Push, alle im kostenlosen Tarif. Siehe [Benachrichtigungskanäle](/de/guide/dozzle-cloud/channels).
- **Suche und Metriken inklusive** — jedes Ereignis ist ab dem Moment durchsuchbar, in dem es ankommt, und CPU, Speicher, Netzwerk und Festplatte werden als Historie aufgezeichnet. Beides zählt nicht auf dein Ereigniskontingent.
- **Ein Befund pro Woche** — auch kostenlos liest Cloud deine Logs und zeigt dir das Schwerwiegendste, worauf kein Alarm angeschlagen hat.
- **Eine funktionierende Standardregel** — beim Verbinden einer Instanz wird eine für dich angelegt (Container, die mit einem Fehler beenden), sodass ein neues Konto schon am ersten Tag einen nützlichen Alarm bekommt, ganz ohne Konfiguration.
- **Chat-Agent und MCP** — frag in Telegram oder Discord „gab es heute Fehler?" und starte, stoppe oder starte einen Container aus derselben Unterhaltung neu, sobald du [Aktionen](/de/guide/actions) auf deiner Instanz aktiviert hast. Der MCP-Zugriff ist in jedem Tarif unbegrenzt.
Wiederkehrende Fehler werden gruppiert und gezählt statt einzeln zugestellt. Eine Schleife, die dieselbe Exception 200-mal ausgibt, erzeugt eine Benachrichtigung mit Häufigkeitsangabe, nicht 200.
> [!TIP]
> Eine frisch verbundene Instanz bekommt 7 Tage lang das volle Pro-Erlebnis: jeden Morgen jeden Befund. Danach pendelt sich der kostenlose Tarif auf einen Befund pro Woche ein.
### <Icon icon="mdi:robot-outline" inline /> KI-Agent
## <Icon icon="mdi:robot-outline" inline /> Pro: es sucht, bevor überhaupt etwas Alarm schlägt
Ein Chat-Agent beantwortet Fragen zum Zustand deiner Container und zur jüngsten Log-Aktivität. Er ist in Telegram und Discord verfügbar.
Kostenlos sagt dir, _dass_ etwas passiert ist, und bleibt still, wenn nichts war. Pro ist die Hälfte, die nicht darauf wartet, dass ein Alarm existiert.
In den Plänen Pro und Team kann der Agent auch direkt aus der Unterhaltung heraus auf Container einwirken (starten, stoppen, neu starten), ohne dass Shell-Zugriff auf den Host nötig ist.
- **Proaktive Auswertung, jeden Morgen** — Cloud liest deine Fehler-Logs, fasst sie zu Mustern zusammen und meldet, was behoben werden sollte. Genau hier taucht eine langsam vollaufende Festplatte oder ein still vor sich hin neustartender Container auf, an einem Tag, an dem gar nichts ausgelöst hat. Dafür muss keine Alarmregel existieren.
- **Jeder Befund, täglich, mit der Lösung** — nicht einer pro Woche und der Rest gesperrt. Befunde altern von Tag zu Tag, solange das Problem besteht („passiert immer noch, Tag vier, dreimal schlimmer"), und schließen sich selbst, wenn es aufhört.
- **Auswertung, die nachschaut** — wenn der Alarmtext allein nicht reicht, inspiziert sie den Container und liest die umgebenden Logs, bevor sie entscheidet, statt zu raten.
- **Vollständige Untersuchungen auf Knopfdruck** — ein Klick startet mehr Durchläufe mit einem stärkeren Modell, korreliert über deine Container, Hosts und den Zeitverlauf hinweg und liefert eine Ursache samt konkreter Schritte zurück.
- **Jeder Host, ein Dashboard** — verbinde so viele Dozzle-Instanzen, wie du betreibst. Fragen im Chat decken alle auf einmal ab.
- **Längeres Gedächtnis** — 30 Tage durchsuchbare Logs und Metriken statt 24 Stunden. Das ist der Unterschied zwischen „was ist heute Nacht passiert" und „passiert das schon den ganzen Monat".
### <Icon icon="mdi:calendar-clock" inline /> Tägliche Zusammenfassungen
Die vollständige Gegenüberstellung steht unter [Tarife & Limits](/de/guide/dozzle-cloud/plans).
Eine geplante Übersicht der jüngsten Aktivität über deine verbundenen Instanzen hinweg: die häufigsten Fehlermuster, Ereigniszahlen und der Gesamtzustand. Zustellung per E-Mail zu einer Uhrzeit und Zeitzone deiner Wahl.
## Wie es weitergeht
### <Icon icon="mdi:bell-ring-outline" inline /> Benachrichtigungskanäle
| Seite | Worum es geht |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| [Instanz verbinden](/de/guide/dozzle-cloud/connecting) | Verbinden, warum keine öffentliche IP und kein offener Port nötig sind, Firewall, Fehlersuche |
| [Benachrichtigungskanäle](/de/guide/dozzle-cloud/channels) | Alle Kanäle, wie du jeden einrichtest, und wie du es leiser bekommst |
| [Tarife & Limits](/de/guide/dozzle-cloud/plans) | Was jeder Tarif enthält, was ein ausgewertetes Ereignis ist, was beim Überschreiten passiert |
| [Deine Daten](/de/guide/dozzle-cloud/your-data) | Was deinen Host verlässt, wie du das stoppst, was Cloud speichert, API-Schlüssel |
Alarme lassen sich parallel an mehrere Kanäle senden. Jeder Kanal kann unabhängig aktiviert oder deaktiviert und auf bestimmte Dozzle-Instanzen eingeschränkt werden.
| Kanal | Alarme | Tägliche Zusammenfassung | Agent in beide Richtungen |
| ---------------------------------------------------------- | :----: | :----------------------: | :-----------------------: |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord | ✓ | ✓ | ✓ |
| <Icon icon="mdi:email-outline" inline /> E-Mail | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Browser-Push | ✓ | | |
### <Icon icon="mdi:bell-sleep-outline" inline /> Benachrichtigungen stummschalten
Benachrichtigungen lassen sich für eine Stunde, acht Stunden, bis zum nächsten Morgen oder bis zur nächsten Woche stummschalten. Praktisch bei Störungen oder geplanter Wartung.
### <Icon icon="mdi:view-dashboard-outline" inline /> Dashboard für mehrere Instanzen
Verbundene Dozzle-Instanzen erscheinen in einem gemeinsamen Dashboard. Jede Instanz authentifiziert sich mit einem API-Schlüssel, ein zusätzlicher Agent auf dem Host ist nicht nötig. Das Dashboard zeigt den Online-Status, den Container-Bestand und Logs im Live-Stream.
### <Icon icon="mdi:database-search-outline" inline /> Volltextsuche in Logs
Jede Logzeile, die deine verbundenen Instanzen weiterleiten, landet in einem Volltextindex. Du kannst über alle Instanzen auf einmal suchen oder nach Container, Schweregrad oder Zeitraum filtern. Suchen liefern selbst über Wochen an Verlauf in Millisekunden Ergebnisse, und jeder Treffer verlinkt zurück auf den Kontext in der Quellinstanz. Die Aufbewahrung hängt vom Plan ab und reicht von 24 Stunden bis 30 Tagen.
### <Icon icon="mdi:shield-lock-outline" inline /> Sicherheit
- API-Schlüssel werden mit BLAKE2b gehasht und können ablaufen.
- Die Anmeldung läuft über GitHub- oder Google-OAuth.
- Logs und Ereignisinhalte werden nur so lange gespeichert, wie es das Aufbewahrungsfenster deines Plans vorsieht.
## Eine Instanz verbinden
So verbindest du ein selbst gehostetes Dozzle mit Dozzle Cloud:
1. Öffne deine Dozzle-Instanz und klicke auf das **Cloud**-Symbol in der oberen Leiste.
2. Klicke auf **Instanz verbinden**. Du wirst weitergeleitet, um dich anzumelden und die Verbindung zu bestätigen.
3. Sobald die Verbindung steht, konfigurierst du in Dozzle die Alarm-Abonnements, um festzulegen, welche Ereignisse weitergeleitet werden.
## Steuern, was weitergeleitet wird
Standardmäßig streamt jeder laufende Container seine Logs an Dozzle Cloud, solange die Verbindung besteht. Bei geschwätzigen Containern, deren Info-Meldungen diagnostisch nichts hergeben, kannst du pro Container mit einem einzigen Label filtern oder ganz abschalten.
### `dev.dozzle.cloud.min_level`
| Wert | Wirkung |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| _(nicht gesetzt)_ | Alle Logzeilen werden weitergeleitet. Standard. |
| `disabled` | Der Container wird komplett übersprungen. Es werden keine Logs an Cloud weitergeleitet. |
| `trace` | Wie nicht gesetzt, da trace das niedrigste Level ist. Alles wird weitergeleitet. |
| `debug` / `info` / `warn` / `error` / `fatal` | Nur Zeilen ab diesem Level werden weitergeleitet. Zeilen ohne erkanntes Level kommen immer durch. |
Ein unbekannter Wert (ein Tippfehler wie `warning` oder `wran`) wird als Fehler protokolliert und ignoriert, der Container streamt dann alles, als wäre das Label nicht gesetzt.
Das Label wird beim Start des Log-Readers gelesen. Eine Änderung an einem laufenden Container wirkt erst nach dessen Neustart.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Nur warn/error/fatal an Dozzle Cloud weiterleiten
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# Von diesem Container nichts senden
- dev.dozzle.cloud.min_level=disabled
```
Der Filter läuft auf deiner Dozzle-Instanz, bevor die Logs den Host verlassen, verworfene Zeilen berühren also nie das Netzwerk und zählen nicht gegen deinen Plan. Die lokale Log-Ansicht in Dozzle bleibt davon unberührt.
## Preise
Die kostenlose Stufe ist bewusst großzügig; du solltest Dozzle Cloud in einem Homelab oder kleinen Team wirklich nutzen können, ohne an eine Grenze zu stoßen. Kostenpflichtige Pläne gibt es für höhere Ereignisvolumen, längere Aufbewahrung und die Container-Aktionen des Agents. Aktuelle Limits und Plandetails findest du unter [cloud.dozzle.dev](https://cloud.dozzle.dev).
Die Alarmregeln selbst werden auf deiner eigenen Instanz konfiguriert, nicht in Cloud. Siehe [Alarme](/de/guide/alerts-and-webhooks).
## Feedback
Dozzle Cloud stammt von derselben Person, die Dozzle gebaut hat, und der Anspruch ist derselbe: Dinge, die Leute wirklich nutzen wollen. Wenn du es ausprobierst und etwas schief wirkt, fehlt oder richtig nützlich ist, [eröffne bitte eine Diskussion](https://github.com/amir20/dozzle/discussions). Dieses Feedback bestimmt, was als Nächstes gebaut wird.
Dozzle Cloud wird von derselben Person gebaut wie Dozzle, und der Anspruch ist derselbe: Dinge, die Leute wirklich benutzen wollen. Wenn du es ausprobierst und etwas sich falsch anfühlt, fehlt oder echt nützlich ist, [eröffne bitte eine Discussion](https://github.com/amir20/dozzle/discussions). Dieses Feedback bestimmt, was als Nächstes gebaut wird.
+119
View File
@@ -0,0 +1,119 @@
---
title: Benachrichtigungskanäle
sourceHash: baae80ce439a
---
# Benachrichtigungskanäle
Kanäle werden in [Dozzle Cloud](/de/guide/dozzle-cloud) konfiguriert und steuern, _wohin_ Alarme gehen. Was einen Alarm _auslöst_, konfigurierst du auf deiner selbst gehosteten Instanz — siehe [Alarme](/de/guide/alerts-and-webhooks).
Aktiviere so viele du willst. Jeder aktivierte Kanal bekommt jeden Alarm, und jeder lässt sich unabhängig ein- und ausschalten.
## Verfügbare Kanäle
| Kanal | Alarme | Tägliche Zusammenfassung | Zwei-Wege-Agent |
| ----------------------------------------------------------- | :----: | :----------------------: | :-------------: |
| <Icon icon="mdi:email-outline" inline /> E-Mail | ✓ | ✓ | |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord-Bot (DM) | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord-Webhook | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Browser-Push | ✓ | | |
Alle Kanäle sind in jedem Tarif verfügbar, auch im kostenlosen.
## E-Mail
Wird automatisch mit der Adresse eingerichtet, mit der du dich registriert hast. Nichts zu konfigurieren. Zum Abschalten deaktivierst du den E-Mail-Kanal. Wenn Alarme unerwartet ausbleiben, schau zuerst in den Spam-Ordner — der erste Alarm landet gelegentlich dort, und ihn als „kein Spam" zu markieren behebt das dauerhaft.
## Telegram
Wähle auf der Channels-Seite **Telegram**, folge dem Link zum Bot und drücke **Start**. Der Kanal wird aktiv, sobald der Bot von dir gehört hat.
Telegram funktioniert in beide Richtungen. Du kannst im selben Chat antworten und nach deinen Containern fragen — „gab es heute Fehler?", „zeig mir die CPU-Auslastung", „welche Alarme habe ich?" — und bekommst Antworten zum Live-Zustand.
## Discord
Discord hat **zwei getrennte Kanaltypen**, und beide gleichzeitig laufen zu haben ist der übliche Grund dafür, jeden Alarm doppelt zu bekommen.
**Discord-Bot (Direktnachricht)** — der Bot schickt dir Alarme persönlich als DM. Zwei-Wege, du kannst ihm also Fragen stellen. Einrichtung durch Autorisieren des Bots auf der Channels-Seite.
**Discord-Webhook (Server-Kanal)** — Alarme werden in einen Kanal auf deinem Server gepostet, etwa `#alerts`. Nur eine Richtung. Einrichtung durch Anlegen eines Webhooks in den Server-Einstellungen und Einfügen der URL in Cloud.
Wenn Alarme sowohl in deinen DMs als auch in einem Server-Kanal ankommen, hast du beides konfiguriert. Deaktiviere, was du nicht willst; eines abzuschalten lässt das andere laufen. Ein häufiges Setup ist, den gemeinsamen Server-Kanal zu behalten und die DM abzuschalten.
## Slack
Lege in deinem Slack-Workspace einen Incoming Webhook an und füge die URL im Slack-Kanal auf der Channels-Seite ein.
## ntfy
Trage deine Topic-URL ein. Sowohl ntfy.sh als auch ein selbst gehosteter ntfy-Server funktionieren. Beliebt für Handy-Benachrichtigungen ohne zusätzliches Konto.
## Webhooks
Trage eine beliebige URL ein, die ein POST annimmt. Alarme werden als JSON zugestellt, du kannst sie also in alles leiten, was du ohnehin betreibst — Home Assistant, n8n, ein Skript, ein anderes Alarmierungswerkzeug.
> [!NOTE]
> Das ist ein Cloud-Kanal und etwas anderes als die Webhooks, die dein selbst gehostetes Dozzle direkt aufrufen kann. Die stehen in [Alarme](/de/guide/alerts-and-webhooks), samt den Go-Template-Variablen.
## Browser-Push
Aktiviere es auf der Channels-Seite und erlaube Benachrichtigungen, wenn dein Browser fragt. Alarme kommen dann als Desktop-Benachrichtigungen an.
Wenn danach nichts ankommt, hat der Browser die Berechtigung höchstwahrscheinlich verweigert. Browser fragen nach einer Ablehnung nicht erneut — lösche die Benachrichtigungs-Berechtigung der Seite in den Browser-Einstellungen und aktiviere sie neu. In einem privaten oder Inkognito-Fenster funktioniert Browser-Push nicht.
## <Icon icon="mdi:bell-sleep-outline" inline /> Für Ruhe sorgen
Du sollst nur gestört werden, wenn es zählt. Wenn Cloud laut ist, ist das ein Einstellungsproblem, und dafür gibt es diese Werkzeuge.
| Situation | Tu das |
| ----------------------------------------------- | --------------------------------------- |
| Ein wiederkehrender Fehler, den du schon kennst | **Muster stummschalten** |
| Alarme sind nützlich, kommen aber zu oft | **Daumen runter geben** |
| Geplante Wartung, Backups, Upgrades | **Vor Beginn das Muster stummschalten** |
| Richtiger Alarm, falsche App | **Diesen Kanal deaktivieren** |
| Du willst gar nichts mehr, von nirgendwo | **Alle Kanäle deaktivieren** |
Die Alarmregel zu löschen ist fast nie die richtige Antwort. Damit entfernst du eine ganze Überwachungskategorie, um eine laute Zeile loszuwerden.
### Einen wiederkehrenden Alarm stummschalten
Das Stummschalten ist musterbasiert: es bringt _diese Art von Alarm_ zum Schweigen, nicht nur den vor dir. Spätere Vorkommen bleiben still, und alles wirklich Andere kommt weiterhin durch.
- **Am Alarm** — öffne ihn in Cloud und wähle Stummschalten.
- **Im Chat** — sag „stell das stumm" oder „hör auf mir von X zu erzählen". Der Agent nennt genau das Muster, das er stummschalten will, und wartet auf deine Bestätigung, denn eine Stummschaltung ist dauerhaft und könnte später einen echten Ausfall verdecken.
Die Stummschaltung bleibt, bis du sie aufhebst. Frag „was habe ich stummgeschaltet?" für eine Liste, und heb sie genauso wieder auf. Stummgeschaltete Alarme werden weiterhin aufgezeichnet — Stummschalten ändert, was dich unterbricht, nicht was überwacht wird.
### Weniger, nicht gar nichts
Wenn ein Alarm wirklich nützlich ist, aber zu oft kommt, gib ihm **Daumen runter** statt ihn stummzuschalten. Das ist das Signal für „beobachte das weiter, unterbrich mich seltener". Daumen hoch für Alarme, die richtig lagen, hilft genauso.
### Wiederholungen werden bereits gebündelt
Prüfe vor dem Stummschalten, ob das Problem eigentlich Wiederholung ist. Wiederkehrende Vorkommen desselben Ausfalls werden zu einem einzigen Alarm mit Zähler zusammengefasst. Wenn du viele Alarme bekommst, sind es meist viele _verschiedene_ Probleme — oder du bist über dem Ereigniskontingent deines Tarifs, und die Alarme sind auf roh und ungebündelt zurückgefallen. Siehe [Tarife & Limits](/de/guide/dozzle-cloud/plans).
### An der Quelle filtern
Für einen Container, der im Normalbetrieb laut ist, liegt die bessere Lösung weiter oben: das Label `dev.dozzle.cloud.min_level` sorgt dafür, dass Zeilen niedriger Schwere deinen Host gar nicht erst verlassen. Siehe [Deine Daten](/de/guide/dozzle-cloud/your-data).
## Warum kam kein Alarm?
**1. Gibt es überhaupt eine Regel dafür?** Ein Fehler in deinen Logs erzeugt für sich genommen keinen Alarm; irgendetwas muss danach schauen. Die Standardregel deckt nur Container ab, die mit einem Fehler beenden — ein Container, der Fehler loggt und dabei weiterläuft, braucht eine Log-Regel.
**2. Ist ein Kanal aktiviert?** Eine Regel ohne aktivierten Kanal hat kein Ziel.
**3. Ist die Instanz verbunden?** War sie zum Zeitpunkt des Problems offline, wurde nichts weitergeleitet. Siehe [Instanz verbinden](/de/guide/dozzle-cloud/connecting).
**4. Wurde er in einen Alarm gebündelt, den du schon bekommen hast?** Vierzig Ausfälle erzeugen einen Alarm, der vierzig sagt. Das ist Absicht, kein verpasster Alarm.
**5. Hast du ihn stummgeschaltet?** Prüfe deine Stummschaltungsregeln.
**6. Ist der Container von der Weiterleitung ausgenommen?** Siehe [Deine Daten](/de/guide/dozzle-cloud/your-data).
**7. Bist du über den Limits deines Tarifs?** Jenseits des Kontingents ändert sich die Zustellung und Alarme werden gesampelt.
**8. Schau in den Spam-Ordner**, speziell bei E-Mail.
+110
View File
@@ -0,0 +1,110 @@
---
title: Instanz verbinden
sourceHash: d6f8f7b6b845
---
# Instanz verbinden
Ein selbst gehostetes Dozzle mit [Dozzle Cloud](/de/guide/dozzle-cloud) verbinden, prüfen ob es wirklich verbunden ist, und beheben wenn nicht.
## Eine Instanz verbinden
1. Öffne dein selbst gehostetes Dozzle und klicke oben in der Leiste auf das **Cloud**-Symbol.
2. Klicke auf **Link instance**. Du wirst zu Cloud geleitet, um dich mit GitHub oder Google anzumelden und zu bestätigen.
3. Die Instanz erscheint innerhalb weniger Sekunden im Cloud-Dashboard.
Es gibt kein Passwort anzulegen und keinen Agent auf dem Host zu installieren.
## Du brauchst keine öffentliche IP, keinen offenen Port und keine Domain
Das ist die häufigste Sorge, und die Antwort ist bei allen dreien nein.
Deine Dozzle-Instanz öffnet eine **ausgehende** Verbindung zu Cloud und hält sie offen. Cloud verbindet sich nie zurück zu dir, sucht nie nach deinem Host und muss deine Adresse nie erreichen. Damit funktioniert es ganz normal, wenn Dozzle:
- hinter NAT im Heimnetz läuft, ohne Portweiterleitung
- eine private RFC1918-Adresse wie `192.168.1.50` hat
- in einem Tailscale-, WireGuard- oder ZeroTier-Netz läuft
- hinter CGNAT liegt, wo du gar nicht portweiterleiten könntest
- auf einem Laptop läuft, der das Netzwerk wechselt
Es braucht keinen Reverse Proxy, keinen dynamischen DNS-Namen und keine feste IP.
## Firewall-Regeln
Nur **ausgehender** Zugriff ist nötig. Erlaube deinem Dozzle-Host:
```
agent.doligence.dozzle.dev:443 (TCP, outbound)
```
Dieses eine Ziel auf Port 443 reicht. Wenn deine Firewall nach Hostname statt IP filtert, erlaube den Hostnamen — die Adressen dahinter können sich ändern. Die meisten Heim- und Büro-Firewalls erlauben ausgehenden Verkehr ohnehin, meistens gibt es also gar nichts einzurichten.
## Wo Regeln und Kanäle liegen
Darüber stolpern fast alle, deshalb einmal deutlich:
| Was du ändern willst | Wo du es tust |
| ----------------------------------------------------------------- | ------------------------------------------------------------------ |
| **Was einen Alarm auslöst** — Container, Muster, Schwellwerte | Selbst gehostetes Dozzle → [Alarme](/de/guide/alerts-and-webhooks) |
| **Wohin Alarme zugestellt werden** — E-Mail, Telegram, Slack, ... | Dozzle Cloud → [Kanäle](/de/guide/dozzle-cloud/channels) |
| Alte Alarme ansehen, stummschalten, Tarif wechseln | Dozzle Cloud |
Die Regel wird auf deiner eigenen Instanz definiert, weil dort deine Logs liegen. Die Zustellung wird in Cloud konfiguriert, weil dort die Verbindung zu deinem Handy gehalten wird. Wenn du in Cloud nach einer Stelle suchst, um „sag mir Bescheid, wenn dieser Container Fehler wirft" einzustellen, und sie nicht findest: das ist der Grund. Öffne stattdessen dein selbst gehostetes Dozzle.
## Mehr als eine Instanz verbinden
Jede Instanz wird einzeln verbunden, mit denselben Schritten und demselben Cloud-Konto. Danach erscheinen alle zusammen im Dashboard, und Fragen im Chat decken jede verbundene Instanz auf einmal ab.
Diese gemeinsame Ansicht lebt in Cloud, nicht in einem einzelnen selbst gehosteten Dozzle. Ein selbst gehostetes Dozzle zeigt die Hosts, die du direkt darauf konfiguriert hast; andere verbundene Instanzen zeigt es nicht.
Mehrere Dozzle-Instanzen zu verbinden ist etwas anderes als Dozzles eigene Funktionen [Agent-Modus](/de/guide/agent) und [Remote-Hosts](/de/guide/remote-hosts), die zusätzliche Docker-Hosts an ein einzelnes Dozzle anbinden. Beides wird unterstützt und lässt sich kombinieren.
Der kostenlose Tarif verbindet eine Instanz gleichzeitig. Siehe [Tarife & Limits](/de/guide/dozzle-cloud/plans).
## Es taucht nichts auf
Arbeite das der Reihe nach ab.
**1. Läuft der Dozzle-Container?**
Wenn Dozzle selbst gestoppt ist oder neu startet, erreicht Cloud nichts.
**2. Wurde die Verbindung überhaupt abgeschlossen?**
Den Vorgang zu starten und nicht zu bestätigen hinterlässt nichts. Wiederhole die Schritte oben und prüfe, ob die Instanz dann auf der Instances-Seite auftaucht.
**3. Wurde der API-Schlüssel gelöscht?**
Das Löschen des API-Schlüssels trennt die Instanz dauerhaft. Der alte Schlüssel lässt sich nicht wieder anhängen — verbinde erneut, um einen neuen zu bekommen.
**4. Wird ausgehender Verkehr blockiert?**
Restriktive Netze (Unternehmen, Universität, manche VPS-Anbieter) blockieren ausgehendes 443 zu Zielen, die nicht auf einer Allowlist stehen. Siehe _Firewall-Regeln_ oben.
**5. Hast du das Instanz-Limit im kostenlosen Tarif erreicht?**
Der kostenlose Tarif verbindet eine Instanz gleichzeitig. Beim Versuch, eine zweite zu verbinden, erscheint eine Limit-Meldung statt einer Verbindung.
**6. Ist der Container von der Weiterleitung ausgenommen?**
Ein Container mit dem Label `dev.dozzle.cloud.min_level=disabled` sendet absichtlich nichts. Wenn ein bestimmter Container fehlt und andere funktionieren, prüfe seine Labels. Siehe [Deine Daten](/de/guide/dozzle-cloud/your-data).
## Den Agent Container steuern lassen
Logs und Containerzustand lesen funktioniert, sobald eine Instanz verbunden ist. Starten, Stoppen und Neustarten lehnt deine Instanz ab, solange du es nicht selbst aktivierst:
::: code-group
```yaml [docker-compose.yml]
services:
dozzle:
image: amir20/dozzle
environment:
DOZZLE_ENABLE_ACTIONS: true
```
```sh
docker run ... amir20/dozzle --enable-actions
```
:::
Das ist eine Einstellung auf **deinem** Dozzle, nicht in Cloud, denn sie regelt, was dein Dozzle mit deinen Containern zu tun bereit ist. Starte Dozzle nach der Änderung neu. Siehe [Aktionen](/de/guide/actions).
## Verbindung trennen
Lösche den API-Schlüssel der Instanz auf der Instances-Seite in Cloud. Die Verbindung fällt weg, es werden keine Daten mehr weitergeleitet, und dein selbst gehostetes Dozzle läuft genau wie vorher weiter. Das Verbinden ändert das lokale Betrachten der Logs nie.
+84
View File
@@ -0,0 +1,84 @@
---
title: Tarife & Limits
sourceHash: f7c6bbdc83ea
---
# Tarife & Limits
Was jeder Tarif enthält, was darauf angerechnet wird, und was beim Überschreiten passiert.
Der kostenlose Tarif ist das vollständige Alarmierungsprodukt, nicht dessen Testversion. Was die bezahlten Tarife kaufen, ist die proaktive Hälfte — die Durchsicht, die deine Logs liest und findet, worauf nie ein Alarm angeschlagen hat — plus Luft nach oben.
## Tarife
| | Kostenlos | Pro | Team |
| --------------------------------------------------------- | :----------: | :-----------: | :-----------: |
| Preis | 0 $ | 5 $ / Monat | 15 $ / Monat |
| Befunde (liest deine Logs, findet was nie Alarm auslöste) | 1 / Woche | Alle, täglich | Alle, täglich |
| Lösung zu jedem Befund | — | ✓ | ✓ |
| Auswertung prüft Container und Logs im Zweifel | — | ✓ | ✓ |
| Vollständige Untersuchung auf Knopfdruck | — | ✓ | ✓ |
| Ausgewertete Ereignisse pro Monat | 2.000 | 50K | 250K |
| Durchsuchbare Logs | 10 GB · 24 h | 50 GB · 30 T | 100 GB · 30 T |
| Alarm- und Ereignis-Historie | 1 Tag | 14 Tage | 30 Tage |
| Metrik-Historie (CPU, Speicher, Netzwerk, Festplatte) | 24 h | 30 Tage | 30 Tage |
| Verbundene Instanzen | 1 | Unbegrenzt | Unbegrenzt |
| Assistenz-Chats pro Monat | 10 | 200 | 1.000 |
| Priorisierter Support | — | ✓ | ✓ |
Intelligente Alarme, Bündelung von Wiederholungen, Unterdrückung und Schweregrad-Filter, Suchindizierung, Metrik-Aufzeichnung, alle Benachrichtigungskanäle, Container-Aktionen und unbegrenzter MCP-Zugriff sind in **jedem** Tarif enthalten, auch im kostenlosen.
Die aktuellen Preise stehen auf [cloud.dozzle.dev](https://cloud.dozzle.dev).
## Was als ausgewertetes Ereignis zählt
Ein **ausgewertetes Ereignis** ist ein Container-Ereignis oder eine passende Log-Zeile, die durch die Auswertungs-Pipeline gelaufen ist, welche entscheidet, ob ein neuer Alarm rausgeht, ob es in einen bestehenden gebündelt wird oder ob es still bleibt. Du bezahlst für diese Arbeit, nicht für rohen Speicher.
Gewöhnliche Log-Zeilen sind keine Ereignisse. Sie zählen stattdessen auf das durchsuchbare Log-Volumen. Ein sehr geschwätziger Container kostet also Speicher, während ein Container im Crash-Loop Ereignisse kostet.
Beendet ein Container 47-mal, sind das 47 Ereignisse gegen das Limit — aber ein Alarm, der 47 sagt. Genau darum geht es.
**Befunde kosten keines von beidem.** Die Log-Durchsicht liest deine Logs statt deiner Alarm-Historie, berührt also den Ereigniszähler nicht und funktioniert sogar ganz ohne konfigurierte Alarmregeln. Es zählt nur dein monatliches Log-Volumen.
**Suche und Metriken sind in jedem Tarif kostenlos.** Die Suchindizierung läuft ab dem Moment, in dem eine Instanz verbunden ist, und CPU-, Speicher-, Netzwerk- und Festplattenreihen fließen ohne Aufpreis von deinen Instanzen. Der Tarif ändert nur, wie viel und wie weit zurück.
## Über dem Kontingent
Es geht nichts kaputt. Du landest im Sampling-Modus:
- Die Auswertung pausiert.
- Die Ereignis-Historie wird weiter aufgezeichnet, es geht also nichts verloren.
- Ungefähr jedes zehnte Ereignis kommt als **roher** Alarm durch, damit du weiter siehst, was los ist.
- Wiederholungen werden nicht mehr zu einem Alarm mit Zähler gebündelt.
Praktisch heißt das: Alarme werden lauter und weniger nützlich, statt zu verschwinden, und du merkst es im Posteingang, bevor du es auf einer Nutzungsseite siehst. Wenn deine Alarme plötzlich roh und repetitiv sind, prüfe zuerst die Nutzung.
Das gilt auch in bezahlten Tarifen. Kontingente werden zu Monatsbeginn zurückgesetzt.
> [!TIP]
> Die meisten Konten kommen nie in die Nähe. Nur ein echter Feuerwehrschlauch — ein Container, der tagelang im Crash-Loop hängt — geht darüber hinaus, und der Alarm, der diesen Container benennt, kommt lange vor dem Limit an.
## Aufbewahrung
Die Aufbewahrung bestimmt, wie weit deine Historie zurückreicht: Alarme, Ereignisse und Log-Suchergebnisse. Im kostenlosen Tarif ist das ein Tag, eine Suche nach etwas von letzter Woche liefert also nichts, obwohl es passiert ist. Das ist der häufigste Grund, warum eine Suche Daten scheinbar „verliert".
Die Metrik-Aufbewahrung beträgt 24 Stunden kostenlos und 30 Tage in den bezahlten Tarifen. Fragst du nach einem längeren Zeitraum als dein Tarif erlaubt, bekommst du den Zeitraum, den du tatsächlich hast, statt einen Fehler.
## Das Instanz-Limit
Der kostenlose Tarif verbindet eine Instanz gleichzeitig. Beim Verbinden einer zweiten erscheint eine Limit-Meldung. Du hast zwei Möglichkeiten:
- **Den Platz umziehen.** Lösche den API-Schlüssel der bestehenden Instanz auf der Instances-Seite und verbinde dann die neue. Für die alte Instanz ist das endgültig — ihre Historie bleibt, aber du müsstest sie von vorn neu verbinden.
- **Upgraden**, um beide gleichzeitig verbunden zu lassen.
Das Limit betrifft, wie viel ein kostenloses Konto weiterleitet, es ist keine Funktionssperre. Alles andere funktioniert kostenlos mit der Instanz, die du verbunden hast.
## Nutzung prüfen
Die Nutzungsseite in Cloud zeigt Ereignisse, Log-Bytes und Assistenz-Chats dieses Monats gegen dein Kontingent. Du kannst auch im Chat fragen: „wie viel habe ich diesen Monat verbraucht?".
## Tarif wechseln oder kündigen
Upgrade über die Preisseite oder die Einstellungen. Die Abrechnung läuft über Stripe; Zahlungsmethoden, Rechnungen und Belege verwaltest du dort über den Billing-Link in deinen Einstellungen.
Eine Kündigung stoppt künftige Abbuchungen und stellt dich zum Ende des bezahlten Zeitraums auf den kostenlosen Tarif um. Konto und Historie bleiben erhalten.
+83
View File
@@ -0,0 +1,83 @@
---
title: Deine Daten
sourceHash: f11dd8e45cb5
---
# Deine Daten
Was deinen Host verlässt, wie du das stoppst, und was [Dozzle Cloud](/de/guide/dozzle-cloud) speichert, sobald es angekommen ist.
## Das Verbinden stellt dein Dozzle nicht ins Netz
Dein Dozzle baut eine **ausgehende** Verbindung zu Cloud auf. Es wird nichts Eingehendes geöffnet, kein Port weitergeleitet, und Cloud erreicht deine Instanz nur über die Verbindung, die deine Instanz gestartet hat. Trennst du sie, endet dieser Zugriff sofort.
Das Verbinden fügt deinem selbst gehosteten Dozzle auch keine Authentifizierung hinzu. Das ist eine eigene und wichtige Frage: **Standardmäßig hat Dozzle keinen Login.** Wer es im Netzwerk erreichen kann, kann deine Logs sehen. Wenn du Dozzle ins Internet gestellt hast oder dir das Netzwerk teilst, richte [Authentifizierung](/de/guide/authentication) auf der Instanz selbst ein. Das gilt unabhängig davon, ob du verbindest.
Container-Aktionen — starten, stoppen, neu starten — lehnt deine Instanz weiterhin ab, solange du sie nicht mit `DOZZLE_ENABLE_ACTIONS` aktivierst. Siehe [Aktionen](/de/guide/actions).
## Steuern, was weitergeleitet wird
Die wirksamste Datenschutzmaßnahme ist, etwas gar nicht erst zu senden. Standardmäßig streamt jeder laufende Container seine Logs an Cloud, solange die Instanz verbunden ist. Für Container, deren Info-Geplapper keinen diagnostischen Wert hat, oder die mit Material umgehen, das du lieber auf dem Host behältst, filtere oder schalte per Label ganz ab.
### `dev.dozzle.cloud.min_level`
| Wert | Wirkung |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| _(nicht gesetzt)_ | Alle Log-Zeilen werden weitergeleitet. Standard. |
| `disabled` | Der Container wird vollständig übersprungen. Es werden keine Logs an Cloud weitergeleitet. |
| `trace` | Wie nicht gesetzt, da trace die niedrigste Stufe ist. Alles wird weitergeleitet. |
| `debug` / `info` / `warn` / `error` / `fatal` | Nur Zeilen ab dieser Stufe werden weitergeleitet. Zeilen ohne erkannte Stufe kommen immer durch. |
Ein unbekannter Wert (ein Tippfehler wie `warning` oder `wran`) wird als Fehler geloggt und ignoriert, der Container streamt also alles, als wäre das Label nicht gesetzt.
Das Label wird beim Start des Log-Readers gelesen. Eine Änderung an einem laufenden Container wirkt erst nach dessen Neustart.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Nur warn/error/fatal an Dozzle Cloud weiterleiten
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# Von diesem Container nichts senden
- dev.dozzle.cloud.min_level=disabled
```
Der Filter läuft auf deiner Dozzle-Instanz, **bevor Logs den Host verlassen**. Verworfene Zeilen berühren also nie das Netzwerk und zählen nie auf dein Kontingent. Das lokale Betrachten der Logs in Dozzle ist davon nicht betroffen.
## Was Cloud speichert
- **Log-Zeilen**, die von deinen verbundenen Instanzen weitergeleitet wurden, für die Volltextsuche.
- **Ereignisse und Alarme**, die deine Regeln getroffen haben, samt Untersuchungen und Befunden.
- **Container- und Host-Metadaten** — Namen, Images, Zustände, Ressourcenverbrauch.
- **Dein Konto** — E-Mail-Adresse, Tarif, Einstellungen der Benachrichtigungskanäle.
- **Chat-Verlauf** mit dem Agent.
Alles ist auf dein Konto beschränkt; andere Nutzer sehen deine Daten nicht. Gespeicherte Daten bleiben für den Aufbewahrungszeitraum deines Tarifs und werden dann automatisch gelöscht. Siehe [Tarife & Limits](/de/guide/dozzle-cloud/plans).
## API-Schlüssel
Jede verbundene Instanz authentifiziert sich mit einem eigenen API-Schlüssel. Schlüssel werden mit BLAKE2b gehasht, unterstützen Ablaufdaten und werden nie im Klartext gespeichert.
Das Löschen eines Schlüssels auf der Instances-Seite trennt diese Instanz sofort und dauerhaft. Der Schlüssel lässt sich nicht wiederherstellen oder erneut anhängen — verbinde die Instanz neu, um einen neuen zu bekommen. Wenn du glaubst, dass ein Schlüssel offengelegt wurde, lösche ihn und verbinde neu. Das ist die vollständige Abhilfe: der alte Schlüssel funktioniert ab dem Löschen nicht mehr.
## Anmeldung
Cloud nutzt die Anmeldung mit GitHub oder Google. Es gibt kein separates Passwort anzulegen, und Cloud sieht dein GitHub- oder Google-Passwort nie. Registrierst du dich mit dem einen Anbieter und meldest dich später mit dem anderen unter derselben E-Mail-Adresse an, landest du im selben Konto.
## Datensammlung stoppen, ohne das Konto zu schließen
1. Lösche die API-Schlüssel deiner Instanzen auf der Instances-Seite. Die Weiterleitung endet sofort.
2. Deaktiviere deine Kanäle auf der Channels-Seite, damit nichts zugestellt wird.
Die bestehende Historie läuft dann innerhalb des Aufbewahrungszeitraums deines Tarifs von selbst aus.
## Konto schließen
Es gibt noch keinen Selbstbedienungs-Löschknopf. Schreib von der Konto-Adresse aus an **amir@dozzle.dev** und bitte um Löschung. Wenn du in einem bezahlten Tarif bist, kündige ihn vorher in den Einstellungen, damit dir nichts mehr berechnet wird.
Vorher oder stattdessen entfernst du mit den Schritten oben praktisch alles selbst: das Löschen deiner API-Schlüssel stoppt jede Sammlung, und gespeicherte Daten laufen mit der Aufbewahrung aus.
+7 -5
View File
@@ -1,9 +1,9 @@
---
title: dtop im Überblick
sourceHash: 3137db243510
title: dtop CLI
sourceHash: 88753cae7439
---
# Was ist dtop?
# dtop
`dtop` ist ein Kommandozeilen-Begleiter für Dozzle und zeigt dir die auf deinem System laufenden Docker-Container live im Terminal. Stell es dir als reichhaltigeres `docker ps` vor, das du in einem tmux-Pane offen lassen kannst. Und wenn du die vollständige Log-Historie, die Suche oder die Diagramme brauchst, springst du mit `dtop` direkt nach Dozzle.
@@ -27,6 +27,8 @@ docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop:
Die vollständige Installationsanleitung findest du unter [https://github.com/amir20/dtop](https://github.com/amir20/dtop?tab=readme-ov-file#installation).
## Projektstatus
## Umfang
`dtop` ist ein neues Projekt und noch nicht so umfangreich wie Dozzle. Ich arbeite aber aktiv daran, weitere Funktionen zu ergänzen. Ich selbst nutze es, um alle meine Container über mehrere Hosts hinweg auf der Kommandozeile im Blick zu behalten. Wenn du Vorschläge hast, erstelle gerne ein Issue unter [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
`dtop` ist bewusst kleiner als Dozzle. Es beantwortet im Terminal die Frage "was läuft gerade, und brennt irgendwo etwas" und übergibt an Dozzle für alles, was einen Browser braucht: Log-Historie, Suche, SQL-Abfragen und Statistik-Diagramme.
Es wird in einem eigenen Repository entwickelt und erscheint nach eigenem Zeitplan. Vorschläge und Fehlerberichte gehören nach [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
+21 -29
View File
@@ -34,22 +34,6 @@ features:
height: 36
link: /de/guide/what-is-dozzle#real-time-monitoring
linkText: Mehr erfahren
- title: Log-Analyse mit SQL
details: Frage deine Logs mit DuckDB und WebAssembly ab — vollständiges SQL, komplett im Browser.
icon:
src: /icons/sql.svg
width: 36
height: 36
link: /de/guide/sql-engine
linkText: Mehr erfahren
- title: Alarme und Webhooks
details: Erkenne Log-Muster mit mächtigen Ausdrücken und benachrichtige Slack, Discord, ntfy oder jeden Webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /de/guide/alerts-and-webhooks
linkText: Mehr erfahren
- title: Multi-Host und Swarm
details: Verbinde dich aus einer einzigen Oberfläche mit mehreren Docker-Hosts und Swarm-Clustern, abgesichert über TLS-Agents.
icon:
@@ -58,6 +42,22 @@ features:
height: 36
link: /de/guide/remote-hosts
linkText: Mehr erfahren
- title: Alarme und Webhooks
details: Erkenne Log-Muster, Metriken und Lifecycle-Events mit Ausdrücken und benachrichtige Slack, Discord, ntfy oder jeden Webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /de/guide/alerts-and-webhooks
linkText: Mehr erfahren
- title: Dozzle Cloud
details: Eine optionale verwaltete Ebene, die wiederkehrende Fehler bündelt, zusammenfasst was kaputt ist, und dich per E-Mail, Telegram oder Discord erreicht.
icon:
src: /icons/cloud.svg
width: 36
height: 36
link: /de/guide/dozzle-cloud
linkText: Mehr erfahren
- title: Shell- und Exec-Zugriff
details: Hänge dich an laufende Container an oder führe Befehle direkt aus dem Browser aus, wenn du tiefer graben musst.
icon:
@@ -66,13 +66,13 @@ features:
height: 36
link: /de/guide/shell
linkText: Mehr erfahren
- title: dtop in deinem Terminal
details: Ein Kommandozeilen-Begleiter, der dir deine Container live anzeigt und von dort direkt nach Dozzle springt.
- title: Selbst gehostet und privat
details: Läuft in deiner eigenen Infrastruktur, mit einfacher Auth oder Forward-Proxy-Auth. Deine Logs verlassen nie dein Netzwerk.
icon:
src: /icons/terminal-command.svg
src: /icons/locked.svg
width: 36
height: 36
link: /de/guide/dtop
link: /de/guide/authentication
linkText: Mehr erfahren
- title: MCP für KI-Assistenten
details: Stelle Container, Logs und Statistiken über das Model Context Protocol bereit, damit dein Coding-Agent mit dir zusammen debuggen kann.
@@ -82,13 +82,5 @@ features:
height: 36
link: /de/guide/mcp
linkText: Mehr erfahren
- title: Selbst gehostet und privat
details: Läuft in deiner eigenen Infrastruktur, mit einfacher Auth oder Forward-Proxy-Auth. Deine Logs verlassen nie dein Netzwerk.
icon:
src: /icons/locked.svg
width: 36
height: 36
link: /de/guide/authentication
linkText: Mehr erfahren
sourceHash: a11fae50734d
sourceHash: d045bec3b85e
---
+7 -5
View File
@@ -1,11 +1,13 @@
---
title: Alertas y webhooks
sourceHash: daf372975955
title: Alertas
sourceHash: 71776f8fae5c
---
# Alertas y webhooks
# Alertas
Dozzle tiene un sistema de alertas que te permite vigilar los logs de los contenedores, las métricas de recursos y los eventos del ciclo de vida, y recibir notificaciones cuando se cumplen ciertas condiciones. Las alertas usan expresiones personalizables para filtrar contenedores y definir la condición que las dispara, y pueden enviar notificaciones a webhooks, Slack, Discord, ntfy o [Dozzle Cloud](/es/guide/dozzle-cloud).
Dozzle puede vigilar los logs de los contenedores, las métricas de recursos y los eventos del ciclo de vida, y avisarte cuando se cumple la condición que describas. Las reglas se escriben como expresiones, se evalúan en tu propia instancia y se entregan a un webhook, a Slack, a Discord o a ntfy.
Las reglas viven siempre aquí, en la instancia autoalojada, porque es donde están tus logs. Si has vinculado la instancia a [Dozzle Cloud](/es/guide/dozzle-cloud), esas mismas reglas la alimentan, y la entrega (agrupación, resúmenes, silenciado, canales móviles) se configura allí en lugar de por destino aquí abajo.
## <Icon icon="mdi:format-list-bulleted-type" inline /> Tipos de alerta
@@ -81,7 +83,7 @@ También puedes escribir tu propia plantilla de payload con la sintaxis `text/te
### Dozzle Cloud
También puedes enviar alertas a [Dozzle Cloud](/es/guide/dozzle-cloud) para centralizar la supervisión de varias instancias de Dozzle. Consulta la [guía de Dozzle Cloud](/es/guide/dozzle-cloud) para más detalles.
Las instancias vinculadas obtienen **Dozzle Cloud** como destino automáticamente. A diferencia de un webhook simple, agrupa los fallos repetidos en una sola notificación, resume lo que ha pasado y reparte a correo, Telegram, Discord, Slack, ntfy y notificaciones del navegador sin configurar cada uno aquí. Consulta [Dozzle Cloud](/es/guide/dozzle-cloud).
## <Icon icon="mdi:plus-circle-outline" inline /> Crear una alerta
+34 -90
View File
@@ -1,112 +1,56 @@
---
title: Dozzle Cloud
sourceHash: 34c0056128a5
sourceHash: 49197a749322
---
# Dozzle Cloud
[Dozzle Cloud](https://cloud.dozzle.dev) es un complemento gestionado opcional para Dozzle autoalojado. Conecta tus instancias entre sí, resume los eventos de los contenedores, reparte las alertas entre varios canales y te deja preguntar cosas sobre tu infraestructura desde el chat. Dozzle sigue siendo totalmente de código abierto y autoalojado; Cloud se monta encima.
[Dozzle Cloud](https://cloud.dozzle.dev) es un complemento gestionado opcional para Dozzle autoalojado. Dozzle sigue siendo totalmente de código abierto y autoalojado; Cloud se apoya encima y se encarga de la parte que de verdad cuesta montar por tu cuenta: decidir qué merece despertarte y averiguar qué se ha roto realmente.
La idea es que Dozzle Cloud funcione como ese asistente de SRE personal que no sabías que querías: vigila tus contenedores, te avisa cuando algo importa y no molesta cuando no pasa nada.
Tu Dozzle abre una conexión saliente hacia Cloud. No hay puerto entrante, ni IP pública, ni ningún agente que instalar.
## Funciones
**El plan gratuito te deja en paz. Pro sale a buscar.**
### <Icon icon="mdi:text-box-outline" inline /> Resúmenes de logs
## <Icon icon="mdi:bell-ring-outline" inline /> Gratis: una capa de notificaciones inteligente
Los eventos de los contenedores se agrupan y se resumen con un LLM. Cada resumen recoge la gravedad, el contenedor de origen y un enlace de vuelta a la línea de log completa en tu instancia de Dozzle.
La mayoría de las alertas de logs son una expresión regular y un webhook, lo que significa que el primer bucle de caídas se convierte en doscientos mensajes idénticos y acabas silenciando el canal. El plan gratuito existe para arreglar esa parte, y es el producto de alertas completo, no una versión de prueba.
### <Icon icon="mdi:group" inline /> Agrupación de patrones
- **Alertas inteligentes** — cada alerta que disparan tus reglas de Dozzle se convierte en una frase que nombra la causa, el contenedor y la gravedad, con un enlace de vuelta a la línea de log exacta en tu propio Dozzle.
- **Las repeticiones se agrupan** — 47 caídas llegan como una sola alerta que dice 47. Y recibes un aviso de recuperación cuando vuelve.
- **Silencio por defecto** — supresión, filtros por gravedad y silenciado por patrón en todos los canales. Silencia _este tipo de alerta_ en vez de esta alerta concreta, y lo que sea genuinamente distinto sigue llegando.
- **Todos los canales** — correo, Telegram, Discord, Slack, ntfy, webhooks y notificaciones del navegador, todos en el plan gratuito. Consulta [Canales de notificación](/es/guide/dozzle-cloud/channels).
- **Búsqueda y métricas incluidas** — cada evento se puede consultar en cuanto llega, y CPU, memoria, red y disco se registran como historial. Ninguno cuenta contra tu cupo de eventos.
- **Un hallazgo por semana** — incluso en el plan gratuito, Cloud lee tus logs y saca a la luz lo más grave que ninguna alerta detectó.
- **Una regla por defecto que funciona** — al vincular una instancia se crea una por ti (contenedores que terminan con error), así que una cuenta nueva recibe una alerta útil el primer día sin configurar nada.
- **Agente de chat y MCP** — pregunta «¿ha habido errores hoy?» en Telegram o Discord, y arranca, para o reinicia un contenedor desde la misma conversación en cuanto habilites [Acciones](/es/guide/actions) en tu instancia. El acceso MCP es ilimitado en todos los planes.
Los errores repetidos se agrupan y se cuentan en vez de entregarse uno a uno. Un bucle que lanza la misma excepción 200 veces genera una sola notificación con su frecuencia, no 200.
> [!TIP]
> Una instancia recién vinculada disfruta 7 días de la experiencia Pro completa: todos los hallazgos, cada mañana. Después el plan gratuito se asienta en un hallazgo por semana.
### <Icon icon="mdi:robot-outline" inline /> Agente de IA
## <Icon icon="mdi:robot-outline" inline /> Pro: sale a buscar antes de que salte nada
Un agente conversacional responde preguntas sobre el estado de los contenedores y la actividad reciente en los logs. Está disponible en Telegram y Discord.
El plan gratuito te dice _que_ ha pasado algo, y se calla cuando no ha pasado nada. Pro es la mitad que no espera a que exista una alerta.
En los planes Pro y Team, el agente también puede actuar sobre los contenedores (iniciar, parar, reiniciar) directamente desde la conversación, sin necesidad de acceso por shell al host.
- **Revisión proactiva, cada mañana** — Cloud lee tus logs de error, los agrupa en patrones e informa de lo que merece la pena arreglar. Aquí es donde aparece un disco que se va llenando o un contenedor que se reinicia en silencio, un día en el que no saltó absolutamente nada. No hace falta que exista ninguna regla de alerta.
- **Todos los hallazgos, a diario, con la solución** — no uno por semana y el resto bloqueado. Los hallazgos envejecen día a día mientras dura el problema («sigue pasando, día cuatro, tres veces peor») y se cierran solos cuando para.
- **Un triaje que va y mira** — cuando el texto de la alerta no basta para decidir, inspecciona el contenedor y lee los logs de alrededor antes de pronunciarse, en lugar de adivinar.
- **Investigaciones completas bajo demanda** — un clic lanza más pasadas con un modelo más potente, correlacionando entre tus contenedores, hosts y línea temporal, y te devuelve una causa raíz con pasos concretos.
- **Todos los hosts, un panel** — conecta tantas instancias de Dozzle como tengas. Las preguntas en el chat las cubren todas a la vez.
- **Más memoria** — 30 días de logs y métricas consultables en lugar de 24 horas, que es la diferencia entre «qué pasó anoche» y «¿lleva esto pasando todo el mes?».
### <Icon icon="mdi:calendar-clock" inline /> Resúmenes diarios
Tienes la comparativa completa en [Planes y límites](/es/guide/dozzle-cloud/plans).
Un resumen programado de la actividad reciente en todas tus instancias enlazadas: patrones de error más frecuentes, número de eventos y estado general. Se envía por correo a la hora y en la zona horaria que configures.
## Por dónde seguir
### <Icon icon="mdi:bell-ring-outline" inline /> Canales de notificación
| Página | Qué cubre |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [Vincular tu instancia](/es/guide/dozzle-cloud/connecting) | Vinculación, por qué no hace falta IP pública ni puerto abierto, cortafuegos, resolución de problemas |
| [Canales de notificación](/es/guide/dozzle-cloud/channels) | Todos los canales, cómo configurar cada uno y cómo bajar el ruido |
| [Planes y límites](/es/guide/dozzle-cloud/plans) | Qué incluye cada plan, qué es un evento procesado, qué pasa si te pasas |
| [Tus datos](/es/guide/dozzle-cloud/your-data) | Qué sale de tu host, cómo detenerlo, qué almacena Cloud, claves de API |
Las alertas se pueden enviar a varios canales en paralelo. Cada canal se activa o desactiva de forma independiente y se puede limitar a instancias concretas de Dozzle.
| Canal | Alertas | Resumen diario | Agente bidireccional |
| ---------------------------------------------------------------- | :-----: | :------------: | :------------------: |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord | ✓ | ✓ | ✓ |
| <Icon icon="mdi:email-outline" inline /> Correo | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Push del navegador | ✓ | | |
### <Icon icon="mdi:bell-sleep-outline" inline /> Silenciar notificaciones
Las notificaciones se pueden silenciar durante una hora, ocho horas, hasta la mañana siguiente o hasta la semana siguiente. Viene bien durante una incidencia o un mantenimiento programado.
### <Icon icon="mdi:view-dashboard-outline" inline /> Panel multiinstancia
Las instancias de Dozzle enlazadas aparecen en un único panel. Cada instancia se autentica con una clave de API, sin necesidad de instalar ningún agente adicional en el host. El panel muestra el estado de conexión, el inventario de contenedores y los logs en directo.
### <Icon icon="mdi:database-search-outline" inline /> Búsqueda de texto completo en los logs
Cada línea de log que envían tus instancias enlazadas se escribe en un índice de búsqueda de texto completo. Puedes consultar todas las instancias a la vez o filtrar por contenedor, gravedad o intervalo de tiempo. Las búsquedas devuelven resultados en milisegundos incluso con semanas de historial, y cada coincidencia enlaza de vuelta a su contexto en la instancia de origen. La retención depende del plan y va de 24 horas a 30 días.
### <Icon icon="mdi:shield-lock-outline" inline /> Seguridad
- Las claves de API se guardan como hash BLAKE2b y admiten caducidad.
- El inicio de sesión usa OAuth de GitHub o Google.
- Los logs y el contenido de los eventos se guardan solo durante la ventana de retención de tu plan.
## Conectar una instancia
Para enlazar un Dozzle autoalojado con Dozzle Cloud:
1. Abre tu instancia de Dozzle y pulsa el icono de **nube** en la barra superior.
2. Pulsa **Enlazar instancia**. Se te redirigirá para autenticarte y confirmar la conexión.
3. Una vez enlazada, configura las suscripciones de alertas dentro de Dozzle para elegir qué eventos se envían.
## Controlar qué se envía
Por defecto, mientras la instancia está enlazada, todos los contenedores en ejecución envían sus logs a Dozzle Cloud. En contenedores ruidosos, donde el ruido de nivel info no aporta nada al diagnóstico, puedes filtrar o desactivar el envío por contenedor con una sola etiqueta.
### `dev.dozzle.cloud.min_level`
| Valor | Efecto |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| _(sin definir)_ | Se envían todas las líneas de log. Es el valor por defecto. |
| `disabled` | El contenedor se omite por completo. No se envía ningún log a Cloud. |
| `trace` | Igual que sin definir, ya que trace es el nivel más bajo. Se envía todo. |
| `debug` / `info` / `warn` / `error` / `fatal` | Solo se envían las líneas de ese nivel o superior. Las líneas sin nivel detectado siempre pasan. |
Un valor no reconocido (una errata como `warning` o `wran`) se registra como error y se ignora, así que el contenedor envía todo como si la etiqueta no estuviera.
La etiqueta se lee cuando arranca el lector de logs. Cambiarla en un contenedor en marcha no surte efecto hasta que el contenedor se reinicia.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Enviar solo warn/error/fatal a Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# No enviar nada desde este contenedor
- dev.dozzle.cloud.min_level=disabled
```
El filtro se aplica en tu instancia de Dozzle antes de que los logs salgan del host, así que las líneas descartadas nunca pasan por la red ni cuentan para tu plan. La visualización local de logs en Dozzle no se ve afectada.
## Precios
El plan gratuito es generoso a propósito; deberías poder usar Dozzle Cloud de verdad en un homelab o en un equipo pequeño sin toparte con un muro. Hay planes de pago para volúmenes de eventos mayores, más retención y las acciones sobre contenedores del agente. Consulta [cloud.dozzle.dev](https://cloud.dozzle.dev) para ver los límites y los detalles de cada plan.
Las reglas de alerta se configuran en tu propia instancia, no en Cloud. Consulta [Alertas](/es/guide/alerts-and-webhooks).
## Comentarios
Dozzle Cloud lo desarrolla la misma persona que hizo Dozzle, y el listón es el mismo: cosas que la gente quiera usar de verdad. Si lo pruebas y algo te chirría, te falta o te resulta especialmente útil, [abre una discusión](https://github.com/amir20/dozzle/discussions). Esos comentarios marcan lo que se construye después.
Dozzle Cloud lo construye la misma persona que hizo Dozzle, y el listón es el mismo: cosas que la gente quiera usar de verdad. Si lo pruebas y algo te chirría, falta o resulta genuinamente útil, [abre una discusión](https://github.com/amir20/dozzle/discussions). Ese feedback marca lo que se construye después.
+119
View File
@@ -0,0 +1,119 @@
---
title: Canales de notificación
sourceHash: baae80ce439a
---
# Canales de notificación
Los canales se configuran en [Dozzle Cloud](/es/guide/dozzle-cloud) y controlan _a dónde_ van las alertas. Lo que las _dispara_ se configura en tu instancia autoalojada: consulta [Alertas](/es/guide/alerts-and-webhooks).
Activa los que quieras. Cada canal activado recibe todas las alertas, y cada uno se puede encender o apagar por separado.
## Canales disponibles
| Canal | Alertas | Resumen diario | Agente bidireccional |
| ---------------------------------------------------------------- | :-----: | :------------: | :------------------: |
| <Icon icon="mdi:email-outline" inline /> Correo | ✓ | ✓ | |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Bot de Discord (MD) | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Webhook de Discord | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Push del navegador | ✓ | | |
Todos los canales están disponibles en todos los planes, incluido el gratuito.
## Correo
Se configura automáticamente con la dirección con la que te registraste. No hay nada que tocar. Para dejar de recibirlo, desactiva el canal de correo. Si las alertas dejan de llegar sin motivo aparente, mira primero en spam: la primera alerta acaba ahí de vez en cuando, y marcarla como «no es spam» lo arregla para siempre.
## Telegram
Elige **Telegram** en la página Channels, sigue el enlace para abrir el bot y pulsa **Start**. El canal se activa en cuanto el bot recibe algo tuyo.
Telegram es bidireccional. Puedes responder en el mismo chat y preguntar por tus contenedores («¿ha habido errores hoy?», «enséñame el uso de CPU», «¿qué alertas tengo?») y obtener respuestas sobre el estado en vivo.
## Discord
Discord tiene **dos tipos de canal distintos**, y tener los dos funcionando a la vez es el motivo habitual de recibir cada alerta por duplicado.
**Bot de Discord (mensaje directo)** — el bot te envía las alertas personalmente por MD. Es bidireccional, así que puedes hacerle preguntas. Se configura autorizando el bot desde la página Channels.
**Webhook de Discord (canal del servidor)** — las alertas se publican en un canal de tu servidor, por ejemplo `#alerts`. Unidireccional. Se configura creando un webhook en los ajustes de tu servidor de Discord y pegando la URL en Cloud.
Si las alertas te llegan tanto por MD como a un canal del servidor, tienes los dos configurados. Desactiva el que no quieras; apagar uno deja el otro funcionando. Una configuración habitual es quedarse con el canal compartido del servidor y apagar el MD.
## Slack
Crea un webhook entrante en tu espacio de Slack y pega la URL en el canal de Slack de la página Channels.
## ntfy
Introduce la URL de tu topic. Funcionan tanto ntfy.sh como un servidor ntfy autoalojado. Muy usado para notificaciones al móvil sin abrir otra cuenta.
## Webhooks
Introduce cualquier URL que acepte un POST. Las alertas se entregan como JSON, así que puedes encaminarlas hacia lo que ya tengas montado: Home Assistant, n8n, un script, otra herramienta de alertas.
> [!NOTE]
> Este es un canal de Cloud, distinto de los webhooks que tu Dozzle autoalojado puede llamar directamente. Esos están en [Alertas](/es/guide/alerts-and-webhooks), junto con las variables de plantilla de Go.
## Push del navegador
Actívalo en la página Channels y permite las notificaciones cuando el navegador te lo pida. Las alertas llegan entonces como notificaciones de escritorio.
Si después no llega nada, lo más probable es que el navegador denegara el permiso. Los navegadores no vuelven a preguntar una vez denegado: borra el permiso de notificaciones del sitio en los ajustes del navegador y actívalo de nuevo. El push del navegador no funciona en una ventana privada o de incógnito.
## <Icon icon="mdi:bell-sleep-outline" inline /> Bajar el ruido
Solo deberían interrumpirte cuando importa. Si Cloud hace ruido, es un problema de ajuste, y estas son las herramientas.
| Situación | Haz esto |
| -------------------------------------------------- | --------------------------------------- |
| Un error recurrente que ya conoces | **Silencia el patrón** |
| Las alertas son útiles pero demasiado frecuentes | **Vota con el pulgar hacia abajo** |
| Mantenimiento planificado, copias, actualizaciones | **Silencia el patrón antes de empezar** |
| Alerta correcta, aplicación equivocada | **Desactiva ese canal** |
| No quieres nada, de ningún sitio | **Desactiva todos los canales** |
Borrar la regla de alerta casi nunca es la respuesta correcta: elimina toda una categoría de vigilancia para resolver una línea molesta.
### Silenciar una alerta recurrente
El silenciado es por patrón: calla _este tipo de alerta_, no solo la que tienes delante. Las apariciones posteriores se quedan calladas y lo que sea genuinamente distinto sigue llegando.
- **Desde una alerta** — ábrela en Cloud y elige silenciarla.
- **En el chat** — di «silencia esto» o «deja de avisarme de X». El agente enuncia el patrón exacto que va a silenciar y espera tu confirmación, porque un silenciado es duradero y podría ocultar un fallo real más adelante.
El silenciado dura hasta que lo deshagas. Pregunta «¿qué he silenciado?» para listar tus reglas, y quítalo del mismo modo. Las alertas silenciadas se siguen registrando: silenciar cambia lo que te interrumpe, no lo que se vigila.
### Menos, no ninguna
Si una alerta es genuinamente útil pero llega demasiado a menudo, vótala con el **pulgar hacia abajo** en lugar de silenciarla. Esa es la señal de «sigue vigilando esto, interrúmpeme menos». El pulgar hacia arriba en las alertas que acertaron ayuda igual.
### Las repeticiones ya se agrupan
Antes de silenciar, comprueba si el problema es repetición. Las apariciones repetidas del mismo fallo se condensan en una sola alerta con un contador. Si recibes muchas alertas, suelen ser muchos problemas _distintos_, o te has pasado del cupo de eventos de tu plan y las alertas han bajado a crudas y sin agrupar. Consulta [Planes y límites](/es/guide/dozzle-cloud/plans).
### Filtrar en el origen
Para un contenedor ruidoso durante su funcionamiento normal, el mejor arreglo está más arriba: la etiqueta `dev.dozzle.cloud.min_level` impide que las líneas de baja gravedad salgan siquiera de tu host. Consulta [Tus datos](/es/guide/dozzle-cloud/your-data).
## ¿Por qué no me llegó una alerta?
**1. ¿Existe una regla para eso?** Un error en tus logs no produce por sí solo una alerta; algo tiene que estar vigilándolo. La regla por defecto solo cubre contenedores que terminan con error: un contenedor que registra errores mientras sigue en pie necesita una regla de log.
**2. ¿Hay algún canal activado?** Una regla sin canal activado no tiene a dónde entregar.
**3. ¿Está conectada la instancia?** Si estaba desconectada cuando ocurrió el problema, no se reenvió nada. Consulta [Vincular tu instancia](/es/guide/dozzle-cloud/connecting).
**4. ¿Se agrupó en una alerta que ya recibiste?** Cuarenta fallos producen una alerta que dice cuarenta. Es lo previsto, no un fallo.
**5. ¿La silenciaste?** Revisa tus reglas de silenciado.
**6. ¿Está el contenedor excluido del reenvío?** Consulta [Tus datos](/es/guide/dozzle-cloud/your-data).
**7. ¿Estás por encima de los límites de tu plan?** Pasado el cupo, la entrega cambia y las alertas se muestrean.
**8. Mira la carpeta de spam**, en el caso del correo.
+110
View File
@@ -0,0 +1,110 @@
---
title: Vincular tu instancia
sourceHash: d6f8f7b6b845
---
# Vincular tu instancia
Cómo vincular un Dozzle autoalojado a [Dozzle Cloud](/es/guide/dozzle-cloud), confirmar que realmente está conectado y arreglarlo cuando no lo está.
## Vincular una instancia
1. Abre tu Dozzle autoalojado y haz clic en el icono de **nube** en la barra superior.
2. Haz clic en **Link instance**. Se te lleva a Cloud para iniciar sesión con GitHub o Google y confirmar.
3. La instancia aparece en el panel de Cloud en unos segundos.
No hay contraseña que crear ni ningún agente que instalar en el host.
## No necesitas IP pública, ni un puerto abierto, ni un dominio
Es la preocupación más frecuente, y la respuesta es no en los tres casos.
Tu instancia de Dozzle abre una conexión **saliente** hacia Cloud y la mantiene abierta. Cloud nunca se conecta de vuelta a ti, nunca busca tu host y nunca necesita alcanzar tu dirección. Eso significa que funciona con normalidad cuando Dozzle está:
- detrás de NAT en una red doméstica, sin redirección de puertos
- en una dirección privada RFC1918 como `192.168.1.50`
- en una red Tailscale, WireGuard o ZeroTier
- detrás de CGNAT, donde no podrías redirigir puertos aunque quisieras
- en un portátil que cambia de red
No hace falta proxy inverso, ni DNS dinámico, ni IP fija.
## Reglas del cortafuegos
Solo se necesita acceso **saliente**. Permite que tu host de Dozzle alcance:
```
agent.doligence.dozzle.dev:443 (TCP, outbound)
```
Ese único destino en el puerto 443 basta. Si tu cortafuegos filtra por nombre de host en vez de por IP, permite el nombre: las direcciones que hay detrás pueden cambiar. La mayoría de los cortafuegos domésticos y de oficina pequeña ya permiten todo el tráfico saliente, así que normalmente no hay nada que configurar.
## Dónde viven las reglas y los canales
Con esto tropieza casi todo el mundo, así que conviene decirlo claro.
| Lo que quieres cambiar | Dónde se hace |
| ---------------------------------------------------------------- | ------------------------------------------------------------- |
| **Qué dispara una alerta** — contenedores, patrones, umbrales | Dozzle autoalojado → [Alertas](/es/guide/alerts-and-webhooks) |
| **Dónde se entregan las alertas** — correo, Telegram, Slack, ... | Dozzle Cloud → [Canales](/es/guide/dozzle-cloud/channels) |
| Revisar alertas pasadas, silenciar, cambiar de plan | Dozzle Cloud |
La regla se define en tu propia instancia porque ahí están tus logs. La entrega se configura en Cloud porque ahí es donde se mantiene la conexión con tu móvil. Si buscas en Cloud un sitio para decir «avísame cuando este contenedor dé errores» y no lo encuentras, ese es el motivo: abre tu Dozzle autoalojado.
## Vincular más de una instancia
Cada instancia se vincula por separado, con los mismos pasos y la misma cuenta de Cloud. Una vez vinculadas, todas aparecen juntas en el panel, y las preguntas en el chat cubren todas las instancias conectadas a la vez.
Esa vista combinada vive en Cloud, no dentro de ningún Dozzle autoalojado concreto. Un Dozzle autoalojado muestra los hosts que configuraste directamente en él; no muestra otras instancias vinculadas.
Vincular varias instancias de Dozzle es distinto de las funciones propias de Dozzle [Modo agente](/es/guide/agent) y [Hosts remotos](/es/guide/remote-hosts), que conectan hosts de Docker adicionales a un único Dozzle. Ambas cosas están soportadas y se pueden combinar.
El plan gratuito vincula una instancia a la vez. Consulta [Planes y límites](/es/guide/dozzle-cloud/plans).
## No aparece nada
Repasa esto en orden.
**1. ¿Está el contenedor de Dozzle en marcha?**
Si Dozzle está parado o reiniciándose, no llega nada a Cloud.
**2. ¿Se llegó a completar la vinculación?**
Empezar el proceso y no aprobarlo no deja nada. Repite los pasos anteriores y confirma que la instancia aparece en la página Instances.
**3. ¿Se borró la clave de API?**
Borrar la clave de API de una instancia la desvincula de forma permanente. La clave antigua no se puede volver a asociar: vincula otra vez para obtener una nueva.
**4. ¿Se está bloqueando el tráfico saliente?**
Las redes restrictivas (empresas, universidades, algunos proveedores de VPS) pueden bloquear el 443 saliente hacia destinos que no estén en una lista blanca. Consulta _Reglas del cortafuegos_.
**5. ¿Has llegado al límite de instancias del plan gratuito?**
El plan gratuito vincula una instancia a la vez. Al intentar vincular una segunda aparece un mensaje de límite en lugar de conectarse.
**6. ¿Está el contenedor excluido del reenvío?**
Un contenedor con la etiqueta `dev.dozzle.cloud.min_level=disabled` no envía nada, por diseño. Si falta un contenedor concreto mientras los demás funcionan, revisa sus etiquetas. Consulta [Tus datos](/es/guide/dozzle-cloud/your-data).
## Dejar que el agente controle contenedores
Leer logs y estado de contenedores funciona en cuanto la instancia está vinculada. Arrancar, parar y reiniciar los rechaza tu instancia salvo que lo habilites tú:
::: code-group
```yaml [docker-compose.yml]
services:
dozzle:
image: amir20/dozzle
environment:
DOZZLE_ENABLE_ACTIONS: true
```
```sh
docker run ... amir20/dozzle --enable-actions
```
:::
Es un ajuste de **tu** Dozzle, no de Cloud, porque decide qué está dispuesto a hacer tu Dozzle con tus contenedores. Reinicia Dozzle tras cambiarlo. Consulta [Acciones](/es/guide/actions).
## Desvincular
Borra la clave de API de la instancia en la página Instances de Cloud. La conexión cae, no se reenvían más datos y tu Dozzle autoalojado sigue funcionando exactamente igual que antes. Vincular nunca cambia la visualización local de logs.
+84
View File
@@ -0,0 +1,84 @@
---
title: Planes y límites
sourceHash: f7c6bbdc83ea
---
# Planes y límites
Qué incluye cada plan, qué cuenta contra él y qué pasa cuando te pasas.
El plan gratuito es el producto de alertas completo, no una versión de prueba. Lo que compran los planes de pago es la mitad proactiva (la revisión que lee tus logs y encuentra lo que ninguna alerta detectó) más margen para crecer.
## Planes
| | Gratis | Pro | Team |
| ------------------------------------------------------- | :----------: | :-------------: | :-------------: |
| Precio | 0 $ | 5 $ / mes | 15 $ / mes |
| Hallazgos (lee tus logs, encuentra lo que nunca alertó) | 1 / semana | Todos, a diario | Todos, a diario |
| Solución incluida con cada hallazgo | — | ✓ | ✓ |
| El triaje inspecciona contenedores y logs si duda | — | ✓ | ✓ |
| Investigación completa bajo demanda | — | ✓ | ✓ |
| Eventos procesados al mes | 2.000 | 50K | 250K |
| Logs consultables | 10 GB · 24 h | 50 GB · 30 d | 100 GB · 30 d |
| Historial de alertas y eventos | 1 día | 14 días | 30 días |
| Historial de métricas (CPU, memoria, red, disco) | 24 h | 30 días | 30 días |
| Instancias conectadas | 1 | Ilimitadas | Ilimitadas |
| Chats con el asistente al mes | 10 | 200 | 1.000 |
| Soporte prioritario | — | ✓ | ✓ |
Las alertas inteligentes, la agrupación de repeticiones, la supresión y los filtros por gravedad, la indexación para búsqueda, el registro de métricas, todos los canales de notificación, las acciones sobre contenedores y el acceso MCP ilimitado están en **todos** los planes, incluido el gratuito.
Los precios actuales están en [cloud.dozzle.dev](https://cloud.dozzle.dev).
## Qué cuenta como evento procesado
Un **evento procesado** es un evento de contenedor o una línea de log coincidente que ha pasado por la tubería de triaje, que decide si enviar una alerta nueva, agruparla en una existente o quedarse callada. Estás pagando por ese trabajo, no por almacenamiento en bruto.
Las líneas de log normales no son eventos: cuentan para el volumen de logs consultables. Así que un contenedor muy charlatán consume almacenamiento, mientras que un contenedor en bucle de caídas consume eventos.
Si un contenedor termina 47 veces, son 47 eventos contra el límite, pero una sola alerta que dice 47. De eso se trata.
**Los hallazgos no cuestan ninguna de las dos cosas.** La revisión de logs lee tus logs en vez de tu historial de alertas, así que no toca el contador de eventos y funciona sin ninguna regla de alerta configurada. Solo se aplica tu volumen mensual de logs.
**La búsqueda y las métricas son gratis en todos los planes.** La indexación está activa desde el momento en que se conecta una instancia, y las series de CPU, memoria, red y disco llegan desde tus instancias sin coste. El plan solo cambia cuánto y hasta dónde atrás.
## Superar el cupo
No se rompe nada. Pasas a modo de muestreo:
- El triaje se pausa.
- El historial de eventos sigue registrándose, así que no se pierde nada.
- Aproximadamente uno de cada diez eventos llega como alerta **en crudo**, para que sigas viendo qué pasa.
- Las repeticiones ya no se condensan en una alerta con contador.
El efecto práctico es que las alertas se vuelven más ruidosas y menos útiles en lugar de desaparecer, y lo notarás en el correo antes de verlo en una página de uso. Si tus alertas se han vuelto de golpe crudas y repetitivas, revisa primero el uso.
Esto también se aplica a los planes de pago. Los cupos se reinician al principio de cada mes.
> [!TIP]
> La mayoría de las cuentas ni se acercan. Solo una manguera de verdad (un contenedor reiniciándose en bucle durante días) supera el cupo gratuito, y la alerta que nombra ese contenedor llega mucho antes que el límite.
## Retención
La retención marca hasta dónde llega tu historial: alertas, eventos y resultados de búsqueda en logs. En el plan gratuito es un día, así que una búsqueda de algo de la semana pasada no devuelve nada aunque ocurriera. Es el motivo más habitual de que una búsqueda parezca «perder» datos.
La retención de métricas es de 24 horas en el plan gratuito y de 30 días en los de pago. Pedir una ventana más larga de la que permite tu plan devuelve la ventana que realmente tienes, no un error.
## El límite de instancias
El plan gratuito vincula una instancia a la vez. Al vincular una segunda aparece un mensaje de límite. Tienes dos opciones:
- **Mover la plaza.** Borra la clave de API de la instancia existente en la página Instances y vincula después la nueva. Esto es permanente para la instancia antigua: su historial se queda, pero tendrías que vincularla de cero otra vez.
- **Subir de plan** para mantener las dos conectadas a la vez.
El límite va de cuánto reenvía una cuenta gratuita, no es un candado sobre una función. Todo lo demás funciona en el plan gratuito con la instancia que tengas vinculada.
## Consultar tu uso
La página de uso en Cloud muestra los eventos, los bytes de logs y los chats con el asistente consumidos este mes frente a tu cupo. También puedes preguntarlo en el chat: «¿cuánto he usado este mes?».
## Cambiar o cancelar
Sube de plan desde la página de precios o desde los ajustes. La facturación la gestiona Stripe; los métodos de pago, las facturas y los recibos se administran allí a través del enlace de facturación en tus ajustes.
Cancelar detiene los cargos futuros y te pasa al plan gratuito al final del periodo que ya has pagado. Tu cuenta y tu historial se mantienen.
+83
View File
@@ -0,0 +1,83 @@
---
title: Tus datos
sourceHash: f11dd8e45cb5
---
# Tus datos
Qué sale de tu host, cómo detenerlo y qué almacena [Dozzle Cloud](/es/guide/dozzle-cloud) una vez que llega.
## Vincular no expone tu Dozzle
Tu Dozzle abre una conexión **saliente** hacia Cloud. No se abre nada entrante, no se redirige ningún puerto y Cloud no puede alcanzar tu instancia salvo por la conexión que ella misma inició. Si desvinculas, ese acceso termina al instante.
Vincular tampoco añade autenticación a tu Dozzle autoalojado. Esa es una cuestión aparte, y además importante: **por defecto Dozzle no tiene inicio de sesión.** Cualquiera que lo alcance en tu red puede ver tus logs. Si has expuesto Dozzle a internet o compartes red, configura la [Autenticación](/es/guide/authentication) en la propia instancia. Esto aplica vincules o no.
Las acciones sobre contenedores (arrancar, parar, reiniciar) las sigue rechazando tu instancia salvo que las habilites con `DOZZLE_ENABLE_ACTIONS`. Consulta [Acciones](/es/guide/actions).
## Controlar qué se reenvía
El control de privacidad más eficaz es no enviar algo en primer lugar. Por defecto, cada contenedor en ejecución envía sus logs a Cloud mientras esté vinculado. Para los contenedores cuyo parloteo a nivel info no tiene valor diagnóstico, o que manejan material que prefieres que no salga del host, filtra o desactiva con una etiqueta.
### `dev.dozzle.cloud.min_level`
| Valor | Efecto |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| _(sin definir)_ | Se reenvían todas las líneas de log. Valor por defecto. |
| `disabled` | El contenedor se omite por completo. No se reenvía ningún log a Cloud. |
| `trace` | Igual que sin definir, ya que trace es el nivel más bajo. Se reenvía todo. |
| `debug` / `info` / `warn` / `error` / `fatal` | Solo se reenvían las líneas de ese nivel o superior. Las líneas sin nivel detectado siempre pasan. |
Un valor no reconocido (una errata como `warning` o `wran`) se registra como error y se ignora, así que el contenedor envía todo como si la etiqueta no existiera.
La etiqueta se lee cuando arranca el lector de logs. Cambiarla en un contenedor en marcha surte efecto tras reiniciarlo.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Reenviar solo warn/error/fatal a Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# No enviar nada desde este contenedor
- dev.dozzle.cloud.min_level=disabled
```
El filtro se ejecuta en tu instancia de Dozzle **antes de que los logs salgan del host**, así que las líneas descartadas nunca tocan la red ni cuentan para tu plan. La visualización local de logs en Dozzle no se ve afectada.
## Qué almacena Cloud
- **Líneas de log** reenviadas desde tus instancias vinculadas, para la búsqueda de texto completo.
- **Eventos y alertas** que coincidieron con tus reglas, con sus investigaciones y hallazgos.
- **Metadatos de contenedores y hosts** — nombres, imágenes, estados, uso de recursos.
- **Tu cuenta** — dirección de correo, plan, configuración de los canales de notificación.
- **Historial de chat** con el agente.
Todo está limitado a tu cuenta; otros usuarios no pueden ver tus datos. Los datos almacenados se conservan durante la ventana de retención de tu plan y luego se borran automáticamente. Consulta [Planes y límites](/es/guide/dozzle-cloud/plans).
## Claves de API
Cada instancia vinculada se autentica con su propia clave de API. Las claves se almacenan con hash BLAKE2b, admiten caducidad y nunca se guardan en texto plano.
Borrar una clave en la página Instances desconecta esa instancia de forma inmediata y permanente. La clave no se puede recuperar ni volver a asociar: vincula la instancia otra vez para obtener una nueva. Si crees que una clave se ha expuesto, bórrala y vuelve a vincular. Ese es el remedio completo: la clave antigua deja de funcionar en el momento en que se borra.
## Iniciar sesión
Cloud usa inicio de sesión con GitHub o Google. No hay contraseña aparte que crear, y Cloud nunca ve tu contraseña de GitHub o Google. Si te registras con un proveedor y luego inicias sesión con el otro usando la misma dirección de correo, llegas a la misma cuenta.
## Detener la recogida sin cerrar la cuenta
1. Borra las claves de API de tus instancias en la página Instances. El reenvío se detiene al momento.
2. Desactiva tus canales en la página Channels, para que no se entregue nada.
El historial existente caduca solo dentro de la ventana de retención de tu plan.
## Cerrar tu cuenta
Todavía no hay un botón de borrado autoservicio. Escribe a **amir@dozzle.dev** desde la dirección de la cuenta y pide el borrado. Si estás en un plan de pago, cancélalo primero desde los ajustes para que no te vuelvan a cobrar.
Antes de eso, o en lugar de eso, con los pasos anteriores eliminas prácticamente todo por tu cuenta: borrar tus claves de API detiene toda recogida, y los datos almacenados caducan con la retención.
+7 -5
View File
@@ -1,9 +1,9 @@
---
title: Presentamos dtop
sourceHash: 3137db243510
title: dtop CLI
sourceHash: 88753cae7439
---
# ¿Qué es dtop?
# dtop
`dtop` es un complemento de línea de comandos para Dozzle que muestra en tiempo real, desde el terminal, los contenedores de Docker que se ejecutan en tu sistema. Piensa en él como un `docker ps` más completo que puedes dejar abierto en un panel de tmux, y cuando necesites el historial completo de logs, la búsqueda o los gráficos, `dtop` te lleva directamente a Dozzle.
@@ -27,6 +27,8 @@ docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop:
Tienes las instrucciones de instalación completas en [https://github.com/amir20/dtop](https://github.com/amir20/dtop?tab=readme-ov-file#installation).
## Estado del proyecto
## Alcance
`dtop` es un proyecto nuevo y no tiene tantas funciones como Dozzle. Aun así, sigo trabajando activamente en añadir más. Yo lo uso a diario para vigilar todos mis contenedores en varios hosts desde la línea de comandos. Si tienes sugerencias, abre una incidencia en [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
`dtop` es deliberadamente más pequeño que Dozzle. Cubre desde el terminal la pregunta de "qué se está ejecutando ahora mismo y si algo está ardiendo", y deja en manos de Dozzle todo lo que necesita un navegador: historial de logs, búsqueda, consultas SQL y gráficos de estadísticas.
Se desarrolla en su propio repositorio y se publica con su propio calendario. Las sugerencias y los informes de errores van en [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
+21 -29
View File
@@ -34,22 +34,6 @@ features:
height: 36
link: /es/guide/what-is-dozzle#real-time-monitoring
linkText: Saber más
- title: Análisis de logs con SQL
details: Consulta tus logs con DuckDB y WebAssembly, con SQL completo que se ejecuta enteramente en el navegador.
icon:
src: /icons/sql.svg
width: 36
height: 36
link: /es/guide/sql-engine
linkText: Saber más
- title: Alertas y webhooks
details: Detecta patrones en los logs con expresiones potentes y avisa a Slack, Discord, ntfy o cualquier webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /es/guide/alerts-and-webhooks
linkText: Saber más
- title: Multihost y Swarm
details: Conéctate a varios hosts de Docker y clústeres de Swarm desde una sola interfaz, con agentes protegidos por TLS.
icon:
@@ -58,6 +42,22 @@ features:
height: 36
link: /es/guide/remote-hosts
linkText: Saber más
- title: Alertas y webhooks
details: Detecta patrones en los logs, métricas y eventos del ciclo de vida con expresiones, y avisa a Slack, Discord, ntfy o cualquier webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /es/guide/alerts-and-webhooks
linkText: Saber más
- title: Dozzle Cloud
details: Una capa gestionada opcional que agrupa los fallos repetidos, resume qué se ha roto y te avisa por correo, Telegram o Discord.
icon:
src: /icons/cloud.svg
width: 36
height: 36
link: /es/guide/dozzle-cloud
linkText: Saber más
- title: Acceso a shell y exec
details: Conéctate a contenedores en ejecución o ejecuta comandos directamente desde el navegador cuando necesites indagar más.
icon:
@@ -66,13 +66,13 @@ features:
height: 36
link: /es/guide/shell
linkText: Saber más
- title: dtop en tu terminal
details: Un complemento de línea de comandos que te muestra tus contenedores en vivo y salta directamente a Dozzle.
- title: Autoalojado y privado
details: Se ejecuta en tu propia infraestructura, con autenticación simple o por proxy. Tus logs nunca salen de tu red.
icon:
src: /icons/terminal-command.svg
src: /icons/locked.svg
width: 36
height: 36
link: /es/guide/dtop
link: /es/guide/authentication
linkText: Saber más
- title: MCP para asistentes de IA
details: Expón contenedores, logs y estadísticas mediante el Model Context Protocol para que tu agente de código depure contigo.
@@ -82,13 +82,5 @@ features:
height: 36
link: /es/guide/mcp
linkText: Saber más
- title: Autoalojado y privado
details: Se ejecuta en tu propia infraestructura, con autenticación simple o por proxy. Tus logs nunca salen de tu red.
icon:
src: /icons/locked.svg
width: 36
height: 36
link: /es/guide/authentication
linkText: Saber más
sourceHash: a11fae50734d
sourceHash: d045bec3b85e
---
+7 -5
View File
@@ -1,11 +1,13 @@
---
title: Alertes et webhooks
sourceHash: daf372975955
title: Alertes
sourceHash: 71776f8fae5c
---
# Alertes et webhooks
# Alertes
Dozzle dispose d'un système d'alertes qui permet de surveiller les logs des conteneurs, les métriques de ressources et les évènements de cycle de vie, et de recevoir des notifications quand certaines conditions sont remplies. Les alertes utilisent des expressions personnalisables pour filtrer les conteneurs et déclencher les conditions, et peuvent envoyer des notifications vers des webhooks, Slack, Discord, ntfy ou [Dozzle Cloud](/fr/guide/dozzle-cloud).
Dozzle peut surveiller les logs des conteneurs, les métriques de ressources et les évènements de cycle de vie, et vous notifier dès qu'une condition que vous décrivez est remplie. Les règles s'écrivent sous forme d'expressions, sont évaluées sur votre propre instance et sont livrées à un webhook, à Slack, à Discord ou à ntfy.
Les règles vivent toujours ici, sur l'instance auto-hébergée, parce que c'est là que sont vos logs. Si vous avez relié l'instance à [Dozzle Cloud](/fr/guide/dozzle-cloud), ces mêmes règles l'alimentent, et la distribution (regroupement, résumés, mise en sourdine, canaux mobiles) se configure là-bas plutôt que destination par destination ci-dessous.
## <Icon icon="mdi:format-list-bulleted-type" inline /> Types d'alertes
@@ -81,7 +83,7 @@ Vous pouvez aussi écrire votre propre modèle de payload avec la syntaxe `text/
### Dozzle Cloud
Vous pouvez aussi envoyer les alertes vers [Dozzle Cloud](/fr/guide/dozzle-cloud) pour une supervision centralisée de plusieurs instances Dozzle. Voir le [guide Dozzle Cloud](/fr/guide/dozzle-cloud) pour plus de détails.
Les instances reliées obtiennent **Dozzle Cloud** comme destination automatiquement. Contrairement à un webhook brut, il regroupe les pannes répétées en une seule notification, résume ce qui s'est passé et diffuse vers e-mail, Telegram, Discord, Slack, ntfy et les notifications navigateur sans avoir à configurer chacun ici. Voir [Dozzle Cloud](/fr/guide/dozzle-cloud).
## <Icon icon="mdi:plus-circle-outline" inline /> Créer une alerte
+34 -90
View File
@@ -1,112 +1,56 @@
---
title: Dozzle Cloud
sourceHash: 34c0056128a5
sourceHash: 49197a749322
---
# Dozzle Cloud
[Dozzle Cloud](https://cloud.dozzle.dev) est un compagnon géré et facultatif de Dozzle auto-hébergé. Il relie vos instances entre elles, résume les événements des conteneurs, distribue les alertes sur plusieurs canaux et vous permet de poser des questions sur votre infrastructure depuis une messagerie. Dozzle reste entièrement open source et auto-hébergé ; Cloud vient se poser par-dessus.
[Dozzle Cloud](https://cloud.dozzle.dev) est un compagnon managé optionnel de Dozzle auto-hébergé. Dozzle reste entièrement open source et auto-hébergé ; Cloud se pose par-dessus et prend en charge la partie vraiment difficile à faire tourner soi-même : décider ce qui mérite de vous réveiller, et déterminer ce qui a réellement cassé.
L'objectif est que Dozzle Cloud ressemble à l'assistant SRE personnel dont vous ignoriez avoir besoin : il surveille vos conteneurs, vous prévient quand quelque chose compte, et se fait oublier le reste du temps.
Votre Dozzle ouvre une connexion sortante vers Cloud. Aucun port entrant, aucune IP publique, aucun agent à installer.
## Fonctionnalités
**Le gratuit vous laisse tranquille. Pro part à la recherche.**
### <Icon icon="mdi:text-box-outline" inline /> Résumés de logs
## <Icon icon="mdi:bell-ring-outline" inline /> Gratuit : une couche de notification intelligente
Les événements des conteneurs sont regroupés et résumés par un LLM. Chaque résumé indique la gravité, le conteneur source et un lien vers la ligne de log complète dans votre instance Dozzle.
La plupart des alertes de logs se résument à une regex et un webhook, ce qui veut dire que la première boucle de crash produit deux cents messages identiques et que vous coupez le canal. L'offre gratuite existe pour corriger cette partie-là, et c'est le produit d'alerting complet, pas son essai.
### <Icon icon="mdi:group" inline /> Regroupement de motifs
- **Alertes intelligentes** — chaque alerte déclenchée par vos règles Dozzle devient une phrase qui nomme la cause, le conteneur et la gravité, avec un lien vers la ligne de log exacte dans votre propre Dozzle.
- **Les répétitions sont regroupées** — 47 plantages arrivent en une alerte qui dit 47. Vous recevez un avis de rétablissement quand ça revient.
- **Silencieux par défaut** — suppression, filtres de gravité et mise en sourdine par motif sur chaque canal. Coupez _ce type d'alerte_ plutôt que celle-ci en particulier, et tout ce qui est réellement différent passe toujours.
- **Tous les canaux** — e-mail, Telegram, Discord, Slack, ntfy, webhooks et notifications navigateur, tous en gratuit. Voir [Canaux de notification](/fr/guide/dozzle-cloud/channels).
- **Recherche et métriques incluses** — chaque évènement est interrogeable dès son arrivée, et CPU, mémoire, réseau et disque sont conservés en historique. Ni l'un ni l'autre ne compte dans votre quota d'évènements.
- **Un constat par semaine** — même en gratuit, Cloud lit vos logs et fait remonter la chose la plus grave sur laquelle rien n'a alerté.
- **Une règle par défaut qui marche** — relier une instance en crée une pour vous (les conteneurs qui se terminent en erreur), donc un compte tout neuf reçoit une alerte utile dès le premier jour sans rien configurer.
- **Agent conversationnel et MCP** — demandez « des erreurs aujourd'hui ? » dans Telegram ou Discord, et démarrez, arrêtez ou redémarrez un conteneur depuis la même conversation dès que vous activez les [Actions](/fr/guide/actions) sur votre instance. L'accès MCP est illimité sur toutes les offres.
Les erreurs répétées sont regroupées et comptées au lieu d'être envoyées une par une. Une boucle qui émet 200 fois la même exception produit une seule notification avec une fréquence, pas 200.
> [!TIP]
> Une instance fraîchement reliée bénéficie de 7 jours de l'expérience Pro complète : tous les constats, chaque matin. Le gratuit se stabilise ensuite à un constat par semaine.
### <Icon icon="mdi:robot-outline" inline /> Agent IA
## <Icon icon="mdi:robot-outline" inline /> Pro : il cherche avant que quoi que ce soit n'alerte
Un agent conversationnel répond aux questions sur l'état des conteneurs et l'activité récente des logs. Il est disponible sur Telegram et Discord.
Le gratuit vous dit *qu'*il s'est passé quelque chose, et se tait quand rien ne s'est passé. Pro est la moitié qui n'attend pas qu'une alerte existe.
Avec les formules Pro et Team, l'agent peut aussi agir sur les conteneurs (démarrer, arrêter, redémarrer) directement depuis la conversation, sans nécessiter d'accès shell à l'hôte.
- **Revue proactive, chaque matin** — Cloud lit vos logs d'erreur, les rassemble en motifs et signale ce qui mérite d'être corrigé. C'est là qu'un disque qui se remplit doucement, ou un conteneur qui redémarre en boucle sans bruit, apparaît un jour où rien n'a été déclenché. Aucune règle d'alerte n'a besoin d'exister pour ça.
- **Tous les constats, chaque jour, avec le correctif** — pas un par semaine et le reste verrouillé. Les constats vieillissent au fil des jours tant que le problème dure (« toujours en cours, jour quatre, trois fois pire ») et se referment d'eux-mêmes quand ça s'arrête.
- **Un triage qui va voir** — quand le texte de l'alerte ne suffit pas à trancher, il inspecte le conteneur et lit les logs alentour avant de se prononcer, au lieu de deviner.
- **Enquêtes complètes à la demande** — un clic lance davantage de passes avec un modèle plus puissant, en corrélant vos conteneurs, vos hôtes et la chronologie, et vous rend une cause racine avec des étapes concrètes.
- **Tous les hôtes, un tableau de bord** — reliez autant d'instances Dozzle que vous en exploitez. Les questions posées dans le chat les couvrent toutes d'un coup.
- **Une mémoire plus longue** — 30 jours de logs et de métriques interrogeables au lieu de 24 heures, soit la différence entre « qu'est-ce qui s'est passé cette nuit » et « est-ce que ça dure depuis un mois ».
### <Icon icon="mdi:calendar-clock" inline /> Récapitulatifs quotidiens
La comparaison complète est dans [Offres et limites](/fr/guide/dozzle-cloud/plans).
Un résumé planifié de l'activité récente sur vos instances liées : principaux motifs d'erreur, nombre d'événements et santé globale. Envoyé par e-mail à l'heure et dans le fuseau horaire que vous configurez.
## Pour aller plus loin
### <Icon icon="mdi:bell-ring-outline" inline /> Canaux de notification
| Page | Ce qu'elle couvre |
| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [Relier votre instance](/fr/guide/dozzle-cloud/connecting) | Le lien, pourquoi ni IP publique ni port ouvert ne sont nécessaires, pare-feu, dépannage |
| [Canaux de notification](/fr/guide/dozzle-cloud/channels) | Tous les canaux, comment configurer chacun, et comment faire moins de bruit |
| [Offres et limites](/fr/guide/dozzle-cloud/plans) | Ce que contient chaque offre, ce qu'est un évènement traité, ce qui se passe en cas de dépassement |
| [Vos données](/fr/guide/dozzle-cloud/your-data) | Ce qui quitte votre hôte, comment l'arrêter, ce que Cloud stocke, les clés d'API |
Les alertes peuvent être routées vers plusieurs canaux en parallèle. Chaque canal peut être activé ou désactivé indépendamment et limité à certaines instances Dozzle.
| Canal | Alertes | Récapitulatif quotidien | Agent bidirectionnel |
| ------------------------------------------------------------- | :-----: | :---------------------: | :------------------: |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord | ✓ | ✓ | ✓ |
| <Icon icon="mdi:email-outline" inline /> E-mail | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Push navigateur | ✓ | | |
### <Icon icon="mdi:bell-sleep-outline" inline /> Mise en sourdine des notifications
Les notifications peuvent être coupées pendant une heure, huit heures, jusqu'au lendemain matin ou jusqu'à la semaine suivante. Pratique pendant un incident ou une maintenance planifiée.
### <Icon icon="mdi:view-dashboard-outline" inline /> Tableau de bord multi-instances
Les instances Dozzle liées apparaissent dans un tableau de bord unique. Chaque instance s'authentifie avec une clé d'API, sans agent supplémentaire sur l'hôte. Le tableau de bord affiche l'état de connexion, l'inventaire des conteneurs et le flux de logs en direct.
### <Icon icon="mdi:database-search-outline" inline /> Recherche plein texte dans les logs
Chaque ligne de log transmise par vos instances liées est écrite dans un index de recherche plein texte. Vous pouvez interroger toutes les instances d'un coup, ou filtrer par conteneur, gravité ou plage de temps. Les recherches renvoient des résultats en quelques millisecondes, même sur des semaines d'historique, et chaque correspondance renvoie au contexte environnant dans l'instance source. La rétention dépend de la formule et va de 24 heures à 30 jours.
### <Icon icon="mdi:shield-lock-outline" inline /> Sécurité
- Les clés d'API sont hachées avec BLAKE2b et peuvent expirer.
- La connexion se fait via OAuth GitHub ou Google.
- Les logs et le contenu des événements ne sont conservés que pendant la fenêtre de rétention de votre formule.
## Lier une instance
Pour relier un Dozzle auto-hébergé à Dozzle Cloud :
1. Ouvrez votre instance Dozzle et cliquez sur l'icône **cloud** dans la barre supérieure.
2. Cliquez sur **Link instance**. Vous serez redirigé pour vous authentifier et confirmer la connexion.
3. Une fois lié, configurez les abonnements aux alertes dans Dozzle pour choisir quels événements sont transmis.
## Contrôler ce qui est transmis
Par défaut, chaque conteneur en cours d'exécution envoie ses logs à Dozzle Cloud tant que l'instance est liée. Pour les conteneurs bavards dont le bruit en niveau info n'a aucune valeur de diagnostic, vous pouvez filtrer ou désactiver complètement l'envoi par conteneur avec un seul label.
### `dev.dozzle.cloud.min_level`
| Valeur | Effet |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| _(non défini)_ | Toutes les lignes de log sont transmises. Comportement par défaut. |
| `disabled` | Le conteneur est complètement ignoré. Aucun log n'est transmis à Cloud. |
| `trace` | Identique à non défini, puisque trace est le niveau le plus bas. Tout est transmis. |
| `debug` / `info` / `warn` / `error` / `fatal` | Seules les lignes de ce niveau ou supérieur sont transmises. Les lignes sans niveau détecté passent toujours. |
Une valeur non reconnue (une faute de frappe comme `warning` ou `wran`) est signalée comme une erreur puis ignorée, et le conteneur transmet donc tout comme si le label n'existait pas.
Le label est lu au démarrage du lecteur de logs. Le modifier sur un conteneur en cours d'exécution ne prend effet qu'après son redémarrage.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Ne transmettre que warn/error/fatal à Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# Ne rien envoyer depuis ce conteneur
- dev.dozzle.cloud.min_level=disabled
```
Le filtre s'applique sur votre instance Dozzle avant que les logs ne quittent l'hôte, donc les lignes écartées ne passent jamais par le réseau et ne comptent pas dans votre formule. La consultation locale des logs dans Dozzle n'est pas affectée.
## Tarifs
La formule gratuite est volontairement généreuse : vous devriez pouvoir vous servir réellement de Dozzle Cloud sur un homelab ou dans une petite équipe sans buter sur un mur. Des formules payantes existent pour des volumes d'événements plus élevés, une rétention plus longue et les actions de l'agent sur les conteneurs. Voir [cloud.dozzle.dev](https://cloud.dozzle.dev) pour les limites et les détails des formules à jour.
Les règles d'alerte se configurent sur votre propre instance, pas dans Cloud. Voir [Alertes](/fr/guide/alerts-and-webhooks).
## Retours
Dozzle Cloud est développé par la personne qui a créé Dozzle, avec la même exigence : des choses que les gens ont vraiment envie d'utiliser. Si vous l'essayez et que quelque chose vous semble bancal, manquant ou vraiment utile, [ouvrez une discussion](https://github.com/amir20/dozzle/discussions). Ces retours orientent ce qui sera construit ensuite.
Dozzle Cloud est construit par la même personne que Dozzle, et l'exigence est la même : des choses que les gens ont vraiment envie d'utiliser. Si vous l'essayez et que quelque chose vous semble bancal, manquant ou franchement utile, [ouvrez une discussion](https://github.com/amir20/dozzle/discussions). Ces retours orientent ce qui sera construit ensuite.
+119
View File
@@ -0,0 +1,119 @@
---
title: Canaux de notification
sourceHash: baae80ce439a
---
# Canaux de notification
Les canaux se configurent dans [Dozzle Cloud](/fr/guide/dozzle-cloud) et déterminent _où_ vont les alertes. Ce qui les _déclenche_ se configure sur votre instance auto-hébergée : voir [Alertes](/fr/guide/alerts-and-webhooks).
Activez-en autant que vous voulez. Chaque canal activé reçoit toutes les alertes, et chacun s'active ou se désactive indépendamment.
## Canaux disponibles
| Canal | Alertes | Résumé quotidien | Agent bidirectionnel |
| ------------------------------------------------------------- | :-----: | :--------------: | :------------------: |
| <Icon icon="mdi:email-outline" inline /> E-mail | ✓ | ✓ | |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Bot Discord (MP) | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Webhook Discord | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Push navigateur | ✓ | | |
Tous les canaux sont disponibles sur toutes les offres, y compris la gratuite.
## E-mail
Configuré automatiquement avec l'adresse utilisée à l'inscription. Rien à régler. Pour l'arrêter, désactivez le canal e-mail. Si les alertes cessent d'arriver sans raison, regardez d'abord dans les spams : la première alerte y atterrit parfois, et la marquer « non indésirable » règle le problème définitivement.
## Telegram
Choisissez **Telegram** sur la page Channels, suivez le lien pour ouvrir le bot et appuyez sur **Start**. Le canal s'active dès que le bot a eu de vos nouvelles.
Telegram est bidirectionnel. Vous pouvez répondre dans la même conversation et poser des questions sur vos conteneurs (« des erreurs aujourd'hui ? », « montre l'utilisation CPU », « quelles alertes ai-je ? ») et obtenir des réponses sur l'état en direct.
## Discord
Discord propose **deux types de canaux distincts**, et les avoir tous les deux actifs est la raison habituelle de recevoir chaque alerte en double.
**Bot Discord (message privé)** — le bot vous envoie les alertes personnellement en MP. Bidirectionnel, vous pouvez donc lui poser des questions. Se configure en autorisant le bot depuis la page Channels.
**Webhook Discord (salon de serveur)** — les alertes sont publiées dans un salon de votre serveur, par exemple `#alerts`. Sens unique. Se configure en créant un webhook dans les paramètres de votre serveur Discord et en collant l'URL dans Cloud.
Si les alertes arrivent à la fois dans vos MP et dans un salon de serveur, vous avez les deux configurés. Désactivez celui dont vous ne voulez pas ; en couper un laisse l'autre tourner. Une configuration courante est de garder le salon partagé et de couper le MP.
## Slack
Créez un webhook entrant dans votre espace Slack et collez l'URL dans le canal Slack de la page Channels.
## ntfy
Saisissez l'URL de votre topic. ntfy.sh comme un serveur ntfy auto-hébergé fonctionnent. Très utilisé pour les notifications sur téléphone sans compte supplémentaire.
## Webhooks
Saisissez n'importe quelle URL qui accepte un POST. Les alertes sont livrées en JSON, vous pouvez donc les router vers ce que vous faites déjà tourner : Home Assistant, n8n, un script, un autre outil d'alerting.
> [!NOTE]
> C'est un canal Cloud, distinct des webhooks que votre Dozzle auto-hébergé peut appeler directement. Ceux-là sont dans [Alertes](/fr/guide/alerts-and-webhooks), avec les variables de template Go.
## Push navigateur
Activez-le sur la page Channels et autorisez les notifications quand le navigateur le demande. Les alertes arrivent alors en notifications de bureau.
Si rien n'arrive après l'activation, le navigateur a très probablement refusé la permission. Les navigateurs ne redemandent pas après un refus : effacez la permission de notification du site dans les réglages du navigateur et réactivez-la. Le push navigateur ne fonctionne pas en fenêtre privée ou de navigation privée.
## <Icon icon="mdi:bell-sleep-outline" inline /> Faire moins de bruit
Vous ne devriez être dérangé que quand ça compte. Si Cloud est bruyant, c'est un problème de réglage, et voici les outils pour ça.
| Situation | Faites ceci |
| ------------------------------------------------ | -------------------------------------- |
| Une erreur récurrente que vous connaissez déjà | **Mettez le motif en sourdine** |
| Les alertes sont utiles mais trop fréquentes | **Votez pouce vers le bas** |
| Maintenance planifiée, sauvegardes, mises à jour | **Coupez le motif avant de commencer** |
| Bonne alerte, mauvaise application | **Désactivez ce canal** |
| Vous n'en voulez plus du tout, de nulle part | **Désactivez tous les canaux** |
Supprimer la règle d'alerte n'est presque jamais la bonne réponse : cela retire toute une catégorie de surveillance pour régler une seule ligne bruyante.
### Mettre une alerte récurrente en sourdine
La mise en sourdine est par motif : elle fait taire _ce type d'alerte_, pas seulement celle que vous avez sous les yeux. Les occurrences suivantes restent silencieuses, et tout ce qui est réellement différent passe toujours.
- **Depuis une alerte** — ouvrez-la dans Cloud et choisissez de la mettre en sourdine.
- **Dans le chat** — dites « coupe ça » ou « arrête de me parler de X ». L'agent énonce le motif exact qu'il s'apprête à couper et attend votre confirmation, car une mise en sourdine est durable et pourrait masquer une vraie panne plus tard.
La sourdine dure jusqu'à ce que vous la leviez. Demandez « qu'est-ce que j'ai coupé ? » pour lister vos règles, et levez-les de la même façon. Les alertes en sourdine restent enregistrées : la sourdine change ce qui vous interrompt, pas ce qui est surveillé.
### Moins, pas rien
Si une alerte est réellement utile mais arrive trop souvent, votez **pouce vers le bas** plutôt que de la couper. C'est le signal « continue de surveiller ça, dérange-moi moins ». Le pouce en l'air sur les alertes qui ont vu juste aide de la même manière.
### Les répétitions sont déjà regroupées
Avant de couper, vérifiez si le problème est bien de la répétition. Les occurrences répétées d'une même panne sont fusionnées en une seule alerte avec un compteur. Si vous recevez beaucoup d'alertes, ce sont généralement beaucoup de problèmes _différents_, ou vous avez dépassé le quota d'évènements de votre offre et les alertes sont retombées en brut, non regroupées. Voir [Offres et limites](/fr/guide/dozzle-cloud/plans).
### Filtrer à la source
Pour un conteneur bruyant en fonctionnement normal, le meilleur correctif est en amont : le label `dev.dozzle.cloud.min_level` empêche les lignes de faible gravité de quitter votre hôte. Voir [Vos données](/fr/guide/dozzle-cloud/your-data).
## Pourquoi n'ai-je pas reçu d'alerte ?
**1. Existe-t-il une règle pour ça ?** Une erreur dans vos logs ne produit pas d'alerte à elle seule ; quelque chose doit la guetter. La règle par défaut ne couvre que les conteneurs qui se terminent en erreur : un conteneur qui journalise des erreurs tout en restant debout demande une règle de log.
**2. Un canal est-il activé ?** Une règle sans canal activé n'a nulle part où livrer.
**3. L'instance est-elle connectée ?** Si elle était hors ligne au moment du problème, rien n'a été transmis. Voir [Relier votre instance](/fr/guide/dozzle-cloud/connecting).
**4. A-t-elle été regroupée dans une alerte déjà reçue ?** Quarante défaillances produisent une alerte qui dit quarante. C'est voulu, pas un raté.
**5. L'avez-vous mise en sourdine ?** Vérifiez vos règles de sourdine.
**6. Le conteneur est-il exclu de la transmission ?** Voir [Vos données](/fr/guide/dozzle-cloud/your-data).
**7. Êtes-vous au-delà des limites de votre offre ?** Passé le quota, la livraison change et les alertes sont échantillonnées.
**8. Regardez vos spams**, pour l'e-mail en particulier.
+110
View File
@@ -0,0 +1,110 @@
---
title: Relier votre instance
sourceHash: d6f8f7b6b845
---
# Relier votre instance
Relier un Dozzle auto-hébergé à [Dozzle Cloud](/fr/guide/dozzle-cloud), vérifier qu'il est réellement connecté, et corriger quand il ne l'est pas.
## Relier une instance
1. Ouvrez votre Dozzle auto-hébergé et cliquez sur l'icône **nuage** dans la barre du haut.
2. Cliquez sur **Link instance**. Vous êtes envoyé vers Cloud pour vous connecter avec GitHub ou Google et confirmer.
3. L'instance apparaît sur le tableau de bord Cloud en quelques secondes.
Aucun mot de passe à créer, aucun agent à installer sur l'hôte.
## Vous n'avez besoin ni d'IP publique, ni de port ouvert, ni de domaine
C'est l'inquiétude la plus fréquente, et la réponse est non sur les trois points.
Votre instance Dozzle ouvre une connexion **sortante** vers Cloud et la maintient ouverte. Cloud ne se reconnecte jamais vers vous, ne scanne jamais votre hôte et n'a jamais besoin d'atteindre votre adresse. Cela fonctionne donc normalement quand Dozzle est :
- derrière du NAT sur un réseau domestique, sans redirection de port
- sur une adresse privée RFC1918 comme `192.168.1.50`
- sur un réseau Tailscale, WireGuard ou ZeroTier
- derrière du CGNAT, où vous ne pourriez pas rediriger un port même en le voulant
- sur un portable qui change de réseau
Ni reverse proxy, ni nom DNS dynamique, ni IP fixe ne sont nécessaires.
## Règles de pare-feu
Seul l'accès **sortant** est requis. Autorisez votre hôte Dozzle à joindre :
```
agent.doligence.dozzle.dev:443 (TCP, outbound)
```
Cette seule destination sur le port 443 suffit. Si votre pare-feu filtre par nom d'hôte plutôt que par IP, autorisez le nom : les adresses derrière peuvent changer. La plupart des pare-feux domestiques et de petite entreprise autorisent déjà tout le trafic sortant, donc en général il n'y a rien à configurer.
## Où vivent les règles et les canaux
Presque tout le monde bute là-dessus, donc autant le dire clairement.
| Ce que vous voulez changer | Où le faire |
| --------------------------------------------------------------- | -------------------------------------------------------------- |
| **Ce qui déclenche une alerte** — conteneurs, motifs, seuils | Dozzle auto-hébergé → [Alertes](/fr/guide/alerts-and-webhooks) |
| **Où les alertes sont livrées** — e-mail, Telegram, Slack, ... | Dozzle Cloud → [Canaux](/fr/guide/dozzle-cloud/channels) |
| Revoir les alertes passées, mettre en sourdine, changer d'offre | Dozzle Cloud |
La règle est définie sur votre propre instance parce que c'est là que sont vos logs. La distribution est configurée dans Cloud parce que c'est ce qui tient la connexion vers votre téléphone. Si vous cherchez dans Cloud un endroit pour dire « préviens-moi quand ce conteneur part en erreur » sans le trouver, c'est pour ça : ouvrez plutôt votre Dozzle auto-hébergé.
## Relier plus d'une instance
Chaque instance se relie séparément, avec les mêmes étapes et le même compte Cloud. Une fois reliées, elles apparaissent toutes ensemble sur le tableau de bord, et les questions posées dans le chat couvrent toutes les instances connectées d'un coup.
Cette vue combinée vit dans Cloud, pas dans un Dozzle auto-hébergé en particulier. Un Dozzle auto-hébergé affiche les hôtes que vous y avez configurés directement ; il n'affiche pas les autres instances reliées.
Relier plusieurs instances Dozzle est différent des fonctionnalités propres à Dozzle que sont le [Mode agent](/fr/guide/agent) et les [Hôtes distants](/fr/guide/remote-hosts), qui rattachent des hôtes Docker supplémentaires à un seul Dozzle. Les deux sont pris en charge et peuvent se combiner.
L'offre gratuite relie une instance à la fois. Voir [Offres et limites](/fr/guide/dozzle-cloud/plans).
## Rien n'apparaît
Reprenez ces points dans l'ordre.
**1. Le conteneur Dozzle tourne-t-il ?**
Si Dozzle lui-même est arrêté ou en redémarrage, rien n'atteint Cloud.
**2. Le lien a-t-il été mené à son terme ?**
Commencer le lien sans l'approuver ne laisse rien. Refaites les étapes ci-dessus et vérifiez que l'instance apparaît ensuite sur la page Instances.
**3. La clé d'API a-t-elle été supprimée ?**
Supprimer la clé d'API d'une instance la dissocie définitivement. L'ancienne clé ne peut pas être réattachée : reliez à nouveau pour en obtenir une nouvelle.
**4. Le trafic sortant est-il bloqué ?**
Les réseaux restrictifs (entreprise, université, certains hébergeurs VPS) peuvent bloquer le 443 sortant vers des destinations absentes d'une liste d'autorisation. Voir _Règles de pare-feu_.
**5. Avez-vous atteint la limite d'instances de l'offre gratuite ?**
L'offre gratuite relie une instance à la fois. Tenter d'en relier une deuxième affiche un message de limite au lieu de connecter.
**6. Le conteneur est-il exclu de la transmission ?**
Un conteneur portant le label `dev.dozzle.cloud.min_level=disabled` n'envoie rien, par conception. Si un conteneur précis manque alors que les autres fonctionnent, vérifiez ses labels. Voir [Vos données](/fr/guide/dozzle-cloud/your-data).
## Laisser l'agent piloter les conteneurs
Lire les logs et l'état des conteneurs fonctionne dès qu'une instance est reliée. Démarrer, arrêter et redémarrer sont refusés par votre instance tant que vous ne les activez pas vous-même :
::: code-group
```yaml [docker-compose.yml]
services:
dozzle:
image: amir20/dozzle
environment:
DOZZLE_ENABLE_ACTIONS: true
```
```sh
docker run ... amir20/dozzle --enable-actions
```
:::
C'est un réglage sur **votre** Dozzle, pas dans Cloud, car il gouverne ce que votre Dozzle accepte de faire à vos conteneurs. Redémarrez Dozzle après l'avoir changé. Voir [Actions](/fr/guide/actions).
## Dissocier
Supprimez la clé d'API de l'instance sur la page Instances dans Cloud. La connexion tombe, plus aucune donnée n'est transmise, et votre Dozzle auto-hébergé continue de fonctionner exactement comme avant. Relier ne change jamais la consultation locale des logs.
+84
View File
@@ -0,0 +1,84 @@
---
title: Offres et limites
sourceHash: f7c6bbdc83ea
---
# Offres et limites
Ce que contient chaque offre, ce qui est décompté, et ce qui se passe en cas de dépassement.
L'offre gratuite est le produit d'alerting complet, pas son essai. Ce que les offres payantes achètent, c'est la moitié proactive (la revue qui lit vos logs et trouve ce sur quoi rien n'a jamais alerté) plus de la marge.
## Offres
| | Gratuit | Pro | Team |
| -------------------------------------------------------- | :----------: | :---------------: | :---------------: |
| Prix | 0 $ | 5 $ / mois | 15 $ / mois |
| Constats (lit vos logs, trouve ce qui n'a jamais alerté) | 1 / semaine | Tous, chaque jour | Tous, chaque jour |
| Correctif fourni avec chaque constat | — | ✓ | ✓ |
| Le triage inspecte conteneurs et logs en cas de doute | — | ✓ | ✓ |
| Enquête complète à la demande | — | ✓ | ✓ |
| Évènements traités par mois | 2 000 | 50K | 250K |
| Logs interrogeables | 10 Go · 24 h | 50 Go · 30 j | 100 Go · 30 j |
| Historique des alertes et évènements | 1 jour | 14 jours | 30 jours |
| Historique des métriques (CPU, mémoire, réseau, disque) | 24 h | 30 jours | 30 jours |
| Instances connectées | 1 | Illimitées | Illimitées |
| Conversations avec l'assistant par mois | 10 | 200 | 1 000 |
| Support prioritaire | — | ✓ | ✓ |
Les alertes intelligentes, le regroupement des répétitions, la suppression et les filtres de gravité, l'indexation pour la recherche, le suivi des métriques, tous les canaux de notification, les actions sur les conteneurs et l'accès MCP illimité sont sur **toutes** les offres, y compris la gratuite.
Les tarifs à jour sont sur [cloud.dozzle.dev](https://cloud.dozzle.dev).
## Ce qui compte comme évènement traité
Un **évènement traité** est un évènement de conteneur ou une ligne de log correspondante passée par le pipeline de triage, qui décide s'il faut envoyer une nouvelle alerte, la fusionner dans une existante, ou rester silencieux. Vous payez ce travail, pas du stockage brut.
Les lignes de log ordinaires ne sont pas des évènements : elles comptent dans le volume de logs interrogeables. Un conteneur très bavard coûte donc du stockage, tandis qu'un conteneur en boucle de crash coûte des évènements.
Si un conteneur se termine 47 fois, cela fait 47 évènements sur le quota, mais une seule alerte qui dit 47. C'est tout l'intérêt.
**Les constats ne coûtent ni l'un ni l'autre.** La revue lit vos logs plutôt que votre historique d'alertes, elle ne touche donc pas au compteur d'évènements et fonctionne sans aucune règle d'alerte configurée. Seul votre volume mensuel de logs s'applique.
**Recherche et métriques sont gratuites sur toutes les offres.** L'indexation est active dès qu'une instance se connecte, et les séries CPU, mémoire, réseau et disque remontent de vos instances sans frais. L'offre ne change que la quantité et la profondeur.
## Dépasser le quota
Rien ne casse. Vous basculez en mode échantillonnage :
- Le triage se met en pause.
- L'historique des évènements continue d'être enregistré, rien n'est perdu.
- Environ un évènement sur dix passe en alerte **brute**, pour que vous voyiez toujours ce qui se passe.
- Les répétitions ne sont plus fusionnées en une alerte avec compteur.
En pratique, les alertes deviennent plus bruyantes et moins utiles au lieu de disparaître, et vous le sentirez dans votre boîte mail avant de le voir sur une page d'utilisation. Si vos alertes sont soudain brutes et répétitives, vérifiez d'abord votre consommation.
Cela vaut aussi pour les offres payantes. Les quotas se réinitialisent au début de chaque mois.
> [!TIP]
> La plupart des comptes n'en approchent jamais. Seul un vrai déluge — un conteneur en boucle de crash pendant des jours — dépasse le quota gratuit, et l'alerte qui nomme ce conteneur arrive bien avant la limite.
## Rétention
La rétention détermine jusqu'où remonte votre historique : alertes, évènements et résultats de recherche dans les logs. Sur l'offre gratuite c'est un jour, donc une recherche portant sur la semaine dernière ne renvoie rien même si l'évènement a bien eu lieu. C'est la raison la plus fréquente pour laquelle une recherche semble « perdre » des données.
La rétention des métriques est de 24 heures en gratuit et de 30 jours sur les offres payantes. Demander une fenêtre plus longue que ce que permet votre offre renvoie la fenêtre dont vous disposez réellement, pas une erreur.
## La limite d'instances
L'offre gratuite relie une instance à la fois. En relier une deuxième affiche un message de limite. Vous avez deux options :
- **Déplacer la place.** Supprimez la clé d'API de l'instance existante sur la page Instances, puis reliez la nouvelle. C'est définitif pour l'ancienne instance : son historique reste, mais il faudrait la relier de zéro.
- **Passer à une offre supérieure** pour garder les deux connectées en même temps.
La limite porte sur ce qu'un compte gratuit transmet, ce n'est pas un verrou sur une fonctionnalité. Tout le reste fonctionne en gratuit avec l'instance que vous avez reliée.
## Vérifier votre consommation
La page d'utilisation dans Cloud affiche les évènements, les octets de logs et les conversations avec l'assistant consommés ce mois-ci par rapport à votre quota. Vous pouvez aussi demander dans le chat : « combien ai-je consommé ce mois-ci ? ».
## Changer ou annuler
Passez à une offre supérieure depuis la page des tarifs ou depuis les réglages. La facturation passe par Stripe ; moyens de paiement, factures et reçus s'y gèrent via le lien de facturation dans vos réglages.
L'annulation arrête les prélèvements futurs et vous bascule sur l'offre gratuite à la fin de la période déjà payée. Votre compte et votre historique restent.
+83
View File
@@ -0,0 +1,83 @@
---
title: Vos données
sourceHash: f11dd8e45cb5
---
# Vos données
Ce qui quitte votre hôte, comment l'arrêter, et ce que [Dozzle Cloud](/fr/guide/dozzle-cloud) stocke une fois que c'est arrivé.
## Relier n'expose pas votre Dozzle
Votre Dozzle ouvre une connexion **sortante** vers Cloud. Rien d'entrant n'est ouvert, aucun port n'est redirigé, et Cloud ne peut atteindre votre instance que par la connexion que celle-ci a initiée. Si vous dissociez, cet accès prend fin immédiatement.
Relier n'ajoute pas non plus d'authentification à votre Dozzle auto-hébergé. C'est une question distincte, et importante : **par défaut, Dozzle n'a pas de connexion.** Quiconque peut l'atteindre sur votre réseau peut voir vos logs. Si vous avez exposé Dozzle sur internet ou partagez votre réseau, configurez l'[Authentification](/fr/guide/authentication) sur l'instance elle-même. Cela s'applique que vous reliiez ou non.
Les actions sur les conteneurs — démarrer, arrêter, redémarrer — restent refusées par votre instance tant que vous ne les activez pas avec `DOZZLE_ENABLE_ACTIONS`. Voir [Actions](/fr/guide/actions).
## Contrôler ce qui est transmis
Le contrôle de confidentialité le plus efficace consiste à ne pas envoyer la chose du tout. Par défaut, chaque conteneur en cours d'exécution envoie ses logs à Cloud tant que l'instance est reliée. Pour les conteneurs dont le bavardage en niveau info n'a aucune valeur diagnostique, ou qui manipulent des données que vous préférez garder sur l'hôte, filtrez ou désactivez avec un label.
### `dev.dozzle.cloud.min_level`
| Valeur | Effet |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| _(non défini)_ | Toutes les lignes de log sont transmises. Valeur par défaut. |
| `disabled` | Le conteneur est totalement ignoré. Aucun log n'est transmis à Cloud. |
| `trace` | Identique à non défini, puisque trace est le niveau le plus bas. Tout est transmis. |
| `debug` / `info` / `warn` / `error` / `fatal` | Seules les lignes de ce niveau ou supérieur sont transmises. Les lignes sans niveau détecté passent toujours. |
Une valeur non reconnue (une faute de frappe comme `warning` ou `wran`) est enregistrée comme erreur et ignorée, le conteneur transmet donc tout comme si le label n'existait pas.
Le label est lu au démarrage du lecteur de logs. Le modifier sur un conteneur en cours d'exécution ne prend effet qu'après son redémarrage.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Ne transmettre que warn/error/fatal à Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# Ne rien envoyer depuis ce conteneur
- dev.dozzle.cloud.min_level=disabled
```
Le filtre s'exécute sur votre instance Dozzle **avant que les logs ne quittent l'hôte**, donc les lignes écartées ne touchent jamais le réseau et ne comptent jamais dans votre quota. La consultation locale des logs dans Dozzle n'est pas affectée.
## Ce que Cloud stocke
- **Les lignes de log** transmises par vos instances reliées, pour la recherche plein texte.
- **Les évènements et alertes** qui ont correspondu à vos règles, avec leurs enquêtes et constats.
- **Les métadonnées de conteneurs et d'hôtes** — noms, images, états, consommation de ressources.
- **Votre compte** — adresse e-mail, offre, réglages des canaux de notification.
- **L'historique de chat** avec l'agent.
Tout est cloisonné à votre compte ; les autres utilisateurs ne voient pas vos données. Les données stockées sont conservées pendant la fenêtre de rétention de votre offre puis supprimées automatiquement. Voir [Offres et limites](/fr/guide/dozzle-cloud/plans).
## Clés d'API
Chaque instance reliée s'authentifie avec sa propre clé d'API. Les clés sont hachées avec BLAKE2b, gèrent l'expiration et ne sont jamais stockées en clair.
Supprimer une clé sur la page Instances déconnecte cette instance immédiatement et définitivement. La clé ne peut être ni récupérée ni réattachée : reliez l'instance à nouveau pour en obtenir une nouvelle. Si vous pensez qu'une clé a fuité, supprimez-la et reliez à nouveau. C'est le remède complet : l'ancienne clé cesse de fonctionner à l'instant où elle est supprimée.
## Connexion
Cloud utilise la connexion GitHub ou Google. Aucun mot de passe distinct à créer, et Cloud ne voit jamais votre mot de passe GitHub ou Google. Si vous vous inscrivez avec un fournisseur et vous connectez ensuite avec l'autre en utilisant la même adresse e-mail, vous arrivez sur le même compte.
## Arrêter la collecte sans fermer le compte
1. Supprimez les clés d'API de vos instances sur la page Instances. La transmission s'arrête immédiatement.
2. Désactivez vos canaux sur la page Channels, pour que rien ne soit livré.
L'historique existant expire ensuite de lui-même dans la fenêtre de rétention de votre offre.
## Fermer votre compte
Il n'y a pas encore de bouton de suppression en libre-service. Écrivez à **amir@dozzle.dev** depuis l'adresse du compte et demandez la suppression. Si vous êtes sur une offre payante, annulez-la d'abord depuis les réglages pour ne plus être facturé.
Avant cela, ou à la place, les étapes ci-dessus permettent de retirer l'essentiel vous-même : supprimer vos clés d'API arrête toute collecte, et les données stockées expirent avec la rétention.
+7 -5
View File
@@ -1,9 +1,9 @@
---
title: Présentation de dtop
sourceHash: 3137db243510
title: dtop CLI
sourceHash: 88753cae7439
---
# Qu'est-ce que dtop ?
# dtop
`dtop` est un compagnon en ligne de commande pour Dozzle qui affiche en temps réel les conteneurs Docker qui tournent sur votre système. Voyez-le comme un `docker ps` enrichi que vous pouvez laisser ouvert dans un panneau tmux. Et quand vous avez besoin de l'historique complet des logs, de la recherche ou des graphiques, `dtop` vous permet de basculer directement dans Dozzle.
@@ -27,6 +27,8 @@ docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop:
Les instructions d'installation complètes sont disponibles sur [https://github.com/amir20/dtop](https://github.com/amir20/dtop?tab=readme-ov-file#installation).
## État du projet
## Périmètre
`dtop` est un projet récent et n'est pas aussi complet que Dozzle. Je travaille cependant activement à y ajouter des fonctionnalités. Je m'en sers personnellement pour surveiller tous mes conteneurs sur plusieurs hôtes depuis la ligne de commande. Si vous avez des suggestions, ouvrez une issue sur [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
`dtop` est volontairement plus restreint que Dozzle. Il répond depuis le terminal à la question "qu'est-ce qui tourne en ce moment, et est-ce que quelque chose brûle", et passe la main à Dozzle pour tout ce qui demande un navigateur : historique des logs, recherche, requêtes SQL et graphiques de statistiques.
Il est développé dans son propre dépôt et publié à son propre rythme. Les suggestions et les rapports de bugs vont sur [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
+21 -29
View File
@@ -34,22 +34,6 @@ features:
height: 36
link: /fr/guide/what-is-dozzle#real-time-monitoring
linkText: En savoir plus
- title: Analyse SQL des logs
details: Interrogez vos logs avec DuckDB et WebAssembly. Du SQL complet, exécuté entièrement dans le navigateur.
icon:
src: /icons/sql.svg
width: 36
height: 36
link: /fr/guide/sql-engine
linkText: En savoir plus
- title: Alertes et webhooks
details: Repérez des motifs dans vos logs avec des expressions puissantes et notifiez Slack, Discord, ntfy ou n'importe quel webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /fr/guide/alerts-and-webhooks
linkText: En savoir plus
- title: Multi-hôtes et Swarm
details: Connectez-vous à plusieurs hôtes Docker et clusters Swarm depuis une seule interface, sécurisée par des agents TLS.
icon:
@@ -58,6 +42,22 @@ features:
height: 36
link: /fr/guide/remote-hosts
linkText: En savoir plus
- title: Alertes et webhooks
details: Repérez des motifs dans vos logs, des métriques et des événements de cycle de vie avec des expressions, puis notifiez Slack, Discord, ntfy ou n'importe quel webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /fr/guide/alerts-and-webhooks
linkText: En savoir plus
- title: Dozzle Cloud
details: Une couche managée optionnelle qui regroupe les pannes répétées, résume ce qui a cassé et vous joint par e-mail, Telegram ou Discord.
icon:
src: /icons/cloud.svg
width: 36
height: 36
link: /fr/guide/dozzle-cloud
linkText: En savoir plus
- title: Accès shell et exec
details: Attachez-vous aux conteneurs en cours d'exécution ou exécutez des commandes depuis le navigateur quand il faut creuser.
icon:
@@ -66,13 +66,13 @@ features:
height: 36
link: /fr/guide/shell
linkText: En savoir plus
- title: dtop dans votre terminal
details: Un compagnon en ligne de commande qui affiche vos conteneurs en direct, puis vous emmène directement dans Dozzle.
- title: Auto-hébergé et privé
details: Tourne sur votre propre infrastructure, avec authentification simple ou par proxy. Vos logs ne quittent jamais votre réseau.
icon:
src: /icons/terminal-command.svg
src: /icons/locked.svg
width: 36
height: 36
link: /fr/guide/dtop
link: /fr/guide/authentication
linkText: En savoir plus
- title: MCP pour les assistants IA
details: Exposez conteneurs, logs et statistiques via le Model Context Protocol pour que votre agent de code débogue avec vous.
@@ -82,13 +82,5 @@ features:
height: 36
link: /fr/guide/mcp
linkText: En savoir plus
- title: Auto-hébergé et privé
details: Tourne sur votre propre infrastructure, avec authentification simple ou par proxy. Vos logs ne quittent jamais votre réseau.
icon:
src: /icons/locked.svg
width: 36
height: 36
link: /fr/guide/authentication
linkText: En savoir plus
sourceHash: a11fae50734d
sourceHash: d045bec3b85e
---
+6 -4
View File
@@ -1,10 +1,12 @@
---
title: Alerts & Webhooks
title: Alerts
---
# Alerts & Webhooks
# Alerts
Dozzle has an alerting system that lets you monitor container logs, resource metrics, and lifecycle events, and receive notifications when specific conditions are met. Alerts use customizable expressions to filter containers and trigger conditions, and can send notifications to webhooks, Slack, Discord, ntfy, or [Dozzle Cloud](/guide/dozzle-cloud).
Dozzle can watch container logs, resource metrics, and lifecycle events, and notify you when a condition you describe is met. Rules are written as expressions, evaluated on your own instance, and delivered to a webhook, Slack, Discord, or ntfy.
Rules always live here, on the self-hosted instance, because that is where your logs are. If you have linked the instance to [Dozzle Cloud](/guide/dozzle-cloud), these same rules feed it, and delivery (grouping, summaries, muting, mobile channels) is configured there instead of per-destination below.
## <Icon icon="mdi:format-list-bulleted-type" inline /> Alert Types
@@ -80,7 +82,7 @@ You can also write your own payload template using Go's `text/template` syntax.
### Dozzle Cloud
You can also send alerts to [Dozzle Cloud](/guide/dozzle-cloud) for centralized monitoring across multiple Dozzle instances. See the [Dozzle Cloud guide](/guide/dozzle-cloud) for more details.
Linked instances get **Dozzle Cloud** as a destination automatically. Unlike a raw webhook it groups repeated failures into a single notification, summarizes what happened, and fans out to email, Telegram, Discord, Slack, ntfy, and browser push without configuring each one here. See [Dozzle Cloud](/guide/dozzle-cloud).
## <Icon icon="mdi:plus-circle-outline" inline /> Creating an Alert
+32 -88
View File
@@ -4,107 +4,51 @@ title: Dozzle Cloud
# Dozzle Cloud
[Dozzle Cloud](https://cloud.dozzle.dev) is an optional managed companion to self-hosted Dozzle. It links your instances together, summarizes container events, distributes alerts across multiple channels, and lets you ask questions about your infrastructure from chat. Dozzle itself remains fully open source and self-hosted; Cloud sits on top.
[Dozzle Cloud](https://cloud.dozzle.dev) is an optional managed companion to self-hosted Dozzle. Dozzle itself stays fully open source and self-hosted; Cloud sits on top of it and takes over the part that is genuinely hard to run yourself — deciding what is worth waking you up for, and figuring out what actually broke.
The goal is for Dozzle Cloud to feel like the personal SRE assistant you never knew you wanted: it watches your containers, tells you when something matters, and stays out of the way when nothing does.
Your Dozzle makes an outbound connection to Cloud. There is no inbound port, no public IP, and no agent to install.
## Features
**Free keeps you quiet. Pro goes looking.**
### <Icon icon="mdi:text-box-outline" inline /> Log Summaries
## <Icon icon="mdi:bell-ring-outline" inline /> Free: an intelligent notification layer
Container events are batched and summarized using an LLM. Each summary records severity, the source container, and a link back to the full log line in your Dozzle instance.
Most log alerting is a regex and a webhook, which means the first crash loop turns into two hundred identical messages and you mute the channel. The free tier exists to fix that part, and it is the whole alerting product rather than a trial of one.
### <Icon icon="mdi:group" inline /> Pattern Clustering
- **Smart alerts** — every alert your Dozzle rules fire is triaged into a sentence that names the cause, the container, and how bad it is, with a link back to the exact log line in your own Dozzle.
- **Repeats fold** — 47 crashes arrive as one alert that says 47. You get a recovery notice when it comes back.
- **Quiet by default** — suppression, severity filters, and pattern-based muting on every channel. Mute _this kind of alert_ rather than this one alert, and anything genuinely different still gets through.
- **Every channel** — email, Telegram, Discord, Slack, ntfy, webhooks, and browser push, all on free. See [Notification Channels](/guide/dozzle-cloud/channels).
- **Search and stats included** — every event is queryable the moment it lands, and CPU, memory, network, and disk are recorded as history. Neither counts against your event allowance.
- **One finding a week** — even on free, Cloud reads your logs and surfaces the most serious thing that nothing alerted on.
- **A working default rule** — linking an instance creates one for you (containers that exit with an error), so a new account gets a useful alert on day one without configuring anything.
- **Chat agent and MCP** — ask "any errors today?" in Telegram or Discord, and start, stop, or restart a container from the same conversation once you enable [Actions](/guide/actions) on your instance. MCP access is unlimited on every plan.
Repeated errors are grouped and counted instead of being delivered individually. A loop emitting the same exception 200 times produces one notification with a frequency, not 200.
> [!TIP]
> A newly connected instance gets 7 days of the full Pro experience: every finding, every morning. Free settles into one finding a week after that.
### <Icon icon="mdi:robot-outline" inline /> AI Agent
## <Icon icon="mdi:robot-outline" inline /> Pro: it goes looking before anything alerts
A chat-based agent answers questions about container state and recent log activity. It is available in Telegram and Discord.
Free tells you _that_ something happened, and keeps quiet when nothing did. Pro is the half that does not wait for an alert to exist.
On Pro and Team plans, the agent can also act on containers (start, stop, restart) directly from the conversation, without requiring shell access to the host.
- **Proactive triage, every morning** — Cloud reads your error logs, collapses them into patterns, and reports what is worth fixing. This is where a disk creeping toward full, or a container quietly restart-looping, shows up on a day when nothing fired at all. No alert rule has to exist for it.
- **Every finding, daily, with the fix** — not one a week with the rest locked. Findings age day to day while the problem lasts ("still happening, day four, three times worse") and close themselves when it stops.
- **Triage that goes and looks** — when the alert text alone is not enough to decide, it inspects the container and reads the surrounding logs before making a call, instead of guessing.
- **Full investigations on demand** — one click runs more passes with a stronger model, correlating across your containers, hosts, and timeline, and hands back a root cause with concrete steps.
- **Every host, one dashboard** — connect as many Dozzle instances as you run. Questions asked in chat cover all of them at once.
- **Longer memory** — 30 days of searchable logs and stats instead of 24 hours, which is the difference between "what happened last night" and "has this been happening all month".
### <Icon icon="mdi:calendar-clock" inline /> Daily Digests
See [Plans & Limits](/guide/dozzle-cloud/plans) for the full comparison.
A scheduled summary of recent activity across your linked instances: top error patterns, event counts, and overall health. Delivered by email at a time and timezone you configure.
## Where to go next
### <Icon icon="mdi:bell-ring-outline" inline /> Notification Channels
| Page | What it covers |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [Connecting Your Instance](/guide/dozzle-cloud/connecting) | Linking, why no public IP or open port is needed, firewall rules, troubleshooting |
| [Notification Channels](/guide/dozzle-cloud/channels) | Every channel, how to set each one up, and how to make alerts quieter |
| [Plans & Limits](/guide/dozzle-cloud/plans) | What each plan includes, what a triaged event is, what happens when you go over |
| [Your Data](/guide/dozzle-cloud/your-data) | What leaves your host, how to stop it, what Cloud stores, API keys |
Alerts can be routed to multiple channels in parallel. Each channel can be enabled or disabled independently and scoped to specific Dozzle instances.
| Channel | Alerts | Daily Digest | Two-way agent |
| ---------------------------------------------------------- | :----: | :----------: | :-----------: |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord | ✓ | ✓ | ✓ |
| <Icon icon="mdi:email-outline" inline /> Email | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Browser push | ✓ | | |
### <Icon icon="mdi:bell-sleep-outline" inline /> Notification Muting
Notifications can be muted for one hour, eight hours, until the next morning, or until the following week. Useful during incidents or planned maintenance.
### <Icon icon="mdi:view-dashboard-outline" inline /> Multi-Instance Dashboard
Linked Dozzle instances appear in a single dashboard. Each instance authenticates with an API key, with no additional agent required on the host. The dashboard shows online status, container inventory, and live log streaming.
### <Icon icon="mdi:database-search-outline" inline /> Full-Text Log Search
Every log line forwarded from your linked instances is written into a full-text search index. You can query across all instances at once, or filter by container, severity, or time range. Searches return results in milliseconds even over weeks of history, and each match links back to the surrounding context in the source instance. Retention is plan-dependent and ranges from 24 hours to 30 days.
### <Icon icon="mdi:shield-lock-outline" inline /> Security
- API keys are hashed with BLAKE2b and support expiration.
- Sign-in uses GitHub or Google OAuth.
- Logs and event content are stored only for as long as your plan's retention window.
## Connecting an Instance
To link a self-hosted Dozzle to Dozzle Cloud:
1. Open your Dozzle instance and click the **cloud** icon in the top bar.
2. Click **Link instance**. You will be redirected to authenticate and confirm the connection.
3. Once linked, configure alert subscriptions inside Dozzle to choose which events are forwarded.
## Controlling What Gets Forwarded
By default, every running container streams its logs to Dozzle Cloud while linked. For noisy containers where info-level chatter has no diagnostic value, you can filter or fully opt-out per container with a single label.
### `dev.dozzle.cloud.min_level`
| Value | Effect |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| _(unset)_ | All log lines are forwarded. Default. |
| `disabled` | The container is completely skipped. No logs are forwarded to Cloud. |
| `trace` | Same as unset, since trace is the lowest level. Everything is forwarded. |
| `debug` / `info` / `warn` / `error` / `fatal` | Only lines at that level or higher are forwarded. Lines without a detected level always pass through. |
An unrecognized value (a typo like `warning` or `wran`) is logged as an error and ignored, so the container streams everything as if the label were unset.
The label is read when the log reader starts. Changing it on a running container takes effect after the container restarts.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Only forward warn/error/fatal to Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# Don't send anything from this container
- dev.dozzle.cloud.min_level=disabled
```
The filter runs on your Dozzle instance before logs leave the host, so dropped lines never touch the network or count against your plan. Local log viewing in Dozzle is unaffected.
## Pricing
The free tier is intentionally generous; you should be able to actually use Dozzle Cloud on a homelab or a small team without hitting a wall. Paid plans exist for higher event volumes, longer retention, and the agent's container actions. See [cloud.dozzle.dev](https://cloud.dozzle.dev) for current limits and plan details.
Alert rules themselves are configured on your own instance, not in Cloud. See [Alerts](/guide/alerts-and-webhooks).
## Feedback
+118
View File
@@ -0,0 +1,118 @@
---
title: Notification Channels
---
# Notification Channels
Channels are configured in [Dozzle Cloud](/guide/dozzle-cloud) and control _where_ alerts go. What _triggers_ an alert is configured on your self-hosted instance — see [Alerts](/guide/alerts-and-webhooks).
Enable as many as you like. Every enabled channel receives every alert, and each can be turned on or off independently.
## Available channels
| Channel | Alerts | Daily digest | Two-way agent |
| ----------------------------------------------------------- | :----: | :----------: | :-----------: |
| <Icon icon="mdi:email-outline" inline /> Email | ✓ | ✓ | |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord bot (DM) | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord webhook | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhooks | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> Browser push | ✓ | | |
All channels are available on every plan, including free.
## Email
Set up automatically with the address you signed up with. Nothing to configure. To stop it, disable the email channel. If alerts stop arriving unexpectedly, check spam first — the first alert occasionally lands there, and marking it "not spam" fixes it permanently.
## Telegram
Choose **Telegram** on the Channels page, follow the link to open the bot, and press **Start**. The channel activates once the bot has heard from you.
Telegram is two-way. You can reply in the same chat and ask about your containers — "any errors today?", "show CPU usage", "what alerts do I have?" — and get answers about live state.
## Discord
Discord has **two separate channel types**, and having both running at once is the usual reason for receiving every alert twice.
**Discord bot (direct message)** — the bot sends alerts to you personally as a DM. Two-way, so you can ask it questions. Set up by authorizing the bot from the Channels page.
**Discord webhook (server channel)** — alerts post into a channel on your server, such as `#alerts`. One-way. Set up by creating a webhook in your Discord server settings and pasting the URL into Cloud.
If alerts arrive in both your DMs and a server channel, you have both configured. Disable whichever you do not want; turning one off leaves the other running. A common setup is to keep the shared server channel and switch off the DM.
## Slack
Create an incoming webhook in your Slack workspace and paste the URL into the Slack channel on the Channels page.
## ntfy
Enter your topic URL. Both ntfy.sh and a self-hosted ntfy server work. Popular for phone notifications without an extra account.
## Webhooks
Enter any URL that accepts a POST. Alerts are delivered as JSON, so you can route them into whatever you already run — Home Assistant, n8n, a script, another alerting tool.
> [!NOTE]
> This is a Cloud channel, distinct from the webhooks your self-hosted Dozzle can call directly. See [Alerts](/guide/alerts-and-webhooks) for those, including the Go template variables.
## Browser push
Enable it on the Channels page and allow notifications when your browser asks. Alerts then arrive as desktop notifications.
If nothing arrives after enabling it, the browser most likely denied the permission prompt. Browsers do not re-ask once denied — clear the site's notification permission in browser settings and enable it again. Browser push does not work in a private or incognito window.
## <Icon icon="mdi:bell-sleep-outline" inline /> Making alerts quieter
You should only be interrupted when it matters. If Cloud is noisy, that is a tuning problem, and these are the tools for it.
| Situation | Do this |
| ------------------------------------------ | ------------------------------------- |
| One recurring error you already know about | **Mute the pattern** |
| Alerts are useful but too frequent | **Rate one thumbs down** |
| Planned maintenance, backups, upgrades | **Mute the pattern before you start** |
| Right alert, wrong app | **Disable that channel** |
| You want none of it, from anywhere | **Disable every channel** |
Deleting the alert rule is almost never the right answer. It removes a whole category of monitoring to solve one noisy line.
### Mute a recurring alert
Muting is pattern-based: it silences _this kind of alert_, not just the one in front of you. Later occurrences stay quiet, and anything genuinely different still gets through.
- **On an alert** — open it in Cloud and choose to mute it.
- **In chat** — say "mute this" or "stop telling me about X". The agent states the exact pattern it is about to mute and waits for you to confirm, because a mute is durable and could hide a real failure later.
Muting lasts until you undo it. Ask "what have I muted?" to list your mute rules, and unmute the same way. Muted alerts are still recorded — muting changes what interrupts you, not what is monitored.
### Fewer, not none
If an alert is genuinely useful but arrives too often, rate it **thumbs down** rather than muting it. That is the signal for "keep watching this, interrupt me less". Thumbs up on alerts that got it right helps the same way.
### Repeats are already grouped
Before muting, check whether the problem is repetition. Repeated occurrences of the same failure are folded into a single alert with a count. If you are getting many alerts, they are usually many _different_ problems, or you are over your plan's event allowance and alerts have dropped to raw and ungrouped. See [Plans & Limits](/guide/dozzle-cloud/plans).
### Filter at the source
For a container that is noisy during normal operation, the better fix is upstream: the `dev.dozzle.cloud.min_level` label stops low-severity lines from ever leaving your host. See [Your Data](/guide/dozzle-cloud/your-data).
## Why didn't I get an alert?
**1. Is there a rule for it?** An error in your logs does not by itself produce an alert; something has to be watching for it. The default rule only covers containers exiting with an error — a container that logs errors while staying up needs a log rule.
**2. Is a channel enabled?** A rule with no enabled channel has nowhere to deliver.
**3. Is the instance connected?** If it was offline when the problem happened, nothing was forwarded. See [Connecting Your Instance](/guide/dozzle-cloud/connecting).
**4. Was it grouped into an alert you already got?** Forty failures produce one alert saying forty. That is intended, not a miss.
**5. Did you mute it?** Check your mute rules.
**6. Is the container excluded from forwarding?** See [Your Data](/guide/dozzle-cloud/your-data).
**7. Are you over your plan's limits?** Past the allowance, delivery changes and alerts are sampled.
**8. Check your spam folder**, for email specifically.
+109
View File
@@ -0,0 +1,109 @@
---
title: Connecting Your Instance
---
# Connecting Your Instance
Linking a self-hosted Dozzle to [Dozzle Cloud](/guide/dozzle-cloud), confirming it actually connected, and fixing it when it did not.
## Link an instance
1. Open your self-hosted Dozzle and click the **cloud** icon in the top bar.
2. Click **Link instance**. You are sent to Cloud to sign in with GitHub or Google and confirm.
3. The instance appears on the Cloud dashboard within a few seconds.
There is no password to create, and no agent to install on the host.
## You do not need a public IP, an open port, or a domain
This is the most common worry, and the answer is no on all three.
Your Dozzle instance opens an **outbound** connection to Cloud and holds it open. Cloud never connects back to you, never scans for your host, and never needs to reach your address. That means it works normally when Dozzle is:
- behind NAT on a home network, with no port forwarding
- on a private RFC1918 address such as `192.168.1.50`
- on a Tailscale, WireGuard, or ZeroTier network
- behind CGNAT, where you could not port-forward even if you wanted to
- on a laptop that changes networks
No reverse proxy, dynamic DNS name, or static IP is required.
## Firewall rules
Only **outbound** access is needed. Allow your Dozzle host to reach:
```
agent.doligence.dozzle.dev:443 (TCP, outbound)
```
That single destination on port 443 is enough. If your firewall filters by hostname rather than IP, allow the hostname — the addresses behind it can change. Most home and small-office firewalls allow all outbound traffic already, so usually there is nothing to configure.
## Where rules and channels live
This trips up almost everyone, so it is worth stating plainly.
| What you want to change | Where you do it |
| ------------------------------------------------------------- | --------------------------------------------------------- |
| **What triggers an alert** — containers, patterns, thresholds | Self-hosted Dozzle → [Alerts](/guide/alerts-and-webhooks) |
| **Where alerts are delivered** — email, Telegram, Slack, ... | Dozzle Cloud → [Channels](/guide/dozzle-cloud/channels) |
| Reviewing past alerts, muting, upgrading | Dozzle Cloud |
The rule is defined on your own instance because that is where your logs are. Delivery is configured in Cloud because that is what holds the connection to your phone. If you are looking for somewhere in Cloud to say "tell me when this container errors" and cannot find it, that is why — open your self-hosted Dozzle instead.
## Connecting more than one instance
Each instance links separately, using the same steps and the same Cloud account. Once linked, all of them appear together on the dashboard, and questions asked in chat cover every connected instance at once.
That combined view lives in Cloud, not inside any one self-hosted Dozzle. A self-hosted Dozzle shows the hosts you configured on it directly; it does not display other linked instances.
Linking several Dozzle instances is a different thing from Dozzle's own [Agent](/guide/agent) and [Remote Hosts](/guide/remote-hosts) features, which connect extra Docker hosts to a single Dozzle. Both are supported and can be combined.
The free plan links one instance at a time. See [Plans & Limits](/guide/dozzle-cloud/plans).
## Nothing is showing up
Work through these in order.
**1. Is the Dozzle container running?**
If Dozzle itself is stopped or restarting, nothing reaches Cloud.
**2. Was the link ever completed?**
Starting the link and not approving it leaves nothing behind. Redo the steps above and confirm the instance appears on the Instances page.
**3. Was the API key deleted?**
Deleting an instance's API key unlinks it permanently. There is no way to reattach the old key — link again to get a new one.
**4. Is outbound traffic being blocked?**
Restrictive networks (corporate, university, some VPS providers) may block outbound 443 to destinations not on an allowlist. See _Firewall rules_ above.
**5. Did you hit the free instance limit?**
The free plan links one instance at a time. Attempting to link a second shows a limit message instead of connecting.
**6. Is the container excluded from forwarding?**
A container labelled `dev.dozzle.cloud.min_level=disabled` sends nothing by design. If one specific container is missing while others work, check its labels. See [Your Data](/guide/dozzle-cloud/your-data).
## Letting the agent control containers
Reading logs and container state works as soon as an instance is linked. Start, stop, and restart are refused by your instance unless you enable them yourself:
::: code-group
```yaml [docker-compose.yml]
services:
dozzle:
image: amir20/dozzle
environment:
DOZZLE_ENABLE_ACTIONS: true
```
```sh
docker run ... amir20/dozzle --enable-actions
```
:::
This is a setting on **your** Dozzle, not in Cloud, because it governs what your Dozzle is willing to do to your containers. Restart Dozzle after changing it. See [Actions](/guide/actions).
## Unlinking
Delete the instance's API key on the Instances page in Cloud. The connection drops, no further data is forwarded, and your self-hosted Dozzle keeps working exactly as before. Linking never changes local log viewing.
+83
View File
@@ -0,0 +1,83 @@
---
title: Plans & Limits
---
# Plans & Limits
What each plan includes, what counts against it, and what happens when you go over.
The free plan is the complete alerting product, not a trial of one. What the paid plans buy is the proactive half — the review that reads your logs and finds what never fired an alert — plus room to run.
## Plans
| | Free | Pro | Team |
| ---------------------------------------------------- | :----------: | :----------: | :-----------: |
| Price | $0 | $5 / month | $15 / month |
| Findings (reads your logs, finds what never alerted) | 1 / week | All, daily | All, daily |
| Fix included with each finding | — | ✓ | ✓ |
| Triage inspects containers and logs when unsure | — | ✓ | ✓ |
| Full investigation on demand | — | ✓ | ✓ |
| Triaged events per month | 2,000 | 50K | 250K |
| Searchable logs | 10 GB · 24 h | 50 GB · 30 d | 100 GB · 30 d |
| Alert and event history | 1 day | 14 days | 30 days |
| Stats history (CPU, memory, network, disk) | 24 h | 30 days | 30 days |
| Connected instances | 1 | Unlimited | Unlimited |
| Assistant chats per month | 10 | 200 | 1,000 |
| Priority support | — | ✓ | ✓ |
Smart alerts, repeat folding, suppression and severity filters, search indexing, stats monitoring, every notification channel, container actions, and unlimited MCP access are on **every** plan, including free.
Current pricing lives at [cloud.dozzle.dev](https://cloud.dozzle.dev).
## What counts as a triaged event
A **triaged event** is a container event or matching log line that went through the triage pipeline, which decides whether to send a new alert, fold it into an existing one, or stay silent. You are paying for that work, not for raw storage.
Ordinary log lines are not events. They count toward searchable log volume instead. So a very chatty container costs storage while a container in a crash loop costs events.
If a container exits 47 times, that is 47 events against the limit — but one alert that says 47. That is the whole point.
**Findings cost neither.** The log review reads your logs rather than your alert history, so it does not touch the event count, and it works with no alert rules configured at all. Only your monthly log volume applies.
**Search and stats are free on every plan.** Search indexing is on from the moment an instance connects, and CPU, memory, network, and disk series stream from your instances at no charge. The plan only changes how much and how far back.
## Going over the allowance
Nothing breaks. You drop into sampling mode:
- Triage pauses.
- Event history keeps recording, so nothing is lost.
- Roughly one in ten events comes through as a **raw** alert, so you can still see what is happening.
- Repeats are no longer folded into a single alert with a count.
The practical effect is that alerts get noisier and less useful rather than disappearing, and you will feel it in your inbox before you notice it on a usage page. If your alerts have suddenly become raw and repetitive, check usage first.
This applies on paid plans too. Allowances reset at the start of each month.
> [!TIP]
> Most accounts never come close. Only a genuine firehose — a container crash-looping for days — goes past the free allowance, and the alert naming that container arrives long before the limit does.
## Retention
Retention sets how far back your history goes: alerts, events, and log search results. On free that is one day, so a search for something from last week returns nothing even though it happened. That is the most common reason a search appears to "lose" data.
Stats retention is 24 hours on free and 30 days on paid plans. Asking for a longer window than your plan allows returns the window you actually have rather than an error.
## The instance limit
The free plan links one instance at a time. Linking a second shows a limit message. You have two options:
- **Move the slot.** Delete the existing instance's API key on the Instances page, then link the new one. This is permanent for the old instance — its history stays, but you would have to link it again from scratch.
- **Upgrade** to keep both connected at once.
The limit is about how much a free account forwards, not a lock on a feature. Everything else on free works with the instance you have linked.
## Checking your usage
The usage page in Cloud shows events, log bytes, and assistant chats used this month against your allowance. You can also ask in chat: "how much have I used this month?".
## Changing or cancelling
Upgrade from the pricing page or from settings. Billing is handled by Stripe; payment methods, invoices, and receipts are managed there through the billing link in your settings.
Cancelling stops future charges and moves you to the free plan at the end of the period you have paid for. Your account and history stay.
+82
View File
@@ -0,0 +1,82 @@
---
title: Your Data
---
# Your Data
What leaves your host, how to stop it, and what [Dozzle Cloud](/guide/dozzle-cloud) stores once it arrives.
## Linking does not expose your Dozzle
Your Dozzle makes an **outbound** connection to Cloud. Nothing inbound is opened, no port is forwarded, and Cloud cannot reach your instance except over the connection your instance started. If you unlink, that access ends immediately.
Linking also does not add authentication to your self-hosted Dozzle. That is a separate question and an important one: **by default, Dozzle has no login.** Anyone who can reach it on your network can view your logs. If you have exposed Dozzle to the internet or share your network, configure [Authentication](/guide/authentication) on the instance itself. This applies whether or not you link.
Container actions — start, stop, restart — stay refused by your instance unless you turn them on with `DOZZLE_ENABLE_ACTIONS`. See [Actions](/guide/actions).
## Controlling what gets forwarded
The most effective privacy control is not sending something in the first place. By default every running container streams its logs to Cloud while linked. For containers whose info-level chatter has no diagnostic value, or that handle material you would rather keep on the host, filter or opt out with a label.
### `dev.dozzle.cloud.min_level`
| Value | Effect |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| _(unset)_ | All log lines are forwarded. Default. |
| `disabled` | The container is completely skipped. No logs are forwarded to Cloud. |
| `trace` | Same as unset, since trace is the lowest level. Everything is forwarded. |
| `debug` / `info` / `warn` / `error` / `fatal` | Only lines at that level or higher are forwarded. Lines without a detected level always pass through. |
An unrecognized value (a typo like `warning` or `wran`) is logged as an error and ignored, so the container streams everything as if the label were unset.
The label is read when the log reader starts. Changing it on a running container takes effect after the container restarts.
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# Only forward warn/error/fatal to Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# Don't send anything from this container
- dev.dozzle.cloud.min_level=disabled
```
The filter runs on your Dozzle instance **before logs leave the host**, so dropped lines never touch the network and never count against your plan. Local log viewing in Dozzle is unaffected.
## What Cloud stores
- **Log lines** forwarded from your linked instances, for full-text search.
- **Events and alerts** that matched your rules, with their investigations and findings.
- **Container and host metadata** — names, images, states, resource usage.
- **Your account** — email address, plan, notification channel settings.
- **Chat history** with the agent.
Everything is scoped to your account; other users cannot see your data. Stored data is kept for your plan's retention window and then deleted automatically. See [Plans & Limits](/guide/dozzle-cloud/plans).
## API keys
Each linked instance authenticates with its own API key. Keys are hashed with BLAKE2b, support expiration, and are never stored in plain text.
Deleting a key on the Instances page immediately and permanently disconnects that instance. The key cannot be recovered or reattached — link the instance again to get a new one. If you believe a key has been exposed, delete it and relink. That is the complete remedy: the old key stops working the moment it is deleted.
## Signing in
Cloud uses GitHub or Google sign-in. There is no separate password to create, and Cloud never sees your GitHub or Google password. If you sign up with one provider and later sign in with the other using the same email address, you reach the same account.
## Stopping collection without closing your account
1. Delete your instances' API keys on the Instances page. Forwarding stops immediately.
2. Disable your channels on the Channels page, so nothing is delivered.
Existing history then ages out on its own within your plan's retention window.
## Closing your account
There is no self-service delete button yet. Email **amir@dozzle.dev** from the address on the account and ask for deletion. If you are on a paid plan, cancel it first from settings so you are not billed again.
Before or instead of that, the steps above remove essentially everything yourself: deleting your API keys stops all collection, and stored data ages out with retention.
+7 -5
View File
@@ -1,10 +1,10 @@
---
title: Introducing dtop
title: dtop CLI
---
# What is dtop?
# dtop
`dtop` is a command-line companion to Dozzle that provides a real-time terminal view of the Docker containers running on your system. Think of it as a richer `docker ps` you can leave open in a tmux pane — and when you need the full log history, search, or charts, `dtop` lets you jump straight into Dozzle.
`dtop` is a command-line companion to Dozzle that gives you a real-time terminal view of the Docker containers running on your system. Think of it as a richer `docker ps` you can leave open in a tmux pane, and when you need the full log history, search, or charts, `dtop` lets you jump straight into Dozzle.
It connects to Docker hosts via `ssh`, `tcp`, or a local `unix socket`, making it well suited for the same multi-host setups Dozzle supports.
@@ -26,6 +26,8 @@ docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop:
Full installation instructions can be found at [https://github.com/amir20/dtop](https://github.com/amir20/dtop?tab=readme-ov-file#installation).
## Project Status
## Scope
`dtop` is a new project and not feature rich as Dozzle. However, I am actively working on adding more features. I use it personally to monitor all my containers across multiple hosts on the command line. If you have suggestions then please open issues at [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
`dtop` is deliberately smaller than Dozzle. It covers the "what is running right now, and is anything on fire" question from a terminal, and hands off to Dozzle for everything that needs a browser: log history, search, SQL queries, and stat charts.
It is developed in its own repository and ships on its own schedule. Suggestions and bug reports belong at [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues).
+20 -28
View File
@@ -34,22 +34,6 @@ features:
height: 36
link: /guide/what-is-dozzle#real-time-monitoring
linkText: Learn More
- title: SQL Log Analysis
details: Query your logs with DuckDB and WebAssembly — full SQL, running entirely in the browser.
icon:
src: /icons/sql.svg
width: 36
height: 36
link: /guide/sql-engine
linkText: Learn More
- title: Alerts & Webhooks
details: Match log patterns with powerful expressions and notify Slack, Discord, ntfy, or any webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /guide/alerts-and-webhooks
linkText: Learn More
- title: Multi-host & Swarm
details: Connect to multiple Docker hosts and Swarm clusters from a single UI, secured with TLS agents.
icon:
@@ -58,6 +42,22 @@ features:
height: 36
link: /guide/remote-hosts
linkText: Learn More
- title: Alerts & Webhooks
details: Match log patterns, metrics, and lifecycle events with expressions, then notify Slack, Discord, ntfy, or any webhook.
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /guide/alerts-and-webhooks
linkText: Learn More
- title: Dozzle Cloud
details: An optional managed layer that groups repeated failures, summarizes what broke, and reaches you on email, Telegram, or Discord.
icon:
src: /icons/cloud.svg
width: 36
height: 36
link: /guide/dozzle-cloud
linkText: Learn More
- title: Shell & Exec Access
details: Attach to running containers or exec commands directly from the browser when you need to dig deeper.
icon:
@@ -66,13 +66,13 @@ features:
height: 36
link: /guide/shell
linkText: Learn More
- title: dtop in Your Terminal
details: A command-line companion that gives you a live view of your containers, then jumps straight into Dozzle.
- title: Self-hosted & Private
details: Runs in your own infrastructure with simple or forward-proxy auth. Your logs never leave your network.
icon:
src: /icons/terminal-command.svg
src: /icons/locked.svg
width: 36
height: 36
link: /guide/dtop
link: /guide/authentication
linkText: Learn More
- title: MCP for AI Assistants
details: Expose containers, logs, and stats over the Model Context Protocol so your coding agent can debug alongside you.
@@ -82,12 +82,4 @@ features:
height: 36
link: /guide/mcp
linkText: Learn More
- title: Self-hosted & Private
details: Runs in your own infrastructure with simple or forward-proxy auth. Your logs never leave your network.
icon:
src: /icons/locked.svg
width: 36
height: 36
link: /guide/authentication
linkText: Learn More
---
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 32 32"><g fill="#646cff"><circle cx="11" cy="17" r="6"/><circle cx="16.5" cy="13" r="7"/><circle cx="22" cy="17.5" r="5.5"/><rect x="10" y="17" width="13" height="6" rx="3"/></g></svg>

After

Width:  |  Height:  |  Size: 263 B

+7 -5
View File
@@ -1,11 +1,13 @@
---
title: 警报与 Webhook
sourceHash: daf372975955
title: 警报
sourceHash: 71776f8fae5c
---
# 警报与 Webhook
# 警报
Dozzle 内置了一套警报系统,可以监控容器日志、资源指标和生命周期事件,并在满足特定条件时发出通知。警报使用可自定义的表达式来筛选容器和触发条件,并可把通知发送到 webhook、Slack、Discord、ntfy 或 [Dozzle Cloud](/zh/guide/dozzle-cloud)。
Dozzle 可以监控容器日志、资源指标和生命周期事件,并在满足你描述的条件时通知你。规则用表达式书写,在你自己的实例上求值,然后投递到 webhook、Slack、Discord 或 ntfy。
规则始终留在这里,也就是自托管实例上,因为日志就在那里。如果你已经把实例连接到 [Dozzle Cloud](/zh/guide/dozzle-cloud),同样的规则也会供给 Cloud,而投递方式(聚合、摘要、静音、手机渠道)在那边配置,而不是在下面逐个目标配置。
## <Icon icon="mdi:format-list-bulleted-type" inline /> 警报类型
@@ -81,7 +83,7 @@ Webhook 会向你指定的 URL 发送一个 HTTP POST 请求。Dozzle 为常用
### Dozzle Cloud
你也可以把警报发送到 [Dozzle Cloud](/zh/guide/dozzle-cloud),集中监控多个 Dozzle 实例。详见 [Dozzle Cloud 指南](/zh/guide/dozzle-cloud)。
已连接的实例会自动获得 **Dozzle Cloud** 这个目标。和原始 webhook 不同,它会把重复的故障聚合成一条通知、总结发生了什么,并分发到邮件、Telegram、Discord、Slack、ntfy 和浏览器推送,无需在这里逐个配置。详见 [Dozzle Cloud](/zh/guide/dozzle-cloud)。
## <Icon icon="mdi:plus-circle-outline" inline /> 创建警报
+34 -90
View File
@@ -1,112 +1,56 @@
---
title: Dozzle Cloud
sourceHash: 34c0056128a5
sourceHash: 49197a749322
---
# Dozzle Cloud
[Dozzle Cloud](https://cloud.dozzle.dev) 是自托管 Dozzle 的可选托管伴侣服务。它把你的各个实例连接起来,汇总容器事件,把警报分发到多个渠道,并让你在聊天中就能询问基础设施的情况。Dozzle 本身仍然是完全开源、自托管的;Cloud 只是在其之上。
[Dozzle Cloud](https://cloud.dozzle.dev) 是自托管 Dozzle 的可选托管伴侣。Dozzle 本身依然完全开源、完全自托管;Cloud 建在它之上,接手那些真正难以自己搭建的部分:判断什么值得把你叫醒,以及弄清楚到底是什么坏了。
我们的目标是让 Dozzle Cloud 成为那个你没想到自己需要的私人 SRE 助手:它盯着你的容器,有事时告诉你,没事时不打扰你。
你的 Dozzle 会向 Cloud 发起一条出站连接。没有入站端口,不需要公网 IP,也不用安装任何 agent。
## 功能
**免费版让你耳根清净,Pro 会主动去找问题。**
### <Icon icon="mdi:text-box-outline" inline /> 日志摘要
## <Icon icon="mdi:bell-ring-outline" inline /> 免费版:一层智能通知
容器事件会被批量汇总,并由大语言模型生成摘要。每条摘要都会记录严重程度、来源容器,以及回到你 Dozzle 实例中完整日志行的链接。
大多数日志告警不过是一条正则加一个 webhook,于是第一次崩溃重启循环就变成两百条一模一样的消息,最后你把整个频道静音了。免费版就是为了修好这一段,而且它是完整的告警产品,不是它的试用版。
### <Icon icon="mdi:group" inline /> 模式聚类
- **智能告警** —— 你的 Dozzle 规则触发的每一条告警,都会被整理成一句话,说明原因、是哪个容器、有多严重,并附上跳回你自己 Dozzle 中那一行日志的链接。
- **重复会被折叠** —— 47 次崩溃汇成一条写着 47 的告警。恢复时还会收到一条恢复提醒。
- **默认安静** —— 每个渠道都支持抑制、按严重程度过滤和按模式静音。静音的是*这一类告警*而不是眼前这一条,真正不同的仍然会送达。
- **所有渠道** —— 邮件、Telegram、Discord、Slack、ntfy、webhook 和浏览器推送,免费版全都有。见[通知渠道](/zh/guide/dozzle-cloud/channels)。
- **搜索和指标都包含在内** —— 每个事件一到就能检索,CPU、内存、网络和磁盘都会作为历史记录下来。两者都不占用事件额度。
- **每周一条发现** —— 即使在免费版,Cloud 也会读你的日志,把没有任何告警发现的最严重问题挑出来。
- **开箱可用的默认规则** —— 连接实例时会自动为你创建一条(以错误码退出的容器),所以新账号第一天就能收到有用的告警,什么都不用配。
- **聊天 agent 和 MCP** —— 在 Telegram 或 Discord 里问“今天有报错吗?”,只要你在实例上开启了[操作](/zh/guide/actions),还能在同一个会话里启动、停止或重启容器。MCP 访问在所有套餐中都是无限的。
重复出现的错误会被归并并计数,而不是逐条推送。一个循环抛出同一个异常 200 次,只会产生一条带频次的通知,而不是 200 条。
> [!TIP]
> 新连接的实例会获得 7 天完整的 Pro 体验:每天早上推送全部发现。之后免费版会稳定在每周一条。
### <Icon icon="mdi:robot-outline" inline /> AI 助手
## <Icon icon="mdi:robot-outline" inline /> Pro:在任何告警之前就去找问题
一个基于聊天的助手,可以回答关于容器状态和近期日志活动的问题。它可以在 Telegram 和 Discord 中使用。
免费版告诉你*出事了*,没事的时候则保持安静。Pro 是不等告警出现就动手的那一半。
在 Pro 和 Team 套餐中,助手还可以直接在对话里对容器执行操作(启动、停止、重启),不需要主机的终端访问权限。
- **每天早上主动巡检** —— Cloud 读你的错误日志,归纳成模式,报告哪些值得修。磁盘慢慢被写满、容器悄悄地重启循环,就是在这里、在一条告警都没触发的日子里被发现的。这不需要任何告警规则存在。
- **每条发现,每天,都带修复建议** —— 不是每周一条、其余锁住。发现会随着问题持续而逐日累积(“仍在发生,第四天,严重了三倍”),问题停止时自动关闭。
- **会主动去看的分诊** —— 当仅凭告警文本无法判断时,它会检查容器、读取前后日志再下结论,而不是靠猜。
- **随时发起完整调查** —— 一次点击就用更强的模型跑更多轮,跨你的容器、主机和时间线做关联,最后交给你根因和具体步骤。
- **所有主机,一个面板** —— 你运行多少个 Dozzle 实例就能连多少个。聊天里问的问题一次覆盖全部。
- **更长的记忆** —— 可检索的日志和指标从 24 小时变成 30 天,这是“昨晚发生了什么”和“这事是不是整个月都在发生”之间的差别。
### <Icon icon="mdi:calendar-clock" inline /> 每日摘要
完整对比见[套餐与限制](/zh/guide/dozzle-cloud/plans)。
对你所有已连接实例近期活动的定时汇总:主要错误模式、事件数量以及整体健康状况。按你配置的时间和时区通过邮件发送。
## 接下来看什么
### <Icon icon="mdi:bell-ring-outline" inline /> 通知渠道
| 页面 | 内容 |
| ------------------------------------------------- | ------------------------------------------------------ |
| [连接你的实例](/zh/guide/dozzle-cloud/connecting) | 连接步骤、为什么不需要公网 IP 或开放端口、防火墙、排障 |
| [通知渠道](/zh/guide/dozzle-cloud/channels) | 所有渠道、逐个的配置方法,以及怎么让它安静下来 |
| [套餐与限制](/zh/guide/dozzle-cloud/plans) | 每个套餐包含什么、什么算一次处理事件、超额之后会怎样 |
| [你的数据](/zh/guide/dozzle-cloud/your-data) | 什么会离开你的主机、如何阻止、Cloud 存了什么、API 密钥 |
警报可以并行发送到多个渠道。每个渠道都可以独立启用或禁用,也可以限定到特定的 Dozzle 实例。
| 渠道 | 警报 | 每日摘要 | 双向助手 |
| -------------------------------------------------------- | :--: | :------: | :------: |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord | ✓ | ✓ | ✓ |
| <Icon icon="mdi:email-outline" inline /> 邮件 | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhook | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> 浏览器推送 | ✓ | | |
### <Icon icon="mdi:bell-sleep-outline" inline /> 通知静音
通知可以静音一小时、八小时、到第二天早上,或者到下一周。在故障处理或计划维护期间很有用。
### <Icon icon="mdi:view-dashboard-outline" inline /> 多实例仪表盘
已连接的 Dozzle 实例会出现在同一个仪表盘中。每个实例使用 API 密钥进行身份验证,主机上不需要额外的代理。仪表盘会显示在线状态、容器清单和实时日志流。
### <Icon icon="mdi:database-search-outline" inline /> 全文日志搜索
从已连接实例转发过来的每一行日志都会写入全文搜索索引。你可以一次跨所有实例查询,也可以按容器、严重程度或时间范围过滤。即使跨越数周的历史记录,搜索也能在毫秒级返回结果,每条匹配都会链接回源实例中的上下文。保留时长取决于套餐,从 24 小时到 30 天不等。
### <Icon icon="mdi:shield-lock-outline" inline /> 安全性
- API 密钥使用 BLAKE2b 哈希存储,并支持设置过期时间。
- 登录使用 GitHub 或 Google OAuth。
- 日志和事件内容只在你套餐的保留期内存储。
## 连接一个实例
要把自托管的 Dozzle 连接到 Dozzle Cloud:
1. 打开你的 Dozzle 实例,点击顶栏中的 **cloud** 图标。
2. 点击 **Link instance**。你会被跳转去完成身份验证并确认连接。
3. 连接完成后,在 Dozzle 中配置警报订阅,选择要转发哪些事件。
## 控制转发的内容
默认情况下,实例连接期间每个运行中的容器都会把日志推送到 Dozzle Cloud。对于那些 info 级别的絮叨没有诊断价值的吵闹容器,你可以用一个标签按容器过滤,或者完全退出。
### `dev.dozzle.cloud.min_level`
| 值 | 效果 |
| --------------------------------------------- | ------------------------------------------------------------ |
| _(未设置)_ | 转发所有日志行。这是默认行为。 |
| `disabled` | 完全跳过该容器,不向 Cloud 转发任何日志。 |
| `trace` | 与未设置相同,因为 trace 是最低级别。所有内容都会被转发。 |
| `debug` / `info` / `warn` / `error` / `fatal` | 只转发该级别及以上的日志行。没有识别出级别的行始终会被转发。 |
无法识别的值(比如把 `warn` 写成 `warning` 或 `wran`)会被记为一条错误并忽略,容器会像没有设置标签一样转发全部内容。
这个标签在日志读取器启动时读取。在运行中的容器上修改它,需要容器重启后才会生效。
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# 只把 warn/error/fatal 转发到 Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# 不发送这个容器的任何内容
- dev.dozzle.cloud.min_level=disabled
```
过滤在日志离开主机之前就已经在你的 Dozzle 实例上完成,因此被丢弃的日志行不会经过网络,也不会计入你的套餐用量。Dozzle 中的本地日志查看不受影响。
## 价格
免费套餐是刻意做得慷慨的;在家庭实验室或小团队中,你应该能真正用起来 Dozzle Cloud 而不会撞墙。付费套餐面向更大的事件量、更长的保留期,以及助手的容器操作能力。当前的限额和套餐详情请见 [cloud.dozzle.dev](https://cloud.dozzle.dev)。
告警规则本身是在你自己的实例上配置的,不在 Cloud。见[警报](/zh/guide/alerts-and-webhooks)。
## 反馈
Dozzle Cloud 由开发 Dozzle 的同一个人打造,标准也一样:做人们真正愿意用的东西。如果你试用之后觉得哪里别扭、缺了什么,或者发现某个功能特别好用,欢迎[发起一个讨论](https://github.com/amir20/dozzle/discussions)。这些反馈决定了接下来会做什么。
Dozzle Cloud 和 Dozzle 出自同一个人之手,标准也一样:做人们真正愿意用的东西。如果你用下来觉得哪里别扭、缺了什么,或者哪里特别好用,欢迎[发起一个 discussion](https://github.com/amir20/dozzle/discussions)。这些反馈决定了接下来做什么。
+119
View File
@@ -0,0 +1,119 @@
---
title: 通知渠道
sourceHash: baae80ce439a
---
# 通知渠道
渠道在 [Dozzle Cloud](/zh/guide/dozzle-cloud) 里配置,决定告警*发往哪里*。*触发*告警的条件在你自托管的实例上配置,见[警报](/zh/guide/alerts-and-webhooks)。
想开几个就开几个。每个启用的渠道都会收到全部告警,各渠道可以独立开关。
## 可用渠道
| 渠道 | 告警 | 每日汇总 | 双向 agent |
| ----------------------------------------------------------------- | :--: | :------: | :--------: |
| <Icon icon="mdi:email-outline" inline /> 邮件 | ✓ | ✓ | |
| <Icon icon="mdi:telegram" inline /> Telegram | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord 机器人(私信) | ✓ | ✓ | ✓ |
| <Icon icon="ic:baseline-discord" inline /> Discord Webhook | ✓ | ✓ | |
| <Icon icon="mdi:slack" inline /> Slack | ✓ | | |
| <Icon icon="simple-icons:ntfy" inline /> ntfy | ✓ | | |
| <Icon icon="mdi:webhook" inline /> Webhook | ✓ | | |
| <Icon icon="mdi:bell-badge-outline" inline /> 浏览器推送 | ✓ | | |
所有渠道在所有套餐中都可用,包括免费版。
## 邮件
用你注册时的地址自动配置好,什么都不用设。想停就在 Channels 页面关掉邮件渠道。如果告警莫名其妙不来了,先看垃圾邮件箱:第一条告警偶尔会落在那里,标记为“非垃圾邮件”之后就一劳永逸了。
## Telegram
在 Channels 页面选择 **Telegram**,点链接打开机器人,按 **Start**。机器人收到你的消息后渠道就激活了。
Telegram 是双向的。你可以在同一个会话里回复并询问容器情况 ——“今天有报错吗?”“看看 CPU 占用”“我有哪些告警?”—— 拿到的是实时状态的答案。
## Discord
Discord 有**两种不同的渠道类型**,两个同时开着就是每条告警收到两遍的常见原因。
**Discord 机器人(私信)** —— 机器人把告警作为私信直接发给你。双向,可以向它提问。在 Channels 页面授权机器人即可完成配置。
**Discord Webhook(服务器频道)** —— 告警发到你服务器的某个频道里,比如 `#alerts`。单向。在 Discord 服务器设置里创建一个 webhook,把 URL 粘贴到 Cloud 即可。
如果私信和服务器频道都收到告警,说明两个你都配了。在 Channels 页面把不想要的那个关掉,关掉一个不影响另一个。常见做法是保留共享的服务器频道,关掉私信。
## Slack
在你的 Slack 工作区创建一个 incoming webhook,把 URL 粘贴到 Channels 页面的 Slack 渠道里。
## ntfy
填入你的 topic URL。ntfy.sh 和自托管的 ntfy 服务器都可以。很适合在不额外注册账号的情况下接收手机通知。
## Webhook
填入任何接受 POST 的 URL。告警以 JSON 形式投递,所以你可以把它接进现有的任何东西 —— Home Assistant、n8n、一个脚本,或者另一套告警工具。
> [!NOTE]
> 这是 Cloud 的渠道,和你自托管 Dozzle 可以直接调用的 webhook 是两回事。后者见[警报](/zh/guide/alerts-and-webhooks),包括 Go 模板变量。
## 浏览器推送
在 Channels 页面启用,浏览器询问时允许通知。之后告警会以桌面通知的形式出现。
如果启用后什么都收不到,多半是浏览器拒绝了权限请求。浏览器一旦被拒绝就不会再问了 —— 需要在浏览器设置里清除该站点的通知权限,然后重新启用。浏览器推送在隐私/无痕窗口中无法工作。
## <Icon icon="mdi:bell-sleep-outline" inline /> 让它安静下来
只有真正要紧的时候才应该打扰你。如果 Cloud 很吵,那是调校问题,下面就是解决它的工具。
| 情况 | 这样做 |
| -------------------------- | -------------------------- |
| 一个你早就知道的重复错误 | **静音这个模式** |
| 告警有用,但来得太频繁 | **点个踩** |
| 计划内维护、备份、升级 | **开始之前先静音这个模式** |
| 告警没错,只是发错了地方 | **关掉那个渠道** |
| 什么都不想收,哪里都不想收 | **关掉所有渠道** |
删掉告警规则几乎从来都不是正确答案:为了压掉一条吵人的日志,却关掉了整整一类监控。
### 静音一条重复的告警
静音是按模式来的:它让*这一类告警*安静,而不只是眼前这一条。之后同类的保持安静,真正不同的仍然会送达。
- **在告警上** —— 在 Cloud 里打开它,选择静音。
- **在聊天里** —— 说“静音这个”或“别再跟我说 X 了”。agent 会先说出它准备静音的确切模式,等你确认,因为静音是持久的,可能会在以后掩盖一次真实的故障。
静音会一直生效到你取消为止。问“我静音了哪些?”可以列出所有静音规则,取消也是同样的方式。被静音的告警仍然会被记录 —— 静音改变的是什么会打扰你,而不是监控什么。
### 少一点,而不是完全没有
如果一条告警确实有用只是来得太勤,就给它**点个踩**,而不是静音。这是“继续盯着,但少打扰我”的信号。给判断准确的告警点赞同样有帮助。
### 重复本来就已经被聚合了
在静音之前,先确认问题是不是仅仅是重复。同一故障的重复出现会被折叠成一条带计数的告警。如果你收到很多告警,通常是很多*不同*的问题,或者你已经超出套餐的事件额度、告警退化成了原始且未聚合的形式。见[套餐与限制](/zh/guide/dozzle-cloud/plans)。
### 在源头过滤
对于正常运行时就很吵的容器,更好的办法在上游:`dev.dozzle.cloud.min_level` 标签能让低严重度的日志根本不离开你的主机。见[你的数据](/zh/guide/dozzle-cloud/your-data)。
## 为什么我没收到告警?
**1. 有对应的规则吗?** 日志里出现错误本身并不会产生告警,得有东西在盯着它。默认规则只覆盖以错误码退出的容器 —— 一个一直在跑、但不断打错误日志的容器需要一条日志规则。
**2. 有启用的渠道吗?** 没有启用渠道的规则无处投递。
**3. 实例连着吗?** 如果问题发生时它是离线的,什么都不会被转发。见[连接你的实例](/zh/guide/dozzle-cloud/connecting)。
**4. 它是不是被并进了你已经收到的那条告警?** 四十次故障产生一条写着四十的告警。这是设计如此,不是漏报。
**5. 你把它静音了吗?** 检查你的静音规则。
**6. 这个容器被排除在转发之外了吗?** 见[你的数据](/zh/guide/dozzle-cloud/your-data)。
**7. 超出套餐限制了吗?** 超过额度后投递方式会变,告警开始被抽样。
**8. 看看垃圾邮件箱**,这一条专门针对邮件。
+110
View File
@@ -0,0 +1,110 @@
---
title: 连接你的实例
sourceHash: d6f8f7b6b845
---
# 连接你的实例
如何把自托管的 Dozzle 连到 [Dozzle Cloud](/zh/guide/dozzle-cloud)、确认它真的连上了,以及没连上时怎么修。
## 连接一个实例
1. 打开自托管的 Dozzle,点击顶栏的**云**图标。
2. 点击 **Link instance**。你会被带到 Cloud,用 GitHub 或 Google 登录并确认。
3. 几秒后实例就会出现在 Cloud 面板上。
不用创建密码,主机上也不用装任何 agent。
## 不需要公网 IP、开放端口或域名
这是最常见的顾虑,三个问题的答案都是不需要。
你的 Dozzle 实例向 Cloud 发起一条**出站**连接并保持长连。Cloud 从不反向连接你、从不扫描你的主机,也永远不需要访问你的地址。所以在下面这些情况下都能正常工作:
- 在家庭网络的 NAT 后面,没有端口转发
- 使用 `192.168.1.50` 这样的 RFC1918 私有地址
- 在 Tailscale、WireGuard 或 ZeroTier 网络里
- 在 CGNAT 后面,就算想做端口转发也做不了
- 在一台不断切换网络的笔记本上
不需要反向代理、动态 DNS 域名或固定 IP。
## 防火墙规则
只需要**出站**访问。允许你的 Dozzle 主机访问:
```
agent.doligence.dozzle.dev:443 (TCP, outbound)
```
443 端口上的这一个目标就够了。如果你的防火墙按主机名而不是 IP 过滤,请放行这个主机名,它背后的地址可能会变。大多数家用和小型办公防火墙本来就放行全部出站流量,所以通常根本不用配置。
## 规则和渠道分别在哪里
几乎所有人都会在这里绊一下,所以直说:
| 你想改的东西 | 在哪里改 |
| -------------------------------------------- | ------------------------------------------------------ |
| **什么会触发告警** —— 容器、模式、阈值 | 自托管 Dozzle → [警报](/zh/guide/alerts-and-webhooks) |
| **告警发到哪里** —— 邮件、Telegram、Slack 等 | Dozzle Cloud → [渠道](/zh/guide/dozzle-cloud/channels) |
| 查看历史告警、静音、升级套餐 | Dozzle Cloud |
规则定义在你自己的实例上,因为日志在那里。投递配置在 Cloud,因为握着通往你手机那条连接的是它。如果你在 Cloud 里到处找“这个容器报错时告诉我”的设置却找不到,原因就在这里:请打开你自托管的 Dozzle。
## 连接多个实例
每个实例分别连接,步骤相同,用同一个 Cloud 账号。连上之后它们会一起出现在面板里,聊天里问的问题一次覆盖所有已连接的实例。
这个汇总视图存在于 Cloud,而不在某一个自托管的 Dozzle 里。自托管的 Dozzle 只显示你直接在它上面配置的主机,不会显示其他已连接的实例。
连接多个 Dozzle 实例和 Dozzle 自己的 [agent 模式](/zh/guide/agent)、[远程主机](/zh/guide/remote-hosts)是两码事,后者是把额外的 Docker 主机接到同一个 Dozzle 上。两者都支持,也可以组合使用。
免费套餐同时只能连接一个实例。见[套餐与限制](/zh/guide/dozzle-cloud/plans)。
## 什么都没出现
按顺序排查。
**1. Dozzle 容器在运行吗?**
如果 Dozzle 本身停了或正在重启,什么都到不了 Cloud。
**2. 连接流程完成了吗?**
开始连接但没有确认,是不会留下任何东西的。重做上面的步骤,然后确认实例出现在 Instances 页面上。
**3. API 密钥被删了吗?**
删除实例的 API 密钥会永久解除连接。旧密钥无法重新挂回去,重新连接一次获取新的即可。
**4. 出站流量被拦了吗?**
限制严格的网络(公司、学校、某些 VPS 服务商)可能会拦截到非白名单目标的出站 443。见上面的*防火墙规则*。
**5. 是不是到了免费版的实例上限?**
免费套餐同时只能连一个实例。尝试连接第二个时会显示限制提示,而不会连上。
**6. 这个容器是不是被排除在转发之外?**
带有 `dev.dozzle.cloud.min_level=disabled` 标签的容器按设计什么都不发。如果只有某个容器缺失而其他都正常,检查它的标签。见[你的数据](/zh/guide/dozzle-cloud/your-data)。
## 让 agent 控制容器
实例一连上,读取日志和容器状态就能用。启动、停止和重启则会被你的实例拒绝,除非你自己打开:
::: code-group
```yaml [docker-compose.yml]
services:
dozzle:
image: amir20/dozzle
environment:
DOZZLE_ENABLE_ACTIONS: true
```
```sh
docker run ... amir20/dozzle --enable-actions
```
:::
这是**你的** Dozzle 上的设置,不在 Cloud 里,因为它决定的是你的 Dozzle 愿意对你的容器做什么。改完后重启 Dozzle。见[操作](/zh/guide/actions)。
## 断开连接
在 Cloud 的 Instances 页面删除该实例的 API 密钥。连接随即断开,不再转发任何数据,你自托管的 Dozzle 和之前完全一样继续工作。连接从来不会改变本地的日志查看。
+84
View File
@@ -0,0 +1,84 @@
---
title: 套餐与限制
sourceHash: f7c6bbdc83ea
---
# 套餐与限制
每个套餐包含什么、什么会计入额度,以及超额之后会发生什么。
免费套餐是完整的告警产品,而不是它的试用版。付费套餐买到的是主动的那一半 —— 那个读你日志、找出从来没有触发过告警的问题的巡检 —— 外加更大的运行空间。
## 套餐
| | 免费 | Pro | Team |
| -------------------------------------- | :-------------: | :-----------: | :------------: |
| 价格 | $0 | $5 / 月 | $15 / 月 |
| 发现(读你的日志,找出从未告警的问题) | 每周 1 条 | 全部,每天 | 全部,每天 |
| 每条发现附带修复建议 | — | ✓ | ✓ |
| 拿不准时分诊会去查容器和日志 | — | ✓ | ✓ |
| 随时发起完整调查 | — | ✓ | ✓ |
| 每月处理事件数 | 2,000 | 50K | 250K |
| 可检索日志 | 10 GB · 24 小时 | 50 GB · 30 天 | 100 GB · 30 天 |
| 告警与事件历史 | 1 天 | 14 天 | 30 天 |
| 指标历史(CPU、内存、网络、磁盘) | 24 小时 | 30 天 | 30 天 |
| 已连接实例数 | 1 | 无限 | 无限 |
| 每月助手对话数 | 10 | 200 | 1,000 |
| 优先支持 | — | ✓ | ✓ |
智能告警、重复折叠、抑制与严重程度过滤、搜索索引、指标记录、全部通知渠道、容器操作和无限 MCP 访问,在**所有**套餐中都有,包括免费版。
最新价格见 [cloud.dozzle.dev](https://cloud.dozzle.dev)。
## 什么算一次处理事件
**处理事件**指的是走过分诊流水线的一个容器事件或一条匹配的日志行,流水线会决定是发一条新告警、并入已有告警,还是保持沉默。你付费买的是这份工作,不是原始存储。
普通日志行不算事件,它们计入可检索日志量。所以话很多的容器消耗的是存储,崩溃循环的容器消耗的是事件。
如果一个容器退出了 47 次,那是 47 个事件计入额度,但只有一条写着 47 的告警。这正是重点所在。
**发现两样都不消耗。** 日志巡检读的是你的日志而不是告警历史,因此完全不占用事件计数,而且在一条告警规则都没配的情况下也能工作。只有每月日志量会算进去。
**搜索和指标在所有套餐都免费。** 实例一连上搜索索引就开始工作,CPU、内存、网络和磁盘序列从你的实例流过来也不额外收费。套餐只影响数量和能回溯多久。
## 超出额度之后
什么都不会坏。你会进入抽样模式:
- 分诊暂停。
- 事件历史仍在记录,所以什么都不会丢。
- 大约每十个事件里有一个会以**原始**告警的形式送达,你还能看到发生了什么。
- 重复不再被折叠成一条带计数的告警。
实际效果是告警变得更吵、更没用,而不是消失;你会先在收件箱里感觉到,然后才在用量页面上看到。如果你的告警突然变得原始又重复,先去看用量。
付费套餐同样适用。额度在每月初重置。
> [!TIP]
> 大多数账号根本不会接近上限。只有真正的洪流 —— 一个连着好几天崩溃循环的容器 —— 才会超出免费额度,而点名那个容器的告警远在触及上限之前就到了。
## 保留期
保留期决定你的历史能回溯多久:告警、事件和日志搜索结果。免费版是一天,所以搜上周的东西什么都搜不到,尽管它确实发生过。这是搜索看起来“丢数据”的最常见原因。
指标保留期在免费版是 24 小时,付费套餐是 30 天。请求比套餐允许更长的时间窗时,返回的是你实际拥有的窗口,而不是报错。
## 实例数量限制
免费套餐同时只能连一个实例。连第二个时会显示限制提示。你有两个选择:
- **把名额挪过去。** 在 Instances 页面删除现有实例的 API 密钥,然后连接新的。这对旧实例是不可逆的:它的历史还在,但你得从头重新连接一次。
- **升级套餐**,让两个同时连着。
这个限制针对的是免费账号转发多少数据,而不是锁住某个功能。免费版的其他一切,在你已连接的那个实例上都能用。
## 查看用量
Cloud 的用量页面显示本月已用的事件数、日志字节数和助手对话数,以及对应的额度。你也可以在聊天里问:“我这个月用了多少?”
## 更换或取消套餐
在价格页面或设置里升级。计费由 Stripe 处理;支付方式、发票和收据都在那边通过设置里的账单链接管理。
取消会停止后续扣费,并在你已付费的周期结束时把你切回免费套餐。账号和历史都会保留。
+83
View File
@@ -0,0 +1,83 @@
---
title: 你的数据
sourceHash: f11dd8e45cb5
---
# 你的数据
什么会离开你的主机、如何阻止它,以及数据到达之后 [Dozzle Cloud](/zh/guide/dozzle-cloud) 存了些什么。
## 连接不会把你的 Dozzle 暴露出去
你的 Dozzle 向 Cloud 发起一条**出站**连接。没有开放任何入站入口,没有转发任何端口,Cloud 只能通过你的实例主动建立的那条连接访问它。一旦断开连接,这个访问立刻结束。
连接也不会给自托管的 Dozzle 加上认证。这是另一个独立而且重要的问题:**Dozzle 默认没有登录。** 任何能在网络上访问到它的人都能看你的日志。如果你把 Dozzle 暴露到了公网,或者和别人共用网络,请在实例本身上配置[认证](/zh/guide/authentication)。无论你连不连 Cloud,这一点都成立。
容器操作 —— 启动、停止、重启 —— 会一直被你的实例拒绝,除非你用 `DOZZLE_ENABLE_ACTIONS` 打开。见[操作](/zh/guide/actions)。
## 控制哪些内容会被转发
最有效的隐私手段是一开始就不发送。默认情况下,只要实例处于连接状态,每个运行中的容器都会把日志流式发送到 Cloud。如果某些容器的 info 级碎碎念没有任何诊断价值,或者它处理的内容你更希望留在主机上,可以用标签过滤或彻底关闭。
### `dev.dozzle.cloud.min_level`
| 值 | 效果 |
| --------------------------------------------- | -------------------------------------------------------- |
| _(未设置)_ | 转发全部日志行。默认值。 |
| `disabled` | 完全跳过该容器,不向 Cloud 转发任何日志。 |
| `trace` | 等同于未设置,因为 trace 是最低级别,一切都会转发。 |
| `debug` / `info` / `warn` / `error` / `fatal` | 只转发该级别及以上的日志行。未识别出级别的行始终会通过。 |
无法识别的值(比如把 `warn` 拼成 `warning` 或 `wran`)会被记录为错误并忽略,容器会像没设置标签一样转发全部内容。
标签在日志读取器启动时读取。对运行中的容器修改标签,要等容器重启后才会生效。
```yaml
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
labels:
# 只把 warn/error/fatal 转发到 Dozzle Cloud
- dev.dozzle.cloud.min_level=warn
noisy-debug-tool:
image: example/debug
labels:
# 这个容器什么都不发送
- dev.dozzle.cloud.min_level=disabled
```
过滤在**日志离开主机之前**、在你的 Dozzle 实例上完成,所以被丢弃的行永远不会走网络,也不会计入你的套餐额度。Dozzle 里的本地日志查看不受影响。
## Cloud 存了什么
- 从你已连接实例转发过来的**日志行**,用于全文搜索。
- 命中你规则的**事件和告警**,连同它们的调查和发现。
- **容器与主机元数据** —— 名称、镜像、状态、资源占用。
- **你的账号** —— 邮箱地址、套餐、通知渠道设置。
- 与 agent 的**聊天记录**。
所有内容都只属于你的账号,其他用户看不到你的数据。存储的数据在套餐保留期内保留,之后自动删除。见[套餐与限制](/zh/guide/dozzle-cloud/plans)。
## API 密钥
每个已连接的实例用自己的 API 密钥认证。密钥使用 BLAKE2b 哈希存储,支持过期时间,从不明文保存。
在 Instances 页面删除一个密钥,会立即且永久地断开那个实例。密钥无法恢复也无法重新挂回去 —— 重新连接实例以获取新的。如果你认为某个密钥泄露了,删掉它然后重新连接。这就是完整的补救措施:旧密钥在被删除的那一刻就失效了。
## 登录
Cloud 使用 GitHub 或 Google 登录。不需要另外创建密码,Cloud 也永远看不到你的 GitHub 或 Google 密码。如果你用其中一个注册,之后用同一个邮箱通过另一个登录,进的是同一个账号。
## 不注销账号也能停止数据采集
1. 在 Instances 页面删除各实例的 API 密钥,转发立即停止。
2. 在 Channels 页面关掉所有渠道,这样什么都不会被投递。
已有的历史会在你套餐的保留期内自行过期。
## 注销账号
目前还没有自助删除按钮。请用账号对应的邮箱地址发信到 **amir@dozzle.dev** 申请删除。如果你在付费套餐上,先在设置里取消,以免再次扣费。
在此之前或者作为替代方案,上面的步骤已经能让你自己清掉几乎所有内容:删除 API 密钥会停止一切采集,存储的数据也会随保留期过期。
+7 -5
View File
@@ -1,9 +1,9 @@
---
title: 认识 dtop
sourceHash: 3137db243510
title: dtop CLI
sourceHash: 88753cae7439
---
# 什么是 dtop?
# dtop
`dtop` 是 Dozzle 的命令行搭档,可以在终端里实时查看系统上运行的 Docker 容器。可以把它看作功能更丰富的 `docker ps`,适合一直开在某个 tmux 窗格里。当你需要完整的历史日志、搜索或图表时,`dtop` 能让你直接跳转到 Dozzle。
@@ -27,6 +27,8 @@ docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop:
完整的安装说明见 [https://github.com/amir20/dtop](https://github.com/amir20/dtop?tab=readme-ov-file#installation)。
## 项目状态
## 定位
`dtop` 是一个新项目,功能还不如 Dozzle 丰富。不过我正在积极添加更多功能。我自己就用它在命令行上监控跨多台主机的所有容器。如果你有建议,欢迎到 [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues) 提交 issue。
`dtop` 有意做得比 Dozzle 小。它在终端里回答“现在有哪些容器在跑、有没有哪个出事了”,其余需要浏览器的能力都交给 Dozzle:历史日志、搜索、SQL 查询和统计图表。
它在独立的仓库中开发,按自己的节奏发布。建议和缺陷请提交到 [https://github.com/amir20/dtop/issues](https://github.com/amir20/dtop/issues)。
+21 -29
View File
@@ -34,22 +34,6 @@ features:
height: 36
link: /zh/guide/what-is-dozzle#real-time-monitoring
linkText: 了解更多
- title: SQL 日志分析
details: 用 DuckDB 和 WebAssembly 查询日志,完整的 SQL,全部在浏览器中运行。
icon:
src: /icons/sql.svg
width: 36
height: 36
link: /zh/guide/sql-engine
linkText: 了解更多
- title: 警报与 Webhook
details: 用强大的表达式匹配日志模式,通知 Slack、Discord、ntfy 或任意 webhook。
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /zh/guide/alerts-and-webhooks
linkText: 了解更多
- title: 多主机与 Swarm
details: 在一个界面里连接多台 Docker 主机和 Swarm 集群,通过 TLS agent 保障安全。
icon:
@@ -58,6 +42,22 @@ features:
height: 36
link: /zh/guide/remote-hosts
linkText: 了解更多
- title: 警报与 Webhook
details: 用表达式匹配日志模式、指标和生命周期事件,通知 Slack、Discord、ntfy 或任意 webhook。
icon:
src: /icons/notification-new.svg
width: 36
height: 36
link: /zh/guide/alerts-and-webhooks
linkText: 了解更多
- title: Dozzle Cloud
details: 可选的托管层,会把重复的故障聚合成一条、总结出到底哪里坏了,并通过邮件、Telegram 或 Discord 通知你。
icon:
src: /icons/cloud.svg
width: 36
height: 36
link: /zh/guide/dozzle-cloud
linkText: 了解更多
- title: 终端与命令执行
details: 需要深入排查时,直接在浏览器里附加到运行中的容器或执行命令。
icon:
@@ -66,13 +66,13 @@ features:
height: 36
link: /zh/guide/shell
linkText: 了解更多
- title: 终端里的 dtop
details: 一个命令行搭档,实时展示你的容器,并能直接跳转到 Dozzle。
- title: 自托管与私密
details: 运行在你自己的基础设施上,支持简单认证或前置代理认证。日志永远不会离开你的网络。
icon:
src: /icons/terminal-command.svg
src: /icons/locked.svg
width: 36
height: 36
link: /zh/guide/dtop
link: /zh/guide/authentication
linkText: 了解更多
- title: 面向 AI 助手的 MCP
details: 通过 Model Context Protocol 暴露容器、日志和指标,让你的编程助手和你一起调试。
@@ -82,13 +82,5 @@ features:
height: 36
link: /zh/guide/mcp
linkText: 了解更多
- title: 自托管与私密
details: 运行在你自己的基础设施上,支持简单认证或前置代理认证。日志永远不会离开你的网络。
icon:
src: /icons/locked.svg
width: 36
height: 36
link: /zh/guide/authentication
linkText: 了解更多
sourceHash: a11fae50734d
sourceHash: d045bec3b85e
---