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.
1.9 KiB
1.9 KiB
colony-psql
The shared PostgreSQL instance for colony services. Rather than each service running its own
database, the containers (and the git VM) connect here over the ctrs network.
- Source:
shill/containers/colony-psql.nix - Host: NixOS container on
shill
Role
- PostgreSQL 14 with TCP/IP enabled, reachable from the whole colony (
10.100.0.0/16and2a0e:97c0:4d2:10::/60,md5auth). The firewall allows5432. - Local
peerauth mapspostgres,root,netdataanddevto thepostgressuperuser via the ident map. - netdata with the Python PostgreSQL collector.
- Consumers wait for the database to accept connections with the
lib.my.systemdAwaitPostgreshelper (e.g.sharry,atticd,mastodon-init-db, andmiddleman's nginx as a DNS bootstrap hack).
Network assignments
| Name | Assignment | IPv4 | IPv6 | Domain | Notes |
|---|---|---|---|---|---|
| colony-psql-ctr (colony-psql) | internal | 10.100.2.4/24 gw 10.100.2.1 |
2a0e:97c0:4d2:12::4/64 |
ams1.int.nul.ie |
The assignment also has the alt name colony-psql (no -ctr suffix), which is what consumers
use as the database hostname.
Consumers
- object —
sharryandhedgedoc(andatticdwhen enabled) overcolony-psql:5432 - toot — Mastodon's database (Mastodon currently disabled)
- chatterbox — the mautrix bridges (WhatsApp, Messenger, Instagram) via Postgres URIs in their secret env files
gitVM — Gitea
Notable config files
nixos/boxes/colony/vms/shill/containers/colony-psql.nix— container definition and PostgreSQL configuration