d51f2d62b6
Add a top-level README mapping the boxes and a full docs/ tree: topic pages (architecture, networking, deployment), per-site box pages for colony and home with containers nested under their hosts, remote and mobile boxes, the installer, and the home switch fabric reference (folded in from home-switches.md, with AGENTS.md and code comments retargeted to its new home). Box pages carry marked assignment tables that CI regenerates from nixos.allAssignments. AGENTS.md points at the new docs and keeps its terse agent version of the mechanics, referring to the topic pages for depth.
2.4 KiB
2.4 KiB
chatterbox
The Matrix homeserver for nul.ie (Synapse) and its bridges to other chat networks.
middleman fronts it as matrix.nul.ie for clients and on :8448 for
federation.
- Source:
shill/containers/chatterbox.nix - Host: NixOS container on
shill
Role
- matrix-synapse —
server_name = "nul.ie",public_baseurl = https://matrix.nul.ie, Element atelement.nul.ieas the web client. Listens on[::]:8008(client + federation resources,x_forwarded) with a localhost manhole on:9000. Registration and guest access are disabled; uploads up to 1024M with dynamic thumbnails and URL previews enabled (previews are limited to middleman's addresses as the fetch proxy). - heisenbridge — IRC bridge, owner
@dev:nul.ie, exclusive@irc_*user namespace. - mautrix-whatsapp — WhatsApp bridge (appservice
whatsapp2,!wacommands). - mautrix-meta — two instances,
messenger(fbm2_*,!fbm) andinstagram(ig_*,!ig), both with backfill enabled. - All three mautrix bridges use Postgres on colony-psql (URIs in their secret
env files), require end-to-end encryption by default, and double-puppet onto
nul.ievia the shareddoublepuppet.yamlappservice registration (an age secret). - The firewall allows
8008(Synapse) and8009besides netdata.
Network assignments
| Name | Assignment | IPv4 | IPv6 | Domain | Notes |
|---|---|---|---|---|---|
| chatterbox-ctr | internal | 10.100.2.5/24 gw 10.100.2.1 |
2a0e:97c0:4d2:12::5/64 |
ams1.int.nul.ie |
Notes
- Synapse's real database config lives in the
chatterbox/synapse.yamlage secret — options only merge at the top level, so the base config carries a dummysqlite3block to satisfy the module defaults. The signing key is also an age secret. olm-3.2.16is allowed viapermittedInsecurePackages(a nixpkgs E2EE library issue).- The bridge services get
ffmpegon theirPATHfor GIF→video conversion.
Notable config files
nixos/boxes/colony/vms/shill/containers/chatterbox.nix— container definition, Synapse settings and all bridge configuration