← Products Gantry · open source

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

Gantry showing a compose project with its containers

The problem

One terminal per machine, one tool per window

🔀

To know what runs where, you jump between SSH, docker, podman and kubectl, one machine at a time.

🧱

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.
A network lab in Gantry: three routers, two LANs, a PC and a server, wired by cables

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

A machine in Gantry, with its hardware, usage and projects
A machine: its hardware, usage and projects
The project file editor in Gantry
Edit the compose and see what differs from what runs
Metrics charts for a project in Gantry
Metrics: CPU and memory per container and VM

More screens and real cases in the step-by-step guide.

Getting started

From download to your first project

1

Install with a single command: curl on Linux and macOS, PowerShell on Windows. No sudo or admin.

2

The first screen shows what it found on this computer and offers the servers in ~/.ssh/config and the clusters in ~/.kube/config.

3

Your running compose projects are already listed. Open one to see its containers, logs and files.

4

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.

We'll reply to your email and phone as soon as possible.

Prefer email? Write to contato@gonserviceit.com.br