← All reportsPublic report

jesseduffield/lazydocker

The lazier way to manage everything docker

53k stars Go View on GitHubprofiled 11d ago
Try GitZoid
0PRs this week
0Contributors
0Deps scanned
0Issues found
01 · Repo overview

How lazydocker is put together

lazydocker is a terminal UI for managing Docker containers, services, images, volumes, and networks, written in Go using the jesseduffield/gocui TUI library. The entrypoint main.go parses CLI flags via flaggy, builds an AppConfig (merging defaults with the user's YAML config), and bootstraps pkg/app.App, which wires together logging, i18n translations, OSCommand (shell execution), DockerCommand (Docker SDK + docker-compose subprocesses), and the GUI layer. Data flows from the Docker daemon (via the docker/docker client) and compose commands into pkg/commands models, which pkg/gui panels render and refresh on keybindings/timers. There is no server or datastore of its own; all state comes from the local Docker daemon and docker-compose.

Languages

Go

Frameworks

gocui (jesseduffield fork) TUI frameworkdocker/docker Go SDKflaggy CLI parserlogrus loggingtestify testing

Infrastructure

Docker daemon (local unix/named pipe socket)docker-compose CLIDockerfiledocker-compose.ymlgoreleaser (.goreleaser.yml)CircleCI (.circleci/config.yml)devcontainer

Major components

pkg/app

Bootstraps the application, wires config/logging/i18n/commands/GUI together, maps known errors like Docker socket permission denied to friendly messages.

pkg/commands

Domain layer wrapping the Docker SDK and OS subprocesses: container, service, image, volume, network, and project operations plus stats collection.

pkg/gui

The gocui-based terminal UI: panel layout, keybindings, focus management, filtering, confirmation/menu panels, and subprocess handling.

pkg/gui/presentation

Formats rows displayed in each side panel (containers, images, networks, volumes, services, projects, stats).

pkg/gui/panels

Reusable list-panel primitives including filtered lists and context state shared across side panels.

pkg/config

Loads/merges default and user YAML configuration, defines UserConfig structs (gui, commandTemplates, customCommands, stats), and provides platform-specific OS defaults.

pkg/i18n

Translation sets per language (English, Chinese, Dutch, French, German, Polish, Portuguese, Spanish, Turkish) selected by user config.

pkg/tasks

Manages long-running tasks attached to views (e.g. streaming logs/stats) so they can be paused/stopped when views change.

02 · Weekly changes

No digest this week

1 weeksWeek of

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required