matrix: Conduit and Element, told their own name by the route #166
Open
mesh-admin
wants to merge 1 commits from
feat/matrix-for-ace into main
pull from: feat/matrix-for-ace
merge into: :main
:main
:fix/resolver-passes-the-dnssec-bit
:fix/mailu-admin-asks-the-machines-resolver
:fix/postgres-is-not-named-after-the-seat
:fix/110-the-resolver-answers-a-container
:feat/qbittorrent-for-ace
:feat/servarr-api-provision
:feat/home-assistant-for-ace
:feat/tautulli-for-ace
:feat/bookshelf-for-ace
:feat/lidarr-for-ace
:feat/radarr-for-ace
:feat/sonarr-for-ace
:feat/oidc-client-provision
:feat/kometa-for-ace
:feat/plex-for-ace
:fix/manifests-publish-software-ports
:feat/n8n-for-ace
:feat/baserow-for-ace
:feat/supabase-for-ace
:feat/nzbget-for-ace
:feat/matrix-for-ace
:feat/bazarr-for-ace
:fix/sidecars-dial-the-port-they-were-given
:feat/grafana-for-ace
:feat/ombi-for-ace
:chore/remove-the-network-checker-module
:feat/a-network-checker-module
:feat/modules-name-their-endpoints
:fix/a-routed-module-listens-from-the-mesh
:fix/the-resolver-declares-both-protocols
:fix/sshd-declares-the-daemon-it-owns
:fix/fail2ban-bans-through-what-every-machine-has
:fix/fail2ban-declares-the-log-its-own-jail-reads
:fix/fail2ban-restarts-on-its-log-target
:fix/fail2ban-declares-where-it-logs
:feat/the-catalogue-hears-what-it-missed
:feat/the-catalogue-prepares-its-own-schema
:fix/the-catalogue-declares-the-event-it-emits
:feat/a-merge-rebuilds-what-it-changed
:fix/a-merge-older-than-the-watching-is-history
:fix/a-merge-announced-is-said
:fix/the-forge-watches-every-repository
:feat/the-forge-announces-every-merge
:feat/nats-serves-the-meshs-certificate
:fix/nats-declares-its-base
:feat/amqp-leaves-the-catalogue
:restore/broker-claim
:revert/broker-seat-claim
:fix/broker-seat-must-stay-held
:fix/go-126-base
:feat/nats-genesis
:feat/ssh-client-module
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
New module: matrix — Conduit homeserver + Element Web (ace runs both under HAL).
server_name=${bound:route:name-homeserver}in a mesh-renderedconduit.toml(CONDUIT_CONFIG), and the same name in Element'sconfig.json. Depends on mesh-controller #149 — on main the render is refused (name-homeserver), never written empty.contributes.route.{homeserver,element}):matrix→ 6167,element→ 80. No 8448: Conduit's well-known says<name>:443, so federation goes through the route (verified live from outside).allow_registration = false(HAL had it open to the internet with the dummy flow, on 0.10.13 — 0.10.14 fixes an account takeover by any local user). Operator decides whether to reopen it.config.jsonis the onemerge:jsonfile; HAL'smap_style_url(embedded a tile API key) not carried.Verified: catalogue tests (MESH_CATALOGUE) on main and #149; #149 resolution renders both names into both files and contributions; throwaway containers of both digests with the rendered files: versions 200, well-known
matrix.zurag.be:443, register → M_FORBIDDEN, Element 200 with the rendered config.ace runs a Conduit homeserver (matrix.zurag.be, 5.4 GB of RocksDB, federating) and Element Web under HAL, configured by environment with the domain templated in, and Element's config.json carrying matrix.zurag.be literally. A homeserver's server_name is its permanent identity - every user id, room id and signature in the database carries it - and it is the name the module is served under. So it comes from ${bound:route:name-homeserver} (mesh-controller #149), rendered into a conduit.toml the container reads through CONDUIT_CONFIG, and into Element's config.json (base_url, default_server_name, the room directory). Without #149 the render is refused ("name-homeserver"), never written empty. Two routes, one per endpoint: homeserver (label matrix, 6167) and element (label element, 80). Federation needs no 8448: Conduit answers /.well-known/matrix/server with <name>:443, so peers federate through the route. HAL published 8448 on all interfaces, but the router never forwarded it; checked from outside, the well-known, federation version and client versions all answer on 443. Registration defaults to off. HAL ran with CONDUIT_ALLOW_REGISTRATION=true, which on ace means anyone on the internet can create an account with the dummy flow (seen: /register offers m.login.dummy) - on 0.10.13, whose successor 0.10.14 fixes an account-takeover by any local user. Existing accounts are unaffected; the operator decides whether to reopen it. Element's config.json is the one merge:json file (it tolerates `endpoints`), so a machine can add keys. HAL's map_style_url is not carried: it embedded a map-tile API key, which belongs in an assignment if wanted. Images are the digests ace runs (Conduit 0.10.13, Element 1.12.28). Verified: catalogue tests with MESH_CATALOGUE pointed here on mesh-controller main and #149; a resolution on #149 renders both names (matrix.zurag.be, element.zurag.be) into both files and both contributions; throwaway containers of both pinned digests with the rendered files (root 0644, :ro): client versions 200, well-known says matrix.zurag.be:443, register refused M_FORBIDDEN, Element 200 serving the rendered config.json.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.