<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: eldara</title>
    <description>The latest articles on DEV Community by eldara (@eldara).</description>
    <link>https://dev.to/eldara</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3762798%2F4121cb8b-7834-41ef-b992-c75dca3350d3.png</url>
      <title>DEV Community: eldara</title>
      <link>https://dev.to/eldara</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eldara"/>
    <language>en</language>
    <item>
      <title>Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Sun, 12 Apr 2026 13:07:02 +0000</pubDate>
      <link>https://dev.to/eldara/docker-swarm-auto-healing-a-guide-to-troubleshooting-pending-states-47</link>
      <guid>https://dev.to/eldara/docker-swarm-auto-healing-a-guide-to-troubleshooting-pending-states-47</guid>
      <description>&lt;p&gt;It’s 3:00 AM. Your monitoring alert goes off. You check your cluster, and instead of a healthy green "Running" status, you see the dreaded, silent word: &lt;strong&gt;Pending&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In Docker Swarm, &lt;strong&gt;"Pending"&lt;/strong&gt; is the scheduler’s way of saying, &lt;em&gt;"I want to run this container, but I literally can’t find a home for it."&lt;/em&gt; Unlike an "Error" or a "Crash," a Pending state doesn't always show up in the standard logs. It’s a scheduling ghost.&lt;/p&gt;

&lt;p&gt;In 2026, with the rise of resource-heavy AI sidecars and high-density edge clusters, "Pending" states are usually tied to one of three things. Let's look at how to find the bottleneck and fix it.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The "Resource Exhaustion" Trap
&lt;/h2&gt;

&lt;p&gt;The most common reason for a Pending state is that you’ve promised more than your hardware can deliver. If you define a service with heavy reservations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;reservations&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;cpus&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;2'&lt;/span&gt;
      &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;4G&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;...and your nodes only have 1GB of RAM free, Swarm will wait forever for resources to clear up.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Diagnose
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Native Way&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker service ps &lt;span class="nt"&gt;--no-trunc&lt;/span&gt; &amp;lt;service_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look for the &lt;strong&gt;Error&lt;/strong&gt; column. It will usually say: &lt;code&gt;insufficient resources on X nodes&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The SwarmCLI Fix&lt;/strong&gt;:&lt;br&gt;
Instead of checking every service one by one, SwarmCLI highlights the problems immediately.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5hcebpj6uvc3zddz3ar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5hcebpj6uvc3zddz3ar.png" alt="SwarmCLI Service Overview" width="800" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This gives you a overview of your cluster’s services. You’ll instantly see which service has issues and needs attention.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. The "VIP Section" (Placement Constraints)
&lt;/h2&gt;

&lt;p&gt;We use constraints to make sure our Database only runs on nodes with SSDs, or our AI models only run on nodes with GPUs. But if you get too specific, you create an impossible puzzle for the scheduler.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Scenario
&lt;/h3&gt;

&lt;p&gt;You have a constraint &lt;code&gt;node.labels.storage == ssd&lt;/code&gt;, but you forgot to actually label your new Raspberry Pi 5 nodes. Result? &lt;strong&gt;Pending.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Quick Check
&lt;/h3&gt;

&lt;p&gt;Run &lt;code&gt;docker node inspect &amp;lt;node-id&amp;gt;&lt;/code&gt; to see if the labels match your &lt;code&gt;docker-compose.yml&lt;/code&gt; requirements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0n8k9xxkc68d4576hwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0n8k9xxkc68d4576hwv.png" alt="SwarmCLI Node Details" width="800" height="78"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  3. The "Missing Map" (Volume &amp;amp; Network Mismatches)
&lt;/h2&gt;

&lt;p&gt;In 2026, we’re seeing more "Multi-Arch" clusters (mixing x86 and ARM). If you try to deploy a service that requires a specific &lt;strong&gt;named volume&lt;/strong&gt; that only exists on &lt;code&gt;node-01&lt;/code&gt;, but you told Swarm it can run anywhere, the task will hang in "Pending" on any node that lacks that volume.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[!NOTE]&lt;br&gt;
&lt;strong&gt;Common Network Hang&lt;/strong&gt;: If you’re using an overlay network that hasn't synchronized across your managers correctly, the task might stay Pending while it waits for a network ID that doesn't exist on the target worker.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  How to Debug Like a Pro in 2026
&lt;/h2&gt;

&lt;p&gt;When a service stays Pending for more than 30 seconds, follow this checklist:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Check the "Desired State"&lt;/strong&gt;: Is Swarm actually trying to scale up?&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Inspect the Task&lt;/strong&gt;: Use &lt;code&gt;docker inspect &amp;lt;task_id&amp;gt;&lt;/code&gt; and look at the &lt;code&gt;Status&lt;/code&gt; and &lt;code&gt;Message&lt;/code&gt; fields. This is where the "real" reason is hidden.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Check Node Health&lt;/strong&gt;: Is the node marked as &lt;code&gt;Ready&lt;/code&gt; and &lt;code&gt;Active&lt;/code&gt;? A node in &lt;code&gt;Drain&lt;/code&gt; mode will never accept new tasks.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  The SwarmCLI "Doctor" Command
&lt;/h3&gt;

&lt;p&gt;If you’re tired of digging through nested JSON, we’ve simplified the process:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;swarmcli analyze &amp;lt;service_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command runs a diagnostic sweep of your cluster, comparing your service requirements against your current node health. It will tell you exactly why your task is stuck—whether it’s a missing label, a full disk, or a memory reservation conflict.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary: Don't Let "Pending" Be Permanent
&lt;/h2&gt;

&lt;p&gt;Docker Swarm’s auto-healing is brilliant, but it’s not magic. It needs a valid "landing strip" to place your containers. By keeping an eye on your resource reservations and using SwarmCLI to visualize your cluster capacity, you can solve 90% of scheduling issues before they even trigger an alert.&lt;/p&gt;




