<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Self-Hosting on /var/log/janio</title><link>https://devops.sarmento.org/en/tags/self-hosting/</link><description>Recent content in Self-Hosting on /var/log/janio</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 18 Apr 2026 13:19:00 +0000</lastBuildDate><atom:link href="https://devops.sarmento.org/en/tags/self-hosting/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugin on steroids: tags, links and editing in one TUI</title><link>https://devops.sarmento.org/en/posts/hugin-on-steroids-tags-links-and-editing-in-one-tui/</link><pubDate>Sat, 18 Apr 2026 13:13:00 +0000</pubDate><guid>https://devops.sarmento.org/en/posts/hugin-on-steroids-tags-links-and-editing-in-one-tui/</guid><description>&lt;p&gt;In the &lt;a href="https://devops.sarmento.org/en/posts/hugin-tags-and-summaries-for-hugo-with-ai/"&gt;post about Hugin&lt;/a&gt; I introduced the tool I use to generate tags and summaries for my Hugo blogs. Two weeks later, in the &lt;a href="https://devops.sarmento.org/en/posts/munin-internal-links-for-hugo-with-ai/"&gt;post about Munin&lt;/a&gt;, I showed its sibling: a second program that discovers and inserts internal links between posts using embeddings and an LLM.&lt;/p&gt;
&lt;p&gt;Both worked well. Separately, they worked well.&lt;/p&gt;
&lt;h2 id="the-problem-with-having-two-programs"&gt;The problem with having two programs&lt;/h2&gt;
&lt;p&gt;In theory, splitting responsibilities between tools is good practice. In practice, the workflow for processing a new post looked like this: open Hugin, navigate to the post, generate tags, generate summary, close Hugin. Open Munin, wait for the embedding model to load, navigate to the same post, check existing links, generate link suggestions, apply. If you needed to fix a typo in the title that only showed up after reviewing the post in Hugin, close everything and open Pages CMS or vim.&lt;/p&gt;</description></item><item><title>Immich: Your Photos, Your Server, Your Rules</title><link>https://devops.sarmento.org/en/posts/immich-your-photos-your-server-your-rules/</link><pubDate>Wed, 25 Mar 2026 07:18:00 +0000</pubDate><guid>https://devops.sarmento.org/en/posts/immich-your-photos-your-server-your-rules/</guid><description>&lt;p&gt;There comes a moment when everyone stops and thinks about where their photos are. It usually happens when Google sends that friendly email letting you know your free storage is full — and that for just a few dollars a month you can keep storing your memories on their servers. It is a gentle nudge toward a monthly subscription that, added up over years, costs more than a multi-terabyte external hard drive. But the monetary price is only the most obvious part of the equation. There is a more subtle cost to leaving all your photos, videos, and personal memories in the hands of a company that profits from data — and it is worth talking about that cost before discussing any tool.&lt;/p&gt;</description></item><item><title>The Dark Side of Free Website: Limits and Alternatives for Hugo + GitHub + Cloudflare Pages + Pages CMS</title><link>https://devops.sarmento.org/en/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/</link><pubDate>Tue, 24 Mar 2026 10:45:00 +0000</pubDate><guid>https://devops.sarmento.org/en/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/</guid><description>&lt;p&gt;In a &lt;a href="https://devops.sarmento.org/en/posts/why-leave-wordpress-and-what-to-build-instead-with-hugo-pages-cms-and-cloudflare/"&gt;previous post&lt;/a&gt;, we put together a complete blog with Hugo, GitHub, Cloudflare Pages, and Pages CMS without spending a cent. The stack works, it is fast, and for most personal blogs it will keep working for a long time without asking anything in return. But &amp;ldquo;free&amp;rdquo; does not mean &amp;ldquo;without limits,&amp;rdquo; and understanding where the walls are before you hit them is the kind of thing that saves headaches down the road.&lt;/p&gt;</description></item><item><title>Comments on static sites with Isso — lightweight, self-hosted, and tracking-free</title><link>https://devops.sarmento.org/en/posts/comments-on-static-sites-with-isso-lightweight-self-hosted-and-tracking-free/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://devops.sarmento.org/en/posts/comments-on-static-sites-with-isso-lightweight-self-hosted-and-tracking-free/</guid><description>&lt;p&gt;A static site has no backend. No database, no application server processing requests — and that&amp;rsquo;s exactly what makes it fast, cheap, and resilient. But that simplicity comes at a cost when you need anything that depends on persistent state, and comments are the most obvious case. In WordPress or Ghost, the commenting system is part of the application. In a site generated by Hugo, Jekyll, or Eleventy, that layer simply doesn&amp;rsquo;t exist.&lt;/p&gt;</description></item><item><title>Why leave WordPress — and what to build instead with Hugo, Pages CMS, and Cloudflare</title><link>https://devops.sarmento.org/en/posts/why-leave-wordpress-and-what-to-build-instead-with-hugo-pages-cms-and-cloudflare/</link><pubDate>Fri, 20 Mar 2026 00:10:00 +0000</pubDate><guid>https://devops.sarmento.org/en/posts/why-leave-wordpress-and-what-to-build-instead-with-hugo-pages-cms-and-cloudflare/</guid><description>&lt;h2 id="why-leave-wordpress"&gt;Why leave WordPress&lt;/h2&gt;
&lt;h3 id="the-weight-of-running-a-dynamic-cms"&gt;The weight of running a dynamic CMS&lt;/h3&gt;
&lt;p&gt;WordPress is an extraordinary piece of software that powers nearly half the internet. That said, keeping a WordPress installation healthy is a job that never ends. Every visit to your site triggers a chain of events: the server receives the request, PHP wakes up, queries MySQL, assembles the page on the fly, and sends the HTML back to the browser. Multiply that by a hundred simultaneous visitors and you have a server sweating to deliver pages that, on most blogs, are exactly the same for everyone.&lt;/p&gt;</description></item><item><title>Hello, World!</title><link>https://devops.sarmento.org/en/posts/hello-world/</link><pubDate>Thu, 19 Mar 2026 01:00:00 +0000</pubDate><guid>https://devops.sarmento.org/en/posts/hello-world/</guid><description>&lt;p&gt;This is the English side of &lt;strong&gt;/var/log/janio&lt;/strong&gt; — a blog about Linux, macOS, self-hosting, homelab, and the small tools that make daily life in the terminal a little better.&lt;/p&gt;
&lt;p&gt;Most of the content lives on the Portuguese side for now. Posts will be translated or written directly in English as the blog grows. If you read Portuguese, there&amp;rsquo;s a lot more waiting for you on the other side of the language switcher.&lt;/p&gt;</description></item></channel></rss>