<?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: Known Developer</title>
    <description>The latest articles on DEV Community by Known Developer (@known_developer).</description>
    <link>https://dev.to/known_developer</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4238286%2F2d46b615-4b9a-484a-bdca-cb440a2e5062.png</url>
      <title>DEV Community: Known Developer</title>
      <link>https://dev.to/known_developer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/known_developer"/>
    <language>en</language>
    <item>
      <title>Best self-hosted PaaS in 2026: six tools compared</title>
      <dc:creator>Known Developer</dc:creator>
      <pubDate>Wed, 11 Nov 2026 05:27:53 +0000</pubDate>
      <link>https://dev.to/known_developer/best-self-hosted-paas-in-2026-six-tools-compared-4l6i</link>
      <guid>https://dev.to/known_developer/best-self-hosted-paas-in-2026-six-tools-compared-4l6i</guid>
      <description>&lt;h1&gt;
  
  
  Best self-hosted PaaS in 2026: six tools compared
&lt;/h1&gt;

&lt;p&gt;Last month I sat with a 4 GB VPS, a Next.js app and a Postgres database, and spent two evenings reading six documentation sites to answer one question: which self-hosted PaaS do I put on this box? Every comparison I found was either written by one of the vendors or stopped at a star count. I did the dull thing. I opened each project's own docs and repository, wrote down what they claim, and checked the one I build against its own repo.&lt;/p&gt;

&lt;p&gt;I work on Levelrail, so you should discount my opinion of it. I tried to keep the table below limited to things you can verify, and I say where each tool beats mine.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;How it reaches your server&lt;/th&gt;
&lt;th&gt;Best at&lt;/th&gt;
&lt;th&gt;Watch out for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coolify&lt;/td&gt;
&lt;td&gt;SSH from a web app&lt;/td&gt;
&lt;td&gt;Broad one-click catalog, polished UI&lt;/td&gt;
&lt;td&gt;You manage the host over SSH, cloud tier is paid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Levelrail&lt;/td&gt;
&lt;td&gt;Agent that dials out over mTLS&lt;/td&gt;
&lt;td&gt;Logs, metrics, traces and one-command rollback built in&lt;/td&gt;
&lt;td&gt;Smaller one-click catalog than the largest, an agent on each extra server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dokploy&lt;/td&gt;
&lt;td&gt;Docker Swarm plus Traefik&lt;/td&gt;
&lt;td&gt;Swarm clustering, templates&lt;/td&gt;
&lt;td&gt;Part of the repo is under a proprietary license&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CapRover&lt;/td&gt;
&lt;td&gt;Docker Swarm plus nginx&lt;/td&gt;
&lt;td&gt;Long track record, simple app store&lt;/td&gt;
&lt;td&gt;Apache 2.0 with an appendix that limits some use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dokku&lt;/td&gt;
&lt;td&gt;Commands on the host, git push&lt;/td&gt;
&lt;td&gt;Smallest PaaS, Heroku workflow&lt;/td&gt;
&lt;td&gt;One server, no web dashboard in core&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kamal&lt;/td&gt;
&lt;td&gt;SSH from your laptop or CI&lt;/td&gt;
&lt;td&gt;Almost no moving parts&lt;/td&gt;
&lt;td&gt;No control plane, no UI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What "self-hosted PaaS" means here
&lt;/h2&gt;

&lt;p&gt;A self-hosted PaaS turns a plain Linux server into something that builds your code, runs containers, issues HTTPS certificates and lets you roll back. All six tools do that. They differ in how they talk to the server, what they run underneath, and how much of the platform is one process you have to keep alive.&lt;/p&gt;

&lt;p&gt;I sorted them by that last point, because on a small VPS it decides everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The six, from their own documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Coolify
&lt;/h3&gt;

&lt;p&gt;Coolify describes itself as an open source, self-hostable platform for deploying applications, databases and services on servers you control, and its docs say it "connects to each server over SSH" &amp;lt;!-- source: &lt;a href="https://coolify.io/docs/get-started/introduction" rel="noopener noreferrer"&gt;https://coolify.io/docs/get-started/introduction&lt;/a&gt; --&amp;gt;. The README claims more than 360 one-click services &amp;lt;!-- source: &lt;a href="https://github.com/coollabsio/coolify/blob/main/README.md" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/blob/main/README.md&lt;/a&gt; --&amp;gt; and lists Git push deploys, pull request previews, rollbacks to retained images, multi-server management, and a dashboard, API, CLI or MCP surface. The repository is under the Apache License 2.0 &amp;lt;!-- source: &lt;a href="https://github.com/coollabsio/coolify/blob/main/LICENSE" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/blob/main/LICENSE&lt;/a&gt; --&amp;gt;, and the project sells a hosted tier.&lt;/p&gt;