&lt;h2&gt;
  
  
  2026 Docker Swarm Mastery Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mar 9:&lt;/strong&gt; [The Foundation] &lt;a href="https://swarmcli.io/blog/The-Definitive-Docker-Swarm-Guide-for-2026" rel="noopener noreferrer"&gt;The Definitive Docker Swarm Guide for 2026&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 12:&lt;/strong&gt; [Expert Analysis] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-vs-Kubernetes-in-2026-The-Case-for-Staying-Simple" rel="noopener noreferrer"&gt;Docker Swarm vs Kubernetes in 2026 — The Case for Staying Simple&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 16:&lt;/strong&gt; [Edge Frontier] &lt;a href="https://swarmcli.io/blog/Setting-up-the-ultimate-3-node-Swarm-on-Raspberry-Pi-5" rel="noopener noreferrer"&gt;Setting up the ultimate 3-node Swarm on Raspberry Pi 5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 19:&lt;/strong&gt; [Security Specialist] &lt;a href="https://swarmcli.io/blog/Secure-by-Design-Managing-Docker-Swarm-Secrets-the-SwarmCLI-Way" rel="noopener noreferrer"&gt;Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 23:&lt;/strong&gt; [Ops Mastery] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-Auto-healing-Troubleshooting-Common-Pending-States" rel="noopener noreferrer"&gt;Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why SwarmCLI?
&lt;/h2&gt;

&lt;p&gt;By 2026, we noticed a gap. Docker Swarm was rock solid, but the management tooling felt stuck in 2017. SwarmCLI bridges that gap with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time Health:&lt;/strong&gt; Stop guessing which node is throttled.&lt;br&gt;
&lt;strong&gt;Atomic Secret Sync:&lt;/strong&gt; One-command &lt;code&gt;.env&lt;/code&gt; to Raft encryption.&lt;br&gt;
&lt;strong&gt;Edge-Optimized:&lt;/strong&gt; Built in Go for zero-overhead on ARM/RPi5 devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Connected
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://swarmcli.io" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/swarmcli" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>docker</category>
      <category>sre</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Thu, 26 Mar 2026 12:53:38 +0000</pubDate>
      <link>https://dev.to/eldara/secure-by-design-managing-docker-swarm-secrets-the-swarmcli-way-2i7m</link>
      <guid>https://dev.to/eldara/secure-by-design-managing-docker-swarm-secrets-the-swarmcli-way-2i7m</guid>
      <description>&lt;p&gt;Look, in 2026, security isn't just a "nice-to-have" feature; it's the core of your infrastructure. If you're still putting API keys, database passwords, or private keys into environment variables in your &lt;code&gt;docker-compose.yml&lt;/code&gt;, you're living on the edge — and not the good "Edge Computing" kind.&lt;/p&gt;

