If you'd like to follow this series in detail, please visit the dedicated page below, where everything is neatly organized for easy reference:
Homelab – Tracking My Digital Journey
Docker Swarm lets you manage multiple Docker engines (computers) as a single system. It helps you scale applications and ensure they stay running even if one computer fails.
How it works:
- Managers: These computers receive commands (like "run 5 copies of this app") and decide where to run them.
- Workers: These computers actually run the applications.
- Services: You define what you want to run (your application) and how many copies, using a "service".
- Networking: Swarm creates a network so all the applications can easily talk to each other.
In short: You tell Swarm what to run, and it handles where and how to run it across multiple computers. This makes scaling and managing applications easier.
I wrote a blog on this subject to set it up on Ubuntu

Time for the diagram, here is -= THE SWARM =-

This setup consists of a Docker Swarm cluster running on a Proxmox infrastructure. The cluster includes:
- 3 Manager nodes:
Docker01
,Docker02
, andDocker03
- 4 Worker nodes:
Docker04
,Docker05
,Docker06
, andDocker07
- A dedicated database server:
DB01
- A separate server (
DN2
): Hosting an instance of AdGuard Home on a Raspberry Pi.
All containers that require persistent storage use an NFS share. This allows containers to spawn on any node within the Swarm while retaining their configuration and data. This is a crucial advantage of using Docker Swarm.

Containers Running in the Swarm - Manager nodes
Portainer
- A web interface for managing Docker Swarm, deployments, and updates efficiently.
- Portainer itself runs only on manager nodes.
- If you want to try it out, Portainer offers a free license for up to three nodes.
Portainer Agent
- Runs on all Swarm nodes (both workers and managers).
- Acts as an agent to facilitate communication between nodes and Portainer.
Traefik v3
- A HA (High Availability) proxy that dynamically routes traffic to the correct container, avoiding the need to manually track where each service is running.
Grafana Stack
- A complete monitoring stack composed of:
- Grafana (Visualization)
- Prometheus (Metrics collection)
- InfluxDB (Time-series database)
- cAdvisor (Container monitoring) → Runs on all nodes
- Node Exporter (Host-level metrics) → Runs on all nodes
The manager nodes are intentionally kept light to focus on traffic routing and cluster management, ensuring optimal Swarm performance.

Containers Running in the Swarm - Worker Nodes
Gitea
- Gitea serves as the repository where all Docker Compose files for the stacks deployed on the Swarm are stored.
- This enables source-controlled deployments within Gitea.
- Combined with Portainer’s auto-update feature, this setup ensures a smooth and automated deployment process.
arr-stack-nfs
- Despite the name, this stack does not include any
*arr
applications. - Instead, it consists of:
- qBittorrent: A lightweight yet effective BitTorrent client.
- NZBGet: Used to download from newsgroups when necessary.
- NZBHydra: A meta-search engine for newsgroups.
- All of these are VPN-protected via Gluetun.
Dashy-nfs
- A dashboard system that provides a convenient way to list and access all installed services with a single click.
dns1-adguard+nfs
- The primary DNS server running AdGuard Home.
- Similar to Pi-hole, but I found AdGuard more flexible for my environment.
- (Note: I haven’t tested the latest Pi-hole release yet.)
Ghost-nfs
- The blog you’re reading right now is hosted in the Swarm using Ghost.
Hoarder-nfs
- A powerful bookmark management tool with browser extensions for most common browsers.
- Includes a mobile app for iPhone and Android.
- Uses my local AI to automatically tag bookmarked items.
- Melliseach: A versatile user-focused search engine that can be embedded into websites and applications.
- Comes with an embedded Chrome browser to preview and cache bookmarked sites.
KMS
- A magic KMS (Key Management Service).
Uptime Kuma2
A simple yet powerful uptime monitor used to track the status of all running services and detect when something goes down. Helps ensure that everything operational and responsive.
Linkstack
- A collection of single-page websites for three domains I manage.
NightScout-nfs
- A Nightscout instance used to monitor my son’s glucose levels in real-time.
OpenWebUI-nfs
- A clean and user-friendly interface for interacting with my local AI, hosted via Ollama.
Outline-nfs
outline is a wiki/document editor, similar to Confluence. I migrated from Confluence to Outline because it is simpler, faster, and more efficient.
- Integrated with my local AI for:
- Fast document searches.
- Summarizing lengthy documents.
- Also includes:
- Redis: A cache manager.
- Gotenberg: Used for generating clean PDF files.
Draw.io
- An online diagramming tool similar to Visio.
- The tool I use to create all the diagrams featured in this blog series.
This part is one, next one will focus on SamanthAI my local AI.