[{"data":1,"prerenderedAt":137},["ShallowReactive",2],{"seo-verification":3,"blog-how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":78,"ctaBody":79,"ctaButton":80,"ctaUrl":81,"relatedPosts":82},167,"how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer",{"fr":10,"en":8,"ar":11},"self-host-dozzle-vps","استضافة-dozzle-على-vps-عارض-سجلات-docker-لحظيا","How to Self-Host Dozzle on a VPS: Real-Time Docker Log Viewer","Deploy Dozzle on your VPS — a stateless, open-source Docker log viewer. Stream, search and tail logs from all your containers in the browser, without SSH or log storage.",4,1,false,"2026-07-06T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-dozzle-vps-poster.svg",{"categorySlug":30,"appSlug":31},"monitoring-observability","dozzle","Every developer has been there: something breaks in production, you SSH into the server, find the right container name, and run `docker logs -f` — only to scroll through thousands of lines trying to spot the error. Dozzle (MIT, ~12k stars) eliminates that workflow. It is a lightweight Go binary that connects to the Docker socket read-only and streams every container's logs into a clean browser UI with live search. Here is how to deploy it on a VPS in minutes.",[34,38,49,52,74],{"type":35,"title":36,"body":37},"h2","Why a browser-based Docker log viewer","The standard Docker CLI workflow — `docker ps`, then `docker logs -f \u003Ccontainer>` — is fine for one container on one server. It breaks down the moment you run several containers, need to correlate logs across services, or want to give a teammate read-only visibility without an SSH key. Dozzle solves all three: a single browser tab shows every container on the host, you click to tail any of them, and real-time search filters the stream without leaving the page. Because Dozzle only reads the Docker socket and never writes to disk, there is nothing to maintain, no database to back up, and no storage cost.",{"type":39,"title":40,"items":41},"ul","What Dozzle gives you",[42,43,44,45,46,47,48],"Live log streaming via WebSocket — no polling, no delay, instant tail of any container.","Full-text search and regex filtering directly in the log stream, per container.","Multi-container split view — pin several containers side-by-side to correlate events in real time.","Read-only Docker socket access — Dozzle cannot start, stop or modify any container.","Under 10 MB RAM at idle — negligible overhead, safe to add to any running VPS.","Optional multi-host agent mode — one Dozzle hub aggregates logs from several Docker hosts.","Built-in basic auth and OIDC support to restrict access to authorised users.",{"type":35,"title":50,"body":51},"Requirements","A VPS with Ubuntu 22.04 (or Debian 12) and Docker already installed. Dozzle needs under 10 MB RAM and no disk space — it is completely stateless. No domain name is strictly required: Dozzle is accessible on port 8080 via your server's IP. If you want HTTPS and a custom subdomain (`logs.yourdomain.com`), place a Caddy or Nginx reverse proxy in front.",{"type":53,"title":54,"steps":55},"steps","Deploy Dozzle on your VPS",[56,59,62,65,68,71],{"title":57,"body":58},"Pull and start Dozzle","Connect via SSH and run a single Docker command: `docker run -d --restart=always -p 8080:8080 -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro --name dozzle amir20\u002Fdozzle:latest`. The `:ro` flag mounts the socket read-only — Dozzle can only read logs, not control containers. The image is about 20 MB on first pull. Dozzle starts immediately with no initial configuration.",{"title":60,"body":61},"Open the log console","Navigate to `http:\u002F\u002F\u003Cyour-server-ip>:8080`. The left sidebar lists every running container by name. Click any container to start tailing its logs live. Use the search bar at the top to filter by keyword or paste a regex for advanced filtering.",{"title":63,"body":64},"Enable authentication","By default, Dozzle is open to anyone who can reach port 8080. Add basic auth by passing environment variables: `--env DOZZLE_USERNAME=admin --env DOZZLE_PASSWORD=\u003Cstrong-password>`. For team deployments, configure OIDC by creating a `dozzle.yml` config file and mounting it at `\u002Fdata\u002Fconfig.yaml` inside the container. At minimum, restrict port 8080 to your IP: `ufw allow from \u003Cyour-ip> to any port 8080`.",{"title":66,"body":67},"Optional: HTTPS with Caddy","To serve Dozzle over HTTPS at `logs.yourdomain.com`, install Caddy (`apt install caddy`) and create `\u002Fetc\u002Fcaddy\u002FCaddyfile` with: `logs.yourdomain.com { reverse_proxy localhost:8080 }`. Run `systemctl reload caddy` and Caddy automatically issues a Let's Encrypt certificate. Point the DNS A record for `logs.yourdomain.com` at your VPS IP first.",{"title":69,"body":70},"Optional: multi-host agents","To monitor containers on multiple servers, run Dozzle in agent mode on each remote host: `docker run -d --restart=always -p 7007:7007 -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro --name dozzle-agent amir20\u002Fdozzle:latest agent`. On your main Dozzle instance, add `--env DOZZLE_REMOTE_AGENT=\u003Cagent-ip>:7007` for each remote. All hosts then appear as separate nodes in the left sidebar.",{"title":72,"body":73},"Logging in for the first time","Dozzle opens straight onto the logs of your containers, with no credentials at all. Treat this address as confidential and protect it before sharing it.",{"type":75,"title":76,"body":77},"tip","Pair Dozzle with Beszel for complete container visibility","Dozzle shows you *what* a container is printing. Beszel shows you *how much* CPU, RAM and disk it is consuming, with historical charts and alerts. Deploy both on the same VPS — Dozzle for live log debugging, Beszel for resource trend monitoring — and you have a complete, self-hosted container observability stack under 60 MB RAM total.","Deploy Dozzle on your VPS in one click","Stop SSH-ing into servers to tail container logs. ServOrbit provisions a ready-to-use Dozzle instance on a VPS — Docker socket pre-wired, accessible from your browser in minutes.","Deploy Dozzle","\u002Fvps-cloud?template=dozzle",[83,100,121],{"id":84,"slug":85,"slugs":86,"title":89,"excerpt":90,"readTime":14,"views":91,"isPinned":16,"publishedAt":92,"category":93,"categories":94,"featuredImage":26,"bgImage":27,"posterImage":96,"relatedSolution":97},161,"how-to-self-host-dockge-on-a-vps-visual-docker-compose-manager",{"fr":87,"en":85,"ar":88},"self-host-dockge-vps","استضافة-dockge-على-vps-مدير-مرئي-لـ-docker-compose","How to Self-Host Dockge on a VPS: Visual Docker Compose Manager","Deploy Dockge on your VPS: a lightweight open-source visual manager to create, edit and monitor your Docker Compose stacks from a clean web UI, no command line.",0,"2026-07-03T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[95],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fself-host-dockge-vps-poster.svg",{"categorySlug":98,"appSlug":99},"application-deployment-devops","dockge",{"id":101,"slug":102,"slugs":103,"title":106,"excerpt":107,"readTime":108,"views":91,"isPinned":16,"publishedAt":109,"category":110,"categories":116,"featuredImage":26,"bgImage":27,"posterImage":118,"relatedSolution":119},133,"self-host-beszel-multi-server-monitoring-hub-on-your-vps",{"fr":104,"en":102,"ar":105},"self-host-beszel-vps","استضف-beszel-على-vps-مركز-مراقبة-متعدد-الخوادم","Beszel on VPS: multi-server monitoring, alerts and security","Deploy Beszel on a VPS, monitor your entire fleet from one hub, set up Telegram\u002Femail alerts, enable 2FA and fix silent agents, TLS errors and blocked ports.",10,"2026-02-14T00:00:00+00:00",{"id":111,"name":112,"slug":113,"color":114,"icon":115},8,"Security & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[117],{"id":111,"name":112,"slug":113,"color":114,"icon":115},"\u002Fblog\u002Fcovers\u002Fself-host-beszel-vps-poster.svg",{"categorySlug":30,"appSlug":120},"beszel",{"id":122,"slug":123,"slugs":124,"title":127,"excerpt":128,"readTime":129,"views":91,"isPinned":16,"publishedAt":130,"category":131,"categories":132,"featuredImage":26,"bgImage":27,"posterImage":134,"relatedSolution":135},105,"monitoring-your-vps-with-uptime-kuma",{"fr":125,"en":123,"ar":126},"superviser-vps-uptime-kuma","مراقبة-خادمك-الافتراضي-vps-باستخدام-uptime-kuma","Monitoring your VPS with Uptime Kuma","Deploy Uptime Kuma on your VPS to monitor your sites and services self-hosted, with alerts and a public status page.",3,"2026-03-07T00:00:00+00:00",{"id":111,"name":112,"slug":113,"color":114,"icon":115},[133],{"id":111,"name":112,"slug":113,"color":114,"icon":115},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":30,"appSlug":136},"uptime-kuma",1787581005767]