<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <docs>https://blogs.law.harvard.edu/tech/rss</docs>
    <title>Fediverse on Fuchsbau</title>
    <link>https://this-is-fine.io/tags/fediverse/</link>
    <description>Recent content in Fediverse on Fuchsbau</description>
    <image>
      <title>Fediverse on Fuchsbau</title>
      <link>https://this-is-fine.io/tags/fediverse/</link>
      <url>https://source.unsplash.com/2000x1322/?fox</url>
    </image>
    <ttl>1440</ttl>
    <generator>Hugo 0.125.4</generator>
    <language>de-DE</language>
    <lastBuildDate>Wed, 20 May 2026 22:26:11 UT</lastBuildDate>
    <atom:link href="https://this-is-fine.io/tags/fediverse/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>From Mastodon to snac: A Lighter Fediverse Stack</title>
      <link>https://this-is-fine.io/posts/20260520-mastodon-to-snac/</link>
      <pubDate>Wed, 20 May 2026 10:00:00 UT</pubDate>
      <dc:creator>ff0x</dc:creator>
      <guid>https://this-is-fine.io/posts/20260520-mastodon-to-snac/</guid>
      <description>The lab used to run Mastodon on Kubernetes: PostgreSQL, a Redis-compatible cache, and S3-shaped media storage on top of the usual edge stack. That worked, but it was heavy for a small personal instance — more moving parts than the workload justified.