&lt;p&gt;Where it wins: the catalog and the dashboard. If you want to click a service and get a database with generated credentials, that is why people recommend it by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  Levelrail
&lt;/h3&gt;

&lt;p&gt;Levelrail is an Apache 2.0 platform that runs as one Go binary with a node agent per extra server. The agent dials out over mutual TLS and talks to the Docker Engine API directly, so managed nodes need no inbound port, and a level-triggered reconciler converges each node toward desired state (&lt;code&gt;docs/comparison.md&lt;/code&gt; in the repo). A deploy counts as healthy only after the readiness probe passes, and Levelrail pins earlier images so cleanup cannot remove a rollback target (&lt;code&gt;docs/comparison.md&lt;/code&gt;, &lt;code&gt;docs/rollback.md&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Where it wins: metrics, logs, traces and alerts ship in the core, so there is no second stack to install. Where it loses: its one-click catalog is smaller than the largest ones here, and it needs an agent on each extra server where Coolify and Kamal only need SSH.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dokploy
&lt;/h3&gt;

&lt;p&gt;Dokploy's docs describe an open source alternative to Heroku, Vercel and Netlify built on Docker and Traefik &amp;lt;!-- source: &lt;a href="https://docs.dokploy.com/docs/core" rel="noopener noreferrer"&gt;https://docs.dokploy.com/docs/core&lt;/a&gt; --&amp;gt;. Its README lists multi-node scaling with Docker Swarm, remote servers, database backups to external storage, CPU, memory and network monitoring, and "+600 Templates" &amp;lt;!-- source: &lt;a href="https://github.com/Dokploy/dokploy/blob/canary/README.md" rel="noopener noreferrer"&gt;https://github.com/Dokploy/dokploy/blob/canary/README.md&lt;/a&gt; --&amp;gt;. The license file is Apache 2.0 for most of the repo, with everything under a &lt;code&gt;/proprietary&lt;/code&gt; directory under a separate license I could not read &amp;lt;!-- source: &lt;a href="https://github.com/Dokploy/dokploy/blob/canary/LICENSE.MD" rel="noopener noreferrer"&gt;https://github.com/Dokploy/dokploy/blob/canary/LICENSE.MD&lt;/a&gt; --&amp;gt;.&lt;/p&gt;

&lt;p&gt;Where it wins: if Swarm is already how you think about clusters, Dokploy gives you a modern dashboard on top of it, and its template count is the highest I could verify.&lt;/p&gt;

&lt;h3&gt;
  
  
  CapRover
&lt;/h3&gt;

&lt;p&gt;CapRover's README says it uses Docker, nginx, Let's Encrypt and NetData behind a simple interface, with "Docker Swarm under the hood" and no lock-in: remove it and your apps keep working &amp;lt;!-- source: &lt;a href="https://github.com/caprover/caprover/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/caprover/caprover/blob/master/README.md&lt;/a&gt; --&amp;gt;. The install guide asks for an AMD64 or ARM64 server with at least 1 GiB of RAM and 5 GiB of free disk, a wildcard domain, and public ports 80, 443 and 3000 &amp;lt;!-- source: &lt;a href="https://caprover.com/docs/get-started.html" rel="noopener noreferrer"&gt;https://caprover.com/docs/get-started.html&lt;/a&gt; --&amp;gt;. The license is Apache 2.0 plus an appendix that restricts modifying its paid service features and redistributing competing paid versions &amp;lt;!-- source: &lt;a href="https://github.com/caprover/caprover/blob/master/LICENSE" rel="noopener noreferrer"&gt;https://github.com/caprover/caprover/blob/master/LICENSE&lt;/a&gt; --&amp;gt;.&lt;/p&gt;

&lt;p&gt;Where it wins: it has been around a long time, the app store is simple, and the "no lock-in" claim is the most concrete I found.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dokku
&lt;/h3&gt;

&lt;p&gt;Dokku calls itself a "Docker powered mini-Heroku" and the "smallest PaaS implementation you've ever seen", under the MIT License &amp;lt;!-- source: &lt;a href="https://github.com/dokku/dokku/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/dokku/dokku/blob/master/README.md&lt;/a&gt; --&amp;gt;. It builds from a Git push, with a Dockerfile or buildpacks, runs on one server, and needs 1 GB of memory for the Docker scheduler &amp;lt;!-- source: &lt;a href="https://dokku.com/docs/getting-started/installation/" rel="noopener noreferrer"&gt;https://dokku.com/docs/getting-started/installation/&lt;/a&gt; --&amp;gt;.&lt;/p&gt;

&lt;p&gt;Where it wins: a single server where you want the least software between you and Docker. Nothing on this list beats it on simplicity there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kamal
&lt;/h3&gt;

&lt;p&gt;Kamal comes from 37signals, who say they used it to move HEY and other applications to their own hardware. The site calls it "basically Capistrano for Containers", and you list server IPs in a config file &amp;lt;!-- source: &lt;a href="https://kamal-deploy.org/" rel="noopener noreferrer"&gt;https://kamal-deploy.org/&lt;/a&gt; --&amp;gt;. Its companion kamal-proxy moves traffic to a new instance only after health checks pass and drains the old one &amp;lt;!-- source: &lt;a href="https://github.com/basecamp/kamal-proxy" rel="noopener noreferrer"&gt;https://github.com/basecamp/kamal-proxy&lt;/a&gt; --&amp;gt;. A rollback starts a new container from an older image still on the host, with nothing downloaded from the registry &amp;lt;!-- source: &lt;a href="https://kamal-deploy.org/docs/commands/rollback/" rel="noopener noreferrer"&gt;https://kamal-deploy.org/docs/commands/rollback/&lt;/a&gt; --&amp;gt;.&lt;/p&gt;

&lt;p&gt;Where it wins: it has no server component at all. If a dashboard is optional for you, there is nothing to keep running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Coolify&lt;/th&gt;
&lt;th&gt;Levelrail&lt;/th&gt;
&lt;th&gt;Dokploy&lt;/th&gt;
&lt;th&gt;CapRover&lt;/th&gt;
&lt;th&gt;Dokku&lt;/th&gt;
&lt;th&gt;Kamal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reaches servers by&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;Reverse-dialed agent&lt;/td&gt;
&lt;td&gt;Swarm&lt;/td&gt;
&lt;td&gt;Swarm&lt;/td&gt;
&lt;td&gt;Host commands&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Proxy&lt;/td&gt;
&lt;td&gt;Proxy on each server&lt;/td&gt;
&lt;td&gt;Embedded Caddy&lt;/td&gt;
&lt;td&gt;Traefik&lt;/td&gt;
&lt;td&gt;nginx&lt;/td&gt;
&lt;td&gt;Pluggable&lt;/td&gt;
&lt;td&gt;kamal-proxy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web dashboard&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Not in core&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Several servers&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes (Swarm)&lt;/td&gt;
&lt;td&gt;Yes (Swarm)&lt;/td&gt;
&lt;td&gt;One server&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Apache 2.0 plus proprietary dir&lt;/td&gt;
&lt;td&gt;Apache 2.0 plus appendix&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Not checked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Templates claimed&lt;/td&gt;
&lt;td&gt;360+&lt;/td&gt;
&lt;td&gt;447 in my local build&lt;/td&gt;
&lt;td&gt;600+&lt;/td&gt;
&lt;td&gt;App store&lt;/td&gt;
&lt;td&gt;Plugins&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I left the Kamal license cell at "Not checked" because I did not open its license file, rather than guess. The Levelrail count of 447 comes from &lt;code&gt;levelrail-cli templates list --json&lt;/code&gt; against a local build of the v1.0.1 release branch, and it will move as the release does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Footprint on a small box
&lt;/h2&gt;

&lt;p&gt;CapRover documents 1 GiB RAM and Dokku 1 GB for its Docker scheduler. Neither Coolify nor Dokploy gave a number on the pages I read, so I will not invent one. For Levelrail, the repo's README reports about 200 MB of RAM and roughly 1.5 percent of one CPU at idle, from one run on a 2 vCPU, 8 GB test box on 2026-10-19 with no app load (&lt;code&gt;README.md&lt;/code&gt;, method in &lt;code&gt;docs/benchmarks.md&lt;/code&gt;). The &lt;code&gt;minimal&lt;/code&gt; install profile lowers the doctor floors to 512 MiB and one core (&lt;code&gt;docs/profiles.md&lt;/code&gt;). I started the control plane locally with two apps running and it sat at about 165 MB resident, on a dev build, on a Mac. Treat that as a sanity check, not a benchmark.&lt;/p&gt;

&lt;p&gt;The idle figure is not what surprises people. The second stack you bolt on for logs is.&lt;/p&gt;

&lt;h2&gt;
  
  
  A tested example: search logs with no logging stack
&lt;/h2&gt;

&lt;p&gt;On a throwaway local control plane I deployed a small Compose file that prints JSON log lines, then searched them by a structured field:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;levelrail-cli compose deploy shop -f compose.yaml
levelrail-cli logs search shop-shop --field &lt;span class="nv"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;500 --since 10m --limit 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It printed the three newest matching JSON lines, with a footer saying &lt;code&gt;showing 3 of 11 matching lines&lt;/code&gt;. In the docs I read, Dokku, Kamal and CapRover show container logs, but searching by field or keeping history across restarts means bringing your own tooling. Coolify shows deployment and runtime logs in its UI, and I did not test its search.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one I would pick
&lt;/h2&gt;

&lt;p&gt;One server, one app, you like the shell: Dokku or Kamal, in that order if you want a Git push or a CI step respectively.&lt;/p&gt;

&lt;p&gt;You want a polished dashboard and a long list of one-click apps on servers you SSH into: Coolify.&lt;/p&gt;

&lt;p&gt;You already run Swarm or want Swarm clustering with a modern UI: Dokploy. CapRover if you prefer the older, simpler route.&lt;/p&gt;

&lt;p&gt;You want deploys that wait for readiness, a one-command rollback, and logs, metrics and traces in the same binary, and want it all in one binary: Levelrail.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the lightest self-hosted PaaS?
&lt;/h3&gt;

&lt;p&gt;Kamal has no server component, so it adds nothing at idle. Dokku is a set of scripts on the host with no separate web service. Among tools with a control plane, check each project's own footprint numbers before you trust a claim, including mine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Coolify better than Dokploy?
&lt;/h3&gt;

&lt;p&gt;Neither is better across the board. Coolify manages servers over SSH and has the more mature catalog and UI. Dokploy builds on Docker Swarm, which matters if you want Swarm clustering. Read both license files first, since Dokploy has a proprietary directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I move between these tools?
&lt;/h3&gt;

&lt;p&gt;Your containers and volumes stay Docker objects, so the data moves. The config does not. Levelrail ships dry-run importers for Coolify, Dokploy, CapRover, Dokku and Compose files (&lt;code&gt;docs/migrate-to-levelrail.md&lt;/code&gt;). I have not tested the other direction for any pair.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need Kubernetes instead?
&lt;/h3&gt;

&lt;p&gt;If you need it, you will know. None of these six require it, and Levelrail treats a Kubernetes compatibility layer as a non-goal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;Pick the tool whose failure mode you can live with: Kamal and Dokku fail by being too bare, Coolify and Dokploy by asking for more host and more trust in a web app, CapRover by age, Levelrail by asking you to run an agent on every extra server. Would these claims still hold if you reran them on your own VPS next quarter?&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coolify.io/docs/get-started/introduction" rel="noopener noreferrer"&gt;https://coolify.io/docs/get-started/introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/coollabsio/coolify/blob/main/README.md" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/coollabsio/coolify/blob/main/LICENSE" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/blob/main/LICENSE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.dokploy.com/docs/core" rel="noopener noreferrer"&gt;https://docs.dokploy.com/docs/core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Dokploy/dokploy/blob/canary/README.md" rel="noopener noreferrer"&gt;https://github.com/Dokploy/dokploy/blob/canary/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Dokploy/dokploy/blob/canary/LICENSE.MD" rel="noopener noreferrer"&gt;https://github.com/Dokploy/dokploy/blob/canary/LICENSE.MD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://caprover.com/docs/get-started.html" rel="noopener noreferrer"&gt;https://caprover.com/docs/get-started.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/caprover/caprover/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/caprover/caprover/blob/master/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/caprover/caprover/blob/master/LICENSE" rel="noopener noreferrer"&gt;https://github.com/caprover/caprover/blob/master/LICENSE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dokku.com/docs/getting-started/installation/" rel="noopener noreferrer"&gt;https://dokku.com/docs/getting-started/installation/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dokku/dokku/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/dokku/dokku/blob/master/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kamal-deploy.org/" rel="noopener noreferrer"&gt;https://kamal-deploy.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kamal-deploy.org/docs/commands/rollback/" rel="noopener noreferrer"&gt;https://kamal-deploy.org/docs/commands/rollback/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/basecamp/kamal-proxy" rel="noopener noreferrer"&gt;https://github.com/basecamp/kamal-proxy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>selfhosted</category>
      <category>devops</category>
      <category>docker</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
