- condense the page to what a member needs: where services run (Infomaniak),
what backups mean to them, the .coop domain via domains.coop, mail via
Scaleway, the Matrix space and the accounts they may meet
- drop operator detail (migration narration, DNS record inventory, scheduled-task
internals, admin-only components, internal account/credential identifiers) to
co-op/ops-docs; fix a heading glitch where a line began with '#infrastructure'
- brand.css: light-mode .md-tabs uses the header's pale wash #e8f5e8 (was the
saturated --green-deep) with a warm hairline; dark scheme unchanged
- README: render the Key links as real Markdown links (mailto: for the
contact address); drop the 'lives in a public git repository' note now
that the footer carries the source link.
- mkdocs.yml: add a theme override (custom_dir: overrides) that puts a
'Documentation source' link in the footer of every page.
- Move the operator runbook, maintenance notes and incident write-up out
of the published site into the git-only co-op/ops-docs repository;
remove them from the nav and repoint cross-references at Gitea.
- New 'Where it runs' section: services moved to the co-op's own Infomaniak
server (Swiss sovereign cloud, Geneva, renewable-powered, ISO 14001/50001/27001)
from a personal Hostinger account on 2026-11-02; note the steward bot runs on a
separate machine and was not part of the migration.
- DNS subsection: managed manually at domains.coop (nameservers yoursrs.com); the
zone is only 11 records, with the apex A/AAAA and a wildcard A/AAAA carrying
every application hostname.
- Backups subsection: encrypted nightly backups to Infomaniak Encrypted S3, kept
seven days; the steward-bot host backs up selected home directories to the same
object storage.
- New 'Mail' section: inbound mail is received directly by the box; the newsletter
(Listmonk) sends via the Scaleway Transactional Email relay (SPF, DKIM and DMARC
pass at p=reject), while the member portal still sends through the Cloudron mail
service on the box. Both send as info@inference.coop.
- Correct the webmail URL: mail.inference.coop -> email.inference.coop (the
Cloudron mail app vhost; mail.inference.coop is not a configured vhost).
Reviewed by dckc (review 6, APPROVED) and cross-checked against the gateway upgrade
runbook. Merged by push: this repo's approval gate is restricted to the Owners team,
which currently holds only machine accounts, and Gitea will not accept their API
reviews as approvals — see the PR discussion.
Reviewed by dckc (review 6, APPROVED) and cross-checked against the gateway upgrade
runbook. Merged by push: this repo's approval gate is restricted to the Owners team,
which currently holds only machine accounts, and Gitea will not accept their API
reviews as approvals — see the PR discussion.
Records the completed state: room power and the portal's invite credential now both
belong to @inference-admin; the old account's admin flag is dropped, it is
deactivated, and its devices and tokens are deleted. Notes the two corrupt rooms it
cannot leave, so the next person does not re-investigate.
Four automated accounts touch the homeserver and two of them differed by one
character, which caused real confusion (a bot appearing to announce itself; the
steward unable to post in a room it had been asked to report to). This records
the distinction rather than leaving it to be rediscovered.
Power belongs to @inference-admin, voice belongs to @inferencebot, and
@inference-admin never speaks in a member room. @inference-bot is being retired:
its room power was transferred to @inference-admin, which is now administrator of
record for #general, #community, #design, #skillshare, #updates and
#infrastructure.
Also records the one live dependency that blocks finishing: the portal's member
invites still authenticate as the old account via MATRIX_BOT_TOKEN, so that has
to be repointed before its credentials are revoked. Without this written down the
next person would revoke the token and silently break member invites.
Verified while writing: the portal's token hashes to the old account's device
VYQDYBXULA, which is also the unexplained python-httpx client seen using that
account today.
The write-up has sat on incident/2026-10-02-gateway-cve-upgrade since the
outage and that branch is now far behind main. This lifts just the incident
text and the CVE note into incidents/, attributed to InferenceBot with the
substance unchanged, and links it from infrastructure.md under a new
Incident log section.