Skip to content

[Plugin] Docker Swarm Manager — community plugin for Swarm monitoring #286

@alfonsokuen

Description

@alfonsokuen

Docker Swarm Manager Plugin

Hi! I built a community plugin that adds Docker Swarm monitoring and management to PegaProx, inspired by #152.

Repository: https://github.com/alfonsokuen/pegaprox-docker-swarm

What it does

A full-featured Docker Swarm management interface that runs as a PegaProx plugin. Connects to Swarm manager nodes via SSH (using paramiko, already bundled with PegaProx) and provides:

  • Dashboard — Swarm overview with node resource metrics (CPU, RAM, Disk), container counts
  • Nodes — List with status, availability, role, engine version, resources
  • Services — 24 API endpoints: list, scale, restart, remove, logs, tasks
  • Stacks — List, deploy from YAML, remove
  • Containers — List with start/stop/restart actions and log viewer
  • Networks, Volumes, Images — Full listing
  • Settings — SSH host config with connection testing

Architecture

  • Backend: Python __init__.py (24 API endpoints, 30KB)
  • Frontend: React SPA swarm.html using PegaProx's bundled React/Tailwind/Babel (33KB)
  • No additional dependencies required — uses paramiko (already in PegaProx)
  • Background polling with configurable interval
  • 15s TTL cache for performance
  • Audit logging for all actions

Installation

cd /opt/PegaProx/plugins/
git clone https://github.com/alfonsokuen/pegaprox-docker-swarm.git docker_swarm
cp docker_swarm/config.example.json docker_swarm/config.json
# Edit config.json with your Swarm manager SSH credentials
chown -R pegaprox:pegaprox docker_swarm/
chmod 600 docker_swarm/config.json

Then: Settings → Plugins → Rescan → Enable

Tested on

  • PegaProx Beta 0.9.5
  • Docker Swarm 29.4.0 (3-node cluster, 44 services)
  • Debian 13 (trixie) LXC container

Screenshots

The plugin includes a dark-themed React SPA that matches PegaProx's design language, with sidebar navigation, resource metrics with progress bars, sortable tables, modal dialogs for logs/tasks/scaling, and toast notifications.

Happy to accept feedback or contribute this upstream if there's interest!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions