<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>IRC on Fuchsbau</title>
    <link>https://this-is-fine.io/tags/irc/</link>
    <description>Recent content in IRC on Fuchsbau</description>
    <image>
      <title>IRC on Fuchsbau</title>
      <link>https://this-is-fine.io/tags/irc/</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/irc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>IRC in the Lab: InspIRCd and a ZNC Bouncer</title>
      <link>https://this-is-fine.io/posts/20251121-irc-inspircd-znc/</link>
      <pubDate>Fri, 21 Nov 2025 10:00:00 UT</pubDate>
      <dc:creator>ff0x</dc:creator>
      <guid>https://this-is-fine.io/posts/20251121-irc-inspircd-znc/</guid>
      <description>IRC is still a simple model: one server, many channels, text over a long-lived TCP session. InspIRCd runs the network; ZNC is a bouncer that stays logged in when your client disconnects and replays backlog when you return.
In the lab both are plain Deployments under Flux, with TLS from cert-manager and a Gateway API TCPRoute for TLS on port 6697.
IRC is a good contrast to HTTP-only homelab apps: clients expect a long-lived TCP session and often TLS on a non-443 port. Gateway API TCPRoute covers that without bolting IRC into an HTTP ingress controller as a special case.
</description>
      <category domain="https://this-is-fine.io/categories/infrastructure">Infrastructure</category>
      <content:encoded><![CDATA[IRC is still a simple model: one server, many channels, text over a long-lived TCP session. InspIRCd runs the network; ZNC is a bouncer that stays logged in when your client disconnects and replays backlog when you return.
In the lab both are plain Deployments under Flux, with TLS from cert-manager and a Gateway API TCPRoute for TLS on port 6697.
IRC is a good contrast to HTTP-only homelab apps: clients expect a long-lived TCP session and often TLS on a non-443 port. Gateway API TCPRoute covers that without bolting IRC into an HTTP ingress controller as a special case.
Traffic path IRC client (TLS, port 6697) -&amp;gt; znc.this-is-fine.io (Envoy TCPRoute) -&amp;gt; ZNC (state on PVC) -&amp;gt; InspIRCd (same namespace) Daemon Docs Role InspIRCd docs.inspircd.org Channels, users, server links ZNC wiki.znc.bz Persistent session and backlog InspIRCd owns the network name and channels. ZNC sits in front for humans: you connect to ZNC with your IRC client, ZNC stays connected to InspIRCd, and you can disconnect overnight without losing channel context. Only the bouncer needs a PVC; the IRC daemon can stay ephemeral apart from config secrets.
TLS and gateways Port 6697 is the usual TLS IRC port (IRCS). The public bouncer uses an Envoy TCP listener and a cert-manager certificate for znc.this-is-fine.io. An optional admin UI, if enabled, sits on *.this-is-fine.internal like other lab apps — see the DNS overview.
Operator and bridge passwords are SOPS-encrypted in Git.
Extras ZNC data can use the VolSync &#43; restic template like any PVC-backed app. An optional Tor sidecar exists in Git for alternate exposure. Deeper setup: InspIRCd configuration wiki, ZNC setup guide.
]]></content:encoded>
    </item>
  </channel>
</rss>
