Newv1.8.0: The images of every node, and an audit log17 October 2026

Your Docker Swarm, from one window. Every node in view.

A Windows desktop app for running a swarm from day to day. Deploy services and roll them back, follow the logs of every service and see what changed in the swarm, take a node out for maintenance, back up the swarm and its volumes, and hear about it when something breaks. It keeps itself up to date.

Version 1.8.0 · Release notes · Source on Codeberg · The installer is not signed yet, so SmartScreen asks once: More info → Run anyway.

Installs nothing on the swarm Talks to the Docker Engine API through your contexts Windows 10 and 11, and it updates itself from Codeberg

The Overview page of Docker Swarm MX on a swarm of four nodes, all of them ready: the counts of nodes, managers, services, tasks, secrets and configs, the live CPU, memory and network across the swarm, the CPU of the last 24 hours, the load per node and the managers.
No more typingdocker service ps
Built with
  • Go
  • Wails v3
  • Svelte 5
  • SVAR Svelte
  • docker-api-go
Works with
  • Docker Swarm
  • Docker contexts
  • Docker in WSL
  • Docker over SSH
  • TCP and TLS
  • Docker Desktop

Principles

A / ONE VIEW ACROSS NODES

Every node, not only the one you are on.

docker stats, docker ps and docker volume ls only see the daemon you are connected to. The app reaches every node through its own Docker context: the load of the whole swarm, a shell on any node, and a volume backed up on the node where it lives.

B / A PREVIEW FIRST

See what a change will do before it does it.

Drain shows what moves, what stops and what cannot run anywhere else. Promote and demote warn about the quorum. Removing services lists what would be left behind, and a restore lists what it will create.

C / NOTHING ON THE SWARM

Installs nothing on your nodes.

It connects through your Docker CLI contexts and talks to the Engine API directly. The only things it starts on the swarm are short-lived helper containers, for the Terminal and for volume backups.

Made for whoever looks after the swarm.

A few VPSs or servers, managed from a Windows machine. Two kinds of people end up doing that.

WEB DEVELOPERS

Your own sites, APIs and workers on a small swarm.

Deploy from a compose file, roll out a new image, and read the logs of every replica when a release misbehaves, without looking up every flag of docker service.

SYSTEM ADMINISTRATORS

The nodes, the load, and the night shift.

Keep an eye on nodes and load, drain a node for maintenance, keep the manager quorum healthy and make backups, and hear about it when a node goes down at night.

The swarm, and only the swarm. Services, stacks, tasks, nodes, secrets and configs, plus the volumes and images on each node and backups of volumes. Stand-alone containers and compose projects on one machine are the work of Docker Client MX, whose swarm section this app grew out of.

Everything the swarm needs from you.

Twelve pages, one window. Each does one job on the swarm, and shows what it will change before it does. Or see everything it does on one list ↓

01

Overview →

Nodes, managers, services and tasks in one row, and the load of the whole swarm, live and over 24 hours, measured on every node.

02

Services →

Grouped per stack. Roll out a new image pinned to its digest, roll back, scale, redeploy, replace a hanging task, and rebalance.

03

Logs & events →

All services or a choice, interleaved by time, with regex search; two weeks of swarm events, and an audit log of the app.

04

Nodes →

Drain with a preview of what moves, quorum warnings, capacity, disk space, and the images on every node, pulled again or removed.

05

Stacks →

Deploy from a compose file with its .env, compare a stack with its file, and edit the files with Docker checking them first.

06

Secrets & networks →

Create them, see who uses them, and replace the content of one in a single step: the swarm itself does not allow that.

07

Backups & volumes →

The swarm as a zip and a volume on its node, on a schedule, to a folder, SFTP or S3, encrypted with age. A restore you tick.

08

Schedules →

Everything the app does by itself in one table, and image updates at a fixed time that only roll out what changed.

09

Notifications →

Gotify, ntfy, a webhook or Windows, when a node goes down or an update rolls back. Once per problem, and when it is resolved.

10

Terminal →

A root shell on any node through its Docker context, no SSH needed, and a cheat sheet that puts a command on the prompt.

11

Swarm setup →

Create a swarm, join or leave one, unlock a manager, and the join tokens, autolock, heartbeat and task history.

12

Contexts & looks →

Your Docker CLI contexts, one per node for the work on that node. Five colour schemes, seven languages, and it updates itself.

All 118 things it does, on one list.

Every feature page, boiled down to one line per thing it can do. Each line opens its tile on that page, with the whole story.

118 things on 12 pages.

Before it changes anything

Draining a node? See what moves first.

A swarm does what you tell it, also when that leaves a database with nowhere to go. So before a risky change the app shows what it will do: which tasks move to another node, which stop, and which cannot run anywhere else because of their placement constraints or host-mode ports. Then you decide.

Drain lists what moves and what is stuckPromote and demote warn about the quorumA restore creates only what you tick

Up and running in a minute.

One installer for Windows. It finds your Docker contexts and puts nothing on the swarm.

WINDOWS 10 · 11

Installer

Docker-Swarm-MX-Setup.exe installs for the whole machine and fetches the WebView2 runtime when Windows does not have it yet. It is not signed yet, so SmartScreen warns the first time: More info → Run anyway. After that the app keeps itself up to date.

CONTRIBUTORS

From source

Go 1.26, Node.js 20+ and the Wails v3 CLI, with docker-api-go cloned next to the project. NSIS 3 for the installer.

$ git clone https://codeberg.org/MartijnSchimmel/docker-api-go.git
$ git clone https://codeberg.org/MartijnSchimmel/docker-swarm-mx.git
$ cd docker-swarm-mx
$ wails3 dev
IN A BROWSER

Server mode

The same app without a window, with the UI on localhost:34115. Handy for a look at the UI in a browser; it leaves out the notification area, Windows notifications and starting with Windows.

$ wails3 task build:server
You’ll need
A context that reaches a manager.A Docker CLI context or DOCKER_HOST: named pipe, TCP, TLS or SSH. The choice is remembered.
A context per node.Optional, for the load per node, the Terminal, volume backups and logs read on the node.
Docker CLI + compose plugin.Only for stacks: deploying, checking a compose file and comparing a stack with it.
Windows 10 or 11 with WebView2.Standard on Windows 11; the installer fetches it otherwise.