<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://watchwarden-labs.github.io/watchwarden/blog</id>
    <title>WatchWarden Blog</title>
    <updated>2026-03-31T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://watchwarden-labs.github.io/watchwarden/blog"/>
    <subtitle>WatchWarden Blog</subtitle>
    <icon>https://watchwarden-labs.github.io/watchwarden/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Introducing WatchWarden]]></title>
        <id>https://watchwarden-labs.github.io/watchwarden/blog/welcome</id>
        <link href="https://watchwarden-labs.github.io/watchwarden/blog/welcome"/>
        <updated>2026-03-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[WatchWarden is a Docker container update manager built for teams that need more than Watchtower can offer — but don't want to set up Kubernetes just to get zero-downtime deployments.]]></summary>
        <content type="html"><![CDATA[<p>WatchWarden is a Docker container update manager built for teams that need more than Watchtower can offer — but don't want to set up Kubernetes just to get zero-downtime deployments.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-we-built-this">Why We Built This<a href="https://watchwarden-labs.github.io/watchwarden/blog/welcome#why-we-built-this" class="hash-link" aria-label="Direct link to Why We Built This" title="Direct link to Why We Built This" translate="no">​</a></h2>
<p>Watchtower is great for simple setups. But when you have multiple Docker hosts, need rollback capability, or want to see what changed before updating — it falls short.</p>
<p>WatchWarden fills that gap:</p>
<ul>
<li class=""><strong>Blue-green deployments</strong> — start the new container, verify health, then stop the old one</li>
<li class=""><strong>Snapshot rollbacks</strong> — every update saves the full container config for instant revert</li>
<li class=""><strong>Crash-loop detection</strong> — automatically rolls back containers stuck in restart loops</li>
<li class=""><strong>Multi-host dashboard</strong> — manage all your Docker hosts from a single UI</li>
<li class=""><strong>Solo Mode</strong> — drop-in Watchtower replacement when you don't need the full stack</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="two-ways-to-run">Two Ways to Run<a href="https://watchwarden-labs.github.io/watchwarden/blog/welcome#two-ways-to-run" class="hash-link" aria-label="Direct link to Two Ways to Run" title="Direct link to Two Ways to Run" translate="no">​</a></h2>
<p><strong>Solo Mode</strong> — one container, zero dependencies:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">docker</span><span class="token plain"> run </span><span class="token parameter variable" style="color:rgb(189, 147, 249);font-style:italic">-d</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token parameter variable" style="color:rgb(189, 147, 249);font-style:italic">-v</span><span class="token plain"> /var/run/docker.sock:/var/run/docker.sock </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token parameter variable" style="color:rgb(189, 147, 249);font-style:italic">-e</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(189, 147, 249);font-style:italic">WW_SCHEDULE</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"@every 6h"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token parameter variable" style="color:rgb(189, 147, 249);font-style:italic">-e</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(189, 147, 249);font-style:italic">WW_AUTO_UPDATE</span><span class="token operator">=</span><span class="token plain">true </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  ghcr.io/watchwarden-labs/watchwarden-agent:latest</span><br></span></code></pre></div></div>
<p><strong>Managed Mode</strong> — controller + agents + dashboard:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">docker</span><span class="token plain"> compose </span><span class="token parameter variable" style="color:rgb(189, 147, 249);font-style:italic">-f</span><span class="token plain"> docker-compose.production.yml up </span><span class="token parameter variable" style="color:rgb(189, 147, 249);font-style:italic">-d</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's Next<a href="https://watchwarden-labs.github.io/watchwarden/blog/welcome#whats-next" class="hash-link" aria-label="Direct link to What's Next" title="Direct link to What's Next" translate="no">​</a></h2>
<ul>
<li class="">Private registry support with encrypted credential storage</li>
<li class="">Vulnerability scanning via Trivy</li>
<li class="">Update policies per container group</li>
<li class="">Scheduled maintenance windows</li>
</ul>
<p>Check out the <a class="" href="https://watchwarden-labs.github.io/watchwarden/docs/getting-started">Getting Started</a> guide to try it out.</p>]]></content>
        <author>
            <name>Alex Neo</name>
            <uri>https://github.com/watchwarden-labs</uri>
        </author>
        <category label="release" term="release"/>
        <category label="announcement" term="announcement"/>
    </entry>
</feed>