dozzle-agent

dozzle-agent

Docker app from ProphetSe7en's Repository

Overview

Dozzle Agent. Install this on a remote host so your main Dozzle UI can show its containers too. One main Dozzle, as many agents as you have hosts. Out of the box the agent uses a self-signed certificate to talk to your main Dozzle. That works fine on a private network. If the agent is reachable from the internet you should mount your own certificate instead; see https://dozzle.dev/guide/agent for the steps. Optional: set Dozzle Hostname to give this host a friendly name in the main UI (otherwise it shows the Docker engine ID). If this is the only host, you do not need an agent. Just use the regular Dozzle template.

Dozzle Logo

Dozzle - dozzle.dev

Dozzle is a lightweight, web-based application for monitoring Docker logs in real time. It doesn't store any log files—it's designed purely for live log viewing.

https://github.com/user-attachments/assets/66a7b4b2-d6c9-4fca-ab04-aef6cd7c0c31

Docker Image Size (latest by date) Docker Pulls Docker Version Test

[!NOTE] If you like Dozzle, check out dtop, a top-like application for monitoring Docker containers. It integrates with Dozzle to link directly to container logs.

Features

  • Intelligent fuzzy search for container names
  • Search logs using regex
  • Search logs using SQL queries
  • Small memory footprint
  • Split screen for viewing multiple logs
  • Live stats with memory and CPU usage
  • Multi-user authentication with support for forward proxy authorization
  • Swarm mode support
  • Agent mode for monitoring multiple Docker hosts
  • Dark mode

Dozzle has been tested with hundreds of containers. However, it doesn't support offline searching. Products like Loggly, Papertrail, or Kibana are better suited for full search capabilities.

Getting Started

Dozzle is a small container (7 MB compressed). Pull the latest release with:

$ docker pull amir20/dozzle:latest

Running Dozzle

The simplest way to use Dozzle is to run the Docker container. Mount the Docker Unix socket with --volume to /var/run/docker.sock:

$ docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -v dozzle_data:/data -p 8080:8080 amir20/dozzle:latest

Dozzle will be available at http://localhost:8080/.

Here is a Docker Compose example:

services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dozzle_data:/data
    ports:
      - 8080:8080
volumes:
  dozzle_data:

For advanced options like authentication, remote hosts, or common questions, see the documentation at dozzle.dev.

Swarm Mode

Dozzle works with Docker Swarm. You can run Dozzle as a global service:

$ docker service create --name dozzle --env DOZZLE_MODE=swarm --mode global --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest

See the Swarm Mode documentation for more details.

Agent Mode

Dozzle can monitor multiple Docker hosts. Run Dozzle in agent mode with:

$ docker run -v /var/run/docker.sock:/var/run/docker.sock -p 7007:7007 amir20/dozzle:latest agent

See the Agent Mode documentation for more details.

Technical Details

Dozzle uses automatic API negotiation, which works with most Docker configurations. Dozzle also works with Colima and Podman.

Dozzle requires Docker Engine 19.03 or newer (API version 1.40+). Older daemons are not supported by the underlying Docker SDK.

Installation on Podman

By default, Podman doesn't have a background process, but you can enable the remote socket for Dozzle to work.

First, verify if your Podman installation has the remote socket enabled:

podman info

If you see output like this under the remote socket key, it's already enabled:

  remoteSocket:
    exists: true
    path: /run/user/1000/podman/podman.sock

If it's not enabled, follow this tutorial to enable it.

Once the Podman remote socket is enabled, you can run Dozzle:

podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 docker.io/amir20/dozzle:latest

Additionally, you need to create a fake engine-id to prevent host not found errors. Podman doesn't generate an engine-id like Docker does, due to its daemonless architecture.

Create a file named engine-id under /var/lib/docker. On a system with Podman, you'll need to create the folder path as well. Place a UUID inside the file, for example using uuidgen > engine-id. The file should contain an identifier like: b9f1d7fc-b459-4b6e-9f7a-e3d1cd2e14a9.

