To know what runs where, you jump between SSH, docker, podman and kubectl, one machine at a time.
Every container, VM and lab you run, in one window.
Gantry is a desktop app for Docker, Podman and containerd projects, QEMU virtual machines, Cisco network labs and Kubernetes clusters, on this computer and on your servers over SSH. Your compose files stay the source of truth, and nothing needs to be installed on the servers.
Free software under AGPL-3.0. macOS, Linux and Windows (experimental).
The problem
One terminal per machine, one tool per window
Container dashboards usually need a server to host them and an agent installed on every machine.
A network lab with Cisco devices usually needs a dedicated emulation server just for it.
Features
The machines you use, and what runs on them
Gantry reads the state from each engine, so what you start in a terminal shows up in the app right away.
Machines
This computer and your servers over SSH in one sidebar, with folders. Hardware and live usage, no agent.
Compose projects
Every compose project with its containers, ports that open in the browser, and one-click up, stop, restart and pull.
Compose editor
Edit compose.yaml and .env in the app or in your editor. Gantry shows which services differ from the file and applies only what changed.
More than 30 templates
Postgres, Redis, Kafka, Grafana, Keycloak and more, or paste a compose or a docker run. Free ports and passwords are handled before anything starts.
Containers
Logs with filters and time range, shell, files (browse, download, upload), live CPU and memory, events, edit and recreate. Images, volumes and networks too.
Virtual machines
QEMU VMs in the same compose: Debian, Ubuntu, Rocky, k3s, an ISO or your own qcow2. Console, screen (VNC), snapshots, cloning and disk resizing.
Kubernetes
Clusters from your kubeconfig: workloads, logs, shell, port forward, Helm with rollback, CRDs and YAML apply. Read-only mode per cluster.
Backups and secrets
Backups of volumes, databases and files, on demand or scheduled. Secrets in the system keychain instead of .env.
Metrics and tools
CPU and memory per container and VM, from 15 minutes to 24 hours, and what each machine is missing, with the install command for its system.
Network labs
Network labs that run on your laptop
Cisco IOL, Dynamips and VPCS sit next to containers such as FRR or any Linux, in the same compose file, wired by cables. Gantry draws the topology, captures any cable live and imports PNETLab and EVE-NG labs as they are.
- Drag a port to another to wire a cable; right-click a device for its console.
- Save the state of every device and go back to it, like a save point in an exercise.
- Capture any cable live and save the .pcap to open in Wireshark.
- Imports keep the same devices, cards, cables and configs, mistakes included. What had to change is written down.
Advantages
What you don't need
Gantry is one binary on your computer. Everything else is what you already have.
A server to host the dashboard
The interface runs inside the app, on 127.0.0.1, with a new token at every launch.
An agent on every server
SSH and the engine socket are enough. A small optional agent adds 24 h of metrics history and a direct TLS link.
A new project format
A project is a compose.yaml that docker compose still runs without Gantry. The extras are optional x- keys.
A dedicated lab appliance
Routers, switches, PCs, containers and VMs share one compose, on a Mac or any Linux box.
kubectl and another IDE for clusters
Workloads, logs, shell, port forward, Helm and CRDs sit next to your machines, with a read-only mode per cluster.
Passwords in plain .env files
Secrets can live in the system keychain and are handed to compose only when it runs.
Local first, nothing exposed
The interface only listens on 127.0.0.1, with a token per run, and access to your servers goes through SSH tunnels. Nothing is left open to the internet. And the code is open: free software under AGPL-3.0, on GitHub.
Screens
A look inside Gantry
More screens and real cases in the step-by-step guide.
Getting started
From download to your first project
Install with a single command: curl on Linux and macOS, PowerShell on Windows. No sudo or admin.
The first screen shows what it found on this computer and offers the servers in ~/.ssh/config and the clusters in ~/.kube/config.
Your running compose projects are already listed. Open one to see its containers, logs and files.
Create a project from a template, such as Postgres + Adminer, or add a server with an address like ssh://homelab.
Who it's for
For people who run containers, VMs and labs every day
Developers
Local databases, queues and services in compose, without memorizing commands to see what is running.
Infrastructure, DevOps and SRE
Many servers and clusters in one place, over SSH, without installing a dashboard or an agent.
Network students and engineers
Cisco labs with IOL, Dynamips and VPCS on your laptop, and PNETLab and EVE-NG labs imported as they are.
Download
Install with one command
One command, for your user, without sudo or admin. It checks the files against the release checksums; run it again to update.
Linux and macOS
curl -fsSL https://gonservice.github.io/gantry/install.sh | sh
Windows (PowerShell)
irm https://gonservice.github.io/gantry/install.ps1 | iex
On a Linux without a desktop, it installs the server version (or use | sh -s -- --server).
Or pick the file
macOS
Apple Silicon and Intel, via Homebrew or the .zip.
Linux desktop app
x86_64. Needs WebKitGTK 4.1; instalar.sh shows the command if it is missing.
Windows
Experimental: runs engines and VMs inside WSL2.
Headless Linux server
amd64 and arm64. No window: the interface opens in a browser.
brew install --cask gonservice/tap/gantry
The apps are not signed yet: Homebrew handles it on macOS; with the zip, open it the first time with right-click › Open.
FAQ
Questions about Gantry
Is Gantry free?
Yes. It is free software under AGPL-3.0: you can use, study, modify and distribute it. Modified versions, including those offered over a network, must also be distributed with their source code.
Do I need to install anything on my servers?
No. SSH and the engine socket are enough. A small optional agent adds 24 h of metrics history and a direct TLS link.
What if I stop using Gantry?
You lose nothing. Projects are plain compose.yaml files that docker compose runs without Gantry; it does not keep a copy in a format of its own.
Does it work on Windows?
In experimental mode, running engines and VMs inside WSL2. On macOS (Apple Silicon and Intel) and Linux it runs natively.
Are Cisco device images included?
No. Gantry runs IOL, Dynamips and VPCS, but Cisco images (IOL and IOS) are not part of the project and are not distributed.
Why does macOS warn me the first time I open it?
Because the apps are not signed yet. Installing with Homebrew handles it; with the .zip, open it the first time with right-click › Open.
Contact
Questions about Gantry?
Tell us how your team works and we will get back to you. To report a bug, use the GitHub repository.