Bulkhead is a state-of-the-art desktop Docker Engine manager built with Flutter Desktop for Linux, macOS, and Windows. It provides high-performance, real-time container administration, multi-container Compose stack management, local image registry inspection, persistent volume control, virtual network topology visualization, embedded interactive terminal emulation, container volume file browsing with upload/download capabilities, single-click system storage optimization, and automated Over-The-Air (OTA) updates.
- β‘ 100% Real-Time Event-Driven (Zero Polling Overhead): Listens continuously to the Docker Engine socket stream (
/events) to instantly refresh containers, images, volumes, networks, and compose stacks without background timers or screen flickering. - π Automated Over-The-Air (OTA) In-App Updates: Queries GitHub Releases API at startup to display an Update Available pill badge, changelog inspector, and direct download links for
.dmg,.zip,.deb,.rpm, or.pkg.tar.zstpackages. - π Direct Native Socket Connection: Connects directly to local Docker Unix domain sockets (
/var/run/docker.sock, Docker Desktop / OrbStack / Colima socket paths) or Windows Named Pipes (\\.\pipe\docker_engine) using HTTP/1.1 chunked response demuxing. - π» Embedded Interactive Container Terminal (
xterm): Native terminal emulator with PTY allocation (scriptwrapper), shell selector (/bin/bash,/bin/sh,zsh,ash), ANSI escape code stripping, normalized\r\nline endings, right-click context menu (Copy Output, Paste Stdin), and external terminal launcher (macOS Terminal, Windows CMD, Linux terminals). - π Container Volume File Browser & File Manager: Explore container volumes, root file systems, and bind mounts. Features Back (
<) & Forward (>) directory history navigation, Upload File (docker cp), and Download File/Folder to host system folders. Accessible from container details and the Volumes page. - π Full Docker Compose CLI Integration: Manage multi-container application stacks (
docker compose up -d,down,restart,down -v --remove-orphans). Includes a Deploy Stack wizard with an inlinedocker-compose.ymleditor. - π¦ Multi-Selection & Bulk Actions: Select multiple containers, images, volumes, or networks with Select-All header checkboxes to perform batch operations (Start, Stop, Restart, Delete).
- π Dual-Mode Log Telemetry & Demuxing: Real-time stdout/stderr log streaming supporting both TTY and non-TTY multiplexed stream frames with auto-scrolling and log text copying.
- π·οΈ Unified Status Badge System: Standardized status badge colors (
AppColors.successgreen for all running stack & container states) and responsive sizing across all screens. - π§Ή 1-Click Storage Optimization: Dynamic progress bars calculated from
docker system dfmetrics with a single-click System Prune All button to reclaim unused disk space. - π¨ Modern Dark & Light Themes: Dark mode interface designed according to
#111316surface specifications, paired with crispHanken Groteskheadings andJetBrains Monocode telemetry.
Bulkhead automatically detects and connects to the Docker Engine daemon across all operating systems:
| Platform | Default Socket / IPC Path | Supported Runtimes |
|---|---|---|
| π§ Linux | /var/run/docker.sock |
Docker Engine, Podman |
| π macOS | /var/run/docker.sock~/.docker/run/docker.sock~/.orbstack/run/docker.sock~/.colima/default/docker.sock |
Docker Desktop for Mac, OrbStack, Colima |
| πͺ Windows | \\.\pipe\docker_enginetcp://localhost:2375 |
Docker Desktop for Windows, WSL2 Engine |
Inspect real-time system metrics, active container slots, docker system df storage usage bars, 1-click Prune System, and live Docker Engine /events stream telemetry.
Monitor and filter container instances (All, Running, Stopped). Perform multi-selection bulk operations or click Run Container to deploy new containers with custom port bindings and environment variables.
Deep dive into container telemetry with stdout/stderr log streaming, Embedded Exec Terminal (xterm with TTY shell selection and right-click copy/paste), Volume File Browser, raw Docker inspect JSON view, environment variables, port mappings, and host volume mounts.
Deploy and manage multi-container Compose applications. View service health, stream service terminal logs, edit docker-compose.yml directly, and perform full stack lifecycle controls (Up, Down, Restart, Purge/Delete).
Inspect locally stored Docker images, view repository tags and sizes, execute Run Container from Image, perform bulk image deletion, and use the real-time layer progress terminal in Pull Image.
Manage persistent storage volumes, inspect host mountpoints and drivers, browse attached volume file systems with Back/Forward history and Upload/Download options, create new volumes, prune unused volume points, and perform multi-selection deletion.
Visualize virtual bridge, host, overlay, and macvlan networks. Inspect subnets, gateways, attached container IDs, and create custom networks.
Configure local Docker Unix domain socket paths, test socket permissions, check for software updates, and switch theme modes (Dark, Light, System Default).
| Area | Feature & Capability |
|---|---|
| Real-Time Engine Sync | 100% event-driven sync via /events socket stream; zero polling timers. |
| Over-The-Air (OTA) Updates | Auto-checks GitHub Releases API; in-app update notification pill, changelog viewer, direct asset downloads. |
| Containers | List, filter, start, stop, restart, remove, multi-select bulk actions, run new container modal. |
| Interactive Terminal | xterm: ^4.0.0 emulator, Linux/macOS PTY allocation (script), /bin/bash//bin/sh/zsh shells, right-click context menu, clean ANSI escape filter, external terminal launcher. |
| Volume File Manager | Browse attached container volumes & host mountpoints, Back/Forward navigation stack, Upload host files (docker cp), Download files & directories (docker cp). |
| Container Telemetry | Dual-mode stdout/stderr live logs, raw Inspect JSON viewer, environment variable table, port mapping table. |
| Compose Stacks | List stacks, Up/Down/Restart/Delete, Deploy Stack wizard, inline YAML editor, service log stream, unified green status badges. |
| Images | Inspect tags/sizes, Pull Image modal with terminal progress, Run Container from Image, Prune unused images. |
| Volumes | List mountpoints, create volume modal, remove, multi-select delete, Prune unused volumes, integrated File Browser. |
| Networks | List network topology, driver selector (bridge, host, overlay, macvlan), subnet/gateway inspector. |
| Storage Optimization | Dynamic docker system df usage bars, 1-click Prune System (docker system prune -a --volumes). |
- Docker Engine / Docker Desktop: Installed & running locally.
- Supported OS: Linux (Arch, Ubuntu, Debian, Fedora), macOS 11+, Windows 10/11.
Choose the pre-built installer for your operating system from GitHub Releases:
Download bulkhead-macos-<version>.dmg or bulkhead-macos-app.zip from GitHub Releases:
- Open
bulkhead-macos-<version>.dmg. - Drag Bulkhead.app into your
/Applicationsfolder. - Launch Bulkhead from Spotlight or Launchpad.
Download bulkhead-windows-x64.zip from GitHub Releases:
- Extract
bulkhead-windows-x64.zipto your preferred directory (e.g.,C:\Program Files\Bulkhead). - Run
Bulkhead.exe.
Download bulkhead_<version>_amd64.deb and install via apt:
sudo apt update
sudo apt install ./bulkhead_1.0.0_amd64.debDownload bulkhead-<version>-1.x86_64.rpm and install via dnf or rpm:
sudo dnf install ./bulkhead-1.0.0-1.x86_64.rpm
# or
sudo rpm -i ./bulkhead-1.0.0-1.x86_64.rpmDownload bulkhead-<version>-1-x86_64.pkg.tar.zst and install via pacman:
sudo pacman -U ./bulkhead-1.0.0-1-x86_64.pkg.tar.zstOr install directly from AUR:
yay -S bulkhead-binDownload bulkhead-linux-x64.zip, extract, and run anywhere:
unzip bulkhead-linux-x64.zip -d ~/bulkhead
cd ~/bulkhead
./bulkhead# 1. Clone the repository
git clone https://github.com/ahmadteeb/Bulkhead.git
cd Bulkhead
# 2. Install Dependencies
flutter pub get
# 3. Run Static Analysis & Unit Tests
flutter analyze
flutter test
# 4. Run Desktop Application locally
flutter run -d linux # Linux
flutter run -d macos # macOS
flutter run -d windows # Windows
# 5. Build Release Desktop Bundle with Build Version Arguments
flutter build linux --release --build-name=1.0.0 --build-number=1 # Linux
flutter build macos --release --build-name=1.0.0 --build-number=1 # macOS
flutter build windows --release --build-name=1.0.0 --build-number=1 # Windows- UI Framework: Flutter Desktop (Linux GTK, macOS Cocoa, Windows Win32 runners).
- State Management: Riverpod 2.x (
StateNotifierProvider,StreamProvider,FutureProvider). - Build Versioning: Dynamic build number and build name resolution parsed via
package_info_plusat runtime. - OTA Updates: GitHub Releases API parser (
UpdateNotifier), in-app update notification pill, changelog inspector (UpdateDialog), and direct platform asset launcher. - Terminal Emulator:
xterm: ^4.0.0with PTY pseudo-terminal allocation (script -q -c "docker exec -it ..."). - File Manager:
file_pickerpackage paired withdocker cpprocess execution. - Multi-Platform CI/CD Pipelines: GitHub Actions workflows passing
--build-name=$VERSION --build-number=$BUILD_NUMand packaging macOS (.dmg,.zip), Windows (.zip), Linux (.deb,.rpm,.pkg.tar.zst,.zip), and AURPKGBUILD. - Socket I/O: Custom
DockerSocketConnectionimplementing HTTP/1.1 over Unix Domain Sockets and Windows Named Pipes (\\.\pipe\docker_engine). - Stream Demuxing: 8-byte multiplexing header demuxer parsing
stdout(stream type1) andstderr(stream type2) from Docker container log streams. - Typography: Google Fonts (
Hanken Groteskheadings,JetBrains Monotelemetry).
If you find Bulkhead useful and would like to support its ongoing development, consider buying me a coffee!
Distributed under the MIT License. See LICENSE for details.
MIT License
Copyright (c) 2026 Ahmad El-Khatib (AhmadTeeb)