For more details, see Podman Info or the FAQ.

Security

Dozzle supports file-based authentication and forward proxy authentication with tools like Authelia. See the documentation at https://dozzle.dev/guide/authentication.

Analytics

Dozzle collects anonymous user configurations using Google Analytics. Why? Dozzle is an open source project with no funding, so there's no time for formal user studies. Analytics help prioritize features and fixes based on how people use Dozzle. This data is completely public and can be viewed live on the Data Studio dashboard.

To disable analytics, use the --no-analytics flag.

Environment Variables and Configuration

Dozzle follows the 12-factor model. Configuration can be done via CLI flags or environment variables. See the documentation at dozzle.dev/guide/supported-env-vars for more details.

Support

There are many ways to support Dozzle:

  • Use it! Write about it! Star it! If you love Dozzle, drop me a line and tell me what you love.
  • Blog about Dozzle to spread the word. If you're good at writing, send PRs to improve the documentation at dozzle.dev.
  • Sponsor my work at https://www.buymeacoffee.com/amirraminfar

Buy Me A Coffee

License

MIT

Building

Want to contribute? Great! Dozzle has two parts: a Go backend that talks to Docker, and a Vue frontend that runs in the browser. You don't need to know both — pick the side that matches what you want to change. For documentation fixes, no setup is needed at all; just edit the file on GitHub.

1. Install the prerequisites

You'll need Go (1.25+), Node.js (with pnpm), and protoc.

On macOS, you can install everything in one go:

brew install go node pnpm protobuf

On Linux (Debian/Ubuntu):

sudo apt install golang nodejs protobuf-compiler
npm install -g pnpm

On Windows, we recommend using WSL2 and following the Linux instructions.

2. Clone and set up

git clone https://github.com/amir20/dozzle.git
cd dozzle
pnpm install                # installs frontend dependencies
go install tool             # installs Go build tools listed in go.mod (air, protoc-gen-go, etc.)
make generate               # generates TLS certificates and protobuf code (only needed once)

3. Start the dev server

make dev

Open http://localhost:3100 — you should see the Dozzle UI connected to your local Docker. Both the frontend and backend reload automatically when you save a file.

Making your first change

Try editing assets/pages/index.vue and saving — the browser updates instantly. For backend changes, edit any .go file and the server will restart on its own.

Troubleshooting

  • Nothing shows up at localhost:3100 — make sure Docker is running and the socket is accessible at /var/run/docker.sock.
  • make generate fails — confirm protoc is on your PATH (protoc --version).
  • Still stuck? Open a question in GitHub Discussions — we're happy to help.

Install dozzle-agent on Unraid in a few clicks.

Find dozzle-agent in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for dozzle-agent Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/prophetse7en/dozzle:latest
Last Updated2026-06-25
First Seen2026-04-11

Runtime arguments

Network
bridge

Template configuration

Agent PortPorttcp

Port the agent listens on. Your main Dozzle connects to this port. Change the host side if 7007 is already taken.

Target
7007
Default
7007
Value
7007
Docker SocketPathro

The agent reads container logs from here and sends them to the main Dozzle.

Target
/var/run/docker.sock
Default
/var/run/docker.sock
Value
/var/run/docker.sock
Dozzle HostnameVariable

Optional. Name this host shows up as in the main Dozzle UI. Anything that helps you tell hosts apart, like unraid-node-2. Leave blank to use the Docker engine ID.

Target
DOZZLE_HOSTNAME
Container FilterVariable

Optional. Limit the agent to containers matching a Docker filter, e.g. label=color or name=web. Leave blank to show everything.

Target
DOZZLE_FILTER
Log LevelVariable

Log level for the agent itself: debug, info, warn, error.

Target
DOZZLE_LEVEL
Default
info
Value
info
Disable AnalyticsVariable

Disable anonymous usage analytics sent by Dozzle.

Target
DOZZLE_NO_ANALYTICS
Default
true
Value
true