<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[New blog post: Tag-Driven Deployments: How MastoSum Ships Itself with Forgejo Actions and Rootless Podman]]></title><description><![CDATA[<p>New blog post: Tag-Driven Deployments: How MastoSum Ships Itself with Forgejo Actions and Rootless Podman</p><p>The pipeline is tag-driven and fully automated. A git push v0.2.9 triggers a Forgejo Actions workflow that builds a UBI10-based image, cosign-signs it, and writes a trigger file. A systemd path unit picks it up, verifies the signature, pulls by digest, and restarts the four app services. No SSH, no webhook receiver, no additional daemon. The CI runner lives in the same rootless Podman user context as the app it deploys.</p><p>The filesystem is the API between CI and host.</p><p></p><div class="card col-md-9 col-lg-6 position-relative link-preview p-0">



<a href="https://blog.hofstede.it/tag-driven-deployments-how-mastosum-ships-itself-with-forgejo-actions-and-rootless-podman/" title="Tag-Driven Deployments: How MastoSum Ships Itself with Forgejo Actions and Rootless Podman">
<img src="https://blog.hofstede.it/images/2026-05-24-mastosum-deployment-pipeline.png" class="card-img-top not-responsive" style="max-height:15rem" alt="Link Preview Image" />
</a>



<div class="card-body">
<h5 class="card-title">
<a href="https://blog.hofstede.it/tag-driven-deployments-how-mastosum-ships-itself-with-forgejo-actions-and-rootless-podman/">
Tag-Driven Deployments: How MastoSum Ships Itself with Forgejo Actions and Rootless Podman
</a>
</h5>
<p class="card-text line-clamp-3">A walk through the MastoSum deployment pipeline: a version tag triggers Forgejo Actions, builds and signs a UBI-based image, then hands deployment to a rootl...</p>
</div>
<a href="https://blog.hofstede.it/tag-driven-deployments-how-mastosum-ships-itself-with-forgejo-actions-and-rootless-podman/" class="card-footer text-body-secondary small d-flex gap-2 align-items-center lh-2">



<img src="https://blog.hofstede.it/favicon.ico" alt="favicon" class="not-responsive overflow-hiddden" style="max-width:21px;max-height:21px" />



<p class="d-inline-block text-truncate mb-0">Larvitz Blog <span class="text-secondary">(blog.hofstede.it)</span></p>
</a>
</div><p></p><p><a href="https://burningboard.net/tags/linux" rel="tag">#<span>linux</span></a> <a href="https://burningboard.net/tags/podman" rel="tag">#<span>podman</span></a> <a href="https://burningboard.net/tags/containers" rel="tag">#<span>containers</span></a> <a href="https://burningboard.net/tags/quadlet" rel="tag">#<span>quadlet</span></a> <a href="https://burningboard.net/tags/devops" rel="tag">#<span>devops</span></a> <a href="https://burningboard.net/tags/forgejo" rel="tag">#<span>forgejo</span></a></p>]]></description><link>https://board.circlewithadot.net/topic/81971748-877e-43e8-b93e-28264aa55820/new-blog-post-tag-driven-deployments-how-mastosum-ships-itself-with-forgejo-actions-and-rootless-podman</link><generator>RSS for Node</generator><lastBuildDate>Mon, 25 May 2026 06:56:18 GMT</lastBuildDate><atom:link href="https://board.circlewithadot.net/topic/81971748-877e-43e8-b93e-28264aa55820.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 May 2026 17:07:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to New blog post: Tag-Driven Deployments: How MastoSum Ships Itself with Forgejo Actions and Rootless Podman on Sun, 24 May 2026 17:33:36 GMT]]></title><description><![CDATA[<p><span><a href="/user/larvitz%40burningboard.net">@<span>Larvitz</span></a></span> </p><p>My deployment workflow for my <a href="https://burningboard.net/tags/Mastodon" rel="tag">#<span>Mastodon</span></a> UI</p><p>1 appimagetool packs <a href="https://burningboard.net/tags/Python" rel="tag">#<span>Python</span></a>, <a href="https://burningboard.net/tags/Gunicorn" rel="tag">#<span>Gunicorn</span></a> &amp; web_client.py locally into a fresh AppImage <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e6.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--package" style="height:23px;width:auto;vertical-align:middle" title="📦" alt="📦" /><br />2 The script uploads the AppImage to the <a href="https://burningboard.net/tags/NixOS" rel="tag">#<span>NixOS</span></a> <a href="https://burningboard.net/tags/server" rel="tag">#<span>server</span></a> via scp <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f680.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--rocket" style="height:23px;width:auto;vertical-align:middle" title="🚀" alt="🚀" /><br />3 The <a href="https://burningboard.net/tags/systemd" rel="tag">#<span>systemd</span></a> service mastodon-ui is automatically restarted via <a href="https://burningboard.net/tags/ssh" rel="tag">#<span>ssh</span></a> <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f504.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--arrows_counterclockwise" style="height:23px;width:auto;vertical-align:middle" title="🔄" alt="🔄" /></p>]]></description><link>https://board.circlewithadot.net/post/https://burningboard.net/users/tux/statuses/116630750297020820</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://burningboard.net/users/tux/statuses/116630750297020820</guid><dc:creator><![CDATA[tux@burningboard.net]]></dc:creator><pubDate>Sun, 24 May 2026 17:33:36 GMT</pubDate></item></channel></rss>