DockPilot is a local-first web application for managing Docker containers on Linux hosts. The first vertical slice in this repository provides:
- Go 1.22 backend using the official Docker SDK.
- REST endpoint for listing all containers.
- WebSocket stream for Docker container events.
- Embedded React/Vite UI with live refresh on Docker events.
- Fedora-focused systemd, SELinux, firewalld, RPM packaging scaffolding.
- Arch Linux PKGBUILD scaffolding.
- The daemon runs on the host that owns the Docker socket.
- Default binding is localhost-only:
127.0.0.1:8842. - Production deployments should front DockPilot with an enterprise reverse proxy or enable TLS in
/etc/dockpilot/config.yaml. - The first slice is intentionally unauthenticated for local bootstrap. Auth, RBAC, CSRF, audit persistence, and mutating actions are present as module boundaries and migrations, then will be filled feature by feature.
make run-devFor frontend-only iteration:
cd web
npm install
npm run devThe Vite dev server proxies /api and /ws to 127.0.0.1:8842.
-
Build the binary:
make build
-
Install the service assets:
sudo install -Dpm0755 bin/dockpilot /usr/bin/dockpilot sudo install -Dpm0644 packaging/systemd/dockpilot.service /usr/lib/systemd/system/dockpilot.service sudo install -Dpm0644 config.example.yaml /etc/dockpilot/config.yaml sudo useradd -r -G docker -d /var/lib/dockpilot -s /sbin/nologin dockpilot sudo install -d -o dockpilot -g dockpilot /var/lib/dockpilot sudo systemctl daemon-reload sudo systemctl enable --now dockpilot -
Keep the default localhost binding. For LAN exposure, change
server.bind_address, installpackaging/firewalld/dockpilot.xml, and restrict the firewalld zone to trusted networks. -
SELinux enforcing hosts should compile and install
packaging/selinux/dockpilot.teas part of the RPM flow. The policy grants DockPilot access to the Docker socket label.
make build
sudo install -Dpm0755 bin/dockpilot /usr/bin/dockpilot
sudo install -Dpm0644 packaging/systemd/dockpilot.service /usr/lib/systemd/system/dockpilot.service
sudo install -Dpm0644 config.example.yaml /etc/dockpilot/config.yaml
sudo useradd -r -G docker -d /var/lib/dockpilot -s /usr/bin/nologin dockpilot
sudo install -d -o dockpilot -g dockpilot /var/lib/dockpilot
sudo systemctl daemon-reload
sudo systemctl enable --now dockpilotGET /healthz: process liveness.GET /readyz: Docker socket readiness.GET /api/v1/containers: all containers, including stopped.GET /ws/events: WebSocket stream of Docker container events.