Skip to content

dozzle-server

dozzle-server is Dozzle, a web interface for reading container logs live, across every VM in the fleet. No host lists it, because none has been chosen for it. See Not in the plan.

The fleet does not depend on it. Logs reach VictoriaLogs on ci01 through system-agent whether Dozzle runs or not.

To run it on a host of your own, see Applications (ap01).

What it runs

dozzle-server
Service Does
dozzle-server Serves the web interface, on port 8080 inside the proxy network

The server touches no Docker socket and runs no agent of its own. It reads a host, its own included, only through an agent named in DOZZLE_REMOTE_AGENT. Every VM runs that agent as part of system-agent.

The project is dozzle, and the server's container is dozzle-dozzle-server.

Values it reads

This stack reads no Variable or Secret of its own.

It also reads the 19 operational defaults, as every stack does.

One key in the stack's file is blank and has to be set for the server to show anything: DOZZLE_REMOTE_AGENT. It is the list of agents the server connects to, each as a host and port 7007, separated by commas. Set it in the host's inventory entry, under komodo_stack_env. See Stack values.

What the host needs

The project is dozzle, so the stack's folders sit under /opt/docker/volumes/dozzle and /opt/docker/logs/dozzle. Both are mode 0750, owned by the admin account with group 101000.

No container in this stack has a folder of its own.

This stack opens no port on the host's firewall.

The host's NixOS configuration creates the folders when the host is deployed. It reads them from the host's file in the private repo, nixos/hosts/<host>.json, which nixos-sync.yml writes from the stack's setup.yaml. See Host layout.

The stack also needs a Traefik on the same host.

Each agent's port 7007 is open to the internal subnet, as part of system-agent's host setup, so the server reaches any agent on that subnet.

Hostnames

With the host ap01, the sub-domain home., and the domain myah-mitchell.com, Traefik routes these names to the server:

Hostname Comes from
dozzle.myah-mitchell.com DOZZLE_HOSTNAME on the domain
dozzle.home.myah-mitchell.com DOZZLE_HOSTNAME on the sub-domain
dozzle.ap01.home.myah-mitchell.com DOZZLE_HOSTNAME on the host

A fourth name is the project on the host, which here is the same as the third.

The route asks for a sign-in through Authentik, and uses no sign-in while the host is in bootstrap mode. Anyone who can open it can read every container's logs, so take it out of bootstrap mode before relying on it. See Bootstrap mode.

Verify

In Komodo, the dozzle-server Stack shows as running with one service.

On the host, list the Stack's containers. Komodo names the Compose project after the Stack, not after PROJECT_NAME:

docker compose -p dozzle-server ps

The container shows healthy in the STATUS column.

Open the interface at the host's name, such as https://dozzle.ap01.home.myah-mitchell.com. Each agent in DOZZLE_REMOTE_AGENT appears as a host in the list on the left.

Not yet confirmed

  • The stack has not been deployed.
  • Whether the server starts with DOZZLE_REMOTE_AGENT blank. It has no Docker socket to fall back on.
  • Reading its own host. The server reaches the agent on its own host at the host's address and port 7007, from inside a Docker network. The host opens the port to the internal subnet, and whether that admits traffic from a Docker network has not been tried.
  • An agent on the DMZ. A host opens port 7007 to the internal subnet only, so a server on the internal network may not reach bh01 or mx01.