5
0
mirror of https://github.com/spantaleev/matrix-docker-ansible-deploy.git synced 2026-08-13 12:20:51 +00:00
Files
matrix-docker-ansible-deploy/setup.yml
T
Slavi Pantaleev f9222dc70c Add support for Meowlnir
Meowlnir (https://github.com/maunium/meowlnir) is a Matrix moderation
bot which speaks the same policy-list protocol as Mjolnir and Draupnir,
but runs as an appservice and can override individual policies coming
from ban lists you do not control.

Bots and their management rooms live only in Meowlnir's own database —
nothing in its configuration file can declare one — so the role
provisions them through the management API from a declarative roster
(matrix_bot_meowlnir_bots_custom), applied under the
ensure-matrix-users-created tag. Management rooms may be declared or
created for you; bots and rooms no longer declared get pruned.

Wrapper scripts for driving the management API by hand are installed
to /matrix/meowlnir/bin.

Meowlnir re-runs its configuration upgrader in memory on every start,
so a literal `generate` value yields a new secret per restart. All
secrets are therefore rendered explicitly, validation rejects
`generate`, and the configuration directory is mounted read-only.

Draupnir and Meowlnir both want synapse-http-antispam, which the
playbook wires up to a single consumer. The wiring prefers Draupnir,
and both roles fail the run when each claims it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 06:05:30 +03:00

160 lines
4.8 KiB
YAML

---
- name: "Set up a Matrix server"
hosts: "{{ target if target is defined else 'matrix_servers' }}"
become: true
roles:
# Most of the roles below are not distributed with the playbook, but downloaded separately using `ansible-galaxy` via the `just roles` command (see `justfile`).
- role: galaxy/playbook_help
tags:
- setup-all
- install-all
- role: galaxy/systemd_docker_base
- role: custom/matrix_playbook_migration
- when: matrix_playbook_docker_installation_enabled | bool
role: galaxy/docker
vars:
docker_install_compose: false
docker_install_compose_plugin: false
tags:
- setup-docker
- setup-all
- install-docker
- install-all
- when: devture_docker_sdk_for_python_installation_enabled | bool
role: galaxy/docker_sdk_for_python
tags:
- setup-docker
- setup-all
- install-docker
- install-all
- when: devture_timesync_installation_enabled | bool
role: galaxy/timesync
tags:
- setup-timesync
- setup-all
- install-timesync
- install-all
- custom/matrix-base
- galaxy/ddclient
- galaxy/exim_relay
- role: galaxy/postgres
- galaxy/valkey
- role: custom/matrix-authentication-service
- custom/matrix-corporal
- custom/matrix-appservice-draupnir-for-all
- custom/matrix-appservice-double-puppet
- custom/matrix-alertmanager-receiver
- custom/matrix-bridge-appservice-discord
- custom/matrix-bridge-appservice-irc
- custom/matrix-bridge-beeper-linkedin
- custom/matrix-bridge-beeper-line
- custom/matrix-bridge-wechat
- custom/matrix-bridge-mautrix-twitter
- custom/matrix-bridge-mautrix-googlechat
- custom/matrix-bridge-mautrix-meta-messenger
- custom/matrix-bridge-mautrix-meta-instagram
- custom/matrix-bridge-mautrix-telegram
- custom/matrix-bridge-mautrix-signal
- custom/matrix-bridge-mautrix-gmessages
- custom/matrix-bridge-mautrix-gvoice
- custom/matrix-bridge-mautrix-linkedin
- custom/matrix-bridge-mautrix-whatsapp
- custom/matrix-bridge-mautrix-wsproxy
- custom/matrix-bridge-mautrix-discord
- custom/matrix-bridge-mautrix-slack
- custom/matrix-bridge-mautrix-bluesky
- custom/matrix-bridge-rustpush
- custom/matrix-bridge-mx-puppet-groupme
- custom/matrix-bridge-mx-puppet-steam
- custom/matrix-bridge-postmoogle
- custom/matrix-bridge-sms
- custom/matrix-bridge-steam
- custom/matrix-bridge-heisenbridge
- custom/matrix-bridge-hookshot
- custom/matrix-bridge-meshtastic-relay
- custom/matrix-bot-matrix-reminder-bot
- custom/matrix-bot-maubot
- custom/matrix-bot-buscarron
- custom/matrix-bot-baibot
- custom/matrix-bot-honoroit
- custom/matrix-bot-mjolnir
- custom/matrix-bot-draupnir
- custom/matrix-bot-meowlnir
- custom/matrix-cactus-comments
- custom/matrix-cactus-comments-client
- custom/matrix-matrixto
- custom/matrix-rageshake
- custom/matrix-synapse
- custom/matrix-synapse-auto-compressor
- custom/matrix-dendrite
- custom/matrix-conduit
- custom/matrix-continuwuity
- custom/matrix-tuwunel
- custom/matrix-ketesa
- custom/matrix-synapse-usage-exporter
- galaxy/prometheus_nginxlog_exporter
- galaxy/prometheus_node_exporter
- galaxy/prometheus_postgres_exporter
- galaxy/prometheus
- galaxy/grafana
- custom/matrix-prometheus-services-connect
- custom/matrix-client-element
- custom/matrix-client-commet
- galaxy/hydrogen
- galaxy/cinny
- galaxy/sable
- custom/matrix-client-schildichat
- custom/matrix-client-fluffychat
- galaxy/jitsi
- custom/matrix-user-verification-service
- galaxy/etherpad
- custom/matrix-sygnal
- galaxy/ntfy
- custom/matrix-static-files
- galaxy/coturn
- custom/matrix-media-repo
- custom/matrix-pantalaimon
- custom/matrix-element-admin
- custom/matrix-element-call
- galaxy/livekit_server
- custom/matrix-livekit-jwt-service
- role: galaxy/postgres_backup
- role: galaxy/backup_borg
- custom/matrix-user-creator
- custom/matrix-common-after
- role: galaxy/container_socket_proxy
- role: galaxy/traefik
- role: galaxy/traefik_certs_dumper
- role: galaxy/auxiliary
- when: devture_systemd_service_manager_enabled | bool
role: galaxy/systemd_service_manager
# This is pretty much last, because we want it to better serve as a "last known good configuration".
# See: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2217#issuecomment-1301487601
- when: devture_playbook_state_preserver_enabled | bool
role: galaxy/playbook_state_preserver
tags:
- setup-all
- install-all
- role: galaxy/playbook_runtime_messages