Chat Networks¶
adapters.toml holds credentials. chmod 600, never commit.
Any secret may be written as env:NAME to read it from the
environment instead.
The daemon logs a warning at startup if the file is readable
beyond its owner, and refuses to start if an env: name is
unset. Unknown keys are a startup error rather than a silent
typo.
Every adapter follows three rules:
- It only reacts to a direct message
- It never makes a policy decision
- Its endpoint address is a stable identifier, not a display name
Turning a network off¶
Every section in config/adapters.example.toml ships with
enabled = false. Copy the file, then set enabled = true on
the one or two networks you actually run and fill in only
their credentials. A disabled section is skipped entirely, so
its env: name does not have to be set. That is what lets an
unconfigured stock config start cleanly and lets you add
networks one at a time.
The daemon runs with no network enabled. It logs a warning and
stays up, because an instance with no chat network is a normal
state during setup and exiting would only turn it into a
restart loop that hides the real message. Run
party-line-pagerd --check to find out whether anything is
actually configured. It exits non-zero when no adapter is
enabled, which makes it the right thing to gate a deploy on.
Supported networks¶
| Network | Endpoint format | Setup guide |
|---|---|---|
| Telegram | telegram:123456789 |
Telegram |
| Matrix | matrix:@party-line-pager:example.org |
Matrix |
| Signal | signal:+15555550100 |
Signal |
| IRC | irc:party-line-pager |
IRC |
| XMPP | xmpp:party-line-pager@example.org |
XMPP |
| Mastodon | mastodon:party-line-pager@example.org |
Mastodon |
email:party-line-pager@example.org |
||
| Mattermost | mattermost:8y9z... (26-char user id) |
Mattermost |
| Discord | discord:891... (numeric snowflake) |
Discord |
| Apprise | apprise:ntfy://host/topic |
Apprise |
Two caveats¶
- IRC loses broadcasts. A PRIVMSG to somebody who is not connected is gone. Tell IRC-only subscribers to add a second endpoint.
- WhatsApp is not supported. The only legitimate route is Meta's Cloud API (business account + pre-approved templates). Unofficial libraries impersonate a linked device and get numbers banned. If you must have it, run a Matrix bridge and subscribe the resulting Matrix endpoint.