The fediverse home at this-is-fine.social now runs snac instead: a minimal ActivityPub server in portable C, no database, all state on a single filesystem tree, backed up off-cluster with the same VolSync &#43; restic pattern as other stateful apps.
</description>
      <category domain="https://this-is-fine.io/categories/infrastructure">Infrastructure</category>
      <content:encoded><![CDATA[The lab used to run Mastodon on Kubernetes: PostgreSQL, a Redis-compatible cache, and S3-shaped media storage on top of the usual edge stack. That worked, but it was heavy for a small personal instance — more moving parts than the workload justified.
The fediverse home at this-is-fine.social now runs snac instead: a minimal ActivityPub server in portable C, no database, all state on a single filesystem tree, backed up off-cluster with the same VolSync &#43; restic pattern as other stateful apps.
Why leave Mastodon? The earlier write-up on running Mastodon in the lab listed the real cost:
Layer Mastodon stack Operational weight App Mastodon (web &#43; streaming &#43; sidekiq) Large images, many processes SQL CloudNative-PG Cluster, backups, upgrades Cache Dragonfly (Redis API) Extra Deployment, TLS to cache Media Rook RGW / object storage Buckets, credentials, S3 quirks Edge Gateway API, cert-manager, DNS Still required for federation For a handful of local users and light federation, that is a lot of infrastructure to babysit. Mastodon is excellent software; it is simply bloated relative to “I want a fediverse account on my own domain without running a small SaaS platform.”
What snac changes snac (“Social Networks Are Crap”) is deliberately small:
No PostgreSQL, no Redis, no object store — posts, follows, and media live under one data directory. ActivityPub federation to Mastodon, Pleroma, and friends; optional Mastodon API so many client apps still work. Hard-link–friendly on-disk layout (documented in snac(8)); backups must preserve that (tar/rsync -H). The lab builds a container from images/snac/ (Alpine, snac httpd via a small entrypoint). A PVC mounts at /snac/data; Gateway API and TLS stay the same story as in the Envoy Gateway post.
Internet -&amp;gt; this-is-fine.social (HTTPRoute) -&amp;gt; snac (Deployment, port 8001) PVC: server.json, users/, media/ (one tree) -&amp;gt; VolSync restic -&amp;gt; remote repository Backups without a database dump Stateful Mastodon meant CNPG backups plus optional PVC copies. With snac, the backup surface collapses to the PVC:
Include k8s/templates/volsync/ in the snac app Kustomization (same as VolSync article). Point the Deployment volume at the template’s claimName. Let the restic mover snapshot and push encrypted data to the shared remote repo. Restic sees a consistent filesystem snapshot; there is no separate “media bucket” or SQL dump to coordinate. Restore is “recover the PVC tree, start snac httpd,” respecting hard links on restore.
Account migration (Mastodon -&amp;gt; snac) snac documents a Mastodon-to-snac move in snac(8) (since 2.61). In short:
On the old Mastodon account, export follows, lists, blocks, and bookmarks (CSV). Copy the CSV files into the snac user’s import/ directory and run snac import_csv. Run snac alias to tie the new snac user to the old @user@old.instance handle. On Mastodon, use Move to a different account and point followers at the snac handle. The upstream manual and fedi.tips migration guide are worth reading before you cut traffic — federation moves depend on remote servers cooperating.
Tradeoffs snac is not a drop-in replacement for every Mastodon feature. Lists, moderation tooling, and admin UX are thinner; the web UI is simple by design. For this lab that is acceptable: less software, fewer night pages, same domain on the fediverse.
GitOps layout (Flux overview) is unchanged — only the application bundle under k8s/applications/ swapped from the Mastodon Helm release to a slim snac Deployment. The heavy chart stack can stay retired unless something else needs it.
Further reading: snac README, ActivityPub, prior Mastodon lab stack.
]]></content:encoded>
    </item>
    <item>
      <title>Running Mastodon in the Lab (Fediverse Stack)</title>
      <link>https://this-is-fine.io/posts/20251121-mastodon-fediverse/</link>
      <pubDate>Fri, 21 Nov 2025 11:00:00 UT</pubDate>
      <dc:creator>ff0x</dc:creator>
      <guid>https://this-is-fine.io/posts/20251121-mastodon-fediverse/</guid>
      <description>Mastodon is a federated microblog server: local timelines plus ActivityPub links to other instances. Running it means managing state (PostgreSQL, media, cache) and edge (HTTPS and /.well-known for discovery). The lab instance is at https://mastodon.this-is-fine.social.
It ships as a Helm release through Flux, same GitOps style as the rest of the lab.
Federation is the interesting part socially and technically. Other servers discover you through HTTPS hostnames and /.well-known endpoints; if DNS or TLS drifts, federation breaks even when the pod is healthy. That is why the lab treats edge (Gateway API, cert-manager, external-dns) as first-class dependencies, not an afterthought.
</description>
      <category domain="https://this-is-fine.io/categories/infrastructure">Infrastructure</category>
      <content:encoded><![CDATA[Mastodon is a federated microblog server: local timelines plus ActivityPub links to other instances. Running it means managing state (PostgreSQL, media, cache) and edge (HTTPS and /.well-known for discovery). The lab instance is at https://mastodon.this-is-fine.social.
It ships as a Helm release through Flux, same GitOps style as the rest of the lab.
Federation is the interesting part socially and technically. Other servers discover you through HTTPS hostnames and /.well-known endpoints; if DNS or TLS drifts, federation breaks even when the pod is healthy. That is why the lab treats edge (Gateway API, cert-manager, external-dns) as first-class dependencies, not an afterthought.
Software map Need Project Learn App Mastodon Admin setup SQL CloudNative-PG Postgres operator Cache Dragonfly Redis-compatible cache Media Rook-Ceph RGW S3 API via ObjectBucketClaim Ingress Gateway API HTTPRoute on shared-gateway-external TLS cert-manager ACME for *.this-is-fine.social Secrets External Secrets SMTP, VAPID, secretKeyBase from Vault Request path Internet -&amp;gt; mastodon.this-is-fine.social (HTTPRoute) -&amp;gt; Mastodon (Helm) PostgreSQL (CNPG) Dragonfly (cache) object storage (Rook S3) Federation needs stable DNS and valid TLS — see Mastodon federation notes. SMTP, VAPID, and secretKeyBase sync from Vault through External Secrets, like other lab apps.
Media attachments land in object storage (Rook’s S3-compatible endpoint) so the web pods do not fill local disks with uploads. PostgreSQL holds accounts and timelines; Dragonfly backs Redis-shaped caching Mastodon expects. None of those pieces are optional if you want a instance that survives real use.
Capacity and backups Mastodon is not a small Deployment: size CPU, memory, and database disk from upstream guidance. Database backups (CNPG) and optional PVC backups (VolSync) are separate choices.
Other fediverse apps (for example Pixelfed) can share the namespace; this article stays on Mastodon.
Further reading: ActivityPub, Mastodon releases.
]]></content:encoded>
    </item>
  </channel>
</rss>
