Install

One process next to your Docker or Podman socket. It serves the UI on port 9000 and keeps everything in one data directory.

1

Start the server

Container image recommended

About 8 MB compressed, for linux/amd64 and linux/arm64, running as a non-root user.

Docker
docker run -d --name fleetops -p 9000:9000 \
  -v fleetops-data:/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --group-add "$(stat -c %g /var/run/docker.sock)" \
  fleets/fleetops

--group-add grants the group that owns the socket. On Docker Desktop and Colima the socket lives in a VM, so read its group from a container instead:

Socket group on Docker Desktop or Colima
docker run --rm -v /var/run/docker.sock:/s busybox stat -c %g /s

Static binary

Download a linux binary with its SHA-256 checksum from the releases page, then:

Binary
./fleetops --data ./data --bind 127.0.0.1:9000

For Podman, rootless Docker or Colima, point it at the socket:

Podman
DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock ./fleetops --data ./data

From source

Needs Rust 1.86 or newer, Node.js 24 or newer and pnpm.

Build from source
git clone https://github.com/pravinbanjade/fleetops.git
cd fleetops
make build
./target/release/fleetops --data ./data --bind 127.0.0.1:9000
2

Create the admin account

Open http://localhost:9000 and create the first account. For safety, setup locks if no admin is created within 10 minutes of starting; restart the server to try again.

3

Add more environments

Remote Docker host
Admin → Environments → Add → Agent on a remote host. Run the docker run command it shows on that host; the agent dials out over HTTPS and shows online within seconds.
Kubernetes, by kubeconfig
Paste a kubeconfig and pick a context. EKS, GKE and AKS exec plugins work when the server runs with --kube-exec-plugins=default.
Kubernetes, in-cluster agent
Run the kubectl apply command it gives you. The cluster needs no inbound access and the server never holds its credentials. Choose read-only, standard or cluster-admin access.
4

Enterprise, if you have a license

Use fleets/fleetops-ee in place of fleets/fleetops on the same data volume, then upload the license in Admin → License or pass --license-file. Without a license it runs as Community. About Enterprise