Skip to content

Repository files navigation

DockPilot

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.

Assumptions

  • 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.

Development

make run-dev

For frontend-only iteration:

cd web
npm install
npm run dev

The Vite dev server proxies /api and /ws to 127.0.0.1:8842.

Fedora Server Install

  1. Build the binary:

    make build
  2. 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
  3. Keep the default localhost binding. For LAN exposure, change server.bind_address, install packaging/firewalld/dockpilot.xml, and restrict the firewalld zone to trusted networks.

  4. SELinux enforcing hosts should compile and install packaging/selinux/dockpilot.te as part of the RPM flow. The policy grants DockPilot access to the Docker socket label.

Arch Linux Install

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 dockpilot

API

  • GET /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.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages