<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>S3-Backup on DevOps von UCLAB</title>
    <link>https://uclab.dev/tags/s3-backup/</link>
    <description>Recent content in S3-Backup on DevOps von UCLAB</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 01 Mar 2026 19:30:11 +0000</lastBuildDate>
    <atom:link href="https://uclab.dev/tags/s3-backup/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Forgejo on K3S</title>
      <link>https://uclab.dev/posts/forgejo/</link>
      <pubDate>Sun, 01 Mar 2026 19:30:11 +0000</pubDate>
      <guid>https://uclab.dev/posts/forgejo/</guid>
      <description>&lt;p&gt;Forgejo is a lightweight, self-hosted Git service — a community fork of Gitea. In this post I&amp;rsquo;ll walk through how I deployed it on my home k3s cluster backed by a CloudNativePG (CNPG) PostgreSQL database, MinIO S3-compatible object storage for backups, and exposed it via Cilium&amp;rsquo;s Gateway API with automatic TLS through cert-manager.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://uclab.dev/posts/forgejo/images/gemini6.png&#34;&#xA;    alt=&#34;forgejo&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;architecture-overview&#34;&gt;Architecture Overview&lt;/h2&gt;&#xA;&lt;p&gt;The setup involves three main layers:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;App layer&lt;/strong&gt; — the Forgejo deployment, services, and ingress (Gateway + HTTPRoute)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Database layer&lt;/strong&gt; — a CloudNativePG PostgreSQL cluster with WAL archiving to MinIO&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Secrets layer&lt;/strong&gt; — External Secrets Operator pulling credentials from Vault&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the directory structure I&amp;rsquo;m using in my GitOps repo:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