&lt;p&gt;Docker Swarm has a powerful, built-in &lt;strong&gt;Secrets&lt;/strong&gt; mechanism that encrypts your sensitive data both at rest (within the manager's Raft log) and in transit. But for many developers, the native CLI experience feels like a black box.&lt;/p&gt;

&lt;p&gt;In this guide, we'll look at how SwarmCLI transforms secret management from a chore into a seamless part of your workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Native Problem: "Write-Once, Read-Never"
&lt;/h2&gt;

&lt;p&gt;The biggest frustration with native Swarm secrets is how hard they are to audit. Once you've run &lt;code&gt;docker secret create&lt;/code&gt;, that's it. You cannot "cat" the secret back out to verify its content without deploying a service, mounting the secret, and reading it from within the container.&lt;/p&gt;

&lt;p&gt;This leads to a "deploy-fail-debug" cycle that slows down development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Secure Creation (The SwarmCLI Interface)
&lt;/h2&gt;

&lt;p&gt;SwarmCLI provides a visual, interactive layer over the standard &lt;code&gt;docker secret&lt;/code&gt; commands. Instead of long, complex one-liners, you get a clear dashboard where you can manage your secrets with context.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcbh91ka1ryu57tlrgjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcbh91ka1ryu57tlrgjx.png" alt="Docker Secret" width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The OSS Experience
&lt;/h3&gt;

&lt;p&gt;Even in the open-source version, SwarmCLI makes it easy to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bulk Audit&lt;/strong&gt;: See all your secrets and their age in one view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service Mapping&lt;/strong&gt;: Instantly see which services are using which secrets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Health Checks&lt;/strong&gt;: Detect secrets that are defined but unused (orphaned secrets).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: The Business Edition Advantage — Selective Transparency
&lt;/h2&gt;

&lt;p&gt;This is where &lt;strong&gt;SwarmCLI BE&lt;/strong&gt; really shines. We've heard from hundreds of developers that the "Write-Once" nature of secrets is the single biggest productivity killer.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Reveal" Feature
&lt;/h3&gt;

&lt;p&gt;SwarmCLI BE introduces the &lt;strong&gt;Reveal&lt;/strong&gt; action (&lt;code&gt;x&lt;/code&gt;). With a single keystroke, SwarmCLI BE automates the complex dance required to safely audit a secret's value:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It spins up a temporary, minimal container (defaulting to &lt;code&gt;alpine:latest&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;It mounts the target secret.&lt;/li&gt;
&lt;li&gt;It securely streams the value back to your TUI.&lt;/li&gt;
&lt;li&gt;It instantly tears down the container, leaving no trace.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bto8lu1jjkxt2pxvfhg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bto8lu1jjkxt2pxvfhg.png" alt="Reveal Secret" width="640" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;BE Tip&lt;/strong&gt;: You can even customize the image used for this reveal process with the &lt;code&gt;SWARMCLI_REVEAL_IMAGE&lt;/code&gt; environment variable if your environment requires strictly hardened base images.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why This Matters in 2026
&lt;/h2&gt;

&lt;p&gt;In a world where we're managing dozens of AI sidecars and edge nodes, you don't have time to manually verify that every node has the correct decryption keys. SwarmCLI BE gives you &lt;strong&gt;Observability without compromising Security&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By using Docker's native mechanisms boosted by SwarmCLI's intelligence, you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Config&lt;/strong&gt;: No extra vault software to install or manage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum Speed&lt;/strong&gt;: Audit secrets in seconds, not minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit Trails&lt;/strong&gt;: Know exactly what’s in your cluster at any given time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Secrets management shouldn't be a friction point in your development pipeline. Use the native power of Docker Swarm, and use &lt;strong&gt;SwarmCLI&lt;/strong&gt; to pull back the curtain just enough to keep your team productive and your infrastructure secure.&lt;/p&gt;

&lt;p&gt;Ready to secure your stack?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;Check out SwarmCLI on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://swarmcli.io/be" rel="noopener noreferrer"&gt;Upgrade to BE for the Reveal feature and more&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2026 Docker Swarm Mastery Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mar 9:&lt;/strong&gt; [The Foundation] &lt;a href="https://swarmcli.io/blog/The-Definitive-Docker-Swarm-Guide-for-2026" rel="noopener noreferrer"&gt;The Definitive Docker Swarm Guide for 2026&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 12:&lt;/strong&gt; [Expert Analysis] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-vs-Kubernetes-in-2026-The-Case-for-Staying-Simple" rel="noopener noreferrer"&gt;Docker Swarm vs Kubernetes in 2026 — The Case for Staying Simple&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 16:&lt;/strong&gt; [Edge Frontier] &lt;a href="https://swarmcli.io/blog/Setting-up-the-ultimate-3-node-Swarm-on-Raspberry-Pi-5" rel="noopener noreferrer"&gt;Setting up the ultimate 3-node Swarm on Raspberry Pi 5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 19:&lt;/strong&gt; [Security Specialist] &lt;a href="https://swarmcli.io/blog/Secure-by-Design-Managing-Docker-Swarm-Secrets-the-SwarmCLI-Way" rel="noopener noreferrer"&gt;Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 23:&lt;/strong&gt; [Ops Mastery] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-Auto-healing-Troubleshooting-Common-Pending-States" rel="noopener noreferrer"&gt;Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why SwarmCLI?
&lt;/h2&gt;

&lt;p&gt;By 2026, we noticed a gap. Docker Swarm was rock solid, but the management tooling felt stuck in 2017. SwarmCLI bridges that gap with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time Health:&lt;/strong&gt; Stop guessing which node is throttled.&lt;br&gt;
&lt;strong&gt;Atomic Secret Sync:&lt;/strong&gt; One-command &lt;code&gt;.env&lt;/code&gt; to Raft encryption.&lt;br&gt;
&lt;strong&gt;Edge-Optimized:&lt;/strong&gt; Built in Go for zero-overhead on ARM/RPi5 devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Connected
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://swarmcli.io" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/swarmcli" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cli</category>
      <category>devops</category>
      <category>docker</category>
      <category>security</category>
    </item>
    <item>
      <title>The Ultimate Edge Cluster: Setting up a 3-Node Swarm on Raspberry Pi 5 (2026)</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Thu, 19 Mar 2026 11:42:36 +0000</pubDate>
      <link>https://dev.to/eldara/the-ultimate-edge-cluster-setting-up-a-3-node-swarm-on-raspberry-pi-5-2026-4a7j</link>
      <guid>https://dev.to/eldara/the-ultimate-edge-cluster-setting-up-a-3-node-swarm-on-raspberry-pi-5-2026-4a7j</guid>
      <description>&lt;p&gt;By 2026, the Raspberry Pi 5 has become the undisputed king of the &lt;strong&gt;"Prosumer Edge."&lt;/strong&gt; With its PCIe support for NVMe drives and significantly improved thermal management, it’s no longer just a toy—it’s a viable production environment for localized AI, smart home hubs, and private cloud storage.&lt;/p&gt;

&lt;p&gt;But running a single Pi is a single point of failure. To get true reliability at the edge, you need a cluster. In this guide, we’ll build a 3-node &lt;strong&gt;"Pikube"&lt;/strong&gt; (without the K8s overhead) that fits in the palm of your hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Swarm for the Edge?
&lt;/h2&gt;

&lt;p&gt;If you’ve tried running Kubernetes on a Pi, you know the pain: the control plane can consume &lt;strong&gt;1.5GB of RAM&lt;/strong&gt; before you even deploy a single container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Swarm is different.&lt;/strong&gt; It is baked into the Docker engine. On a Raspberry Pi 5, the Swarm overhead is nearly invisible, leaving all those glorious 8GB of RAM for your actual workloads.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 1: The Hardware Prep
&lt;/h2&gt;

&lt;p&gt;For a &lt;strong&gt;Production-Ready&lt;/strong&gt; Edge cluster, we recommend:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;3x Raspberry Pi 5 (8GB RAM models)&lt;/strong&gt;: The extra headroom is vital for AI sidecars and real-time observability.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;NVMe Base/HAT&lt;/strong&gt;: Skip the SD cards. They &lt;em&gt;will&lt;/em&gt; fail under heavy Docker logging. Use NVMe SSDs for boot and data storage.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;PoE+ HATs&lt;/strong&gt;: This allows you to power all three nodes via a single ethernet switch—keeping your "cluster" cable-managed and professional.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  OS Choice
&lt;/h3&gt;

&lt;p&gt;Stick with &lt;strong&gt;Raspberry Pi OS (64-bit)&lt;/strong&gt; or &lt;strong&gt;Ubuntu Server 26.04 LTS&lt;/strong&gt;. Ensure you enable &lt;code&gt;cgroups&lt;/code&gt; in &lt;code&gt;cmdline.txt&lt;/code&gt; if they aren't on by default.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 2: Installing Docker (The Quick Way)
&lt;/h2&gt;

&lt;p&gt;On all three nodes, run the standard convenience script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://get.docker.com &lt;span class="nt"&gt;-o&lt;/span&gt; get-docker.sh
&lt;span class="nb"&gt;sudo &lt;/span&gt;sh get-docker.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;[!TIP]&lt;br&gt;
Add your user to the &lt;code&gt;docker&lt;/code&gt; group so you don't have to type &lt;code&gt;sudo&lt;/code&gt; for every command:&lt;br&gt;
&lt;code&gt;sudo usermod -aG docker $USER&lt;/code&gt; (Log out and back in for this to take effect).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Phase 3: Initializing the Swarm
&lt;/h2&gt;

&lt;p&gt;Pick your "Lead" Pi (let's call it &lt;code&gt;pi-manager-01&lt;/code&gt;) and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker swarm init &lt;span class="nt"&gt;--advertise-addr&lt;/span&gt; &amp;lt;YOUR-PI-IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker will provide a join-token. Copy that, SSH into your other two Pis, and paste it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verify with SwarmCLI
&lt;/h3&gt;

&lt;p&gt;This is where SwarmCLI saves you from opening multiple terminal windows. From your laptop, connect to your manager node and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;swarmcli node list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see a beautiful, real-time status of your Pi cluster. If one Pi is running hot or throttled, SwarmCLI will highlight the status so you can investigate before the node goes offline.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 4: Edge-Specific Optimizations
&lt;/h2&gt;

&lt;p&gt;Running on ARM hardware at the edge requires a few tweaks.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Label Your Nodes
&lt;/h3&gt;

&lt;p&gt;In an edge setup, you might have one Pi with a camera attached. Use labels to tell Swarm where to put specific tasks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker node update &lt;span class="nt"&gt;--label-add&lt;/span&gt; &lt;span class="nv"&gt;hardware&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;camera pi-manager-01
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Manage Log Rotation
&lt;/h3&gt;

&lt;p&gt;Edge storage (even NVMe) can fill up fast. Update your &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"log-driver"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"json-file"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"log-opts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"max-size"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"10m"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"max-file"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"3"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Monitoring with SwarmCLI
&lt;/h3&gt;

&lt;p&gt;Instead of installing a heavy monitoring stack like Prometheus/Grafana, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;swarmcli service stats
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you a lightweight view of CPU cycles across the entire cluster without taxing the Pi's resources.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion: The Power of Three
&lt;/h2&gt;

&lt;p&gt;A 3-node Raspberry Pi 5 Swarm cluster provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High Availability&lt;/strong&gt;: One Pi can fail completely, and your services will migrate gracefully.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low Power&lt;/strong&gt;: The entire cluster pulls less than 40W under load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: No complex networking plugins required—just native Swarm power.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2026 Docker Swarm Mastery Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mar 9:&lt;/strong&gt; [The Foundation] &lt;a href="https://swarmcli.io/blog/The-Definitive-Docker-Swarm-Guide-for-2026" rel="noopener noreferrer"&gt;The Definitive Docker Swarm Guide for 2026&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 12:&lt;/strong&gt; [Expert Analysis] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-vs-Kubernetes-in-2026-The-Case-for-Staying-Simple" rel="noopener noreferrer"&gt;Docker Swarm vs Kubernetes in 2026 — The Case for Staying Simple&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 16:&lt;/strong&gt; [Edge Frontier] &lt;a href="https://swarmcli.io/blog/Setting-up-the-ultimate-3-node-Swarm-on-Raspberry-Pi-5" rel="noopener noreferrer"&gt;Setting up the ultimate 3-node Swarm on Raspberry Pi 5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 19:&lt;/strong&gt; [Security Specialist] &lt;a href="https://swarmcli.io/blog/Secure-by-Design-Managing-Docker-Swarm-Secrets-the-SwarmCLI-Way" rel="noopener noreferrer"&gt;Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 23:&lt;/strong&gt; [Ops Mastery] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-Auto-healing-Troubleshooting-Common-Pending-States" rel="noopener noreferrer"&gt;Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why SwarmCLI?
&lt;/h2&gt;

&lt;p&gt;By 2026, we noticed a gap. Docker Swarm was rock solid, but the management tooling felt stuck in 2017. SwarmCLI bridges that gap with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time Health:&lt;/strong&gt; Stop guessing which node is throttled.&lt;br&gt;
&lt;strong&gt;Atomic Secret Sync:&lt;/strong&gt; One-command &lt;code&gt;.env&lt;/code&gt; to Raft encryption.&lt;br&gt;
&lt;strong&gt;Edge-Optimized:&lt;/strong&gt; Built in Go for zero-overhead on ARM/RPi5 devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Connected
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://swarmcli.io" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/swarmcli" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>raspberrypi</category>
      <category>docker</category>
      <category>containers</category>
    </item>
    <item>
      <title>Docker Swarm vs. Kubernetes in 2026: The Case for Staying Simple</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Mon, 16 Mar 2026 17:55:53 +0000</pubDate>
      <link>https://dev.to/eldara/docker-swarm-vs-kubernetes-in-2026-the-case-for-staying-simple-2one</link>
      <guid>https://dev.to/eldara/docker-swarm-vs-kubernetes-in-2026-the-case-for-staying-simple-2one</guid>
      <description>&lt;p&gt;By 2026, the tech industry has reached a collective realization: &lt;strong&gt;not every app needs to be a spaceship.&lt;/strong&gt; We’ve spent the last few years watching startups with three microservices spend $10,000 a month on "managed Kubernetes" and another $20,000 on the DevOps engineers required to keep it alive.&lt;/p&gt;

&lt;p&gt;We call this the &lt;strong&gt;"Complexity Tax,"&lt;/strong&gt; and in today's efficiency-first market, developers are looking for an exit ramp. If you’re deciding between Docker Swarm and Kubernetes today, you aren't just choosing a tool; you're choosing how much of your life you want to spend writing YAML.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Reality of the 2026 Landscape
&lt;/h2&gt;

&lt;p&gt;Kubernetes has essentially become the "Linux of the Cloud"—it’s the foundational layer for massive enterprises. However, two major trends have brought Docker Swarm back into the spotlight:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;The Edge Computing Explosion&lt;/strong&gt;: Running AI inference models on local hardware or ARM-based edge devices doesn't leave much room for a heavy K8s control plane.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The "SME" Renaissance&lt;/strong&gt;: Small and medium enterprises are prioritizing "Time to Market" over "Infinite Scalability." They need things that just work.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Comparison: Complexity vs. Control
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Docker Swarm (Simple Path)&lt;/th&gt;
&lt;th&gt;Kubernetes (Scalable Path)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup &amp;amp; Onboarding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Minutes. If you know Docker, you know Swarm.&lt;/td&gt;
&lt;td&gt;Days/Weeks. Requires learning Pods, Deployments, and CRDs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource Overhead&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Negligible. Runs comfortably on a 2GB RAM VPS.&lt;/td&gt;
&lt;td&gt;Significant. The control plane alone needs dedicated resources.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Networking&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Built-in Ingress Mesh. Load balancing works instantly.&lt;/td&gt;
&lt;td&gt;Modular. Requires choosing CNI plugins and Ingress controllers.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Minimal. It’s an extension of the Docker daemon.&lt;/td&gt;
&lt;td&gt;Continuous. Version upgrades can be breaking and complex.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ecosystem&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Smaller, but stable and predictable.&lt;/td&gt;
&lt;td&gt;Massive. If a tool exists, it has a K8s version.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  When to Stay Simple: The Case for Swarm
&lt;/h2&gt;

&lt;p&gt;You should stick with Docker Swarm if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You are a Small Team&lt;/strong&gt;: You don't have a dedicated "Platform Team" to manage your infrastructure 24/7.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You're Building for the Edge&lt;/strong&gt;: You need to deploy containers on remote devices (like a Raspberry Pi 5) where every MB of RAM counts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You Already Use Docker Compose&lt;/strong&gt;: Swarm is essentially "Compose for multiple servers." The mental leap is zero.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your Scaling is Predictable&lt;/strong&gt;: If you’re running 10, 50, or even 100 containers, Swarm handles this with rock-solid stability.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;[!TIP]&lt;br&gt;
The biggest "missing piece" in Swarm has always been visibility. This is why we built &lt;a href="https://swarmcli.io" rel="noopener noreferrer"&gt;SwarmCLI&lt;/a&gt;. It gives you the high-level cluster insights you’d expect from a K8s dashboard, but through the terminal you already love.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  When to Choose the "Complex" Path (Kubernetes)
&lt;/h2&gt;

&lt;p&gt;Let’s be fair—Kubernetes is the industry standard for a reason. You should use it if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You Need Multi-Tenancy&lt;/strong&gt;: You’re a large org where different teams need strict isolation (RBAC) within the same cluster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You Need Custom Autoscaling&lt;/strong&gt;: You have massive traffic swings that require pods to spin up and down based on custom metrics (like a GPU queue).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You Live in the "Cloud-Native" Ecosystem&lt;/strong&gt;: You rely heavily on tools like Service Meshes (Istio), GitOps (ArgoCD), or complex operators built specifically for K8s.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;In 2026, &lt;strong&gt;simplicity is a competitive advantage.&lt;/strong&gt; Every hour your team spends debugging a CNI plugin in Kubernetes is an hour they aren't shipping features for your customers.&lt;/p&gt;

&lt;p&gt;Docker Swarm gives you 90% of what you need with 10% of the effort. And with modern tools like SwarmCLI, the "management gap" has never been smaller. Stop over-engineering. &lt;strong&gt;Start shipping.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2026 Docker Swarm Mastery Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mar 9:&lt;/strong&gt; [The Foundation] &lt;a href="https://swarmcli.io/blog/The-Definitive-Docker-Swarm-Guide-for-2026" rel="noopener noreferrer"&gt;The Definitive Docker Swarm Guide for 2026&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 12:&lt;/strong&gt; [Expert Analysis] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-vs-Kubernetes-in-2026-The-Case-for-Staying-Simple" rel="noopener noreferrer"&gt;Docker Swarm vs Kubernetes in 2026 — The Case for Staying Simple&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 16:&lt;/strong&gt; [Edge Frontier] &lt;a href="https://swarmcli.io/blog/Setting-up-the-ultimate-3-node-Swarm-on-Raspberry-Pi-5" rel="noopener noreferrer"&gt;Setting up the ultimate 3-node Swarm on Raspberry Pi 5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 19:&lt;/strong&gt; [Security Specialist] &lt;a href="https://swarmcli.io/blog/Secure-by-Design-Managing-Docker-Swarm-Secrets-the-SwarmCLI-Way" rel="noopener noreferrer"&gt;Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 23:&lt;/strong&gt; [Ops Mastery] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-Auto-healing-Troubleshooting-Common-Pending-States" rel="noopener noreferrer"&gt;Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why SwarmCLI?
&lt;/h2&gt;

&lt;p&gt;By 2026, we noticed a gap. Docker Swarm was rock solid, but the management tooling felt stuck in 2017. SwarmCLI bridges that gap with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time Health:&lt;/strong&gt; Stop guessing which node is throttled.&lt;br&gt;
&lt;strong&gt;Atomic Secret Sync:&lt;/strong&gt; One-command &lt;code&gt;.env&lt;/code&gt; to Raft encryption.&lt;br&gt;
&lt;strong&gt;Edge-Optimized:&lt;/strong&gt; Built in Go for zero-overhead on ARM/RPi5 devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Connected
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://swarmcli.io" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/swarmcli" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>docker</category>
      <category>containers</category>
      <category>kubernetes</category>
      <category>devops</category>
    </item>
    <item>
      <title>The Definitive Docker Swarm Guide for 2026: Production-Ready Clusters in 10 Minutes</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Mon, 09 Mar 2026 16:46:30 +0000</pubDate>
      <link>https://dev.to/eldara/the-definitive-docker-swarm-guide-for-2026-production-ready-clusters-in-10-minutes-1mb4</link>
      <guid>https://dev.to/eldara/the-definitive-docker-swarm-guide-for-2026-production-ready-clusters-in-10-minutes-1mb4</guid>
      <description>&lt;p&gt;Look, it's 2026. We've all seen the "Kubernetes-is-everything" era, and frankly, some of us are a bit tired. While K8s is a marvel of engineering, using it for a 5-node application or an edge deployment is like using a literal rocket ship to go to the grocery store.&lt;/p&gt;

&lt;p&gt;Docker Swarm isn't just "still alive"; it's thriving.&lt;/p&gt;

&lt;p&gt;Why? Because in an era of AI-driven microservices and edge computing, developers are realizing that simplicity is a feature, not a limitation.&lt;/p&gt;

&lt;p&gt;In this guide, we're going to skip the fluff and get a production-ready Swarm cluster running. And because we value your time, we're going to show you how SwarmCLI makes the "boring" parts of Swarm actually enjoyable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Swarm in 2026? (The Honest Truth)
&lt;/h2&gt;

&lt;p&gt;Before we dive in, let's clear the air. If you are managing 5,000 nodes for a global bank, go use Kubernetes. But if you fall into these categories, Swarm is your best friend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Edge &amp;amp; IoT&lt;/strong&gt;: Running AI sidecars on localized hardware where overhead matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SaaS Startups&lt;/strong&gt;: You need to scale, but you don't have a dedicated DevOps team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internal Tools&lt;/strong&gt;: Getting a CI/CD pipeline or a staging environment up in seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Perspective Check&lt;/strong&gt;: Most of the "complex" problems people solve with K8s can be solved with a well-configured Swarm cluster and about 90% less YAML.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Expert Analysis&lt;/strong&gt;: &lt;a href="https://swarmcli.io/blog/Docker-Swarm-vs-Kubernetes-in-2026-The-Case-for-Staying-Simple" rel="noopener noreferrer"&gt;Docker Swarm vs Kubernetes in 2026 — The candid case for staying simple&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: The Foundation (Node Setup)
&lt;/h2&gt;

&lt;p&gt;To follow this Docker Swarm tutorial, you need at least three nodes for a "production-ready" feel (high availability). We recommend the "Manager-Worker" split.&lt;/p&gt;

&lt;p&gt;Initialize the Manager:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker swarm init &lt;span class="nt"&gt;--advertise-addr&lt;/span&gt; &amp;lt;MANAGER-IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add the Workers: Copy the token generated above and run it on your other nodes.&lt;/p&gt;

&lt;h3&gt;
  
  
  The SwarmCLI Shortcut
&lt;/h3&gt;

&lt;p&gt;Managing these tokens and IPs manually is a headache. With SwarmCLI, you can audit your node health instantly:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0q7gowyf360az391pvw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0q7gowyf360az391pvw2.png" alt="Swarm Node Health Dashboard" width="800" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This gives you a color-coded view of who's leader, who's reachable, and who's struggling — no more squinting at raw JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Secret Management (The Right Way)
&lt;/h2&gt;

&lt;p&gt;Security is where most "10-minute guides" fail. They tell you to put passwords in environment variables. Don't do that.&lt;/p&gt;

&lt;p&gt;Docker Swarm has a built-in "Secrets" mechanism that encrypts sensitive data at rest and in transit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native Way&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"password"&lt;/span&gt; | docker secret create db_pass -
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The SwarmCLI Way&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54nfk8b3ld6yl7fhc52w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54nfk8b3ld6yl7fhc52w.png" alt="SwarmCLI Secret Management" width="398" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Step-by-Step&lt;/strong&gt;: &lt;a href="https://swarmcli.io/blog/Secure-by-Design-Managing-Docker-Swarm-Secrets-the-SwarmCLI-Way" rel="noopener noreferrer"&gt;Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 3: Deploying Your First Stack
&lt;/h2&gt;

&lt;p&gt;In 2026, we don't just deploy containers; we deploy Stacks. A stack is a collection of services (DB, API, Frontend) that talk to each other.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.8'&lt;/span&gt;
&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;web&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-app:latest&lt;/span&gt;
    &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
      &lt;span class="na"&gt;update_config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;parallelism&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
        &lt;span class="na"&gt;delay&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10s&lt;/span&gt;
      &lt;span class="na"&gt;restart_policy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;on-failure&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deploy it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stack deploy &lt;span class="nt"&gt;-c&lt;/span&gt; docker-compose.yml my_project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: Maintaining Health (Auto-healing)
&lt;/h2&gt;

&lt;p&gt;One of Swarm's superpowers is Desired State Reconciliation. If a container crashes, Swarm starts a new one. If a node dies, Swarm moves the tasks.&lt;/p&gt;

&lt;p&gt;However, sometimes services get stuck in a "Pending" state (usually due to resource constraints or network labels). &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting Guide&lt;/strong&gt;: &lt;a href="https://swarmcli.io/blog/Docker-Swarm-Auto-healing-Troubleshooting-Common-Pending-States" rel="noopener noreferrer"&gt;Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Swarm vs. The World
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Docker Swarm&lt;/th&gt;
&lt;th&gt;Kubernetes&lt;/th&gt;
&lt;th&gt;Verdict&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup Time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt; 5 Minutes&lt;/td&gt;
&lt;td&gt;Hours/Days&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Swarm Wins&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Learning Curve&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Low (Compose-based)&lt;/td&gt;
&lt;td&gt;High (CRDs, Pods)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Swarm Wins&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource Overhead&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Very Low&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Swarm Wins&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI/Edge Suitability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;Heavy&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Swarm Wins&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusion: Simplicity is the New Scale
&lt;/h2&gt;

&lt;p&gt;You don't need to be a cloud architect to run a reliable, scalable cluster. By using Docker Swarm combined with the modern tooling of SwarmCLI, you get the power of orchestration without the "configuration tax."&lt;/p&gt;

&lt;p&gt;Ready to push your first production stack? &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;Download SwarmCLI today&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge Frontier&lt;/strong&gt;:&lt;a href="https://swarmcli.io/blog/Setting-up-the-ultimate-3-node-Swarm-on-Raspberry-Pi-5" rel="noopener noreferrer"&gt;Setting up the ultimate 3-node Swarm on Raspberry Pi 5&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  2026 Docker Swarm Mastery Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mar 9:&lt;/strong&gt; [The Foundation] &lt;a href="https://swarmcli.io/blog/The-Definitive-Docker-Swarm-Guide-for-2026" rel="noopener noreferrer"&gt;The Definitive Docker Swarm Guide for 2026&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 12:&lt;/strong&gt; [Expert Analysis] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-vs-Kubernetes-in-2026-The-Case-for-Staying-Simple" rel="noopener noreferrer"&gt;Docker Swarm vs Kubernetes in 2026 — The Case for Staying Simple&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 16:&lt;/strong&gt; [Edge Frontier] &lt;a href="https://swarmcli.io/blog/Setting-up-the-ultimate-3-node-Swarm-on-Raspberry-Pi-5" rel="noopener noreferrer"&gt;Setting up the ultimate 3-node Swarm on Raspberry Pi 5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 19:&lt;/strong&gt; [Security Specialist] &lt;a href="https://swarmcli.io/blog/Secure-by-Design-Managing-Docker-Swarm-Secrets-the-SwarmCLI-Way" rel="noopener noreferrer"&gt;Secure by Design: Managing Docker Swarm Secrets the SwarmCLI Way&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 23:&lt;/strong&gt; [Ops Mastery] &lt;a href="https://swarmcli.io/blog/Docker-Swarm-Auto-healing-Troubleshooting-Common-Pending-States" rel="noopener noreferrer"&gt;Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why SwarmCLI?
&lt;/h2&gt;

&lt;p&gt;By 2026, we noticed a gap. Docker Swarm was rock solid, but the management tooling felt stuck in 2017. SwarmCLI bridges that gap with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time Health Heatmaps:&lt;/strong&gt; Stop guessing which node is throttled.&lt;br&gt;
&lt;strong&gt;Atomic Secret Sync:&lt;/strong&gt; One-command &lt;code&gt;.env&lt;/code&gt; to Raft encryption.&lt;br&gt;
&lt;strong&gt;Edge-Optimized:&lt;/strong&gt; Built in Go for zero-overhead on ARM/RPi5 devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Connected
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://swarmcli.io" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/swarmcli" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>tutorial</category>
      <category>swarmcli</category>
    </item>
    <item>
      <title>SwarmCLI vs. Portainer and Native Docker: Why It's the Lightweight Choice for Swarm Users</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Tue, 17 Feb 2026 19:50:09 +0000</pubDate>
      <link>https://dev.to/eldara/swarmcli-vs-portainer-and-native-docker-why-its-the-lightweight-choice-for-swarm-users-gkg</link>
      <guid>https://dev.to/eldara/swarmcli-vs-portainer-and-native-docker-why-its-the-lightweight-choice-for-swarm-users-gkg</guid>
      <description>&lt;p&gt;In the container management space, options abound—from native Docker CLI to full-featured GUIs like Portainer. But for Docker Swarm loyalists who want simplicity without bloat, SwarmCLI stands out as a fresh contender. Launched open-source by Eldara, it's designed for those sticking with Swarm's ease over Kubernetes complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Comparison
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native Docker CLI:&lt;/strong&gt; Powerful but command-heavy. 
SwarmCLI wraps it in a TUI for faster navigation—think k9s vibes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portainer:&lt;/strong&gt; Great web UI with Swarm support, but it's broader (K8s/Docker focus) and can feel heavy.SwarmCLI is CLI-first, lighter, and Swarm-specialized.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SwarmCLI's edge? It's free for basics, with a path to premiums without vendor lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Highlights: What Sets SwarmCLI Apart
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Core Management (Free in Community)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stacks: List, delete, tasks, errors.&lt;/li&gt;
&lt;li&gt;Services: Full suite—inspect, logs, scale, rollback.&lt;/li&gt;
&lt;li&gt;Nodes: Promote, label, delete.&lt;/li&gt;
&lt;li&gt;Secrets/Configs: Secure CRUDE.&lt;/li&gt;
&lt;li&gt;Networks/Contexts: Prune, switch, export.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Planned Business Boosts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shell and port forwarding for direct container interaction.&lt;/li&gt;
&lt;li&gt;Analytics, RBAC, and integrations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Choose SwarmCLI?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Swarm Focus:&lt;/strong&gt; Pure Swarm optimization—lighter footprint for cost-sensitive teams.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Community:&lt;/strong&gt; Contribute on GitHub.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Test it: Clone &lt;a href="https://dev.tourl"&gt;github.com/Eldara-Tech/swarmcli&lt;/a&gt; and share your thoughts.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>devops</category>
      <category>docker</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Deep Dive: How SwarmCLI Simplifies Docker Swarm Operations for DevOps Teams</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Thu, 12 Feb 2026 18:48:19 +0000</pubDate>
      <link>https://dev.to/eldara/deep-dive-how-swarmcli-simplifies-docker-swarm-operations-for-devops-teams-415c</link>
      <guid>https://dev.to/eldara/deep-dive-how-swarmcli-simplifies-docker-swarm-operations-for-devops-teams-415c</guid>
      <description>&lt;p&gt;As Docker Swarm continues to power production environments for its minimal overhead and native Docker integration, tools that enhance its usability are in high demand. In my last post, I introduced SwarmCLI, the open-source CLI tool that's like k9s for Swarm. Today, let's dive deeper into its features and how they streamline real-world workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Core Workflow: From Setup to Scaling&lt;/strong&gt;&lt;br&gt;
SwarmCLI's TUI lets you navigate Swarm entities interactively—no more memorizing commands. Here's how it shines in key areas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stacks and Services: Your Deployment Powerhouse&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;List and Inspect:&lt;/strong&gt; Quickly view stacks (docker stack ls) and services (docker stack services). Drill down with inspections for configs, ports, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scaling and Rollbacks:&lt;/strong&gt; Adjust replicas on the fly (docker service scale) or rollback bad deploys (docker service update --rollback). Immediate error overviews flag issues instantly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Logs and Tasks:&lt;/strong&gt; Tail logs (docker service logs) or check task status (docker service ps) without leaving the interface—perfect for debugging live.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the Community Edition, these are all free. For teams, a Business Edition is planned, which will add features like shell access (e.g., exec into containers) and port forwarding for secure remote testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nodes and Networks: Infrastructure at Your Fingertips&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Node Management:&lt;/strong&gt; List nodes (docker node ls), promote/demote managers, add labels, or delete nodes safely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Network Ops:&lt;/strong&gt; Create, inspect, prune, or delete networks (docker network prune) to keep things tidy.&lt;br&gt;
Configs and Secrets: Secure Data Handling&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CRUDE&lt;/strong&gt; for configs and secrets, with inspection and creation. The The “Reveal” feature for secrets will be available in a Business Edition.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contexts: Multi-Env Mastery&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Switch between dev, staging, and prod seamlessly (docker context use), with export/import for sharing setups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-Use Case: Debugging a Failing Service&lt;/strong&gt;&lt;br&gt;
Imagine a service crashing in production. With SwarmCLI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;List services and spot the offender.&lt;/li&gt;
&lt;li&gt;View tasks and logs in real-time.&lt;/li&gt;
&lt;li&gt;Scale down, rollback, and restart—all in seconds.&lt;/li&gt;
&lt;li&gt;Check node health to rule out hardware issues.&lt;/li&gt;
&lt;li&gt;This workflow saved our team hours compared to native CLI.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Head to &lt;a href="https://dev.tourl"&gt;swarmcli.io&lt;/a&gt; or &lt;a href="https://dev.tourl"&gt;github.com/Eldara-Tech/swarmcli&lt;/a&gt; to install and contribute. &lt;/p&gt;

&lt;p&gt;If this resonates, clap and follow for more DevOps tips!&lt;/p&gt;

</description>
      <category>cli</category>
      <category>devops</category>
      <category>docker</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Introducing SwarmCLI: The k9s-Inspired CLI Tool Revolutionizing Docker Swarm Management</title>
      <dc:creator>eldara</dc:creator>
      <pubDate>Mon, 09 Feb 2026 19:53:05 +0000</pubDate>
      <link>https://dev.to/eldara/introducing-swarmcli-the-k9s-inspired-cli-tool-revolutionizing-docker-swarm-management-1a74</link>
      <guid>https://dev.to/eldara/introducing-swarmcli-the-k9s-inspired-cli-tool-revolutionizing-docker-swarm-management-1a74</guid>
      <description>&lt;p&gt;In the world of container orchestration, Docker Swarm has long been a lightweight, reliable alternative to Kubernetes for teams that value simplicity and ease of setup. But let's be honest—managing Swarm clusters with the native Docker CLI can feel clunky and time-consuming. Endless typing of commands, switching contexts, and sifting through logs? It's enough to make any DevOps engineer long for a more intuitive interface.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;SwarmCLI&lt;/strong&gt;, an open-source terminal user interface (TUI) tool inspired by the beloved k9s for Kubernetes. SwarmCLI brings that same snappy, interactive experience to Docker Swarm users. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why SwarmCLI? The Pain Points It Solves
&lt;/h2&gt;

&lt;p&gt;If you've ever wrestled with Docker Swarm, you know the drill:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Native commands are powerful but verbose—think docker service ps  just to check tasks.&lt;/li&gt;
&lt;li&gt;No built-in error overviews or quick diagnostics, leading to hours lost in troubleshooting.&lt;/li&gt;
&lt;li&gt;Scaling and managing multi-node clusters feels fragmented without a unified view.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SwarmCLI addresses these by providing a k9s-like TUI where you can browse, edit, and monitor everything in one place. It's fully open-source under Apache 2.0, with a Community Edition that's free forever for core features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features at a Glance
&lt;/h2&gt;

&lt;p&gt;Here's a snapshot of what SwarmCLI offers right out of the box:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack Management&lt;/strong&gt;&lt;br&gt;
List, delete, show tasks, and get immediate error overviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service Management&lt;/strong&gt;&lt;br&gt;
List, remove, inspect, restart, view logs, rollback, scale, and error overviews—all free in Community.&lt;br&gt;
Business Edition extras: Shell access and port forwarding (coming soon).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Node, Config, Secret, Context, and Network Tools&lt;/strong&gt;&lt;br&gt;
Comprehensive CRUD operations (create, read, update, delete) for all, plus pruning and labeling.&lt;/p&gt;

&lt;p&gt;Check out our &lt;a href="https://swarmcli.io/" rel="noopener noreferrer"&gt;Website&lt;/a&gt; or our &lt;a href="https://github.com/Eldara-Tech/swarmcli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; repo for the full feature breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-Core Model: Free Core, Premium Power later
&lt;/h2&gt;

&lt;p&gt;SwarmCLI follows an open-core approach. The Community Edition handles 95% of daily needs, while the Business Edition will unlock enterprise features like advanced analytics, RBAC, and integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started Today
&lt;/h2&gt;

&lt;p&gt;Installation is simple: Clone the repo, build with Docker, and dive in. If you're a Swarm user, give it a try and star the repo to show support. &lt;/p&gt;

&lt;p&gt;Feedback? Open an issue—we're building this with the community.&lt;/p&gt;

&lt;p&gt;What do you think? Is SwarmCLI the tool you've been waiting for? Drop a comment below!&lt;/p&gt;

</description>
      <category>cli</category>
      <category>docker</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
