<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>Dragonfly on Fuchsbau</title>
    <link>https://this-is-fine.io/tags/dragonfly/</link>
    <description>Recent content in Dragonfly on Fuchsbau</description>
    <image>
      <title>Dragonfly on Fuchsbau</title>
      <link>https://this-is-fine.io/tags/dragonfly/</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/dragonfly/index.xml" rel="self" type="application/rss+xml" />
    <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>
