2657 Commits

Author SHA1 Message Date
eb17814ddf WIP: feat(synapse): sane defaults for compressing state without choking host CPU 2022-05-27 09:14:42 +02:00
b784feb525 WIP: feat(postgres): actually use proper dump+restore procedure over psql misuse 2022-05-27 09:14:12 +02:00
fe0668bb2f fix: broken rhel/fedora tasks disabled 2022-05-19 08:42:03 +02:00
f3bbb349d7 feat: add automatic creation of reverse-proxy routing 2022-05-19 08:42:02 +02:00
21b5ff42a6 meta: move inventory structure to be more usable 2022-05-19 08:42:01 +02:00
c38562abbf meta: add own inventory, add vault-unlock with GPG 2022-05-19 08:42:00 +02:00
7e4317b42a feat(synapse): allow using multiple federation workers 2022-05-19 08:41:59 +02:00
c945f38c52 Merge pull request #1818 from paulRbr/bridge-mautrix-signal-encryption
Bridge mautrix signal and mautrix whatsapp encryption
2022-05-18 14:50:26 +02:00
677a2fc503 Fix compatibility with ansible=6 / ansible-core=2.13
Details here: https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_6.html#id36

Basically:

```yaml
- name: Prior to 2.13
  debug:
    msg: '[1] + {{ [2] }}'

- name: 2.13 and forward
  debug:
    msg: '{{ [1] + [2] }}'
```

Interestingly, we had been using the new/safe syntax in lofs of places.

We were using the broken one in many others though. Hopefully all
instances were fixed by this patch.
2022-05-18 15:43:39 +03:00
98fecf95a6 Merge pull request #1836 from etkecc/patch-11
Update Synapse v1.59.0 -> v.1.59.1
2022-05-18 14:09:59 +02:00
a1e5ecf551 Upgrade hookshot (1.6.1 -> 1.7.0)
This new version should be buildable on arm64.

See: https://github.com/matrix-org/matrix-hookshot/releases/tag/1.7.0

There's still no prebuild arm64 image, so we continue relying on
self-building there.
2022-05-18 14:43:16 +03:00
de8d6f8d6c Update Synapse v1.59.0 -> v.1.59.1 2022-05-18 11:37:34 +00:00
e1e83353b4 bridge-whatsapp: add variable to enable end-to-bridge encryption 2022-05-18 13:14:22 +02:00
99de38280d bridge-signal: add variable to enable encryption 2022-05-18 13:14:20 +02:00
468d492fd4 Merge pull request #1831 from etkecc/patch-9
Update Postgres (CVE-2022-1552 + last 9.x update)
2022-05-18 12:32:28 +02:00
5b09cbd27d Merge pull request #1835 from etkecc/patch-10
Update mautrix-whatsapp v0.3.1 -> v0.4.0
2022-05-18 12:31:23 +02:00
4297af5c51 Update mautrix-whatsapp v0.3.1 -> v0.4.0 2022-05-18 10:19:43 +00:00
de378c6390 Merge pull request #1834 from hifi/patch-8
Upgrade Heisenbridge (1.12.0 -> 1.13.0)
2022-05-18 11:50:45 +02:00
2cce91fe1d Upgrade Heisenbridge (1.12.0 -> 1.13.0) 2022-05-18 12:38:07 +03:00
f972a80224 Upgrade Synapse (1.58.1 -> 1.59.0) 2022-05-17 13:08:17 +03:00
bab1ee2233 Work around mx-puppet-discord failing with "No relay found" after reboot
Related to https://gitlab.com/mx-puppet/discord/mx-puppet-discord/-/issues/117

Looks like the bridge is too quick to start and fails to initialize
itself by connecting to Synapse. It's mostly observed after a system
reboot, because Synapse (and everything else) is slower to start.

Once mx-puppet-discord fails to initialize itself, a "No relay found"
error will be observed any time you try to relay a Matrix message to
Discord. Relaying messages in the other direction (Discord to Matrix)
also fails.

With this workaround (longer delay on mx-puppet-discord startup), I
observe mx-puppet-discord working well, even after a full reboot.
Of course, a proper fix is preferable, instead of delaying by a magic
number of seconds.
2022-05-17 11:34:00 +03:00
4109dc3bcd Update Postgres (CVE-2022-1552 + last 9.x update)
CVE: https://security-tracker.debian.org/tracker/CVE-2022-1552
Source: https://www.postgresql.org/about/news/postgresql-143-137-1211-1116-and-1021-released-2449/
Postgres 9.6 upgrade (**not a CVE fix, 9.x still vulnerable**): https://www.postgresql.org/docs/release/9.6.24/
2022-05-16 19:56:54 +00:00
f21269f441 Upgrade mx-puppet-slack (v0.1.1 -> v0.1.2)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1829
2022-05-16 21:40:31 +03:00
8ecdfc3ed6 Automatically enable admin api access via nginx (#1830) 2022-05-16 10:26:15 +03:00
99931af532 Merge pull request #1825 from dsonck92/change-to-upstream
Change back to working original mx-puppet-slack
2022-05-16 07:39:00 +02:00
3e90dc445a Merge pull request #1828 from aaronraimist/element-self-build
Update Element self build repo URL
2022-05-16 07:36:57 +02:00
d286c60cdb Merge pull request #1827 from aaronraimist/git-prereq
Document `git` as a potential prereq
2022-05-16 07:36:41 +02:00
311f44a19c Document git as a potential prereq
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1792
2022-05-16 04:36:18 +00:00
2a9b52a1c2 Update Element self build repo URL
It forwards to the correct place but might as well just update it to the current URL.
2022-05-16 04:29:29 +00:00
637073c72b Merge pull request #1826 from etkecc/patch-8
Update Cinny v2.0.2 -> v2.0.3
2022-05-15 08:32:46 +02:00
c58c7dc643 Update Cinny v2.0.2 -> v2.0.3 2022-05-15 05:45:07 +00:00
894669eca2 Change back to working original mx-puppet-slack
Now that v0.1.1 is out, which depends on the functional matrix-slack-parser
it works again.
2022-05-14 21:09:54 +02:00
b5a0839507 Merge pull request #1823 from etkecc/patch-7
Update Cinny v2.0.1 -> v2.0.2
2022-05-14 14:11:31 +02:00
dca593cf7a Update Cinny v2.0.1 -> v2.0.2 2022-05-14 11:33:19 +00:00
45f8810a00 Merge pull request #1822 from etkecc/patch-6
Update Cinny v2.0.0 -> v2.0.1
2022-05-13 18:59:27 +02:00
8ec1f4bee0 Update Cinny v2.0.0 -> v2.0.1 2022-05-13 16:20:04 +00:00
d76194acf6 Merge pull request #1821 from luismanson/patch-3
Update configuring-playbook-bridge-hookshot.md
2022-05-13 17:01:50 +02:00
1431a351ab Update configuring-playbook-bridge-hookshot.md
fix Hookshot instructions link
2022-05-13 11:57:59 -03:00
fb8af6c678 Merge pull request #1820 from brush/master
Suggested fix to docs for reverse proxy for well-known file
2022-05-13 13:00:40 +02:00
3499b9cd03 Update configuring-well-known.md 2022-05-13 03:45:08 -07:00
34de6c9c66 Update configuring-well-known.md 2022-05-13 03:44:16 -07:00
eb7bed5221 Merge pull request #1816 from OdyX/appservice-slack-1-11-update
Bump Slack Appservice to 1.11.0
2022-05-11 11:04:48 +02:00
eda75e6492 Bump Slack Appservice to 1.11.0 2022-05-11 10:47:00 +02:00
47f7fbcd36 Merge pull request #1814 from etkecc/master
matrix-bot-buscarron v1.1.0
2022-05-10 17:59:38 +02:00
d09934c79c matrix-bot-buscarron - set defaults 2022-05-10 18:44:20 +03:00
9997ca4dbd Merge branch 'spantaleev:master' into master 2022-05-10 15:39:34 +00:00
8c505e8a2c matrix-bot-buscarron v1.1.0 2022-05-10 18:38:57 +03:00
255001af0e Merge pull request #1813 from HarHarLinks/patch-13
Update configuring-playbook-bridge-hookshot.md
2022-05-10 17:06:08 +02:00
3dfda42f3d Update configuring-playbook-bridge-hookshot.md 2022-05-10 16:50:46 +02:00
764571c6fb Merge pull request #1812 from etkecc/patch-5
Update Element 1.10.11 -> 1.10.12
2022-05-10 16:42:36 +02:00
02d4a841c4 Update Element 1.10.11 -> 1.10.12 2022-05-10 14:31:41 +00:00
c27b4aa4ae Merge pull request #1811 from etkecc/patch-5
Update cinny v1.8.2 -> v2.0.0
2022-05-10 16:09:07 +02:00
62cb801878 Update cinny v1.8.2 -> v2.0.0 2022-05-10 13:57:12 +00:00
9fc60d8c86 Revert "Change back to original mx-puppet-slack"
This reverts commit fcfd00bcb4.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1808

Reverts https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1809

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1810
2022-05-10 16:20:44 +03:00
6184ed2d8c Merge pull request #1809 from dsonck92/change-to-upstream
Change back to original mx-puppet-slack
2022-05-10 07:25:35 +02:00
fcfd00bcb4 Change back to original mx-puppet-slack
Closes: #1808
2022-05-09 23:38:01 +02:00
5ad8547c14 Merge pull request #1806 from Arkonos/master
Clarify reverse-proxying of well-known files with Caddy2
2022-05-09 10:32:29 +02:00
527f5bc469 clarifying where well-known files are created 2022-05-08 21:56:14 +02:00
76bfe9a0ea Merge branch 'master' of https://github.com/Arkonos/matrix-docker-ansible-deploy 2022-05-08 21:38:35 +02:00
ef3b352eec Merge branch 'master' of https://github.com/Arkonos/matrix-docker-ansible-deploy 2022-05-08 21:37:56 +02:00
c01693395f Merge branch 'master' of https://github.com/Arkonos/matrix-docker-ansible-deploy 2022-05-08 21:34:10 +02:00
6abdb6e6f0 clarifying reverse proxying of well-known files 2022-05-08 21:33:46 +02:00
04aa609ae5 clarifying reverse proxying of well-known files 2022-05-08 21:20:36 +02:00
25302ed142 Merge pull request #1802 from dsonck92/change-to-upstream
Change back to original mx-puppet-discord
2022-05-08 07:35:11 +02:00
e62123ac13 Merge pull request #1804 from HarHarLinks/feeds
Add hookshot feeds config support
2022-05-08 07:10:40 +02:00
7390646cd5 add hookshot feeds support 2022-05-07 18:42:15 +02:00
0d0f771b02 Merge pull request #1803 from HarHarLinks/patch-12
Upgrade Hookshot (1.5.0 -> 1.6.1)
2022-05-07 15:54:24 +02:00
84ea5f6ecc Upgrade Hookshot (1.5.0 -> 1.6.1) 2022-05-07 14:34:33 +02:00
3f45805fd2 Change back to original mx-puppet-discord
Closes: #1801
2022-05-07 12:40:17 +02:00
83b7fcee45 Do not proxy some endpoints to the generic Synapse worker
These endpoints should not be proxied to a generic Synapse worker
without other preparation (setting up stream writers, sending traffic
to a specific stream writer, etc.).

Disabling them for now. In the future, we'd like to fix up our awk
script to disable them automatically.

This is a fix up for 058fedff91
2022-05-07 09:39:19 +02:00
21d8327c48 Merge pull request #1800 from ptman/patch-1
typo
2022-05-06 13:53:40 +03:00
be95918a2f typo 2022-05-06 11:37:40 +03:00
058fedff91 Fix "endpoint seems conditional" determination in workers-doc-to-yaml.awk"
This prevented us from keeping our workers reverse-proxying definitions
updated since Synapse v1.54.0.

The last `workers.md` file we could parse is at commit
02632b3504ad4512c5f5a4f859b3fe326b19c788.
Parsing regressed at commit c56bfb08bc071368db23f3b1c593724eb4f205f0,
because the introduction message for `synapse.app.generic_worker` said
"If":

> If a worker is set up to handle a..

.. which made the AWK script think that definitions below were
conditional (which they're not in this case).

This patch fixes up the regex for determining if a line is conditional
or not, so that it doesn't trip up. Hopefully, it doesn't miss something
important.
2022-05-06 09:08:45 +02:00
549e4418b9 Upgrade Synapse (1.58.0 -> 1.58.1) 2022-05-06 08:56:06 +02:00
1439be2743 Upgrade matrix-appservice-irc (0.33 -> 0.34)
Related to https://matrix.org/blog/2022/05/04/0-34-0-security-release-for-matrix-appservice-irc-high-severity
2022-05-04 11:10:00 +03:00
03674e1a36 Upgrade Synapse (1.57.1 -> 1.58.0) 2022-05-03 14:32:32 +03:00
7adc167412 Fail if trying to use Jitsi on an architecture other than amd64
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1797
2022-05-03 08:10:18 +03:00
a7c230233c Merge pull request #1795 from kraftbj/patch-1
Upgrade to Grafana 8.5.1
2022-05-02 21:19:41 +03:00
7776c2e0bb Upgrade to Grafana 8.5.1
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-5-1/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-5-0/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-4-7/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-4-6/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-4-5/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-4-4/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-4-3/
https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-4-2/
2022-05-02 12:37:56 -05:00
d2941b56b2 Merge pull request #1790 from etkecc/patch-5
matrix-change-user-admin-status: do not allocate tty
2022-04-26 21:13:30 +03:00
1ee118bd49 matrix-change-user-admin-status: do not allocate tty 2022-04-26 17:48:28 +00:00
f581867049 Merge pull request #1788 from etkecc/patch-5
Update element 1.10.10 -> 1.10.11
2022-04-26 19:57:01 +03:00
4f1f3555f2 Update element 1.10.10 -> 1.10.11 2022-04-26 16:10:36 +00:00
e41fcf2746 Fix file name (vars.yaml -> vars.yml) to prevent confusion 2022-04-26 15:44:07 +03:00
3f50c08828 Merge pull request #1787 from dooleydevin/cast-vault-keys
Support ansible vault strings for homeserver secret key
2022-04-26 10:44:34 +03:00
cbb924dec7 Support ansible vault strings for homeserver secret key 2022-04-25 19:17:40 -07:00
e3907b369a Merge pull request #1786 from etkecc/master
matrix-bot-buscarron: fix username in docs
2022-04-25 13:51:14 +03:00
4d08e935a2 matrix-bot-buscarron: fix username in docs 2022-04-25 12:36:27 +03:00
1163e9880f Link to Buscarron bot from configuring docs page
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1782
2022-04-25 10:37:35 +03:00
2f33b330ff Announce Buscarron bot support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1782
2022-04-25 10:29:09 +03:00
49da9c76ac Merge pull request #1782 from etkecc/matrix-bot-buscarron
add matrix-bot-buscarron
2022-04-25 09:44:35 +03:00
8014979ddb Merge pull request #1780 from Shaps/nginx-proxy-configure-httpasswd
Make synapse htpasswd file path configurable
2022-04-25 09:43:29 +03:00
4a0b839768 Automatically do the right thing with regards to Synapse Metrics htpasswd
.. regardless of whether matrix-nginx-proxy runs in a container or not
2022-04-25 09:42:36 +03:00
c92af9fe89 matrix-bot-buscarron: feedback 2022-04-25 09:40:49 +03:00
85e0906f8a Merge pull request #1784 from mattcen/signald-arm64-dont-self-build
Don't self-build signald image on arm64, as upstream image exists
2022-04-25 09:29:13 +03:00
d7d5ea3b91 Merge pull request #1783 from Sekki21956/signald-image-updates
Update path to signald Dockerfile
2022-04-25 09:22:05 +03:00
47e5bab784 Fix self-building if condition 2022-04-25 09:22:01 +03:00
c83c70ac35 Don't self-build signald image on arm64, as upstream image exists 2022-04-25 10:25:05 +10:00
2d21a70b3e Update path to signald Dockerfile 2022-04-25 02:05:13 +02:00
b720b15de6 buscarron v1.0.0 2022-04-24 09:50:23 +03:00
5ae93fbf2b add buscarron to the readme 2022-04-23 17:11:24 +03:00
290754371a add matrix-bot-buscarron 2022-04-23 16:19:24 +03:00
68424e68e5 feat: make synapse htpasswd file path configurable
When setting `matrix_nginx_proxy_enabled: false` and enabling authentication on the metrics endpoint, the htpasswd file is hardcoded to the nginx-proxy container dir, this changes the hardcoded value to a variable so the path can be updated
2022-04-23 11:13:36 +01:00
f5a6e12538 Merge pull request #1779 from mattcen/bump-signald-0.18.1
Bump signald to 0.18.1
2022-04-22 19:09:56 +03:00
fa108b8ae4 Bump signald to 0.18.1
According to https://signald.org/articles/install/docker/#migrating-from-versions-before-0180,
This release only chowns files if the container is running as root. See also this upstream commit:
3bb7e8d2c1
2022-04-22 22:16:37 +10:00
882bab0df8 Merge pull request #1778 from hifi/patch-7
Upgrade Heisenbridge (1.10.1 -> 1.12.0)
2022-04-22 14:07:08 +03:00
9e0d969ba4 Upgrade Heisenbridge (1.10.1 -> 1.12.0) 2022-04-22 13:56:34 +03:00
a68a500e42 Merge pull request #1777 from moan0s/public_server
Change list of public servers, old as not functional
2022-04-22 08:54:41 +03:00
380e865644 Change list of public servers, old as not functional
The old link returned a 404 so I thought I throw in joinmatrix.org :)
2022-04-22 07:41:10 +02:00
69f684255c Fix Signald git repository to unbreak self-building
The maunium fork of Signald is no longer up-to-date (does not publish
0.18.0.. at least not yet) and all the necessary changes are now upstream.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1775
2022-04-21 15:54:29 +03:00
0b5e4aa784 Use non-root image for Signald
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1775

Related to https://signald.org/articles/install/docker/#migrating-from-versions-before-0180

> Prior to 0.18.0 the signald container image used the root user, which is not recommended for security reasons. This was fixed in the 0.18.0 release which will start as root, fix permissions on the volume, then drop to the non-root user and start signald. Future images will start as the non-root user, so if you’re upgrading make sure to run 0.18.0 at least once.
> A special tag, 0.18.0-non-root, will be published. it starts as the non-root user and does not fix permissions on the volume.
2022-04-21 15:53:05 +03:00
79f89479e0 Merge pull request #1775 from GoliathLabs/mautrix-signal
Updated: mautrix-signal to v0.3.0 & signald to 0.18.0
2022-04-21 15:11:38 +03:00
8c2bfba7e2 Merge pull request #1776 from wibbene/master
HOTFIX: matrix-registration-bot, fixed systemd template that caused setup error
2022-04-21 15:09:47 +03:00
de3fc61129 Updated: mautrix-signal v0.3.0 & signald 0.18.0 2022-04-21 13:53:01 +02:00
92384360f5 Fixed documentation to reflect needed user 2022-04-21 06:50:24 -05:00
12198a147b Update matrix-bot-matrix-registration-bot.service.j2 2022-04-21 06:49:07 -05:00
27ec1d8bde Fix matrix-registration-bot repository URL 2022-04-21 11:21:29 +03:00
e435c55458 Announce matrix-registration-bot support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1771
2022-04-21 11:10:45 +03:00
90a142439a Add matrix-registration-bot (#1771)
* Add matrix-registration-bot

This adds an install and uninstall task plus helpers. The bot is disabled by default.
This commit does not include documentation, yet. In short, the bot can be enabled by adding
matrix_bot_matrix_registration_bot_enabled: true
matrix_bot_matrix_registration_bot_matrix_user_password: "verysecret"
matrix_bot_matrix_registration_bot_matrix_admin_token: "supersecret"
to the host_vars

* Change bot username to bot.matrix-registration-bot following convention

* Address smaller remarks, fix local docker build

* Switch to an env file

* Add environment variables extension for additional config

* Add documentation for the matrix-registration-bot

* Add screenshot on how to obtain admin access token

* Use bot as admin to only have one access token (bot and admin api)

* Use cleaner setting of matrix_synapse_registration_requires_token

* Use config file for cleaner more secure usage

* Delete unneeded env

* Rename vars to make usage clear

* Fix typos/wording and add notice about logging out

* Convert configuration to use |to_json

* Reorder role includes

Nothing should be after `matrix-common-after`.

`matrix-bot-matrix-registration-bot` can probably be anywhere, but it makes sense to put it next to the other `matrix-bot-*` roles.

* Minor group_vars/matrix_servers touchups

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2022-04-21 11:07:47 +03:00
acaebfbf67 optional media cache with range requests support (#1759) 2022-04-21 10:31:26 +03:00
832b0eb1b1 Merge pull request #1774 from OdyX/appservice-slack-rtm-needs-enabling
Slack appservice: Enable RTM by default
2022-04-21 10:05:21 +03:00
b2105f35ec Add comments around rtm
Comments taken from https://github.com/matrix-org/matrix-appservice-slack/blob/develop/config/config.sample.yaml

We should probably reconcile our configuration with that one and include comments for other fields as well.
2022-04-21 09:58:30 +03:00
018da4fb25 Slack appservice: Enable RTM by default
It is very confusing to debug why messages only go from Matrix to Slack
but not from Slack to Matrix. RTM should be enabled by default, as
that's the recommended way to make this work.
2022-04-20 19:06:19 +02:00
d04767a9d6 Upgrade Synapse (1.57.0 -> 1.57.1) 2022-04-20 18:46:10 +03:00
dd83d88cb0 Merge pull request #1770 from etkecc/master
add retires to all get_url actions
2022-04-20 08:38:13 +03:00
502ea21fba add retires to all get_url actions 2022-04-19 22:01:14 +03:00
ad42872466 Merge pull request #1768 from etkecc/master
matrix-backup-borg - cleanup the .service from the systemd list
2022-04-19 19:46:15 +03:00
80c9551ef9 matrix-backup-borg - cleanup the .service from the systemd list 2022-04-19 19:42:13 +03:00
295ef29fe0 Announce borg backup support
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1727
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1754
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1755
- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/467
2022-04-19 19:29:41 +03:00
f0842d7226 Document that upgrading to Synapse v1.57 may be dangerous in some instances
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1766
2022-04-19 17:29:58 +03:00
dc508fc5f5 Merge pull request #1766 from etkecc/update-synapse-1.57.0
update synapse 1.56.0 -> 1.57.0
2022-04-19 15:31:51 +03:00
949228eaf8 update synapse 1.56.0 -> 1.57.0 2022-04-19 14:41:31 +03:00
43b639aeef Merge pull request #1763 from etkecc/master
update honoroit 0.9.6 -> 0.9.7
2022-04-18 20:46:17 +03:00
15ce32a30c update honoroit 0.9.6 -> 0.9.7 2022-04-18 19:37:14 +03:00
949fdd0135 matrix-backup-borg: add ability to backup to unencrypted repositories (#1754)
* matrix-backup-borg: added option for unencrypted repo access

* matrix-backup-borg: fixed requiring password for unencrypted repos; changed variable name

* matrix-backup-borg: add unknown_unencrypted_repo_access_is_ok to config.yaml.j2

* matrix-backup-borg: cleanup comments

* matrix-backup-borg: add documentation regarding unencrypted repos

* matrix-backup-borg: add readability and ease of use to code

* matrix-backup-borg: fix wording in defaults/main.yml comment

* matrix-backup-borg: add quotes to docs

* Indicate the variable to use

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2022-04-18 14:48:37 +03:00
ca09b935c3 Merge pull request #1762 from ofalvai/patch-4
Upgrade Telegrame bridge to 0.11.3
2022-04-18 14:24:33 +03:00
4be425c267 Upgrade Telegrame bridge to 0.11.3 2022-04-18 13:10:39 +02:00
5c1ee66e8d Merge pull request #1760 from lunarthegrey/patch-1
Increase default async time for rust-synapse-compress-state
2022-04-18 09:56:56 +03:00
471806e7bd Increase default async time for rust-synapse-compress-state
Increase the async timeout value defaults, as larger Matrix servers need more time to complete.
2022-04-17 20:27:04 -05:00
c999e77e30 Merge pull request #1758 from RoiArthurB/patch-1
Update mautrix-whatsapp 0.3.0 -> 0.3.1
2022-04-17 10:13:18 +03:00
3fbbd5a52c Update mautrix-whatsapp 0.3.0 -> 0.3.1 2022-04-17 14:07:50 +07:00
83ffb9d910 Merge pull request #1755 from etkecc/backup-borg-postgres
matrix-backup-borg: integrate postgres backups, add extended borgmatic configuration
2022-04-16 09:30:03 +03:00
c520a758ec fix linter 2022-04-15 19:43:45 +03:00
a9d0cbc560 feedback 2022-04-15 19:38:10 +03:00
c60807c36b Merge pull request #1756 from joecool1029/master
Update element 1.10.9 -> 1.10.10
2022-04-15 07:43:32 +03:00
5611cab71a Update element 1.10.9 -> 1.10.10 2022-04-14 13:38:38 -04:00
d5f4c17146 matrix-backup-borg: integrate postgres backups, add extended borgmatic configuration 2022-04-14 18:06:54 +03:00
37e9aebc86 Merge pull request #1753 from HarHarLinks/patch-11
Upgrade Hookshot (1.4.0 -> 1.5.0)
2022-04-14 16:12:47 +03:00
7e062328ff Upgrade Hookshot (1.4.0 -> 1.5.0) 2022-04-14 15:01:40 +02:00
2df993977a Ensure git cloning when self-building is done with the matrix user, not root
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1749
2022-04-14 08:52:37 +03:00
aef2c4c32e Merge pull request #1748 from ofalvai/patch-3
Improve borg backup instructions
2022-04-13 10:23:18 +03:00
121f860d63 Update configuring-playbook-backup-borg.md 2022-04-13 08:58:19 +02:00
23d0832e85 Improve borg backup instructions 2022-04-12 20:14:12 +02:00
ce675b0e79 Merge pull request #1747 from etkecc/patch-4
Update honoroit 0.9.5 -> 0.9.6
2022-04-12 20:08:15 +03:00
b9bf20c761 Update honoroit 0.9.5 -> 0.9.6
This update brings stable threads support
2022-04-12 15:52:49 +00:00
e776871b98 Merge pull request #1746 from ChrisKar96/patch-1
Update jitsi to version 7001
2022-04-12 17:09:30 +03:00
9c606d1fcb Update jitsi to version 7001
Tested, works without any configuration changes.
2022-04-12 17:00:07 +03:00
202f195bbc Merge pull request #1745 from etkecc/patch-3
Update coturn 4.5.2-r8 -> 4.5.2-r11
2022-04-12 14:18:13 +03:00
ac1bd49494 Update coturn 4.5.2-r8 -> 4.5.2-r11 2022-04-12 11:16:36 +00:00
b358b4f5c2 Merge pull request #1744 from etkecc/patch-2
Update element 1.10.8 -> 1.10.9
2022-04-12 14:15:49 +03:00
10c6c24c16 Update element 1.10.8 -> 1.10.9 2022-04-12 11:15:11 +00:00
e51cc2a7a3 Merge pull request #1743 from yncyrydybyl/master
This adds a variable for requiring MSC3231 token for registration
2022-04-12 11:38:00 +03:00
f6cb59116b This adds a variable for requiring MSC3231 token for registration 2022-04-12 14:31:49 +07:00
af96f4d964 Merge pull request #1742 from HarHarLinks/hookshot-1.4.0
Upgrade Hookshot (1.3.0 -> 1.4.0)
2022-04-11 21:03:28 +03:00
a9e6538ef8 Upgrade Hookshot (1.3.0 -> 1.4.0)
https://github.com/matrix-org/matrix-hookshot/releases/tag/1.4.0
2022-04-11 18:55:02 +02:00
ceb2f54970 Make hookshot hardcoded public URLs dynamic 2022-04-11 16:45:33 +02:00
f4ba995d9b Fix validation and prevent empty "external-ip=" lines in Coturn config
We no longer validate that there's an IP address defined.
Seems like Coturn can start without one as well, so there's no need to
require it.

If people populate `matrix_coturn_turn_external_ip_addresses` directly
to specify multiple addresses, they can leave
`matrix_coturn_turn_external_ip_address` empty.

We use the "select not equal to empty string" thing in the for loop
to avoid `matrix_coturn_turn_external_ip_address` leading to
`matrix_coturn_turn_external_ip_addresses: ['']` leading to
`external-ip=` in the Coturn configuration.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1741
2022-04-11 15:38:35 +03:00
03d2dcc996 Move into coturn defaults 2022-04-11 11:20:09 +00:00
268b079374 Revert Coturn Address Change, add new Addresses var (#2) 2022-04-11 11:50:41 +01:00
da31eecdb7 Merge branch 'spantaleev:master' into master 2022-04-11 11:42:49 +01:00
0364c6c634 Suppress old container cleanup (kill/rm) failures
People often report and ask about these "failures".
More-so previously, when the `docker kill/rm` output was collected,
but it still happens now when people do `systemctl status
matrix-something` and notice that it says "FAILURE".

Suppressing to avoid further time being wasted on saying "this is
expected".
2022-04-11 09:05:33 +03:00
29847627f1 Multi-IP coturn
Add support for multiple external turn IP addresses, this allows for better comptability with dualstack ipv4/ipv6 hosts, and is supported as per the documentation (point 6 here: https://matrix-org.github.io/synapse/latest/turn-howto.html#configuration)
2022-04-10 21:51:03 +01:00
5e00f0135e Merge pull request #1738 from SaltireSoul/master
Dendrite 0.8.1
2022-04-10 07:42:25 +03:00
515792790a uncomment push_server config 2022-04-09 21:41:35 +01:00
e918428bfd Merge pull request #1739 from yncyrydybyl/master
fix typo in document path for the proxy
2022-04-09 20:36:26 +03:00
b982733a8a fix typo in document path for the proxy 2022-04-09 19:41:48 +07:00
285a50e930 Merge pull request #1737 from GoMatrixHosting/remove-awx-section
Remove matrix-awx sections
2022-04-09 07:51:42 +03:00
6925e26960 Dendrite 0.8.1 2022-04-09 02:55:48 +01:00
ab3e02c7fd Remove matrix-awx sections 2022-04-09 08:48:02 +08:00
1ffad8ba64 Merge pull request #1736 from slikie/instagram-bump
bump mautrix instagram version to 0.1.3
2022-04-07 15:10:22 +03:00
17f8fd003d bump mautrix instagram version to 0.1.3 2022-04-07 20:01:26 +08:00
8106e7c673 Merge pull request #1734 from MrAnno/mautrix-facebook-v0.4.0
mautrix-facebook: update to v0.4.0
2022-04-07 08:00:52 +03:00
a86757a18d mautrix-facebook: update to v0.4.0 2022-04-07 01:28:30 +02:00
b69e79b8b6 Merge pull request #1733 from iikkart/patch-1
Improved documentation about Mautrix-telegram-bot permissions
2022-04-06 07:23:31 +03:00
5a2d365717 Merge pull request #1732 from etkecc/master
Update Synapse 1.55.2 -> 1.56.0
2022-04-05 20:55:47 +03:00
7559eb99a7 Update Synapse 1.55.2 -> 1.56.0 2022-04-05 20:48:15 +03:00
db4b6efb5d Force self-building of matrix-hookshot on arm64
The `halfshot/matrix-hookshot` container images published to Docker Hub
(as of 2022-04-05, at least) are only available for `amd64`, not for
`arm64`. Self-building on arm64 is necessary.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1728

It should be noted that a `roiarthurb/matrix-hookshot` container image is available,
which is available for the arm64 platform, but that's non-official and doesn't
contain an amd64 build, so it's of limited use.
2022-04-05 16:08:11 +03:00
4f4f30c7db Merge pull request #1731 from mochman/hookshot_image_fix
Fix matrix-bridge-hookshot container image
2022-04-05 16:07:23 +03:00
627333d82b fix container image 2022-04-05 12:42:38 +00:00
a5a3769ca9 add borg backup (#1727)
* add borg backup

* lint fix

* add exlclude patterns

* missed in the #1726 fix for honoroit

* feedback

* Fix indentation

* feedback

* feedback

* feedback

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2022-04-05 14:37:27 +03:00
b9d6f8b90f Merge pull request #1728 from RoiArthurB/hookshot-arm64
Add hookshot self build for arm64 and amd64
2022-04-05 09:58:26 +03:00
55e66bc888 Merge pull request #1730 from SaltireSoul/master
Dendrite 0.7.0
2022-04-05 09:55:10 +03:00
e7978dbdca Dendrite 0.7.0 2022-04-05 03:40:37 +01:00
60fe039ec8 Merge pull request #1729 from RoiArthurB/steam-arm64
[STEAM] Move Docker source repository to a fixed version
2022-04-04 10:02:16 +03:00
1ce891fc70 Revert group_var wrong part reindent 2022-04-03 23:42:29 +07:00
b38c7371a9 [STEAM] Move docker source from icewind1991 to tilosp fixed repo 2022-04-03 17:34:27 +07:00
cfd8a9c0f8 [HOOKSHOT] Fix yamllint 2022-04-03 17:19:35 +07:00
b3176957c3 Add hookshot self build for arm64 and amd64 2022-04-03 17:10:46 +07:00
a04df8151f Merge pull request #1726 from etkecc/permissions-fix
Permissions fix
2022-04-03 09:58:06 +03:00
5f0ece0c28 fix permissions 2022-04-03 00:49:57 +03:00
c1f34932c3 Merge branch 'spantaleev:master' into master 2022-04-02 17:24:02 +00:00
999c717cf4 Revert "Temporarily switch to Myned-maintained fork of mx-puppet-discord/mx-puppet-slack"
This reverts commit 0103d92df4.

The same fix has now been merged upstream
(https://gitlab.com/beeper/mx-puppet-monorepo/-/merge_requests/35), so
we don't need to use a fork anymore.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1719
2022-03-31 08:37:24 +03:00
0fc7363946 Merge pull request #1721 from HarHarLinks/patch-9
Upgrade Hookshot (1.2.0 -> 1.3.0)
2022-03-30 20:48:53 +03:00
ea358e208c Upgrade Hookshot (1.2.0 -> 1.3.0) 2022-03-30 14:18:21 +02:00
0103d92df4 Temporarily switch to Myned-maintained fork of mx-puppet-discord/mx-puppet-slack
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1719

We're using a pinned commit of this fork, which patches up the npm/yarn
lock files, so that self-building of the Discord and Slack bridges can
work after GitHub's deprecation of the `git://` and `ssh://` protocols
(https://github.blog/2021-09-01-improving-git-protocol-security-github/).

When the issue gets fixed in the Beeper fork (via
https://gitlab.com/beeper/mx-puppet-monorepo/-/merge_requests/35 or
otherwise), we'll get back on it.
2022-03-30 09:02:17 +03:00
511ad3e45b Merge pull request #1717 from ofalvai/patch-1
Fix Facebook presence config key
2022-03-30 08:25:36 +03:00
c5fcc7dbde Merge pull request #1718 from ofalvai/patch-2
Add note about Prometheus retention policy
2022-03-30 08:22:24 +03:00
326b1090b7 Add note about Prometheus retention policy 2022-03-29 22:26:29 +02:00
9b03234323 Fix Facebook presence config key 2022-03-29 22:14:44 +02:00
bcd0bd714d Merge pull request #1716 from joecool1029/master
Update Element 1.10.7 -> 1.10.8
2022-03-28 21:51:38 +03:00
f29f51a54c Update Element 1.10.7 -> 1.10.8 2022-03-28 13:52:44 -04:00
e59a348219 Merge pull request #1715 from GoliathLabs/mautrix-googlechat
Updated: matrix-googlechat to v0.3.1
2022-03-26 13:34:50 +02:00
fc1e15baff Updated: to v0.3.1 2022-03-26 12:09:42 +01:00
dac4df7384 Add arm64 support for rust-synapse-compress-state by switching container image
This switches the playbook from devture/rust-synapse-compress-state (a
container image which wraps the upstream-prebuilt amd64 binary of
rust-synapse-compress-state) to registry.gitlab.com/mb-saces/rust-synapse-compress-state
(https://gitlab.com/mb-saces/rust-synapse-compress-state), which builds
rust-synapse-compress-state from source and provides a multi-arch image
that currently works on amd64 and arm64.

Ideally, we'll stop using `:latest` and arm32 support will be made
available upstream as well at some point.
Discussed here: https://gitlab.com/mb-saces/rust-synapse-compress-state/-/issues/1
2022-03-26 10:31:05 +02:00
85627b59ad Make synapse-compress-state in-container binary path configurable
This makes it easier to use another container image for
rust-synapse-compress-state, which may be storing the binary at another
path.
2022-03-26 10:04:21 +02:00
7863486c4b Merge pull request #1714 from joecool1029/master
Synapse 1.55.0 -> Synapse 1.55.2
2022-03-24 22:19:18 +02:00
38f2dc4553 Synapse 1.55.0 -> Synapse 1.55.2
This is a minor hotfix, needs to be bumped though or new deploys will break (existing deploys not affected by bug).
2022-03-24 15:54:36 -04:00
b383c9e637 Merge pull request #1713 from pulmonarycosignerkindness/master
Update mjolnir antispam commit hash
2022-03-23 21:24:20 +02:00
97865484bd Update mjolnir antispam commit hash
Changed the commit hash in matrix_synapse_ext_spam_checker_mjolnir_antispam_git_version to latest. Fixes a Synapse ImportError with mjolnir v1.4.1 leading to a Synapse crash-loop.
2022-03-23 19:17:54 +00:00
fc37ed89eb Merge pull request #1712 from FSG-Cat/patch-1
Update Mjolnir from 1.3.2 to 1.4.1
2022-03-23 15:48:08 +02:00
07e68d48de Update Mjolnir from 1.3.2 to 1.4.1 2022-03-22 20:37:40 +01:00
d04162b275 Upgrade Synapse (1.54.0 -> 1.55.0)
`roles/matrix-synapse/vars/workers.yml` has not been updated here,
because running `roles/matrix-synapse/files/workers-doc-to-yaml.awk`
seems to cause some trouble with the current `workers.md` file
available at https://github.com/matrix-org/synapse/raw/master/docs/workers.md,
namely lots of:

> FIXME: ADDITIONAL CONDITIONS REQUIRED: to be enabled manually

lines and commented out regex lines.

This is something that remains to be investigated/fixed.
2022-03-22 19:41:30 +02:00
b27456cb24 Merge pull request #1710 from Peetz0r/patch-1
Update mautrix-whatsapp 0.2.4 -> 0.3.0
2022-03-22 18:01:28 +02:00
261d236e96 Merge pull request #1709 from HarHarLinks/master
add detailed docs about hookshot's URLs
2022-03-22 17:57:56 +02:00
41f948c48b Update mautrix-whatsapp 0.2.4 -> 0.3.0 2022-03-22 13:34:05 +01:00
81d198b5b6 !fixup add detailed docs about hookshot's URLs 2022-03-22 12:59:12 +01:00
b242559df5 add detailed docs about hookshot's URLs 2022-03-22 12:56:04 +01:00
5ce3fb96d5 Merge pull request #1706 from turt2live/patch-1
Don't recommend that the Dimension admin interface be opened in a web browser
2022-03-18 23:05:27 +02:00
5c34353d87 Update configuring-playbook-dimension.md 2022-03-18 14:52:25 -06:00
0d6c0f5df2 Merge pull request #1705 from HarHarLinks/master
Fix index in external_prometheus.yml.example.j2
2022-03-18 08:46:15 +02:00
c305ddd50f Merge pull request #1703 from thomwiggers/patch-7
Update IRC appservice bridge
2022-03-17 23:03:54 +02:00
d5a79538a6 Improved documentation about permissions
More info: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1699
2022-03-17 20:20:43 +00:00
95cfbf0256 Switch mx-puppet-slack to the beeper fork (#1704) 2022-03-17 22:16:17 +02:00
5ed23e81ef Fix index in external_prometheus.yml.example.j2
For an unknown reason prometheus ignored the given "numeric" index and replaced it by 1. This made it not work properly, plus multiple workers of same types were not differentiable. With a "string" index, it works as intended.
2022-03-17 18:37:37 +01:00
c741a74853 Switch mx-puppet-slack to the beeper fork 2022-03-17 18:41:12 +02:00
7db21adb84 Merge branch 'spantaleev:master' into master 2022-03-17 16:24:50 +00:00
dc82c1a0e6 Update IRC appservice bridge 2022-03-17 17:21:18 +01:00
958d089b68 Do not install the ma1sd identity server by default
As mentioned in the changelog, this is a breaking change.
2022-03-17 18:00:09 +02:00
123fe29c68 Merge pull request #1702 from etkecc/patch-1
Update Cinny 1.8.1 -> 1.8.2
2022-03-17 18:00:02 +02:00
abff35ea97 Update Cinny 1.8.1 -> 1.8.2 2022-03-17 15:39:47 +00:00
2da3768b20 Added retries to the docker pulls (#1701) 2022-03-17 17:37:11 +02:00
1c1b705b22 fix typo 2022-03-17 17:32:20 +02:00
701591e87e Added retries to the docker pulls 2022-03-17 17:30:48 +02:00
2af4a92fa9 Merge pull request #1698 from jimeh/fix-to_nice_yaml
fix: avoid yaml being wrapped at column 80 via to_nice_yaml
2022-03-16 09:46:32 +02:00
3840e6ea6e Merge pull request #1697 from Sweeny42/master
Add check for ma1sd repo changes on image self build
2022-03-16 09:43:44 +02:00
eeca3c8dca fix: avoid yaml being wrapped at column 80 via to_nice_yaml
The `to_nice_yaml` helper will by default wrap any string YAML values on
the first space after column 80. This can in worst case yield invalid
YAML syntax. More details in Ansible's documentation here:

https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#formatting-data-yaml-and-json

In short, you need to explicitly provide a custom width argument of a
high number of some kind to avoid the line wrapping.
2022-03-16 01:10:26 +00:00
36d4d1f66e Add check for ma1sd repo changes on image self build
Adding when clause to ma1sd image build task to avoid image being built if not needed.
2022-03-15 23:50:06 +00:00
5cdb3b442c Merge pull request #1696 from etkecc/patch-2
Update Cinny 1.8.0 -> 1.8.1
2022-03-15 22:28:57 +02:00
78c2bda4d8 Merge pull request #1695 from etkecc/patch-1
Update Element 1.10.6 -> 1.10.7
2022-03-15 22:28:24 +02:00
981dafa225 Update Cinny 1.8.0 -> 1.8.1 2022-03-15 18:21:09 +00:00
332fda6b02 Update Element 1.10.6 -> 1.10.7 2022-03-15 18:20:13 +00:00
1df3e2a967 Merge pull request #1694 from HarHarLinks/master
add default for matrix_prometheus_scraper_hookshot_enabled
2022-03-15 17:01:08 +02:00
5eb514b08b Use |default instead of merely casting to bool 2022-03-15 17:01:00 +02:00
81f4a4b11e Merge pull request #1685 from MrAnno/facebook-web-login
bridge-mautrix-facebook: add support for web-based login
2022-03-15 08:53:26 +02:00
3ed079c4d3 Merge pull request #1693 from MrAnno/minor-fixes-and-followups
mautrix-facebook, synapse: minor improvements
2022-03-15 08:45:31 +02:00
9c58f2a98a default matrix_prometheus_scraper_hookshot_enabled 2022-03-14 14:07:06 +01:00
ebfa511515 synapse: do not expose plain federation port when it's disabled
matrix_synapse_federation_port_enabled can be disabled by users, for
example, when one wants to use the same port for client and federation
requests (docs/configuring-playbook-federation.md).
2022-03-14 03:45:46 +01:00
f0588c7fd0 bridge-mautrix-facebook: disable temporary disconnect notices
https://github.com/mautrix/facebook/issues/215
2022-03-14 03:32:25 +01:00
7d0c1d4185 Merge pull request #1692 from yncyrydybyl/master
beeing a bit more specific how to access the dimension admin interface
2022-03-13 09:44:38 +02:00
26e95a0fdf beeing a bit more specific how to access the dimension server admin interface 2022-03-13 14:12:48 +07:00
4359e5774c bridge-mautrix-telegram: add option to enable/disable web-based login 2022-03-12 19:14:08 +01:00
9de677942d bridge-mautrix-facebook: add support for web-based login 2022-03-12 16:30:29 +01:00
9cc3c5be76 Fix warning about reverse-proxying when built-in proxy is disabled
`matrix_nginx_proxy_enabled` is usually set to false by users, this is when
the warning should be displayed.
2022-03-12 16:29:20 +01:00
65f92f043a Fix mx-puppet-discord container image repository URL
Fixup for d8a19e5bf9
2022-03-10 20:14:59 +02:00
d8a19e5bf9 Switch to the Beeper-maintained fork of mx-puppet-discord
Building mx-puppet-discord appears to have been broken for a while.

Related to:
- https://github.com/matrix-discord/mx-puppet-discord/issues/201
- https://github.com/matrix-discord/mx-puppet-discord/issues/202
- https://github.com/matrix-discord/mx-puppet-discord/issues/203

We'd rather use a fork that is maintained better and by someone who
cares about whether their software works or not, so we'll be using the
Beeper-maintained for from now on.

In the future, we should probably do the same for the Slack bridge
which is also part of the same monorepo
(https://gitlab.com/beeper/mx-puppet-monorepo).
2022-03-10 12:27:53 +02:00
69d2da4d44 Fix whitespace inconsistency 2022-03-10 11:41:41 +02:00
1895b01810 Move matrix_container_global_registry_prefix to matrix-base
Various roles depend on this. It makes sense to make it part
of the `matrix-base` role.
2022-03-10 11:28:25 +02:00
a05bcc98b0 Upgrade Synapse (1.53.0 -> 1.54.0) 2022-03-08 16:58:51 +02:00
9d2873fd41 Merge pull request #1684 from MrAnno/update-cinny-1.8.0
client-cinny: update to v1.8.0
2022-03-08 14:23:02 +02:00
fabbc91cfa client-cinny: update to v1.8.0 2022-03-08 13:04:55 +01:00
1ad5700640 Merge pull request #1683 from tctovsli/patch-3
Riot is now named Element
2022-03-08 10:22:24 +02:00
9c43c0e806 Riot is now named Element 2022-03-08 09:11:04 +01:00
d5de1e8352 Document that using an external Postgres server has serious downsides
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682
- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1679
2022-03-08 09:30:20 +02:00
5a4dd2b3e8 Merge pull request #1676 from MrAnno/federate-switch-for-portal-rooms
"Federate rooms" switch for mautrix bridges
2022-03-08 08:16:25 +02:00
8c25ade9fb Rework matrix_mautrix_twitter_database_* variables a bit
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682

Previously, when matrix-postgres was disabled, we were setting
`matrix_mautrix_twitter_database_engine` to an invalid empty value.

Now, we always hardcode `matrix_mautrix_twitter_database_engine: postgres`,
but set/unset the database hostname and password values instead.
2022-03-08 08:10:40 +02:00
338b4cebd2 bridge-mautrix-whatsapp: add option for creating non-federated rooms 2022-03-07 15:01:06 +01:00
3c6c8db5d5 bridge-mautrix-twitter: add option for creating non-federated rooms 2022-03-07 15:01:06 +01:00
5789b3bbab bridge-mautrix-telegram: add option for creating non-federated rooms 2022-03-07 15:01:06 +01:00
d1d68417ff bridge-mautrix-signal: add option for creating non-federated rooms 2022-03-07 15:00:59 +01:00
5c083b6385 bridge-mautrix-instagram: add option for creating non-federated rooms 2022-03-07 15:00:44 +01:00
d6df1e7135 bridge-mautrix-googlechat: add option for creating non-federated rooms 2022-03-07 14:59:46 +01:00
2c861c90bc bridge-mautrix-facebook: add option for creating non-federated rooms 2022-03-07 14:59:46 +01:00
1bea072484 Merge pull request #1677 from MrAnno/remove-community-support
Remove deprecated community options
2022-03-06 08:15:27 +02:00
20b7e99fe1 Merge pull request #1678 from jimeh/appservice-discord-disable-portal-bridging-option
feat(appservice-discord): add disablePortalBridging bridge option
2022-03-06 08:14:05 +02:00
620e3b1b0d docs(appservice-discord): improve and expand bridging method docs 2022-03-06 01:56:24 +00:00
a5e95c42b2 feat(appservice-discord): add disablePortalBridging bridge option
This allows disabling the automatic portal bridging, meaning bridges
must be manually setup via self-servicing, by setting:

    matrix_appservice_discord_bridge_enableSelfServiceBridging: true
2022-03-06 01:46:09 +00:00
ba68d2ad36 Remove deprecated community options
"Community" support

- has been removed from mautrix/facebook in v0.3.3:
  31cac6fb5e

- has been removed from mautrix/signal in v0.2.2:
  1f27a608a6

- will be removed in the next mautrix/instagram release:
  e2ae1ca503

- will be removed in the next mautrix/twitter release:
  3893075265
2022-03-05 21:57:30 +01:00
ffdd949521 Merge pull request #1674 from luismanson/patch-2
fix hookshot provisioning url in nginx
2022-03-05 16:24:26 +02:00
833ac506fe pass GET parameters too
This fixes parameters not being passed to the provisioning api
2022-03-04 15:08:16 -03:00
584e50d117 fix hookshot provisioning url in nginx
Hello, this PR should fix Hookshot container not receiving API calls with the right path because nginx proxy was stripping the /v1 from it.
2022-03-04 14:40:05 -03:00
780bc36c78 Merge pull request #1673 from HarHarLinks/master
Upgrade Hookshot (1.1.0 -> 1.2.0)
2022-03-04 18:12:55 +02:00
f62279581d Upgrade Hookshot (1.1.0 -> 1.2.0)
all features were actually already silently supported 🎉

upstream changelog: https://github.com/matrix-org/matrix-hookshot/releases/tag/1.2.0
2022-03-04 16:54:17 +01:00
fb700743f9 Merge pull request #1635 from HarHarLinks/hookshot-urlprefix
Update hookshot to respect protocol and custom ports
2022-03-04 07:44:01 +02:00
950f4d5700 Merge pull request #1672 from Procuria/fix-issue-208
Fix empty body for GET requests in hookshot-bridge
2022-03-04 07:39:28 +02:00
211f05abbe add $is_args$args
to proxy url params in GET requests
2022-03-03 22:21:21 +01:00
648001875e Fix for old jinja versions
Co-authored-by: Procuria <37988494+Procuria@users.noreply.github.com>
2022-03-03 20:49:57 +01:00
4ec24ec344 Add support for obtain ECDSA keys (#1667)
* Add support for obtain ECDSA keys

* Replace matrix_ssl_lets_encrypt_use_ecdsa_keys for matrix_ssl_lets_encrypt_key_type
2022-03-03 18:15:39 +02:00
35df276487 Merge pull request #1624 from HarHarLinks/hookshot
update hookshot registration.yml
2022-03-03 09:37:45 +02:00
affe21fc9e Merge pull request #1666 from spantaleev/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2.4.0 to 3
2022-03-03 09:36:30 +02:00
9d72f32e64 Merge pull request #1668 from HarHarLinks/hookshot-move
hookshot moved to matrix-org namespace
2022-03-03 09:13:11 +02:00
e3d4c13e04 Merge pull request #1669 from HarHarLinks/hookshot-collision
avoid namespace collisions between webhook bridges
2022-03-03 09:12:32 +02:00
bb4a8b3f3f Merge pull request #1670 from aaronraimist/mjolnir-1.3.2
Upgrade Mjolnir (1.3.1 -> 1.3.2)
2022-03-03 09:10:59 +02:00
09d45b854b Upgrade Mjolnir (1.3.1 -> 1.3.2) 2022-03-02 20:39:23 +00:00
3d47b44d64 avoid namespace collisions between webhook bridges 2022-03-02 21:28:52 +01:00
58771a9c65 hookshot moved to matrix-org namespace 2022-03-02 20:58:11 +01:00
c934480832 Bump actions/checkout from 2.4.0 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 17:20:17 +00:00
58ed71fee4 Merge pull request #1665 from joecool1029/master
Upgrade Element (1.10.5 -> 1.10.6)
2022-03-02 09:03:10 +02:00
42a8fb3a3c Upgrade Element (1.10.5 -> 1.10.6) 2022-03-01 17:30:15 -05:00
c4edad840e Merge pull request #1664 from joecool1029/patch-1
Upgrade Element (1.10.4 -> 1.10.5)
2022-03-01 09:57:24 +02:00
7384772957 Upgrade Element (1.10.4 -> 1.10.5) 2022-03-01 02:50:17 -05:00
fbddd0ee0c Merge pull request #1663 from GoMatrixHosting/master
GoMatrixHosting v0.7.0
2022-02-27 11:43:58 +02:00
28f6091ed4 GoMatrixHosting v0.7.0 2022-02-27 17:40:20 +08:00
a6bd70634e Merge pull request #1660 from HarHarLinks/patch-8
Optimize signal bridge startup order
2022-02-27 10:55:14 +02:00
238838c31b Add an "I need help" custom issue template
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1657
2022-02-27 10:33:42 +02:00
85a47d645d Add Feature request issue template 2022-02-27 10:25:55 +02:00
4f1423365e Update issue templates
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1657
2022-02-27 10:17:15 +02:00
3719abe0e6 Optimize signal bridge startup order
bridge requires the daemon, so start it first
2022-02-26 14:56:51 +01:00
2e0f4c83fa Merge pull request #1655 from etkecc/master
updated honoroit 0.9.4 -> 0.9.5
2022-02-25 10:40:50 +02:00
ffa57055f4 updated honoroit 0.9.4 -> 0.9.5 2022-02-24 20:50:06 +02:00
87c9ea0dc6 Merge pull request #1651 from GoliathLabs/jitsi
Updated: jitsi to stable-6865
2022-02-23 14:44:37 +02:00
d714ee624b Merge pull request #1653 from PC-Admin/gomatrixhosting-testing
GoMatrixHosting v0.6.9
2022-02-23 14:30:13 +02:00
c640799864 GoMatrixHosting v0.6.9 - stop re-writing of matrix_homeserver_generic_secret_key 2022-02-23 20:06:46 +08:00
dae5240b0c Merge pull request #1327 from altsalt/default_room_version_9
Update Synapse default room version (6 -> 9)
2022-02-23 08:08:08 +02:00
46f74c3ac0 Merge branch 'spantaleev:master' into default_room_version_9 2022-02-22 11:05:13 -08:00
ef7acce94b Upgrade Synapse (1.52.0 -> 1.53.0) 2022-02-22 15:34:10 +02:00
eca7c277b4 Merge pull request #1650 from GoliathLabs/synapse-admin
Updated: synapse-admin to 0.8.5
2022-02-22 14:57:32 +02:00
0e6781fba1 Merge pull request #1649 from GoliathLabs/prometheus
Updated: prometheus to v2.33.3
2022-02-22 14:57:16 +02:00
389f96b45b Merge pull request #1648 from GoliathLabs/certbot
Updated: certbot to v1.23.0
2022-02-22 14:56:56 +02:00
28df88643a Merge pull request #1647 from GoliathLabs/grafana
Updated: grafana to 8.4.1
2022-02-22 14:56:34 +02:00
22b82001d6 Merge pull request #1646 from GoliathLabs/ddclient
Updated: ddclient to v3.9.1-ls79
2022-02-22 14:56:00 +02:00
8ca98582ef Merge pull request #1645 from GoliathLabs/mautrix-telegram
Updated: mautrix-telegram to v0.11.2
2022-02-22 14:55:39 +02:00
f22b6e6e95 Merge pull request #1644 from GoliathLabs/mautrix-signal
Updated: mautrix-signal to v0.2.3
2022-02-22 14:55:18 +02:00
b8f6f6a51a Updated: jitsi to stable-6865 2022-02-22 13:08:28 +01:00
7f4d7444a3 Updated: synapse-admin to 0.8.5 2022-02-22 12:54:31 +01:00
728123b9ab Updated: prometheus to v2.33.3 2022-02-22 12:52:00 +01:00
e53cc026d0 Updated: certbot to v1.23.0 2022-02-22 12:50:21 +01:00
0f251a2104 Updated: grafana to 8.4.1 2022-02-22 12:47:32 +01:00
5b96dd609b Updated: ddclient to v3.9.1-ls79 2022-02-22 12:45:42 +01:00
a4ba2ba601 Updated: mautrix-telegram v0.11.2 2022-02-22 12:37:11 +01:00
906f192cf3 Updated: mautrix-signal to v0.2.3 2022-02-22 12:33:55 +01:00
b711189e47 Merge pull request #1642 from JokerGermany/patch-2
fix typo
2022-02-20 13:26:48 +02:00
31d3706166 fix typo 2022-02-20 11:56:03 +01:00
6089c8b47b Merge pull request #1640 from AnonyPla/patch-1
Update for changing the federation port into the documentation
2022-02-20 10:55:28 +02:00
cb5a8e8736 Update for changing the federation port
This is a proposed add to the documentation to inform users how to change the federation port using the ansible playbook for eventual use with third party services such as CDNs.
2022-02-19 10:49:31 +00:00
b9bc2c4eb7 Merge pull request #1639 from ChrisKar96/patch-1
Upgrade Element (1.10.3 -> 1.10.4)
2022-02-18 20:41:25 +02:00
a6e766a06a Upgrade Element (1.10.3 -> 1.10.4) 2022-02-18 19:56:22 +02:00
d556952bb6 update hookshot to respect protocol and custom ports 2022-02-16 20:10:01 +01:00
2f722e8625 Merge pull request #1634 from pucilpet/master
Changed to: mautrix-whatsapp v0.2.4 tag
2022-02-16 21:07:30 +02:00
fe389bd11a Changed to: mautrix-whatsapp v0.2.4 tag 2022-02-16 19:48:41 +02:00
0d4d476cd8 Merge pull request #1631 from aaronraimist/postgres
Postgres Minor Updates (14.2, 13.6, 12.10, 11.15, 10.20)
2022-02-16 11:36:13 +02:00
f0e30c76f3 Postgres Minor Updates (14.2, 13.6, 12.10, 11.15, 10.20) 2022-02-16 09:22:25 +00:00
c7885e85aa Merge pull request #1630 from iambeingtracked/patch-1
Update faq.md
2022-02-16 10:33:43 +02:00
6b4afd1051 Update faq.md
It had an extra dot, which resulted in a question mark and a dot after each other
2022-02-16 10:25:36 +02:00
1ed46f0a86 Remove Jinja2 templating delimiters from when statement
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1629

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1505
2022-02-16 09:36:33 +02:00
8b3fad45f9 Upgrade Element (1.10.1 -> 1.10.3)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1627
2022-02-15 14:04:08 +02:00
241e21c702 Fix typo 2022-02-15 07:04:45 +02:00
f0ab2ec506 Add support for configuring allow_embedding for Grafana
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1626
2022-02-15 07:03:25 +02:00
cfba9b2cf5 Update matrix_encryption_disabler (patch_power_levels feature)
Related to:

- https://github.com/digitalentity/matrix_encryption_disabler/pull/4
- https://github.com/digitalentity/matrix_encryption_disabler/issues/5
- https://github.com/digitalentity/matrix_encryption_disabler/pull/6
2022-02-14 10:39:14 +02:00
735eec92cc update hookshot registration.yml
based on comments in chat:
https://matrix.to/#/!TlZdPIYrhwNvXlBiEk:half-shot.uk/$RbG6itEHVV8J_u5ry1HiFdC76n19M3vmopfQOyRmkKU?via=half-shot.uk&via=matrix.org&via=envs.net
2022-02-13 17:31:52 +01:00
5eeb0156b1 Bump matrix_encryption_disabler "version" 2022-02-12 09:55:59 +02:00
fb4c6961e9 Announce matrix_encryption_disabler support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1621
2022-02-12 09:38:53 +02:00
f44ca0c7c2 Add support for matrix_encryption_disabler
Related to https://github.com/matrix-org/synapse/issues/4401

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1621
2022-02-12 09:25:24 +02:00
c8d924147c Merge pull request #1622 from FSG-Cat/patch-1
Update Hydrogen from v0.2.25 to v0.2.26
2022-02-12 08:54:48 +02:00
cc412dfffe Update Hydrogen from v0.2.25 to v0.2.26 2022-02-12 00:37:40 +01:00
85c66a944f Remove useless cast 2022-02-11 20:05:32 +02:00
0ce68b1ca5 Merge pull request #1374 from spantaleev/shared-secret-auth-v2
Upgrade matrix-synapse-shared-secret-auth (1.0.2 -> 2.0)
2022-02-11 10:55:52 +02:00
5a69c899a3 Upgrade matrix-synapse-shared-secret-auth (1.0.2 -> 2.0.2)
For now, we disable the new `com.devture.shared_secret_auth` login type
by default, because it causes problems with Element:
https://github.com/vector-im/element-web/issues/19605

This also becomes the first module to use the new Synapse module system
that got introduced in Synapse v1.46.0.

Despite these upgrades, things should remain functionally identical
as far as bridges, matrix-corporal or other consumers are concerned.
2022-02-11 10:23:50 +02:00
fa9b69e213 Merge pull request #1614 from Wunderharke/master
add basic fedora support
2022-02-11 08:37:12 +02:00
e2e5db3b89 Do not use misleading with_items for a single file 2022-02-11 08:36:05 +02:00
6c47b447e3 Do not use misleading with_items for a single file 2022-02-11 08:35:39 +02:00
b7df6ceebb Merge pull request #1618 from ZzMzaw/feat/ssl-doc-update
Add missing endpoints for SSL certificates
2022-02-11 08:17:44 +02:00
6576d4596e Add missing endpoints for SSL certificates
Playbook is retrieving certificates for some endpoints which were
not listed in the doc
2022-02-11 06:56:37 +01:00
a24f7626bd 7330992b20 fixed the major_version compare and made foedora deployments to use setup_redhat8.yml. This however broke the script on fedora as there is no EPEL package. This commit add very basic fedora support. 2022-02-09 16:56:14 +01:00
7330992b20 Do not compare ansible_distribution_major_version as a string
Fedora 35 is:

- `ansible_os_family = 'RedHat'`
- `ansible_distribution_major_version = '35'`

Our RedHat checks against v7/v8 are really for RHEL derivatives (CentOS, Rockylinux,
AlmaLinux), but the same checks (by coincidence) apply for Fedora 35.

The problem is that `'35' > '7'` (comparing these as strings) is
`false`.

This patch makes sure that we always cast
`ansible_distribution_major_version` to an integer.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1610
2022-02-09 16:20:09 +02:00
e09694f5ef Merge pull request #1613 from Marwel/master
some yamllint ignoring
2022-02-09 16:12:12 +02:00
3ad454e06d Merge branch 'spantaleev:master' into master 2022-02-09 15:04:10 +01:00
43a7cd2efc fix: ignore generated file on yamllint 2022-02-09 15:03:39 +01:00
e0df99a7de Fix typo 2022-02-09 14:03:06 +02:00
f92e6ad7b9 fix: disable yamllint on ci line, "on" is not always truthy 2022-02-09 11:19:31 +01:00
156a03d93d Merge pull request #1606 from Marwel/master
yamllint all the things
2022-02-09 10:42:32 +02:00
94c9780f7a Fix matrix_synapse_encryption_enabled_by_default_for_room_type
The value of `off` was taken to be a boolean, but it shouldn't be.

Synapse expects a string (currently one of: `all`, `invite`, `off`).
2022-02-09 10:38:28 +02:00
5addb889b1 Fix inconsistent spacing 2022-02-09 10:27:12 +02:00
d27e623c71 fix: manually merge upstream 2022-02-09 09:01:56 +01:00
8e8bf55e15 fix: missing spaces on closing } 2022-02-09 08:52:53 +01:00
5163aa643a Upgrade Synapse (1.51.0 -> 1.52.0)
This also removes the `matrix_synapse_version_arm64` variable we've
been dragging around for a long time.

Since https://github.com/matrix-org/synapse/pull/11810, a multiarch Synapse
container image (for AMD64 and ARM64) is released at the same time.
2022-02-08 15:13:41 +02:00
a095accce7 Replace some CentOS references to support other RHEL derivatives
Not hardcoding 'CentOS' and using the OS family ('RedHat') instead,
we now behave better on Rockylinux and AlmaLinux, etc.

With that said, we may or may not fully support CentOS/Rockylinux/AlmaLinux v8 yet.
Certain things were improved in
https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/300.

v8 support is discussed here: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/300
Certain things (firewalld?) may still be problematic. This patch does not try to address those.
If the remaining issues are confirmed to be fixed in the future, we can mark v8 as supported.
2022-02-06 18:05:25 +02:00
902b40fa1b Merge remote-tracking branch 'origin/master' 2022-02-06 11:30:45 +01:00
de025425b5 fix: revert changes to .md files 2022-02-06 11:30:38 +01:00
819574b8ba Merge branch 'spantaleev:master' into master 2022-02-05 21:37:53 +01:00
8de4e061e1 feat: add yamllint gh action 2022-02-05 21:36:11 +01:00
7e5b88c3b7 fix: all praise the allmighty yamllinter 2022-02-05 21:32:54 +01:00
b244ab477c Upgrade email2matrix (1.0.2 -> 1.0.3)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1605

Fixes a regression introduced in ccb85b31a4. The
`docker.io/devture/email2matrix:1.0.2` container image was faulty due to
this 49f966d6cc
2022-02-05 13:58:15 +02:00
86c36523df Replace ExecStopPost with ExecStop
Reverts b1b4ba501f, 90c9801c56, a3c84f78ca, ..

I haven't really traced it (yet), but on some servers, I'm observing
`ansible-playbook ... --tags=start` completing very slowly, waiting
to stop services. I can't reproduce this on all Matrix servers I manage.
I suspect that either the systemd version is to blame or that some
specific service is not responding well to some `docker kill/rm` command.

`ExecStop` seems to work great in all cases and it's what we've been
using for a very long time, so I'm reverting to that.
2022-02-05 12:13:36 +02:00
d07e50a04f Merge pull request #1604 from GoliathLabs/prometheus
Updated: prometheus to v.2.33.1
2022-02-05 12:10:57 +02:00
a66f5d35d6 Merge pull request #1603 from GoliathLabs/nginx-proxy
Updated: nginx to 1.21.6-alpine
2022-02-05 12:10:41 +02:00
c9c79d935e Merge pull request #1601 from GoliathLabs/grafana
Updated: grafana to 8.3.4
2022-02-05 12:05:02 +02:00
eea58c9c44 Merge pull request #1600 from GoliathLabs/dynamic-dns
Updated: ddclient to v3.9.1-ls77
2022-02-05 12:04:39 +02:00
e0a088dbe3 Updated: prometheus to v.2.33.1 2022-02-05 11:01:52 +01:00
33851f1dfa Updated: nginx to 1.21.6-alpine 2022-02-05 10:58:09 +01:00
da8478a8b6 Merge pull request #1598 from GoliathLabs/heisenbridge
Updated: Heisenbridge to 1.10.1
2022-02-05 11:55:22 +02:00
e27e0b28c8 Updated: grafana to 8.3.4 2022-02-05 10:52:31 +01:00
509466018b Updated: ddclient to v3.9.1-ls77 2022-02-05 10:49:14 +01:00
b4ecadcb2f Updated: Heisenbridge to 1.10.1 2022-02-05 10:37:09 +01:00
ccb85b31a4 Upgrade devture/email2matrix (1.0.1 -> 1.0.2) and disable self-building on ARM32/ARM64
1.0.2 is the first container image tag that is available as a multi-arch image
with support for linux/amd64, linux/arm64/v8 (arm64) and linux/arm/v7 (arm32),
so self-building is no longer necessary on all these platforms.
2022-02-05 11:14:20 +02:00
d3983a0f04 Merge pull request #1591 from pratikbalar/patch-1
docs(matrix-reminder-bot): fix help menu command
2022-02-02 09:08:25 +02:00
27ce3a0e06 docs: fix matrix-reminder-bot help menu command 2022-02-02 12:35:12 +05:30
ae4a3c0970 Merge pull request #1590 from downeymj/patch-1
Fixing 404 error in links to main.yml
2022-02-02 00:00:55 +02:00
71e19e63b8 Fixing 404 error in links to main.yml 2022-02-01 21:43:04 +00:00
45fbcc56da Upgrade devture/exim-relay (4.95-r0-1 -> 4.95-r0-2)
4.95-r0-1 was problematic, because `/etc/exim/exim.conf` in the
container had the wrong permissions (writable by the `exim` user).

Fixed in 697f3cff7e
which is built as 4.95-r0-2
2022-02-01 18:31:38 +02:00
133d85fedf Upgrade Element (1.10.0 -> 1.10.1) 2022-02-01 18:27:06 +02:00
bb23b0e7d1 Merge pull request #1589 from HarHarLinks/hookshot
add hookshot to README.md
2022-02-01 17:39:39 +02:00
94cf7a8cd5 add hookshot to README.md 2022-02-01 16:32:08 +01:00
1099ccab43 Upgrade devture/exim-relay (4.95-r0 -> 4.95-r0-1) and disable self-building on ARM32/ARM64
4.95-r0-1 is the first container image tag that is available as a multi-arch image
with support for linux/amd64, linux/arm64/v8 (arm64) and linux/arm/v7 (arm32),
so self-building is no longer necessary on all these platforms.
2022-02-01 17:23:07 +02:00
0ec86d40ac Merge pull request #1588 from FSG-Cat/patch-2
Update Mjolnir from v1.2.1 to v1.3.1
2022-02-01 17:16:31 +02:00
7b37cc0625 Merge pull request #1587 from FSG-Cat/patch-1
Update Hydrogen from v0.2.23 to v0.2.25
2022-02-01 17:16:15 +02:00
1f21799782 Update Mjolnir from v1.2.1 to v1.3.1 2022-02-01 15:23:31 +01:00
c03f69fe93 Update Hydrogen from v0.2.23 to v0.2.25 2022-02-01 15:00:33 +01:00
d1f0b88f8d Merge pull request #1586 from HarHarLinks/hookshot
link hookshot and appservice-webhooks in docs
2022-02-01 14:51:17 +02:00
ea8fe2902b Link appservice-webhooks to hookshot
with deprecation notice
2022-02-01 13:25:02 +01:00
009dcd9702 Link hookshot to appservice-webhooks 2022-02-01 13:22:03 +01:00
00ea6bf3a4 Adjust contribution author name reference 2022-02-01 14:13:31 +02:00
e6c2dd204d Update changelog and configuring-playbook.md
This announces matrix-hookshot support that got added in
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1505
2022-02-01 14:07:43 +02:00
e295c90d0b Merge pull request #1505 from HarHarLinks/hookshot
add matrix-hookshot
2022-02-01 13:45:48 +02:00
4216807c86 Upgrade Element (1.9.9 -> 1.10.0) 2022-01-31 18:51:28 +02:00
4a4d718f7c Upgrade matrix-corporal (2.2.2 -> 2.2.3) and disable self-building on ARM32/ARM64
2.2.3 is the first container image tag that is available as a multi-arch image
with support for linux/amd64, linux/arm64/v8 (arm64) and linux/arm/v7 (arm32),
so self-building is no longer necessary on all these platforms.
2022-01-31 16:52:49 +02:00
a400284de1 Merge pull request #1583 from AtomHare/master
Upgrade Mautrix/Facebook (0.3.2 -> 0.3.3)
2022-01-31 08:47:12 +02:00
d93b8bb57a Upgrade Mautrix/Facebook (0.3.2 -> 0.3.3)
Not tested but shouldn't break something
2022-01-30 23:37:19 +01:00
39d9ef43e9 fixup! update hookshot config to generic hs variables 2022-01-30 19:32:09 +01:00
51baa40eff fixup! escape hookshot variables using to_json 2022-01-30 19:28:40 +01:00
99cf6adf95 fixup! update hookshot private key installation method 2022-01-30 19:21:26 +01:00
5300dc7a8b update hookshot/defaults/main.yml comments 2022-01-30 19:05:49 +01:00
f136c1fb8f fixup! add some hookshot config validation 2022-01-30 18:53:57 +01:00
2a91a43b32 Merge remote-tracking branch 'origin/master' into hookshot 2022-01-30 17:50:50 +01:00
4477711e79 add some hookshot config validation 2022-01-30 17:46:40 +01:00
f47bfdfb4f remove hookshot uninstall comments based on feedback 2022-01-30 17:46:01 +01:00
29d0b277f4 fix hookshot missing figma config variable 2022-01-30 17:45:28 +01:00
a3c84f78ca update hookshot.service to ExecStopPost 2022-01-30 17:45:09 +01:00
99802bc143 escape hookshot variables using to_json 2022-01-30 17:44:22 +01:00
54d8d0ec38 simplify hookshot conditional for readability 2022-01-30 17:43:29 +01:00
c264d670e8 update hookshot config to generic hs variables 2022-01-30 17:41:51 +01:00
6e13ed8b7e Merge pull request #1581 from etkecc/master
Update honoroit (v0.9.3 -> v0.9.4)
2022-01-29 22:30:37 +02:00
211b0ad3b5 Update honoroit (v0.9.3 -> v0.9.4) 2022-01-29 21:08:20 +02:00
c60fb5c21a Merge pull request #1580 from jimeh/add-oauth-creds-to-mx-puppet-slack
feat(mx-puppet-slack): add support for OAuth client ID/secret
2022-01-28 08:15:41 +02:00
fce190099a Use |to_json for matrix_mx_puppet_slack_oauth_client_secret 2022-01-28 08:15:23 +02:00
7ae70c27e6 feat(mx-puppet-slack): add support for OAuth client ID/secret
The OAuth credentials method seems to be the only viable way to
configure the mx-puppet-bridge now. Legacy tokens can no longer be
created, and the other methods (xoxs and xoxc tokens) come with warnings
about them being against Slack's terms of service.
2022-01-28 01:22:34 +00:00
11c0dcf2ac Upgrade Cinny (1.6.1 -> 1.7.0)
(untested change, but unlikely to cause breakage)
2022-01-26 15:16:55 +02:00
ad082b3b1b Fix self-building for Synapse v1.51.0 (requires BuildKit)
Synapse v1.51.0 requires to be built with BuildKit since
https://github.com/matrix-org/synapse/pull/11691

The `docker_image` Ansible module does not support BuildKit
(https://github.com/ansible-collections/community.general/issues/514),
so we had to switch to a `docker build` call.
2022-01-26 08:41:34 +02:00
cf46b7fed5 Upgrade Synapse (1.50.2 -> 1.51.0) 2022-01-25 14:19:40 +02:00
6df1d29ab9 Merge pull request #1576 from FSG-Cat/patch-1
Update Synapse from 1.50.1 to 1.50.2
2022-01-24 19:51:51 +02:00
f59f903c04 Update Synapse from 1.50.1 to 1.50.2
Fixes a issue with room version 1.

Merging has to wait until ARM images are built ofc.
2022-01-24 14:47:41 +01:00
826246867a Merge pull request #1575 from Thracky/fix-mx-puppet-mediaUrl
Add missing slash in url scheme for mediaUrl
2022-01-24 08:27:40 +02:00
b02aa4b799 Add missing slash in url scheme for mediaUrl 2022-01-23 14:09:18 -05:00
376f3e0cb2 Merge pull request #1573 from HarHarLinks/patch-7
add etherpad to nginx wanted services
2022-01-23 18:22:12 +02:00
4de2b4bf3b update hookshot docs 2022-01-23 17:05:40 +01:00
a1a5b16185 update hookshot private key installation method 2022-01-23 16:10:25 +01:00
5d07f14235 install openssl for hookshot
using b33ea48
2022-01-23 15:11:25 +01:00
44ae8d3b92 refine etherpad in nginx wanted services condition 2022-01-23 14:28:11 +01:00
a9dd397771 add etherpad to nginx wanted services
it's required if enabled by the dimension config here:
6eb8fb8392/roles/matrix-etherpad/tasks/init.yml (L42-L49)

see also #1517
2022-01-22 18:59:16 +01:00
6eb8fb8392 Merge pull request #1571 from GoliathLabs/postgres-exporter
Updated: prom-postgres-exporter to v0.10.1
2022-01-20 12:01:13 +02:00
c6287083e4 Updated: prom-postgres-exporter to v0.10.1 2022-01-20 10:57:39 +01:00
b33ea48803 Merge pull request #1570 from altsalt/install_openssl
only enable openssl if necessary, closes #1510
2022-01-20 08:35:01 +02:00
88b832a818 updated task names leftover from template used 2022-01-19 22:02:20 -08:00
3aa8c1f62c only enable openssl if necessary 2022-01-19 21:58:39 -08:00
6f1b165567 Merge pull request #1568 from etkecc/master
matrix-bot-honoroit: bugfix commands in reply-to mode, add custom prefixes for thread topics
2022-01-19 19:45:16 +02:00
51b27de1bb matrix-bot-honoroit: bugfix commands in reply-to mode, add custom prefixes for thread topics 2022-01-19 18:33:51 +02:00
bcfae766a1 Merge pull request #1567 from aaronraimist/antispam
Upgrade synapse-simple-antispam (0.0.3 -> 0.0.7)
2022-01-19 16:56:10 +02:00
ff94d815e1 Upgrade synapse-simple-antispam (0.0.3 -> 0.0.7) 2022-01-19 14:35:55 +00:00
ad8d4740a7 Merge branch 'spantaleev:master' into default_room_version_9 2022-01-18 14:56:25 -08:00
4cd44f117d Upgrade Synapse (1.50.0 -> 1.50.1)
v1.50.0 was found to be buggy for people using a `webclient` listener.
This is fixed in v1.50.1.

We don't use such a listener, so we weren't affected anyway.
2022-01-18 20:45:12 +02:00
5f22371c23 Upgrade Synapse (1.49.2 -> 1.50.0) 2022-01-18 16:15:52 +02:00
1b151a59ad Merge pull request #1562 from GoliathLabs/element-web
Updated: element-web to v1.9.9
2022-01-18 09:55:50 +02:00
3614903e38 Updated: element-web to v1.9.9 2022-01-17 18:40:44 +01:00
06d188ee2d Merge pull request #1561 from GoliathLabs/certbot
Updated: Certbot to v1.22.0
2022-01-17 11:57:46 +02:00
b608c3d342 Updated: worker_processes to auto 2022-01-17 10:55:36 +01:00
8a66db850e Updated: Certbot to v1.22.0 2022-01-17 10:53:15 +01:00
a1460616d6 Merge pull request #1560 from GoliathLabs/twitter
Updated: mautrix-twitter to v0.1.3
2022-01-17 11:14:30 +02:00
14d58b8e95 Merge pull request #1559 from GoliathLabs/whatsapp
Added: mautrix-whatsapp v0.2.3 tag
2022-01-17 11:13:59 +02:00
94d31eefd3 Updated: mautrix-twitter to v0.1.3 2022-01-17 10:02:16 +01:00
098d21a7b7 Merge pull request #1558 from GoliathLabs/signal
Added: mautrix-signal 0.2.2 & signald 0.16.1
2022-01-17 10:58:37 +02:00
46f621bca6 Added: mautrix-whatsapp v0.2.3 tag 2022-01-17 09:58:16 +01:00
6f142faf85 Added: mautrix-signal 0.2.2 & signald 0.16.1 2022-01-17 09:55:00 +01:00
e7b4bdc0ff Merge pull request #1557 from GoliathLabs/telegram
Updated: telegram to v0.11.1
2022-01-17 08:05:56 +02:00
29668f4a33 Updated: telegram to v0.11.1 2022-01-16 22:41:01 +01:00
f9ad0df26c Merge pull request #1556 from etkecc/master
Updated Honoroit with fallback reply-to mode
2022-01-16 20:40:52 +02:00
05541bd54a Updated Honoroit with fallback reply-to mode 2022-01-16 18:41:02 +02:00
d0030b2de9 Merge pull request #1555 from GoliathLabs/master
Added Instagram version tag instead of latest
2022-01-16 17:04:11 +02:00
8f0da16621 Added: version tag (v0.1.2 2022-01-16 16:00:54 +01:00
1fd8bcc0bc Merge pull request #1547 from GoliathLabs/jitsi
Updated: version to stable-6726-2
2022-01-15 20:32:41 +02:00
e8077485f2 Merge pull request #1551 from GoliathLabs/node-exporter
Updated: node-exporter to v1.3.1
2022-01-15 20:32:07 +02:00
5a3f0eacf5 Merge pull request #1553 from GoliathLabs/appservice-slack
Updated: slack to 1.10.0
2022-01-15 20:31:24 +02:00
efa5ac6064 Merge pull request #1550 from GoliathLabs/sygnal
Updated: sygnal to v0.11.0
2022-01-15 20:29:33 +02:00
dd44d07100 Merge pull request #1548 from GoliathLabs/appservice-webhooks
Updated: webhooks image tag to v1.0.3-01
2022-01-15 20:26:56 +02:00
1122a481fd Merge pull request #1546 from GoliathLabs/dynamic-dns
Updated: ddclient to v3.9.1-ls76
2022-01-15 20:25:22 +02:00
1c8a68aeec Merge pull request #1549 from GoliathLabs/beeper-linkedin
Updated: beeper-linkedin to v0.5.2
2022-01-15 20:24:34 +02:00
dec1bd6c65 Updated: slack to 1.10.0 2022-01-15 18:59:18 +01:00
f2f4d5ba21 Updated: node-exporter to v1.3.1 2022-01-15 18:49:30 +01:00
6bdb599a58 Updated: sygnal to v0.11.0 2022-01-15 18:45:23 +01:00
dcbd0a598e Updated: beeper-linkedin to v0.5.2 2022-01-15 18:40:28 +01:00
7dffd44171 Updated: webhooks image tag to v1.0.3-01 2022-01-15 18:36:10 +01:00
be4c93dc24 Updated: version to stable-6726-2 2022-01-15 18:33:44 +01:00
b0b88242f2 Updated: ddclient to v3.9.1-ls76 2022-01-15 18:31:07 +01:00
b87cf31d59 Merge pull request #1543 from aaronraimist/hydrogen
Upgrade Hydrogen (0.2.19 -> 0.2.23)
2022-01-15 09:08:48 +02:00
cba605a8b7 Fix go-neb sample configuration to not clash with Jinja2
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1544
2022-01-15 09:07:24 +02:00
02c1756135 Upgrade Hydrogen (0.2.19 -> 0.2.23) 2022-01-14 19:31:30 +00:00
321ed9b609 Merge remote-tracking branch 'origin/master' into hookshot 2022-01-14 19:26:31 +01:00
df074151cd update default hookshot webhook mxid prefix 2022-01-14 19:24:37 +01:00
58b732a84d support hookshot permissions management
see Half-Shot/matrix-hookshot#167
2022-01-14 19:21:05 +01:00
49b057ce1c Merge pull request #1531 from IUCCA/master
Added writable /tmp dir for Mautrix Signal Bridge
2022-01-14 13:01:06 +02:00
49342bd3a7 added writable /tmp directory 2022-01-14 11:29:18 +01:00
edc5c09d9f Merge pull request #1530 from hifi/patch-6
Upgrade Heisenbridge (1.9.0 -> 1.10.0)
2022-01-14 11:54:35 +02:00
037bde73a6 Upgrade Heisenbridge (1.9.0 -> 1.10.0) 2022-01-14 11:53:03 +02:00
08fe38cf40 add hookshot to nginx wanted services
related 0fb881deb5
2022-01-12 13:09:13 +01:00
6f32db3063 fix matrix_hookshot_github_oauth_uri 2022-01-12 02:15:37 +01:00
224633df1d fix condition for matrix_hookshot_container_http_host_bind_ports 2022-01-12 01:31:46 +01:00
8498ffd8f7 name hookshot github private key consistently 2022-01-12 01:28:38 +01:00
28c9e7aac2 fix hookshot commandPrefix jinja2 2022-01-12 01:26:17 +01:00
2b97ab9a51 fix matrix_hookshot_container_http_host_bind_ports 2022-01-12 01:22:54 +01:00
f12cad7a7b rename hookshot *.yaml to *.yml 2022-01-12 00:18:54 +01:00
23d6b2d3da update hookshot github private key path and install condition 2022-01-11 23:18:47 +01:00
964479d3d3 .gitkeep matrix-bridge-hookshot/files
needed for users to put private-key.pem in
2022-01-11 23:03:16 +01:00
3a766d4ba5 proxy hookshot metrics when proxying synapse metrics
see also #1527
2022-01-11 22:39:57 +01:00
8b19f56ef8 add hookshot config validation 2022-01-11 22:36:10 +01:00
206a093d56 fix hookshot docker image name 2022-01-11 22:35:57 +01:00
0fb881deb5 Update the "wanted systemd services" list for matrix-nginx-proxy/matrix-grafana
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1517
2022-01-11 08:29:38 +02:00
65991de61c update hookshot private key file mechanism 2022-01-11 01:30:57 +01:00
87871040df add hookshot metrics to internal prometheus 2022-01-11 00:56:51 +01:00
1987cc4839 refine hookshot role 2022-01-11 00:19:29 +01:00
5a8b17c1df Merge pull request #1525 from HarHarLinks/patch-6
Update configuring-playbook-dimension.md
2022-01-10 17:39:42 +02:00
ad00875a6d Update configuring-playbook-dimension.md 2022-01-10 16:21:39 +01:00
ac515b7f09 Fix incorrect variables being used 2022-01-10 15:11:14 +02:00
29bc22a085 Add matrix_nginx_proxy_container_additional_networks
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1498
2022-01-10 11:51:57 +02:00
ac60495166 Get rid of broken CI (ansible-lint)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1488

Discussed here:
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1522#issuecomment-1008381512
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1524#issuecomment-1008477510
2022-01-10 08:40:18 +02:00
7d96526b53 Merge pull request #1524 from GoMatrixHosting/gomatrixhosting-testing
update new variable for matrix-awx, update documentation
2022-01-10 08:02:48 +02:00
e437d577dc Merge pull request #1522 from etkecc/master
matrix-bot-honoroit: disable self-build by default, update to v0.9.1
2022-01-10 08:01:04 +02:00
e72ecf2c65 update new variable for matrix-awx, update documentation 2022-01-10 09:18:10 +08:00
a83b880f72 matrix-bot-honoroit: feedback 2022-01-09 18:49:41 +02:00
4377c348c5 matrix-bot-honoroit: disable self-build by default, update to v0.9.1 2022-01-09 17:46:47 +02:00
c12c224322 Merge pull request #1521 from HarHarLinks/webhooks_tag
pin appservice-webhooks version v1.0.2-01
2022-01-09 17:22:52 +02:00
b50494e5b3 pin appservice-webhooks version v1.0.2-01 2022-01-09 15:05:01 +01:00
27a4871aea Fix variable name typo 2022-01-09 12:14:23 +02:00
817d6833bf Try to fix self-building for honoroit (fix incorrect Dockerfile path)
Hopefully fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1518
2022-01-08 20:06:59 +02:00
e0f2aa9de8 refactor matrix_hookshot_container_http_host_bind_ports 2022-01-08 17:16:53 +01:00
ebf33f46b7 update hookshot passkey.pem path according to docs
https://github.com/Half-Shot/matrix-hookshot/issues/133#issuecomment-1007541580
2022-01-08 16:55:27 +01:00
912c238847 Upgrade Hookshot (1.0.0 -> 1.1.0) 2022-01-08 16:53:52 +01:00
495bfedc0d refine hookshot role using --test 2022-01-08 16:53:48 +01:00
4e4fb98a65 Do not install fuse unless necessary
Discussed here: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1510
2022-01-08 14:14:46 +02:00
548d495d81 Update CHANGELOG 2022-01-08 09:46:24 +02:00
53dbf2738c Try to improve Dendrite announcement message
This is an attempt to address this:
dc893485d1 (commitcomment-63097721)
2022-01-08 09:44:58 +02:00
7b093c5ae0 Move some variables to a more appropriate location 2022-01-08 09:11:22 +02:00
19b5a50805 Derive Honoroit database password from matrix_homeserver_generic_secret_key
Related to the work done in https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/818
2022-01-08 09:08:55 +02:00
425a56c94e Link to Dendrite repository from changelog entry 2022-01-07 16:27:15 +02:00
6cedeb094c Mention inability to migrate between homeserver implementation 2022-01-07 16:23:32 +02:00
5e2f4564bb Announce Dendrite support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/818
2022-01-07 16:00:51 +02:00
134c617f34 Update README 2022-01-07 16:00:51 +02:00
0f59c4056e Set up well-known when invoked with the setup-dendrite tag 2022-01-07 16:00:51 +02:00
139c574cdb Move checks from unused validate_config.yml file elsewhere 2022-01-07 16:00:51 +02:00
90c9801c56 Use ExecStopPost instead of ExecStop
This is the equivalent of b1b4ba501f for the matrix-dendrite role.
2022-01-07 16:00:51 +02:00
61c0930325 Suppress output for ExecStartPre/ExecStop commands
This brings matrix-dendrite.service in line with all the other services.
2022-01-07 16:00:51 +02:00
5c3c0d0d58 Set Dendrite's real_ip_header correctly 2022-01-07 16:00:51 +02:00
05b4572fab Fix matrix_dimension_homeserver_federationUrl for Dendrite 2022-01-07 16:00:51 +02:00
de49cc5271 Fix matrix_registration_shared_secret for Dendrite 2022-01-07 16:00:51 +02:00
593fc2fa85 Replace matrix-synapse.service references with more homeserver-neutral references 2022-01-07 16:00:51 +02:00
38ad152c03 Add Dendrite-awareness to matrix_homeserver_container_url when matrix-nginx-proxy disabled 2022-01-07 16:00:51 +02:00
bbbfc0708f Derive matrix_coturn_turn_static_auth_secret from matrix_homeserver_generic_secret_key
Doing this further simplifies examples/vars.yml.
2022-01-07 16:00:51 +02:00
965890bf75 Derive secrets from matrix_homeserver_generic_secret_key, not matrix_synapse_macaroon_secret_key
We're trying to move away from implementation-specific variables,
hoping for a clean (implementation-neutral) examples/vars.yml file.
2022-01-07 16:00:42 +02:00
1dfe21944f Make matrix_homeserver_implementation influence matrix_IMPLEMENTATION_enabled, not the other way around
Doing this seems more reasonable and simpler.
2022-01-07 15:59:35 +02:00
4139290cc9 Rename some variables for consistency 2022-01-07 15:59:35 +02:00
32bbcf5ed6 Fix incorrect definition 2022-01-07 15:59:35 +02:00
38ec546b8b Only trust own identity server in Dendrite config, if ma1sd enabled 2022-01-07 15:59:35 +02:00
2bd33e5cf2 Make --tags=register-user work for both Dendrite/Synapse
Also get rid of `--tags=update-user-password` in the
`matrix-dendrite` role, as what we had doesn't work.

We may be able to do it with some Ansible helper or something else.
For now, we'll omit this feature.
2022-01-07 15:59:35 +02:00
f8a8d7d310 Fix /usr/local/bin/matrix-dendrite-create-account
We also need to fix `--tags=register-user`. This tag is currently
defined in both the `matrix-synapse` and `matrix-dendrite` roles.
2022-01-07 15:59:35 +02:00
b297e8ee2b Delay Dendrite startup so that matrix-postgres.service can start 2022-01-07 15:59:35 +02:00
9f6e8f5eaf Remove matrix_s3 references from matrix-dendrite role
All the `matrix_s3_*` stuff happens in the `matrix-synapse` role.

If we are to have such S3 support for Dendrite, we should probably
extract it out of the `matrix-synapse` role (into a `matrix-s3` role or
`matrix-goofys`, etc.) and wire `matrix-dendrite` accordingly.

This may or may not be done in the future though. For now, I'm
cleaning things up in the `matrix-dendrite` role.
2022-01-07 15:59:35 +02:00
3b9d5b13e9 Add support for not serving Dendrite federation APIs on the client port
Seems like Dendrite encourages serving both the Client and Federation
API at the same port.

Coming from Synapse and how things are done there, we have separate
ports. Using separate ports probably makes matrix-corporal (etc.)
integration easier, so separating the APIs by default probably makes
sense.
2022-01-07 15:59:35 +02:00
ecc237bbad Initial work on getting nginx reverse proxying working with Dendrite 2022-01-07 15:59:35 +02:00
2f57c51733 Remove useless check
Since 025a5ab5e5f6bdb3, we do a similar check in matrix-base.
2022-01-07 15:59:35 +02:00
3cf9f87097 Add matrix_homeserver_implementation, tracking the current homeserver implementation
The goal is to have a single variable which tells us which homeserver
software is in use. Much simpler than having if/elif/elif checks for
variables like (`matrix_synapse_enabled` and `matrix_dendrite_enabled`, etc.)
everywhere.
2022-01-07 15:59:35 +02:00
63968cb04f Upgrade Dendrite (0.5.0 -> 0.5.1) 2022-01-07 15:59:35 +02:00
b2b62b7221 Add a variable to control Dendrite's disable_federation setting 2022-01-07 15:59:35 +02:00
5b148921a0 Upgrade Dendrite (0.3.11 -> 0.5.0) and update configuration
This brings dendrite.yaml up to date and cleans things up a bit.
2022-01-07 15:59:35 +02:00
ccd3dc7a57 Remove Dendrite file logging
We refrain from logging to files for all components,
because we rely on systemd-journald anyway.
2022-01-07 15:59:35 +02:00
953a9ac718 Upgrade Dendrite (0.3.9 -> 0.3.11) 2022-01-07 15:59:35 +02:00
cde2504966 Upgrade Dendrite (0.3.8 -> 0.3.9) 2022-01-07 15:59:35 +02:00
265d048597 Upgrade Dendrite (0.3.6 -> 0.3.8) 2022-01-07 15:59:35 +02:00
fc62537fcf Remove Synapse and Goofys stuff 2022-01-07 15:59:35 +02:00
07af05690c Add initial role for Dendrite as alternative Matrix server 2022-01-07 15:59:35 +02:00
4e01082644 Merge pull request #1515 from rakshazi/selfbuild-consistency
self-build consistency
2022-01-07 13:38:07 +02:00
2836667df2 self-build consistency: missing var 2022-01-07 13:21:41 +02:00
c191bf54ca self-build consistency: add deprecation warnings 2022-01-07 13:17:39 +02:00
d9dd524db3 self-build consistency: rename vars everywhere 2022-01-07 12:18:45 +02:00
b0c801a497 Rename variable for consistency (matrix_bot_honoroit_container_self_build -> matrix_bot_honoroit_container_image_self_build)
Discussed in https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1514
2022-01-07 11:53:24 +02:00
809cb4f4c0 Merge pull request #1514 from rakshazi/patch-2
matrix-bot-honoroit: fix self-build
2022-01-07 11:52:37 +02:00
d66c812830 matrix-bot-honoroit: fix self-build 2022-01-07 09:06:25 +00:00
6beb39a062 Announce Honoroit support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1511
2022-01-07 09:53:16 +02:00
49903ff44f Merge pull request #1511 from rakshazi/honoroit
added honoroit
2022-01-07 09:49:58 +02:00
d7af37e9e9 matrix-bot-honoroit feedback 2022-01-07 09:41:52 +02:00
407e8c4940 added honoroit 2022-01-06 20:30:10 +02:00
b8ee1980ea refine hookshot role 2022-01-06 18:55:36 +01:00
7dfb68b7f8 Add else statements to inline ifs
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1509
2022-01-06 11:05:02 +02:00
1098e64d19 Announce Cinny support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1509
2022-01-06 10:53:10 +02:00
cb5e32eaee Merge pull request #1509 from rakshazi/cinny
added matrix-client-cinny
2022-01-06 10:43:55 +02:00
490f11ba0d matrix-client-cinny: self_build feedback" 2022-01-06 09:11:28 +02:00
5788a16a2e added matrix-client-cinny 2022-01-05 18:33:21 +02:00
b1b4ba501f Replace ExecStop with ExecStopPost
ExecStopPost should allow us to clean up (docker kill + docker rm)
even if the ExecStart (docker run ..) command failed, and not just after
a graceful service stop was initiated.

Source: https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStopPost=
2022-01-04 17:27:25 +02:00
8515ac55e6 Upgrade nginx (1.21.4 -> 1.21.5) 2022-01-04 17:04:01 +02:00
b3a9160e0f Merge pull request #1497 from jimeh/etherpad-add-optional-admin-access
feat(etherpad): add optional admin web-UI access
2022-01-04 09:20:39 +02:00
f0d7a8e99d Use to_json 2022-01-04 09:18:31 +02:00
3295eb15bf Merge pull request #1500 from cnvandijk/deprecated-jitsi-interface-config
Remove Jitsi web interface_config.js in favour of custom-interface_config.js
2022-01-04 08:50:42 +02:00
bd91230cf8 Merge pull request #1502 from aaronraimist/mautrix-twitter
Update links to Mautrix Twitter bridge
2022-01-04 08:48:09 +02:00
1669c45be6 Merge pull request #1504 from HarHarLinks/plabook
s/plabook/playbook
2022-01-04 08:41:01 +02:00
621251c1e5 hookshot role groundwork 2022-01-03 21:25:03 +01:00
c0f7c39f7d s/plabook/playbook 2022-01-03 18:34:21 +01:00
dc96526475 Update links to Mautrix Twitter bridge
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2022-01-03 01:05:13 +00:00
bc5efa0dbc Remove Jitsi web interface_config.js in favour of custom-interface_config.js
As of docker-jitsi-meet stable-6433 [1], `/config/interface_config.js`
is regenerated on every boot. The correct way to modify the interface
config is now via `/config/custom-interface_config.js`, which is
appended to a default copy of `interface_config.js` by
`/etc/cont-init.d/10-config` on every boot of the docker image.

Given that `interface_config.js` is considered deprecated by upstream
(all options will eventually be moved to `config.js`), we also deprecate
the `matrix_jitsi_web_interface_config_*` variables in favour of
`matrix_jitsi_web_custom_interface_config_extension`.

[1] https://github.com/jitsi/docker-jitsi-meet/blob/stable-6433/CHANGELOG.md#stable-6433
2022-01-02 10:54:51 +01:00
993121e517 feat(etherpad): add optional admin web-UI access
Enables optional access to Etherpad's web-UI. This is useful for
managing Etherpad plugins.

Among other things, plugins makes it easy to manage/delete pads if you
install the adminpads2 plugin.
2022-01-01 03:12:14 +00:00
948c411106 Remove sudo requirement for generating SSL certificates
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1492
2021-12-30 10:47:06 +02:00
78133e16db Merge pull request #1495 from hifi/patch-5
Upgrade Heisenbridge (1.8.2 -> 1.9.0)
2021-12-29 21:13:12 +02:00
cdf76bdbb7 Upgrade Heisenbridge (1.8.2 -> 1.9.0) 2021-12-29 21:05:41 +02:00
d166a90514 Merge pull request #1493 from SierraKiloBravo/allow-configuring-mautrix-telegram-name-templates
Allow editing of MXID/dispname templates for mautrix-telegram users
2021-12-29 10:19:49 +02:00
908dc6c07a Merge pull request #1491 from HarHarLinks/webhooks_fork
switch appservice-webhooks fork
2021-12-28 18:25:03 +02:00
c2f3586ac6 switch appservice-webhooks fork
turt2live/matrix-appservice-webhooks -> redoonetworks/matrix-appservice-webhooks
2021-12-28 17:12:28 +01:00
dbe63de712 Merge pull request #1490 from pushytoxin/master
Upgrade Etherpad to 1.8.16
2021-12-28 16:05:41 +02:00
1066baed38 Upgrade etherpad to 1.8.16
Extend the config template with the lines added in the past year
2021-12-28 15:02:28 +01:00
56e9ff1740 Added defaults and edited config template for mautrix-telegram, allowing editing of MXID/displayname templates for bridged users 2021-12-28 11:40:22 +01:00
c340edad57 Merge pull request #1489 from xlejo/add_encryption_enabled_by_default_for_room_type
Add encryption_enabled_by_default_for_room_type
2021-12-27 21:46:39 +02:00
280c6c5424 Add |to_json 2021-12-27 21:45:13 +02:00
d50c214530 Merge pull request #1488 from HarHarLinks/patch-5
lint whitespace from ansible-lint.yml
2021-12-27 21:39:42 +02:00
297ed9ce36 Add encryption_enabled_by_default_for_room_type
This commit simply add encryption_enabled_by_default_for_room_type
variable.

Signed-off-by: Alejo Diaz <xlejo@protonmail.com>
2021-12-27 14:20:23 -03:00
0715104886 lint whitespace from ansible-lint.yml 2021-12-27 13:55:02 +01:00
94a8af58cc Merge pull request #1487 from hifi/patch-4
Upgrade Heisenbridge (1.8.0 -> 1.8.2)
2021-12-25 18:18:14 +02:00
5df486f31e Upgrade Heisenbridge (1.8.0 -> 1.8.2) 2021-12-25 18:05:41 +02:00
26ec3ca1b5 Link to examples/caddy2
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1484
2021-12-25 10:48:06 +02:00
dcab14d9a8 Add self-building support to Beeper LinkedIn bridge
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1480

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1242
2021-12-23 13:04:09 +02:00
e88530abac Upgrade devture/ansible (2.10.7-r0 -> 2.11.6-r1) 2021-12-23 12:01:53 +02:00
fb1e12a696 Merge pull request #1482 from hifi/patch-3
Upgrade Heisenbridge (1.7.1 -> 1.8.0)
2021-12-22 20:27:24 +02:00
061d6ac86f Upgrade Heisenbridge (1.7.1 -> 1.8.0) 2021-12-22 19:04:21 +02:00
e834a69e60 Announce mautrix-twitter support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1478
2021-12-22 15:53:56 +02:00
ff9bc2f32b Merge pull request #1478 from shreyasajj/master
Twitter Mautrix from mattcen
2021-12-22 15:40:54 +02:00
f6f81a85de Enable notifications during backfill
.. as per the default bridge config.

Source: f848710c01/mautrix_twitter/example-config.yamll (L147)
2021-12-22 15:27:35 +02:00
ed0fcd618c Update config.yaml.j2 2021-12-21 21:37:09 -06:00
99b59f73f4 Merge branch 'spantaleev:master' into master 2021-12-21 21:36:09 -06:00
7fbf735e1e Merge pull request #1481 from FSG-Cat/patch-2
Update Synapse Version from 1.49.1 to 1.49.2
2021-12-21 20:54:57 +02:00
eb0c332f80 Update Synapse Version from 1.49.1 to 1.49.2
This upgrade is technically not needed due to 1.49.1 and 1.49.2 being identical with a lone fix to Debian packaging being the only change. 

Still some might want us to be on the absolutely latest version even tho these 2 are practically identical.

ARM64 has yet to be built so this has to wait for that before merge.
2021-12-21 19:29:56 +01:00
bae375f3af Merge branch 'spantaleev:master' into master 2021-12-21 09:32:16 -06:00
c4bb38ad7e Merge pull request #1479 from FSG-Cat/patch-1
Update Synapse from 1.49.0 to 1.49.1
2021-12-21 15:26:23 +02:00
6c9f6c28de Update Synapse from 1.49.0 to 1.49.1
This update fixes a sync issue that would cause some users to experience sync issues that could cause initial sync to completely fail.
2021-12-21 14:15:13 +01:00
0cc3b6ba49 Merge pull request #1477 from array-in-a-matrix/master
missing uppercase in instagram's bot name
2021-12-21 08:43:36 +02:00
3509f648af Update config.yaml.j2 2021-12-21 00:28:55 -06:00
cddbb1ffa0 Update config.yaml.j2 2021-12-21 00:27:45 -06:00
6a9775520b Update validate_config.yml 2021-12-21 00:13:08 -06:00
25ced724ac Update matrix_servers 2021-12-20 23:38:54 -06:00
87bc9bd146 Update validate_config.yml 2021-12-20 23:36:05 -06:00
3441e1a307 Merge branch 'spantaleev:master' into master 2021-12-20 23:25:39 -06:00
2fbddf59ea Merge pull request #1 from mattcen/mautrix-twitter
Mautrix twitter
2021-12-20 23:25:26 -06:00
2d49b95006 missing uppercase in bot name 2021-12-20 16:55:15 -05:00
d5403fefcc Merge pull request #1476 from altsalt/caddy2-wellknown
added .well-known path to Caddy2 example, closes #1442
2021-12-20 21:17:29 +02:00
06f3b813d6 added .well-known path to Caddy2 example, closes #1442 2021-12-20 10:50:05 -08:00
a5e840f3d3 Merge pull request #1475 from wol-win/element-update
Update Element version (v1.9.7 -> v1.9.8)
2021-12-20 18:47:18 +02:00
dad1a23aa8 Update Element version (v1.9.7 -> v1.9.8) 2021-12-20 17:44:08 +01:00
01b6bba9d7 Make Synapse's url_preview_accept_language default to 'en-US, en'
Related to https://github.com/matrix-org/synapse/issues/11604

Getting an upstream fix is preferable. In any case, it's probably nice
to have this defined explicitly in our configuration. This way, people
can more easily discover that they can override the URL preview
language.
2021-12-18 15:17:14 +02:00
019ba93e1e Merge pull request #1472 from skepticalwaves/patch-4
Update synapse-admin to newest tagged release
2021-12-18 10:01:08 +02:00
e8237ea37e Update synapse-admin to newest tagged release 2021-12-17 15:23:44 -05:00
793930bcbe Merge pull request #1471 from sakkiii/patch-5
Update ansible-lint version to 5.3.1
2021-12-17 19:30:39 +02:00
0080e4e409 Update ansible-lint version to 5.3.1 2021-12-17 21:03:20 +05:30
afd7f03bb5 Minor comment changes 2021-12-17 17:30:40 +02:00
fa704f104b Add support for using custom ACME CA servers (other than Let's Encrypt')
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1468
2021-12-17 17:30:21 +02:00
4625b34acc Fix failure trying to stop orphaned systemd services
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1461
2021-12-17 17:18:35 +02:00
067bea25a8 Merge pull request #1469 from sakkiii/patch-4
ansible lint workflow
2021-12-17 16:33:13 +02:00
547a105def Merge pull request #1470 from alexbers/patch-1
Remove a space from XMPP_INTERNAL_MUC_DOMAIN
2021-12-17 07:50:39 +02:00
45119ea9df Remove a space from XMPP_INTERNAL_MUC_DOMAIN
The domain is invalid with space, so it shouldn't be here
2021-12-17 05:47:47 +05:00
2430c14869 Create ansible-lint.yml
avoiding common pitfalls that can easily lead to bugs or make code harder to maintain
2021-12-16 22:33:23 +05:30
d45d30cc3f Merge pull request #1467 from GoMatrixHosting/gomatrixhosting-testing
GoMatrixHosting v0.6.7
2021-12-16 08:16:17 +02:00
2579f6f49b add new defaults for AWX section 2021-12-16 07:51:27 +08:00
60592fd6a8 Fix Jitsi logging.properties conditional being interpreted as Jinja code
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1464
2021-12-15 21:22:29 +02:00
0f569df629 Merge pull request #1464 from sakkiii/jitsi-update
Update Jitsi to stable-6726-1
2021-12-15 17:46:24 +02:00
42cd4d2c8d crontab mount dir should exists 2021-12-15 20:14:47 +05:30
a2cdc8b543 Merge pull request #1466 from sakkiii/patch-3
Update coturn (4.5.2-r4 -> 4.5.2-r8)
2021-12-15 15:24:37 +02:00
89b4b8832a Merge pull request #1465 from sakkiii/patch-1
Grafana Updata (8.3.1 -> 8.3.3)
2021-12-15 15:24:00 +02:00
980c2b9a80 Update coturn (4.5.2-r4 -> 4.5.2-r8) 2021-12-15 18:35:13 +05:30
8a0c7913be Grafana Updata (8.3.1 -> 8.3.3) 2021-12-15 18:33:09 +05:30
55860bf38f Jitsi update - sentry logging added 2021-12-15 18:23:29 +05:30
12832d8a68 jitsi update 2021-12-15 18:05:52 +05:30
9b4e4477d9 Merge remote-tracking branch 'upstream/master' into gomatrixhosting-testing 2021-12-15 15:10:06 +08:00
aef9a1ea1f GoMatrixHosting v0.6.7 2021-12-15 15:07:41 +08:00
3001b2d32d Merge branch 'spantaleev:master' into default_room_version_9 2021-12-14 18:19:26 -08:00
5be1310541 Upgrade Synapse (1.48.0 -> 1.49.0) 2021-12-14 16:54:35 +02:00
2b83aeb87e Update Mautrix-Twitter image path 2021-12-14 22:36:23 +11:00
35033bbc0c Update documentation to include mautrix-twitter
Playbook config copied from mautrix-facebook and altered accordingly.
2021-12-14 22:36:23 +11:00
0f49ce0638 Set up vars for mautrix-twitter playbook
* Copy/update mautrix_facebook group_vars to mautrix_twitter
* Replace facebook -> twitter, fb -> twt, remove presence var
* Enable playbook in setup.yml
2021-12-14 22:36:23 +11:00
cb608c06aa Remove references to sqlite
Remove references to sqlite since we should just use postgres from the
outset.
2021-12-14 22:36:23 +11:00
68e6311a9f Update mautrix-twitter config to be Jinja2 template
Updates based off the variable names used in mautrix-facebook role.

Also update port number in defauts/main.yml, and disable presence
checking, because Twitter doesn't support that.
2021-12-14 22:36:23 +11:00
8282ab48c7 Replace bridge config with one from upstream
Source: 12f420ab95/mautrix_twitter/example-config.yaml
2021-12-14 22:36:23 +11:00
7afe8103da Find/replace Facebook with Twitter
find roles/matrix-bridge-mautrix-twitter -type f -exec sed -i \
  -e 's/facebook/twitter/g' \
  -e 's/Facebook/Twitter/g' \
  -e 's/FB/Twitter/g' \
  -e 's/fb/twitter/g' {} +
2021-12-14 22:36:23 +11:00
e9e4d8f250 Rename mautrix-twitter systemd file 2021-12-14 22:36:23 +11:00
6b9b824964 Copy matrix-bridge-mautrix-facebook as base for matrix-bridge-mautrix-twitter 2021-12-14 22:36:23 +11:00
a8fc4fe6ce Mention log4j vulnerability affecting mautrix-signal
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1459
and https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1452
2021-12-14 12:33:59 +02:00
9bc8581d7f Merge pull request #1456 from rakshazi/patch-1
(Security fix) Update Element 1.9.6 -> 1.9.7
2021-12-13 18:16:48 +02:00
1f0d56fb75 (Security fix) Update Element 1.9.6 -> 1.9.7
Ref: https://matrix.org/blog/2021/12/13/disclosure-buffer-overflow-in-libolm-and-matrix-js-sdk
2021-12-13 15:55:40 +00:00
ce28c2f0c8 Merge pull request #1455 from hypn0tick/master
Update Jitsi Version (stable-6173 => stable-6727)
2021-12-13 09:48:47 +02:00
ab21da4c14 Merge pull request #1452 from laszabine/signal-1
Updated signald docker image path
2021-12-11 18:43:02 +02:00
dd903ffcc2 Updated signald docker image path 2021-12-11 16:16:41 +00:00
1406e83444 Merge pull request #1451 from skepticalwaves/patch-3
Fix email sending broken by #1406
2021-12-11 17:34:48 +02:00
bbab82ee64 Fix email sending broken by #1406 2021-12-11 10:26:55 -05:00
eca26e49e1 Update Jitsi to version stable-6727 2021-12-11 11:09:06 -03:00
ece163b29f Upgrade Mjolnir from 1.1.20 to version 1.2.1 (#1422)
* Upgrade Mjolnir from 1.1.20 to version 1.2.1

https://hub.docker.com/r/matrixdotorg/mjolnir/tags

using the "latest" tag seems inefficient as it doesn't actually redirect to the latest release

In any case, the latest release is now 1.2.1

docker pull matrixdotorg/mjolnir:v1.2.1

* Fixup

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2021-12-11 10:16:33 +02:00
b1d8e39612 Merge pull request #1446 from hypn0tick/master
Add support for creation of Jitsi internal authentication users in vars.yml
2021-12-11 10:14:50 +02:00
6568b68759 Fix validation message
The check was checking for an empty string in `matrix_jitsi_prosody_auth_internal_accounts`,
which is unlikely to happen. We should check for an empty list instead.

The check was not validating username/password values, so telling the user that they need a non-empty
username/password is misleading. It was merely checking if there's at least one entry in the list.

This patch adjusts the check and message accordingly.
2021-12-11 10:14:33 +02:00
fc55df9318 Make some appservices reach the homeserver via nginx
This is useful when Synapse is using a worker setup. In that case,
we don't want appservices to connect to `matrix-synapse:8008`, because
not all APIs are exposed there.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1449
2021-12-10 08:29:57 +02:00
c116f268f2 Fixed type mismatch 2021-12-09 19:30:32 -03:00
a9e222d523 Remove useless variable (matrix_appservice_webhooks_control_room_id)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1447

Seems like there's such a variable in the
`matrix-bridge-appservice-slack` role, which is probably where it got
copied over from.
2021-12-09 19:46:20 +02:00
f6238c9305 Merge pull request #1443 from aaronraimist/v3-again
Run `workers-doc-to-yaml.sh`
2021-12-09 15:48:59 +02:00
9b6bb9cad7 Merge pull request #1444 from aaronraimist/patch-1
Fix comments about `_database_*` variables
2021-12-09 15:45:33 +02:00
e53ca6d968 Merge pull request #1445 from johndotpub/dimension-self-build
Add self-build for Dimension (arm64 support)
2021-12-09 15:42:39 +02:00
f2293f61ee Updated documentation to better reflect the workings of Jitsi internal authentication with this playbook 2021-12-09 07:58:50 -03:00
0c101f20c4 Fixed unnecessary checking of user attributes, added check for matrix_jitsi_enable_auth boolean 2021-12-09 07:54:40 -03:00
4c25c1df06 Changed matrix_jitsi_prosody_auth_internal_accounts default to an empty array, removed unused configuration declaration, and moved jibri configuration back to its proper place 2021-12-09 07:50:31 -03:00
a26abb2f1b Removed an empty line (formatting) 2021-12-09 07:44:50 -03:00
6e38ce42d8 Added check before stopping service, fixed unnecessary checking of user attributes, and created sections to clarify the file's purpose 2021-12-09 07:40:25 -03:00
d086668f52 Ensure internal authentication users are properly configured 2021-12-09 02:42:36 -03:00
7a7dc00333 Update documentation to reflect added support for Jitsi internal authentication user creation 2021-12-08 20:19:55 -03:00
dd1feffcc2 Add support for Jitsi internal authentication user creation 2021-12-08 20:14:18 -03:00
f2cd37685c Add support for Jitsi internal authentication user creation 2021-12-08 19:52:05 -03:00
286871b9b5 Add self-build for Dimension
Add a self-build option for the Dimension Dockerfile.
 - This helps further support arm64 hosts (i.e. A1.Flex w/Oracle)
2021-12-08 04:48:59 -08:00
fac497faa5 Fix comments in other roles 2021-12-08 10:13:12 +00:00
421b055cb5 Fix comment about matrix_mautrix_whatsapp_database_* variables
Was renamed in 087dbe4ddc

It is unclear to me if there is anything you actually need to adjust with these variables. It looks like that is done automatically in `matrix_servers`.
2021-12-08 04:09:09 -06:00
0071828503 Run workers-doc-to-yaml.sh
1472958e25 reverted some of the v3 changes. I'm not sure why. Running the `workers-doc-to-yaml.sh` script now puts them back 🤷‍♂️.
2021-12-08 08:37:55 +00:00
c58c5b3610 Merge pull request #1441 from FSG-Cat/patch-3
Update Grafana from 8.3.0 to 8.3.1 due to Security Flaw
2021-12-08 06:02:27 +02:00
18daf8f3da Update Grafana from 8.3.0 to 8.3.1 due to Security Flaw
https://grafana.com/blog/2021/12/07/grafana-8.3.1-8.2.7-8.1.8-and-8.0.7-released-with-high-severity-security-fix/
2021-12-07 21:52:49 +01:00
ff720bedce Upgrade matrix-postgres-backup default to v14
Related to c08880d175
2021-12-07 19:43:33 +02:00
c6cf2858b3 Merge pull request #1439 from wol-win/element-web-update
Update Element Web Version (v1.9.5 -> v1.9.6)
2021-12-06 21:06:07 +02:00
391e095cb9 Update main.yml 2021-12-06 19:56:13 +01:00
9babaa5a2b Fix mx-puppet-discord media URLs using container-network URLs (http://matrix-nginx-proxy:12080) 2021-12-06 13:40:01 +02:00
d51a9118d3 Update importing-postgres.md with individual DB and repeat-import information (#1437)
* Update importing-postgres.md

Additional deatails, mostly on repeating import. Structure troubleshouting section.

* Update importing-postgres.md

removing -K

* Fix path typo

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2021-12-05 10:41:00 +02:00
9ab7b9fa58 Merge pull request #1438 from Jaffex/master
Update signal bridge configuration template
2021-12-05 10:39:14 +02:00
Jan
20bc3eb24b Update signal bridge configuration template 2021-12-04 22:08:59 +01:00
42352b491c Merge pull request #1432 from wol-win/prometheus
Update prometheus (v2.30.3 -> v2.31.1)
2021-12-02 15:01:03 +02:00
971a751a5e Merge pull request #1433 from wol-win/redis
Update redis (6.2.4 -> 6.2.6)
2021-12-02 15:00:45 +02:00
60c745a862 Merge pull request #1431 from wol-win/grafana
Update version grafana (8.2.2 -> 8.3.0)
2021-12-02 15:00:11 +02:00
229b93d7c8 Update redis (6.2.4 -> 6.2.6) 2021-12-02 13:54:57 +01:00
3f0e8122ec Update prometheus 2021-12-02 13:41:12 +01:00
27e1451cbc Update main.yml 2021-12-02 13:31:57 +01:00
d584b44f10 Upgrade matrix-corporal (2.2.1 -> 2.2.2) 2021-12-01 08:23:35 +02:00
89094d0126 Merge pull request #1429 from felixx9/patch-1
Update importing-postgres.md
2021-12-01 08:22:17 +02:00
c2c68f814b Update importing-postgres.md
typos an suggestion to expand search/replace statement to not replace on wrong places.
2021-11-30 22:07:04 +01:00
1472958e25 Upgrade Synapse (1.47.1 -> 1.48.0) 2021-11-30 16:35:23 +02:00
c6f9363231 Merge pull request #1419 from redoonetworks/master
Ansible 2.10 & AWX 19.4 compatibility
2021-11-30 08:41:33 +02:00
25e4d32cb6 Merge pull request #1420 from ChrisKar96/encrypted_macaroon_support
Support encrypted matrix_synapse_macaroon_secret_key
2021-11-30 08:32:49 +02:00
90ff7df7b7 Merge pull request #1426 from skepticalwaves/patch-2
Update matrix-bridge-mautrix-telegram version
2021-11-30 08:20:11 +02:00
8e1463a6a1 Update matrix-bridge-mautrix-telegram version 2021-11-28 21:59:33 -05:00
ab60238518 Support encrypted matrix_synapse_macaroon_secret_key
This change forces ansible to decrypt the variable with ansible-vault if encrypted, to avoid the error '{"msg": "Unexpected templating type error occurred on ({{ matrix_synapse_macaroon_secret_key | password_hash('sha512') }}): secret must be unicode or bytes, not ansible.parsing.yaml.objects.AnsibleVaultEncryptedUnicode"}'
Every other variable in the playbook was found to have no problems with encryption.
The change has no negative impact on non-encrypted matrix_synapse_macaroon_secret_key.
2021-11-26 19:51:05 +02:00
61391647e9 Make /.well-known/matrix/client and /.well-known/matrix/server customizable
We recently had someone need to inject additional configuration into
`/.well-known/matrix/client` as described here:
22b245bbd1/docs/bigbluebutton.md (have-dimension-create-meetings-with-elements-video-call-button)

There may be other use cases as well.
2021-11-26 15:28:03 +02:00
cfc79ebe29 Upgrade exim-relay (4.94.2-r0-5 -> 4.95-r0) 2021-11-25 09:21:05 +02:00
65bb34c1ad Update requirements.yml
Use correct collection for docker commands
2021-11-24 13:15:34 +01:00
4d5d855ff1 Update requirements.yml
Correct collections name
2021-11-24 13:03:28 +01:00
87a2240dc2 Create requirements.yml
Add collections for simple awx compatiblity
2021-11-24 13:02:29 +01:00
ae45254d83 Add missing headers in Traefik v2 example
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1393
2021-11-24 11:34:40 +02:00
3a9fe48deb Make matrix-nginx-proxy's X-Forwarded-For header customizable
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1393
2021-11-24 11:32:06 +02:00
24a0d965bf Merge pull request #1417 from GoMatrixHosting/gomatrixhosting-testing
GoMatrixHosting v0.6.6
2021-11-24 10:02:19 +02:00
37191d98c5 GoMatrixHosting v0.6.6 2021-11-24 10:43:25 +08:00
d29922fbe4 Merge remote-tracking branch 'upstream/master' into HEAD 2021-11-24 10:38:42 +08:00
986e7ce50c Merge pull request #1414 from hifi/feature/heisenbridge-1.7.1
Upgrade Heisenbridge (1.7.0 -> 1.7.1)
2021-11-23 15:32:43 +02:00
e8a57ad432 Upgrade Heisenbridge (1.7.0 -> 1.7.1) 2021-11-23 15:03:09 +02:00
6b07ee3b58 Upgrade Synapse (1.47.0 -> 1.47.1) - security fixes
Learn more here: https://github.com/matrix-org/synapse/releases/tag/v1.47.1
2021-11-23 14:50:07 +02:00
f0f5b9fa00 Merge pull request #1411 from wol-win/element_upgrade
Upgrade Element version (1.9.4 --> 1.9.5)
2021-11-22 18:12:31 +02:00
e11e31e2c6 Update main.yml 2021-11-22 16:53:20 +01:00
fc751f0330 Upgrade exim-relay (4.94.2-r0-4 -> 4.94.2-r0-5) 2021-11-20 09:31:04 +02:00
2734adfb4e Upgrade matrix-corporal (2.2.0 -> 2.2.1) 2021-11-20 09:28:27 +02:00
3b27ce2ff6 Merge pull request #1404 from aaronraimist/v3
Allow workers to serve new v3 APIs
2021-11-19 10:54:47 +02:00
2e73dac39f Upgrade matrix-corporal (2.1.4 -> 2.2.0)
There was also a 2.1.5 security release made today.
2.2.0 contains the same security fix + more.

Both make handling of Client-Server API v3-prefixed requests better.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1404
2021-11-19 10:53:09 +02:00
df39a9bb72 Merge pull request #1407 from hifi/feature/heisenbridge-1.7.0
Upgrade Heisenbridge (1.6.0 -> 1.7.0)
2021-11-18 13:10:07 +02:00
110d91b06e Upgrade Heisenbridge (1.6.0 -> 1.7.0) 2021-11-18 13:05:30 +02:00
8cbddc7558 Merge pull request #1406 from rakshazi/master
expose smtp_user and smtp_pass to ansible configs (role: matrix-synapse)
2021-11-18 07:51:11 +02:00
d41e9230da expose smtp_user and smtp_pass to ansible configs (role: matrix-synapse) 2021-11-17 21:34:46 +02:00
e1a6d1e4b2 Upgrade Synapse (1.46.0 -> 1.47.0)
We had to remove UID/GID environment variables that we used to pass
to the Synapse container, because it was causing a problem after
https://github.com/matrix-org/synapse/pull/11209

We were using both `--user` and UID/GID environment variables until now.
2021-11-17 17:21:15 +02:00
f8fe68b385 Allow workers to serve new v3 APIs
1f196f59cb
2021-11-17 14:54:49 +00:00
75cb4ce3b0 Add warning about matrix_ma1sd_default_port being renamed
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1403
2021-11-17 10:38:52 +02:00
b4fb819481 Merge pull request #1403 from borisrunakov/rename-matrix-ma1sd-default-port
remove default from variable name
2021-11-17 10:35:54 +02:00
6bbc2054b8 Merge pull request #1402 from borisrunakov/matrix-synapse-container-client-api-port
make 8008 configurable
2021-11-17 10:34:40 +02:00
394ecb0acc remove default from variable name 2021-11-16 21:14:28 +02:00
d3a9ec98de refactoring 2021-11-16 21:03:21 +02:00
5fc533eca5 Merge pull request #1400 from IUCCA/master
Updated Mautrix-WhatsApp config
2021-11-16 15:50:06 +02:00
949ae80117 added server_map variable and renamed secret_map 2021-11-16 14:22:06 +01:00
b272e6147a Resolved server_map 2021-11-16 13:37:11 +01:00
1ec67f49b0 replaced 8008 where possible 2021-11-15 22:43:05 +02:00
e216508774 Merge remote-tracking branch 'origin/master' 2021-11-15 19:36:00 +01:00
788999d29c updated whatsapp config 2021-11-15 19:34:56 +01:00
adf2dc13b3 Update main.yml 2021-11-15 19:27:49 +01:00
3535c97117 updated whatsapp config 2021-11-15 19:25:08 +01:00
ae122466fc updated whatsapp config 2021-11-15 19:23:28 +01:00
e72ae8bc48 Upgrade matrix-corporal (2.1.3 -> 2.1.4) 2021-11-15 17:23:25 +02:00
c1bc7b9f93 Rename variables to prevent confusion
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1397
and https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1399
2021-11-15 14:56:11 +02:00
ba48aa70f7 Fix variable name typo
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1397
2021-11-15 14:52:08 +02:00
a536f5764e Merge pull request #1399 from borisrunakov/matrix-federation-api-port
make 8448 configurable instead of hard coded
2021-11-15 14:49:14 +02:00
dc4452ac21 Merge branch 'master' into matrix-federation-api-port 2021-11-15 14:49:03 +02:00
edf63bfdd7 Add some to_json invocations 2021-11-15 14:48:25 +02:00
994c0e504c Ensure some matrix-nginx-proxy variables are defined
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1397
2021-11-15 14:46:44 +02:00
0152ecef1c Merge pull request #1397 from borisrunakov/synapse_container_federation_port
Synapse container federation port
2021-11-15 14:45:34 +02:00
8c3e25de1b renamed var to matrix_synapse_container_federation_api_port 2021-11-15 13:01:22 +02:00
28d9c3192e Merge branch 'master' into matrix-federation-api-port 2021-11-15 12:49:47 +02:00
b
07496069c8 rellocating variables for consistency 2021-11-15 12:07:54 +02:00
0d4764a213 Upgrade matrix-corporal (2.1.2 -> 2.1.3)
2.1.3 fixes a security vulnerability, which allowed attackers to
circuimvent policy checks by sending HTTP requests with trailing slashes.

Learn more in the matrix-corporal changelog: https://github.com/devture/matrix-corporal/blob/master/CHANGELOG.md
2021-11-15 11:24:12 +02:00
266bdbc902 Update matrix-corporal documentation 2021-11-15 10:29:27 +02:00
c08880d175 Upgrade postgres-backup to v14 2021-11-15 09:15:44 +02:00
10523b700c Merge pull request #1396 from aaronraimist/postgres
Postgres Minor Updates (14.1, 13.5, 12.9, 11.14, 10.19)
2021-11-15 08:35:26 +02:00
8abe1ac483 Warn people if on an old SQLite-supporting mautrix-facebook version
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1401

https://github.com/mautrix/facebook/releases/tag/v0.3.2 says that this
version re-adds SQLite support.
2021-11-15 08:28:20 +02:00
20efa5ee70 Merge pull request #1401 from RoiArthurB/patch-1
Upgrade Mautrix Facebook bridge version
2021-11-15 08:12:09 +02:00
708a7108b3 Upgrade Mautrix Facebook bridge version 2021-11-15 10:29:13 +07:00
4ff8fddd72 updated whatsapp config, backfill doesn't work 2021-11-14 23:57:52 +01:00
1d0e594def updated whatsapp config, backfill doesn't work 2021-11-14 23:45:07 +01:00
b
afccc2b11f make 8448 configurable instead of hard coded 2021-11-14 23:32:25 +02:00
61b743f86d Postgres Minor Updates (14.1, 13.5, 12.9, 11.14, 10.19) 2021-11-14 19:10:56 +00:00
b
5e97f5a4e6 fixed matrix_dimension_homeserver_federationUrl 2021-11-14 20:57:27 +02:00
b
7756cc4c8e replace port 8048 with matrix_synapse_container_default_federation_port 2021-11-14 20:30:13 +02:00
24fd455a9e Merge pull request #1394 from JokerGermany/master
Port 80 for IPv6
2021-11-13 09:15:35 +02:00
c0656448f7 Port 80 for IPv6 2021-11-13 01:18:22 +01:00
c07d15ec6c Merge pull request #1392 from hifi/feature/heisenbridge-1.6.0
Upgrade Heisenbridge (1.5.0 -> 1.6.0)
2021-11-12 07:48:24 +02:00
f01b9c3865 Upgrade Heisenbridge (1.5.0 -> 1.6.0) 2021-11-12 04:50:29 +02:00
b195760301 Mention dropped Postgres v9.6 support in the changelog
Related to c4d2c8394c
2021-11-11 16:04:20 +02:00
c4d2c8394c Abort if on an unsupported Postgres version (v9.6)
Official support ends today (2021-11-11).
Synapse still supports v9.6, but we'd better force users to transition
to newer versions anyway.
2021-11-11 15:42:34 +02:00
dc70e94a31 Merge pull request #1390 from sakkiii/patch-2
Nginx & Certbot Updates
2021-11-10 19:33:45 +02:00
cd26af2f6f Certbot Update (v1.20.0 -> v1.21.0) 2021-11-10 22:58:45 +05:30
7a4f49c457 Nginx Minio Update (1.21.3 -> 1.21.4) 2021-11-10 22:52:23 +05:30
735c966ab6 Disable systemd services when stopping to uninstall them
Until now, we were leaving services "enabled"
(symlinks in /etc/systemd/system/multi-user.target.wants/).

We clean these up now. Broken symlinks may still exist in older
installations that enabled/disabled services. We're not taking care
to fix these up. It's just a cosmetic defect anyway.
2021-11-10 17:39:21 +02:00
f5fd9661fa Merge pull request #1388 from teutat3s/bump/element-client-1.9.4
Upgrade Element (v1.9.4)
2021-11-09 16:31:19 +02:00
367cddb715 Upgrade Element (v1.9.4) 2021-11-09 15:01:18 +01:00
143b0f26d9 Restore usage of some _environment_variables_extension Jitsi variables
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1377

Regresion since https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1139
2021-11-08 10:34:09 +02:00
9af010657d Merge pull request #1380 from borisrunakov/workers_with_own_webserver
add server_name to matrix-synapse.conf only if matrix_nginx_proxy_enabled
2021-11-05 15:38:28 +02:00
b
6eaa8ac65a add server_name to matrix-synapsel.conf only if matrix_nginx_proxy_enabled 2021-11-05 15:31:10 +02:00
60bf8bef9c Merge pull request #1379 from hifi/feature/heisenbridge-1.5.0
Upgrade Heisenbridge (1.4.1 -> 1.5.0)
2021-11-05 10:35:48 +02:00
09ac6a0e8c Upgrade Heisenbridge (1.4.1 -> 1.5.0) 2021-11-05 10:31:31 +02:00
2d2e6986a1 Add missing space 2021-11-04 11:35:58 +08:00
94777d5f0e Merge pull request #1376 from ldicarlo/patch-1
chore: adding some explanations about setting prometheus password
2021-11-04 00:29:13 +02:00
12be1033e5 Add missing space 2021-11-04 00:28:58 +02:00
967e5d6f37 chore: adding some explanations about setting prometheus password 2021-11-03 21:12:06 +01:00
7b8b595e81 Upgrade Synapse (1.45.1 -> 1.46.0) 2021-11-02 17:42:13 +02:00
dae117c91b Bump Hydrogen (0.2.7 -> 0.2.19) 2021-11-02 15:57:18 +02:00
9688d071a8 fix matrix_synapse_account_threepid_delegates_email and matrix_synapse_account_threepid_delegates_msisdn (#1370)
* fix for string concatenation on matrix_synapse_account_threepid_delegates_email and matrix_synapse_account_threepid_delegates_msisdn

* .editorconfig should not be ignored

* Restore .gitignore

Co-authored-by: b <b@b>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2021-11-01 12:02:02 +02:00
4586efebd7 Merge pull request #1369 from borisrunakov/configurable-ma1sd-port
change port 8090 to matrix_ma1sd_default_port
2021-11-01 10:50:14 +02:00
ff3bd12015 Upgrade devture/ansible (2.9.14-r0 -> 2.10.7-r0) 2021-11-01 10:48:17 +02:00
0434e3bf8f Allow force-patching webpack.config.js when self-building Element
We were applying the low-memory system patch to webpack.config.js
on systems with < 4GB memory.

From now on, we also let people force-enable patching by toggling the
`matrix_client_element_container_image_self_build_low_memory_system_patch_enabled`
variable.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357
2021-11-01 09:08:18 +02:00
b
dcda17595a change port 8090 to matrix_ma1sd_default_port 2021-10-31 21:06:22 +02:00
add313c7be Merge pull request #1368 from hifi/patch-2
Upgrade Heisenbridge (1.4.0 -> 1.4.1)
2021-10-31 19:09:31 +02:00
17fc055d53 Upgrade Heisenbridge (1.4.0 -> 1.4.1) 2021-10-31 18:31:31 +02:00
8f70f0f877 Merge pull request #1367 from GoMatrixHosting/gomatrixhosting-testing
GoMatrixHosting v0.6.4
2021-10-31 16:06:42 +02:00
c6c68e00a4 merge upstream 2021-10-31 08:56:48 +08:00
439c3fddc2 Merge pull request #1366 from pcfe/pcfe-do-not-use-quotes-for-shm-flag
fixes #1365
2021-10-30 15:34:10 +03:00
65182ea0f2 fixes #1365
docker-ce does not like quotes around the shm-size value
2021-10-30 13:13:30 +02:00
fc593bc8ab Increase shm-size for Postgres container to fix VACUUM
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1268

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1364

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1362
2021-10-30 09:53:56 +03:00
c8a8035de4 Make it possible to self-build Element on low-memory devices (<4G RAM)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357
2021-10-29 11:13:01 +03:00
39fa852ed6 Remove unnecessary if checks
Should have been done in 63f5a88fa0.
2021-10-29 10:41:11 +03:00
63f5a88fa0 Separate install/uninstall tasks for Element and Hydrogen 2021-10-29 10:29:54 +03:00
76745342f4 Merge pull request #1361 from hifi/feature/heisenbridge-1.4.0
Upgrade Heisenbridge (1.3.0 -> 1.4.0)
2021-10-29 09:40:12 +03:00
124b9608fc Upgrade Heisenbridge (1.3.0 -> 1.4.0) 2021-10-28 21:07:11 +03:00
e80cf7d92c Merge pull request #1360 from thomwiggers/patch-6
update IRC appservice
2021-10-28 16:28:24 +03:00
32f15e9bf0 update IRC appservice
https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.32.1
2021-10-28 15:21:58 +02:00
28fe9ffed4 Merge pull request #1359 from jariz/patch-1
caddy example fixes
2021-10-28 14:33:13 +03:00
0a10077c63 caddy example fixes
- caddy v1 requires a path in the header directive
- msisd has been replaced in favour of ma1sd
2021-10-28 11:16:43 +02:00
c81ac90a05 Merge pull request #1358 from sakkiii/patch-2
Prometheus & Grafana Update
2021-10-27 21:23:29 +03:00
0231302db9 Upgrade grafana (8.1.4 -> 8.2.2) 2021-10-27 23:14:14 +05:30
d09609b3bd Update prometheus (2.29.2 -> 2.30.3) 2021-10-27 23:11:01 +05:30
feda83abf0 Mention that Hydrogen always undergoes self-building 2021-10-27 14:00:40 +03:00
be17792466 Merge pull request #1352 from throwawayay/patch-1
Upgrade Element (v1.9.3)
2021-10-25 20:40:01 +03:00
d31cdb071a Upgrade Element (v1.9.3)
https://github.com/vector-im/element-web/releases/tag/v1.9.3
2021-10-25 12:44:58 -04:00
06bcdcf9d2 Merge pull request #1311 from HarHarLinks/master
add auto proxy synapse worker metrics
2021-10-25 09:21:11 +03:00
5f6bbafa17 fix space before tab in indent 2021-10-24 16:00:42 +02:00
013c6e68f9 Merge pull request #1348 from hifi/feature/heisenbridge-1.3.0
Upgrade Heisenbridge (1.2.1 -> 1.3.0)
2021-10-21 20:15:12 +03:00
d7af78066b Upgrade Heisenbridge (1.2.1 -> 1.3.0) 2021-10-21 19:55:13 +03:00
09ac950d17 Fix dump importing (backup restore) into Postgres v14
In short, the problem is that older Postgres versions store passwords
hashed as md5. When you dump such a database, the dump naturally also
contains md5-hashed passwords.
Restoring from that dump used to create users and updates their passwords
with these md5 hashes.
However, Postgres v14 prefers does not like md5-hashed passwords now (by default),
which breaks connectivity. Postgres v14 prefers `scram-sha-256` for
authentication.

Our solution is to just ignore setting passwords (`ALTER ROLE ..`
statements) when restoring dumps. We don't need to set passwords as
defined in the dump anyway, because the playbook creates users
and manages their passwords by itself.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1340
2021-10-21 16:38:56 +03:00
35c91701a8 Merge pull request #1347 from GoMatrixHosting/gomatrixhosting-testing
Gomatrixhosting v0.6.3 hotfix2
2021-10-21 10:03:41 +03:00
7f140e9be2 Merge remote-tracking branch 'upstream/master' into gomatrixhosting-testing 2021-10-21 10:27:45 +08:00
725150565a GoMatrixHosting v0.6.3 hotfix2 2021-10-21 10:25:23 +08:00
86614d6357 Merge pull request #1345 from GoMatrixHosting/gomatrixhosting-testing
GoMatrixHosting v0.6.3 [hotfix]
2021-10-20 17:04:55 +03:00
5dc2868269 Upgrade Synapse (1.45.0 -> 1.45.1) 2021-10-20 15:08:07 +03:00
7b33fc8e19 fixup! auto-generate prometheus.yml for workers metrics 2021-10-20 13:30:38 +02:00
ce41674e61 auto-generate prometheus.yml for workers metrics 2021-10-20 12:51:00 +02:00
dd4dc22619 add worker metrics documentation 2021-10-20 12:51:00 +02:00
4209c4208c add own variable for worker metrics
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1311#issuecomment-945718866
2021-10-20 12:51:00 +02:00
75cfad57ca GoMatrixHosting v0.6.3 hotfix 2021-10-20 18:00:55 +08:00
7595adb91d Merge pull request #1344 from aaronraimist/patch-1
Fix link to nginx files in configuring-playbook-own-webserver.md
2021-10-20 09:41:03 +03:00
db81fa3415 Fix link to nginx files in configuring-playbook-own-webserver.md 2021-10-20 01:33:03 -05:00
2fd968cf44 Merge pull request #1342 from aaronraimist/patch-1
Update installing.md to be a bit more clear
2021-10-20 09:12:50 +03:00
a8556fb8be Update installing.md to be a bit more clear
This change should make it more obvious which order the steps must be done
2021-10-19 22:57:01 -05:00
1dab178a44 Upgrade Synapse (1.44.0 -> 1.45.0) 2021-10-19 16:25:00 +03:00
139205f3b3 Merge pull request #1338 from GoMatrixHosting/gomatrixhosting-testing
Gomatrixhosting v0.6.3 - rebased properly :)
2021-10-19 14:45:19 +03:00
d65607c48f Merge remote-tracking branch 'upstream/master' into gomatrixhosting-testing 2021-10-19 17:48:23 +08:00
18395e73d3 GMH v0.6.3 2021-10-19 17:45:15 +08:00
5284afc60e Merge pull request #1333 from Samonitari/add-support-for-suse-linux
Add support for suse linux
2021-10-15 09:50:02 +03:00
8c15555d00 Upgrade Element (1.9.0 -> 1.9.2) 2021-10-15 09:27:26 +03:00
c69ea4cbcd Update changelog
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1323
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1328
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1329
2021-10-13 07:58:35 +03:00
26756b871a Merge pull request #1329 from mochman/change_hangouts_readme
Updated Hangouts configuration readme.
2021-10-13 07:50:09 +03:00
e57c1f3c5d Merge pull request #1328 from mochman/add_googlechat
Added Mautrix Google Chat
2021-10-13 07:49:34 +03:00
6937a2c0a9 Ensure password_hash salt is less than 16 chars
Also fixes the appservice and homeserver tokens for the Googlechat bridge,
so that they're not the same as the ones for the Hangouts bridge.
2021-10-13 07:48:59 +03:00
459ee6f1e0 Updated Hangouts configuration readme.
Also indicates that the Mautrix googlechat bridge is a replacement for hangouts.
2021-10-12 17:08:17 +00:00
a1cbd5459c Update Synapse default room version (6 -> 9)
From the [Synapse 1.43.0 release highlights](https://matrix.org/blog/2021/09/21/synapse-1-43-0-released):
> Asks clients to prefer [room version 9](https://github.com/matrix-org/matrix-doc/pull/3375) when creating restricted rooms ([#10772](https://github.com/matrix-org/synapse/issues/10772)), via the API defined in [MSC3244: room version capabilities](https://github.com/matrix-org/matrix-doc/pull/3244).
2021-10-12 09:49:16 -07:00
1dac525e63 Added Mautrix Google Chat 2021-10-12 11:45:04 +00:00
fb709152f3 Add self-building support for mautrix-whatsapp
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1322
2021-10-12 10:02:07 +03:00
0c21b5a055 Merge pull request #1326 from GoMatrixHosting/gomatrixhosting-testing
GoMatrixHosting v0.6.2
2021-10-12 08:53:11 +03:00
1cde9f8638 Merge pull request #1324 from aaronraimist/patch-1
Update matrix-appservice-slack (1.5.0 -> 1.8.0)
2021-10-12 08:51:48 +03:00
7bb4a74656 Merge pull request #1325 from aaronraimist/patch-2
Update configuring-playbook-dimension.md
2021-10-12 08:51:23 +03:00
fc0296b56e update element section 2021-10-12 12:20:53 +08:00
fb61f89221 Update configuring-playbook-dimension.md 2021-10-11 18:50:46 -05:00
25d0ae7b67 Update matrix-appservice-slack (1.5.0 -> 1.8.0)
I am not using this bridge and haven't tested this but multiple people have said 1.5.0 isn't working and 1.8.0 works for them so it seems to make sense to update.

https://github.com/matrix-org/matrix-appservice-slack/issues/618#issuecomment-929849093
2021-10-11 18:36:07 -05:00
c630bc3eaa update element section 2021-10-11 15:13:09 +08:00
46cba52e79 update element section 2021-10-11 15:00:11 +08:00
b4654f8992 update element section 2021-10-11 14:53:52 +08:00
927633321a update element section 2021-10-11 13:34:46 +08:00
676ba70971 update element section 2021-10-11 12:57:16 +08:00
53f4b84d1f update element section 2021-10-11 12:55:49 +08:00
8ff0ae27b8 update element section 2021-10-11 12:15:15 +08:00
9f0a8965d5 update element config 2021-10-11 11:43:58 +08:00
36883150c6 update 2021-10-11 11:30:30 +08:00
291efc1163 update element section 2021-10-11 11:20:28 +08:00
6a8799afcc wrap brand variable in single quotes too 2021-10-11 10:55:39 +08:00
85bc12d14c saner handling of background variable 2021-10-11 10:37:02 +08:00
79acf6fc7e update conditionals 2021-10-11 10:30:12 +08:00
a352ea4674 derp 2021-10-11 10:23:37 +08:00
1ae103bbbe stop configure element from double wrapping this 2021-10-11 10:07:34 +08:00
89c8ae94d6 update 2021-10-10 16:16:31 +08:00
a631587ebd this isnt needed 2021-10-10 14:44:27 +08:00
07a5433c24 fix lineinfile 2021-10-10 14:39:36 +08:00
dd6e643581 first round of variable name changes 2021-10-10 14:10:06 +08:00
175bdb100b first round of variable name changes 2021-10-10 13:23:49 +08:00
6b9af38228 update? 2021-10-10 09:19:01 +08:00
f4410514f5 update variable names 2021-10-09 15:45:49 +08:00
de084c4d4d fix variable name change 2021-10-09 15:43:47 +08:00
fb23c7b697 Merge remote-tracking branch 'upstream/master' into gomatrixhosting-testing 2021-10-09 15:38:32 +08:00
a60a43cb08 change naming scheme of variables that feature in deploy. 2021-10-09 15:21:10 +08:00
42af090a7c update naming scheme 1 2021-10-09 10:21:27 +08:00
df9da052ab fix conditional 2021-10-09 09:24:39 +08:00
384dfdce4b update? 2021-10-09 08:58:10 +08:00
6f99f95aa2 Merge branch 'master' of https://github.com/spantaleev/matrix-docker-ansible-deploy into add-support-for-suse-linux 2021-10-08 10:27:32 +02:00
b0d56f6c18 update conditionals 2021-10-08 14:28:37 +08:00
208dce51d8 add new survey entries for welcome page link, headline and text 2021-10-08 14:18:59 +08:00
0f4cb513b8 update survey 2021-10-08 13:16:09 +08:00
8d9d176c36 update? 2021-10-07 13:29:55 +08:00
d1754915d1 improve conditional 2021-10-07 12:53:32 +08:00
ecc0437520 add logo section 2021-10-07 12:49:59 +08:00
2bf052369d Upgrade certbot (v1.19.0 -> v1.20.0) 2021-10-06 15:14:38 +03:00
278bbae4d5 Upgrade Synapse (1.43.0 -> 1.44.0) 2021-10-05 17:13:21 +03:00
bad2c5296e Merge pull request #1312 from HarHarLinks/patch-4
add how to generate htpasswd
2021-10-05 11:29:44 +03:00
6adc028d52 Merge pull request #1313 from GoMatrixHosting/gomatrixhosting-testing
Gomatrixhosting testing
2021-10-05 07:14:42 +03:00
71b404d9df merge upstream 2021-10-05 11:39:29 +08:00
e3183ba267 Merge remote-tracking branch 'upstream/master' into gomatrixhosting-testing 2021-10-05 11:39:07 +08:00
1ba7760ea4 add how to generate htpasswd
for matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_key
resolves #1308
2021-10-04 22:18:05 +02:00
d9fa2f7ed4 add auto proxy synapse worker metrics
when matrix_nginx_proxy_proxy_synapse_metrics is enabled
2021-10-04 21:44:50 +02:00
871df86068 simulate update 2021-10-04 21:07:05 +08:00
56ad50cb97 test update 2021-10-04 20:26:07 +08:00
01a136692f simulate update 2021-10-04 18:49:41 +08:00
d38c0e121b Merge pull request #1309 from HarHarLinks/patch-3
doc: how to export node and postgres sans grafana
2021-10-04 13:00:55 +03:00
6b0f739e9a move advanced metrics exporting to new section 2021-10-04 11:58:27 +02:00
2e16080f41 doc: how to export node and postgres sans grafana 2021-10-04 00:00:29 +02:00
40506d5c5a no log 2021-10-02 12:43:14 +08:00
b5d8444764 Add self-building support to matrix-bridge-appservice-webhooks 2021-10-01 16:37:37 +03:00
c8744ef9a9 update deploy role for new awx token authentication method 2021-10-01 18:56:38 +08:00
096c960b84 Add support for Postgres v14 2021-10-01 11:27:40 +03:00
256d3ffec5 Merge pull request #1304 from apmechev/update-linkedin-0.5.1
Upgrade LinkedIn (0.5.0 -> 0.5.1)
2021-10-01 10:15:08 +03:00
3474d0c809 Merge pull request #1303 from hifi/feature/heisenbridge-1.2.1
Upgrade Heisenbridge (1.2.0 -> 1.2.1)
2021-09-30 09:27:08 +03:00
3119ef4574 Upgrade Heisenbridge (1.2.0 -> 1.2.1) 2021-09-30 08:42:58 +03:00
b4b14539a7 Use ntp (instead of systemd-timesyncd) on Ubuntu 18.04
Seems like Ubuntu 18.04 does not have a dedicated `systemd-timesyncd` package, nor
does it include the `systemd-timesyncd` binary in the main `systemd` package.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1302

Regression since https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1192
2021-09-28 13:38:27 +03:00
f02c08dc7f Upgrade LinkedIn (0.5.0 -> 0.5.1) 2021-09-28 11:07:43 +02:00
1c8ec8d080 Merge pull request #1301 from gryphius/gryphius-element-1.9.0
Upgrade Element (1.8.5 -> 1.9.0)
2021-09-28 09:04:30 +03:00
Oli
59d4532efb Upgrade Element (1.8.5 -> 1.9.0) 2021-09-28 07:40:00 +02:00
5e867f150e Merge pull request #1299 from KloolK/patch-2
Archlinux: remove package systemd-timesyncd
2021-09-26 14:50:15 +03:00
Jan
0ed585baa7 Archlinux: remove package systemd-timesyncd
#1192 lead to the following error for me on Archlinux:
`TASK [matrix-base : Install host dependencies] *******************************************************************************************************************************
fatal: [matrix.***.de]: FAILED! => changed=false 
  msg: |-
    failed to install systemd-timesyncd: error: target not found: systemd-timesyncd`

There is no package called `systemd-timesyncd` on Archlinux. The service is installed with the [`systemd`](https://archlinux.org/packages/core/x86_64/systemd/) package itself.

I suggest removing the `systemd-timesyncd` from 2453876eb9/roles/matrix-base/tasks/server_base/setup_archlinux.yml (L7)
2021-09-26 11:48:03 +02:00
31396f0615 Merge pull request #1295 from nogweii/feat-support-upstream-https-forwarded
Support trusting the upstream server when it says the protocol is HTTPS
2021-09-26 09:54:15 +03:00
4f841a7001 Merge pull request #1192 from sakkiii/patch-1
migrate from ntp to systemd-timesyncd for ubuntu & Archlinux
2021-09-25 10:15:40 +03:00
62ce06e28c Merge pull request #1298 from GoMatrixHosting/gomatrixhosting-testing
GoMatrixHosting v0.6.0
2021-09-25 09:35:53 +03:00
72688a49da Merge pull request #1297 from aaronraimist/fix-hydrogen-typo
Fix hydrogen OCSP typo
2021-09-25 08:58:37 +03:00
9a4187c852 Merge remote-tracking branch 'upstream/master' into gomatrixhosting-testing 2021-09-25 10:56:26 +08:00
a676b5358c Fix hydrogen OCSP typo
From 6f80292745
2021-09-24 20:09:06 -05:00
2578ca4cee rename matrix_nginx_proxy_x_forwarded_header_value -> matrix_nginx_proxy_x_forwarded_proto_value 2021-09-24 05:22:30 -07:00
120b49a2b2 update docs 2021-09-24 05:18:11 -07:00
d0cd67044e replace $scheme with X-Forwarded-Proto when enabled 2021-09-24 05:14:38 -07:00
11398dc1a6 Merge pull request #1292 from HarHarLinks/patch-2
Fix typo
2021-09-24 09:33:30 +03:00
4b500ffb43 Merge pull request #1291 from hifi/feature/heisenbridge-1.2.0
Upgrade Heisenbridge (1.1.1 -> 1.2.0)
2021-09-24 09:31:13 +03:00
11b215f8ec Fix typo 2021-09-23 21:39:42 +02:00
ff63f4efce Upgrade Heisenbridge (1.1.1 -> 1.2.0) 2021-09-23 10:18:46 +03:00
33c471477f remove commented section 2021-09-22 09:44:52 +08:00
7934cde90f Upgrade Synapse (1.42.0 -> 1.43.0)
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1287
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1288

.. but does it in a more complete way
2021-09-21 18:17:50 +03:00
92af6c162d Do not advertise Debian 9 support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1282

It's mostly due to Docker CE dropping its repositories (and support) for
Debian 9.
If one installs Docker manually (likely a package named `docker.io`), it
will likely still work.
In any case, Debian 9 is old and end-of-life now, so advertising support
for it is not productive.
2021-09-21 10:57:32 +03:00
35153093fc Merge pull request #1283 from wol-win/irc-update
Update irc bridge version (release-0.30.0 -> release-0.31.0)
2021-09-21 10:51:11 +03:00
952275789a Merge pull request #1284 from wol-win/mjolnir-upgrade
Upgrade mjolnir (v0.1.19 -> v1.1.20)
2021-09-21 10:50:03 +03:00
d82b98a522 Upgrade mjolnir (v0.1.19 -> v1.1.20)
Upgrade mjolnir (v0.1.19 -> v1.1.20)

Remark: interesting version number increase :-)
2021-09-20 16:53:13 +02:00
f542a3a7c8 Update release (release-0.30.0 -> release-0.31.0)
Update release (release-0.30.0 -> release-0.31.0)
2021-09-20 16:49:30 +02:00
6902ee5aa7 add rotate ssh module to matrix-awx 2021-09-19 17:12:12 +08:00
efd7e0f589 Merge pull request #1282 from aaronraimist/patch-1
Bump minimum supported Ubuntu version
2021-09-19 07:33:00 +03:00
8527c0a8d9 Bump minimum supported Ubuntu version
Ubuntu ended support for 16.04 in April
2021-09-18 16:23:42 -05:00
e38ac094e3 Merge pull request #1281 from hifi/feature/heisenbridge-1.1.1
Upgrade Heisenbridge (1.1.0 -> 1.1.1)
2021-09-17 21:58:35 +03:00
8b9c7b18ac Upgrade Heisenbridge (1.1.0 -> 1.1.1) 2021-09-17 21:31:02 +03:00
9de35bf1c5 Merge pull request #1279 from sakkiii/patch-7
Upgrade grafana (8.1.3 -> 8.1.4)
2021-09-17 13:25:37 +03:00
255cb97c41 Upgrade grafana (8.1.3 -> 8.1.4) 2021-09-17 15:50:06 +05:30
b166f0175a Upgrade Element (1.8.4 -> 1.8.5) 2021-09-15 09:36:21 +03:00
84d345b6c3 Merge pull request #1275 from sakkiii/patch-5
Updates Certbot -> v1.19.0, nginx ->1.21.3-alpine
2021-09-14 18:00:01 +03:00
8b7fefb604 Merge pull request #1276 from HarHarLinks/patch-1
Fix typo
2021-09-14 17:59:26 +03:00
b3cfa2a1ba Fix typo 2021-09-14 16:52:57 +02:00
3055b3996e Updates Certbot -> v1.19.0, nginx ->1.21.3-alpine 2021-09-14 16:51:01 +05:30
4543a22508 Merge pull request #1274 from hifi/feature/heisenbridge-1.1.0
Upgrade Heisenbridge (1.0.1 -> 1.1.0)
2021-09-14 11:20:22 +03:00
4adbefab82 Upgrade Heisenbridge (1.0.1 -> 1.1.0) 2021-09-14 11:17:28 +03:00
f364fba182 Fix tripping on timesync setup 2021-09-14 08:35:20 +02:00
4b46913278 Upgrade Element (1.8.2 -> 1.8.4) to patch a security issue
See:
- https://github.com/vector-im/element-web/releases/tag/v1.8.4
- https://matrix.org/blog/2021/09/10/pre-disclosure-upcoming-critical-fix-for-several-popular-matrix-clients
2021-09-13 16:24:09 +03:00
4c1e3fe03f Merge pull request #1272 from aaronraimist/hydrogen-fix
Revert "Move some related tasks closer together in matrix-client-hydrogen"
2021-09-12 09:50:06 +03:00
f7e614b644 Add comment explaining why this step goes here 2021-09-11 20:44:00 -05:00
82641092a7 Revert "Move some related tasks closer together in matrix-client-hydrogen"
This reverts commit e913347fe1.
2021-09-11 20:43:08 -05:00
df13ea5f14 Upgrade grafana (8.1.2 -> 8.1.3) (#1269)
Upgrade grafana (8.1.2 -> 8.1.3)
2021-09-09 09:33:22 +03:00
0faad74a44 Upgrade Synapse (1.41.1 -> 1.42.0) 2021-09-07 20:44:18 +03:00
8339103594 revert unneeded changes 2021-09-04 15:08:07 +08:00
7724247152 Merge branch 'testing' into 'main'
Merge Upstream - Bump Coturn version tag (4.5.2-r2 -> 4.5.2-r3)

See merge request GoMatrixHosting/matrix-docker-ansible-deploy!5
2021-09-04 06:30:06 +00:00
ca705cf9dd Merge remote-tracking branch 'upstream/master' into testing 2021-09-04 14:24:13 +08:00
ae6caf158a Added variable matrix_nginx_proxy_request_timeout (#1265)
* add timeout param for nginx proxy

default value matrix_nginx_proxy_request_timeout is 60s

* default matrix_nginx_proxy_request_timeout - 60s

* few more variables for request timeout

* Update nginx.conf.j2

* Update nginx.conf.j2
2021-09-03 10:00:45 +03:00
a911207854 Revert "nginx update v1.21.2"
This reverts commit 732051b8fc.

There's no such container image published yet.
2021-09-03 09:07:58 +03:00
115f365860 Merge pull request #1263 from hifi/feature/heisenbridge-1.0.1
Bump Heisenbridge to v1.0.1
2021-09-03 08:43:01 +03:00
d8e1ff40f8 Merge pull request #1264 from sakkiii/patch-5
nginx update v1.21.2
2021-09-03 08:42:42 +03:00
732051b8fc nginx update v1.21.2
http://nginx.org/en/CHANGES
2021-09-03 10:46:21 +05:30
c228343339 Bump Heisenbridge to v1.0.1 2021-09-03 07:58:48 +03:00
e913347fe1 Move some related tasks closer together in matrix-client-hydrogen 2021-09-01 16:47:43 +03:00
d384d0d7a0 Upgrade Element (1.8.1 -> 1.8.2) 2021-09-01 11:14:04 +03:00
1c9124e3b7 Merge pull request #1260 from aaronraimist/self-build
Pull correct version when self building Mautrix Facebook and Synapse Admin
2021-08-31 17:30:49 +03:00
3ab01a5f9e Pull correct version when self building Mautrix Facebook and Synapse Admin 2021-08-31 08:43:52 -05:00
578645fd77 Merge pull request #1259 from FSG-Cat/patch-2
Upgrade to Synaspe v 1.41.1 (Security Update)
2021-08-31 16:28:25 +03:00
777ba6bc5a Upgrade to Synaspe v 1.41.1 (Security Update)
Synapse 1.41.1 Patches 2 exploits that can reveal information about rooms an user is not supposed to have access to information about.
2021-08-31 14:54:23 +02:00
2453876eb9 Update main.yml 2021-08-31 16:24:26 +05:30
087a5d62f1 systemd-timesyncd for any archlinux version 2021-08-31 15:53:59 +05:30
02f4e8cf0d Remove no-longer accurate sentences 2021-08-31 10:07:58 +03:00
7fc1a94c30 Merge pull request #1258 from sakkiii/jitsi-fix
Jitsi Update (stable-5963 -> stable-6173)
2021-08-30 10:41:00 +03:00
9d06dd61a6 Upgrade exim-relay (4.94.2-r0-3 -> 4.94.2-r0-4) 2021-08-30 10:09:51 +03:00
40a72b2567 Merge pull request #1257 from derhagen/patch-1
Add link to Dimension admin page
2021-08-30 09:26:59 +03:00
a62eb05d5b Add link to Dimension admin page
This avoids having to create a new room and to click the "Add widgets, bridges & bots" link (Formerly the four-squares-icon)
2021-08-29 19:21:14 +02:00
d3e2574d40 Update configuring-playbook-jitsi.md
matrix_jitsi_jicofo_component_secret var removed #1139
2021-08-29 21:48:33 +05:30
510f299c04 Syntex fixed 2021-08-29 21:43:39 +05:30
465d436b1b Merge branch 'spantaleev:master' into jitsi-fix 2021-08-29 19:35:09 +05:30
a43b109653 Jitsi Update stable-5963 2021-08-29 19:34:30 +05:30
4f51da9fce Merge pull request #1256 from sakkiii/patch-3
Update Coturn (4.5.2-r3 -> 4.5.2-r4)
2021-08-29 16:34:03 +03:00
6feb99076a Update Coturn (4.5.2-r3 -> 4.5.2-r4) 2021-08-29 15:40:00 +05:30
12a172f07d Merge pull request #1254 from wol-win/update/prometheus
Update prometheus (2.29.1 -> 2.29.2)
2021-08-27 20:43:36 +03:00
972077aa33 Update prometheus (2.29.1 -> 2.29.2)
Update prometheus (2.29.1 -> 2.29.2)
2021-08-27 16:51:38 +02:00
ad3d2a5aee Merge pull request #1252 from sakkiii/patch-4
mjolnir & hydrogen Minor Updates
2021-08-25 20:23:57 +03:00
41eb06c5d0 Merge pull request #1251 from sakkiii/patch-3
Grafana Update 8.0.6 -> 8.1.2
2021-08-25 20:23:22 +03:00
e4ea32b89f Hydrogen v0.2.7 2021-08-25 22:49:12 +05:30
44709465c9 mjolnir releases v0.1.19 2021-08-25 22:45:21 +05:30
86f5ba8348 Grafana Grafana v8.1 2021-08-25 22:43:07 +05:30
a4db9557db Update homeserver.yaml to match the one in Synapse v1.41.0
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1247
2021-08-25 09:51:50 +03:00
bb0e59de48 Merge pull request #1250 from wol-win/worker_trial
Endpoint changes for Client and media API due to migration to 1.41.0
2021-08-25 09:37:43 +03:00
b447fa8f34 Merge pull request #1247 from FSG-Cat/patch-1
Update Synapse from 1.40.0 to 1.41.0
2021-08-25 09:37:20 +03:00
ee75d35193 Endpoint changes for Client and media API due to migration to 1.41.0 2021-08-24 21:46:38 +02:00
f5258bbe86 Merge pull request #1248 from webpigeon/webpigeon-patch-1
Fix appservice-irc version
2021-08-24 20:48:04 +03:00
a787f406f9 Update main.yml
Fix incorrect docker version tag for matrix-appservice-irc
2021-08-24 18:41:39 +01:00
1e070f1e56 Update Synapse from 1.40.0 to 1.41.0 2021-08-24 19:09:28 +02:00
6ecd947c72 remove delete subscription section 2021-08-24 19:05:58 +08:00
463e9a6196 woops bool not bools 2021-08-24 18:48:43 +08:00
f19856e125 change template name 2021-08-24 18:35:49 +08:00
c6f8bc5d83 missing one template from deletion section 2021-08-24 18:35:00 +08:00
a49da05cf9 delegate locally 2021-08-24 18:20:26 +08:00
ef4b5a187d alter delete_job_template template 2021-08-24 14:33:50 +08:00
b120b8aeba delay these till the next playbook 2021-08-24 14:27:50 +08:00
c1c2c8cb35 Merge pull request #1246 from sakkiii/patch-2
prometheus & its exporter updates
2021-08-24 09:11:43 +03:00
01a5f521cd Merge branch 'patch-2' of https://github.com/sakkiii/matrix-docker-ansible-deploy into patch-2 2021-08-24 10:26:20 +05:30
00d1804dd9 prometheus & its exporter updates 2021-08-24 10:24:54 +05:30
57414ec2be Upgrade matrix-corporal (2.1.1 -> 2.1.2) 2021-08-23 15:39:54 +03:00
4b643db31b Upgrade devture/exim-relay (4.94.2-r0-2 -> 4.94.2-r0-3)
Related to https://github.com/devture/exim-relay/pull/11
2021-08-23 15:31:37 +03:00
ca7e0b9df2 Merge pull request #1243 from sakkiii/patch-3
Postgres Minor Updates
2021-08-23 15:29:14 +03:00
ee663e819e Announce LinkedIn Messaging bridging support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1242
2021-08-23 15:27:16 +03:00
2ec06b7477 Merge pull request #1242 from apmechev/add_beeper_linkedin_bridge
Add beeper LinkedIn bridge
2021-08-23 15:15:35 +03:00
603ad7c52b Remove (non-working) SQLite support from beeper-linkedin bridge
This bridge doesn't support SQLite anyway, so it's not necessary
to carry around configuration fields and code for migration from SQLite
to Postgres. There's nothing to migrate.
2021-08-23 15:12:19 +03:00
78c22138a5 Do not reference variables from other roles
This configuration is supposed to be kept clean and not reference variables defined in other roles.

`group_vars/matrix_servers` redefines these to hook our various roles together.
2021-08-23 15:06:00 +03:00
13e660bffd Add missing section separator 2021-08-23 15:02:28 +03:00
e46c908aaa Merge pull request #1244 from thomwiggers/patch-5
Update IRC appservice to version v0.30.0
2021-08-23 14:59:26 +03:00
78b62664cd Update to version v0.30.0
https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.30.0
2021-08-23 10:29:05 +02:00
48548eb561 Postgres Minor Updates 2021-08-22 18:45:25 +05:30
340e0fabc4 Adds Documentation for LinkedIn Bridge 2021-08-21 18:24:30 +02:00
b13cf1871f add code for LinkedIn Bridge 2021-08-21 17:32:45 +02:00
24793adb2f Merge pull request #1241 from sakkiii/patch-3
Certbot update v1.18.0
2021-08-20 22:05:29 +03:00
9860fb4675 Upgrade Sygnal (v0.9.0 -> v0.10.1) 2021-08-20 17:48:24 +03:00
f5a7e6d78b Certbot update v1.18.0 2021-08-20 19:47:11 +05:30
3125ee56e2 add abort_deletion.yml task list 2021-08-20 13:27:10 +08:00
e75ecd858d launch cleanup job after deleting subscription 2021-08-20 11:14:15 +08:00
a37e5b6d60 job templates cant delete themselves 2021-08-20 09:58:55 +08:00
14effd5e2b delegate delete tasks locally 2021-08-20 09:35:12 +08:00
312bcc444b no log 2021-08-20 09:28:54 +08:00
b3d9be4599 Merge pull request #1240 from N07070/master
Update the docker image version for mautrix-telegram
2021-08-19 15:34:51 +03:00
d9d9554a74 Update the docker image version for mautrix-telegram 2021-08-19 14:08:53 +02:00
92b26ec846 check if matrix_vars.yml file exists 2021-08-19 18:05:47 +08:00
7203d4ec21 replace module only if file exists 2021-08-19 18:01:26 +08:00
9ac5ad148a merge upstream 2021-08-19 17:38:38 +08:00
b2f96df1a9 end play after deleting subscription in AWX 2021-08-19 17:13:34 +08:00
fa43d04ad7 syntax error 2021-08-19 17:02:28 +08:00
7b9929e17b add << SUBSCRIPTION DELETION IN PROGRESS >> job template 2021-08-19 16:55:58 +08:00
9cf077be68 Merge pull request #1237 from AtomHare/master
Update mautrix links
2021-08-19 10:28:42 +03:00
4240df6401 update link 2021-08-18 17:25:45 +02:00
7d0ce01792 update links 2021-08-18 17:24:54 +02:00
7eec01e359 update mautrix new repo name 2021-08-18 17:21:20 +02:00
43c9eab6b9 update mautrix new repo name 2021-08-18 17:20:18 +02:00
1ae4032cb7 update new repo name mautrix 2021-08-18 17:17:44 +02:00
b9124c0080 update new repo name mautrix-hangouts 2021-08-18 17:16:58 +02:00
69f333ea25 Update main.yml 2021-08-18 17:14:18 +02:00
301626d91d Update configuring-playbook-bridge-mautrix-whatsapp.md 2021-08-18 17:11:09 +02:00
57fb6e7f71 Update configuring-playbook-bridge-mautrix-telegram.md 2021-08-18 17:09:19 +02:00
4292dbe238 Update configuring-playbook-bridge-mautrix-hangouts.md 2021-08-18 17:06:53 +02:00
e06e5dbfa0 Merge pull request #1 from AtomHare/update-repo
Update readme mautrix bridges
2021-08-18 17:04:08 +02:00
9b1ff158f8 Update configuring-playbook-bridge-mautrix-signal.md 2021-08-18 17:03:20 +02:00
91c9aec973 Update configuring-playbook-bridge-mautrix-instagram.md 2021-08-18 17:00:47 +02:00
9d571e3c8e Update configuring-playbook-bridge-mautrix-hangouts.md 2021-08-18 16:59:41 +02:00
868ac12cf4 update mautrix docs 2021-08-18 16:57:57 +02:00
ef0ed0af3d Update container-images.md 2021-08-18 16:54:45 +02:00
6299bc0300 Update readme mautrix bridges 2021-08-18 16:49:35 +02:00
517ecbf0d1 move delete-subscription to deploy 2021-08-18 21:07:44 +08:00
dc8000760b Bump Coturn version tag (4.5.2-r2 -> 4.5.2-r3)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1236
2021-08-18 09:50:10 +03:00
511a267b00 Merge pull request #1229 from wol-win/feature/signal_config
Feature/signal config
2021-08-18 09:42:46 +03:00
d93b2109f4 ehh? 2021-08-18 06:25:49 +08:00
2c80e0bc89 Merge pull request #1235 from wol-win/element_web
Upgrade Element (1.8.0 -> 1.8.1)
2021-08-17 20:21:44 +03:00
c2f91dba1b Merge pull request #1234 from pushytoxin/patch-2
Mautrix-Facebook repo location update, pin v0.3.1
2021-08-17 14:09:28 +03:00
12dbb29675 Upgrade Element (1.8.0 -> 1.8.1)
Element web/desktop has just been updated to fix some regressions in regard to VoIP.
2021-08-17 12:47:52 +02:00
854ea91195 Mautrix-Facebook repo location update, pin v0.3.1
The Github link is just a redirect to Tulir's own GitLab, so I replaced the self-build link
The docker container repository was rearranged hierarchically (dock.mau.dev/tulir/mautrix-facebook -> dock.mau.dev/mautrix/facebook)
Tagged versions have been made available, thus :latest -> :v0.3.1
2021-08-17 10:35:49 +02:00
bdf10462d2 Merge remote-tracking branch 'upstream/master' 2021-08-17 16:24:34 +08:00
50441346d3 herp 2021-08-17 16:12:16 +08:00
62bba12551 Merge pull request #1233 from hifi/feature/heisenbridge-1.0.0
Pin Heisenbridge to 1.0.0
2021-08-17 09:12:45 +03:00
71c7d0ba7f Merge pull request #1232 from thedanbob/debian-bullseye
docker-ce is now available for Debian Bullseye
2021-08-17 09:12:17 +03:00
41c335b967 merge upstream 2021-08-17 13:20:39 +08:00
4fe27a7645 Pin Heisenbridge to 1.0.0 2021-08-17 07:50:53 +03:00
5a828f36a6 Document the permissions settings. Distinguish between augmenting and overwriting. 2021-08-16 18:24:55 +02:00
4b7506ca1a Preset the permissions inline with other bridges 2021-08-16 18:24:12 +02:00
b1c94efcd8 Make template generic for the pemission settings 2021-08-16 18:23:40 +02:00
70d412e523 Upgrade Element (1.7.34 -> 1.8.0) 2021-08-16 18:10:22 +03:00
df82ec13b2 docker-ce is now available for Debian Bullseye 2021-08-16 08:44:02 -05:00
8c17a65e55 testing 2 2021-08-16 15:56:27 +08:00
8504ad2228 change for testing 2021-08-16 15:31:34 +08:00
ea4af65ceb herp 2021-08-16 15:20:32 +08:00
662438ba6e Merge branch 'testing-v0.5.8' into 'main'
comment to trigger update

See merge request GoMatrixHosting/matrix-docker-ansible-deploy!3
2021-08-16 06:08:38 +00:00
5d77e76e77 comment to trigger update 2021-08-16 14:07:31 +08:00
157b70673c Merge branch 'testing' into 'main'
revert to previous version

See merge request GoMatrixHosting/matrix-docker-ansible-deploy!2
2021-08-15 10:36:18 +00:00
59b61f6cc2 revert to previous version 2021-08-15 18:33:29 +08:00
d0b557eb6f Replace tabs to spaces to prevent problems in YAML 2021-08-15 08:42:21 +02:00
f5a2d732ea Merge pull request #1224 from GoMatrixHosting/master
GoMatrixHosting v0.5.7
2021-08-15 08:45:56 +03:00
46340fdf63 Simplify if condition 2021-08-15 08:45:21 +03:00
326802ac21 Merge branch 'testing-v0.5.8' into 'main'
Testing v0.5.8

See merge request GoMatrixHosting/matrix-docker-ansible-deploy!1
2021-08-15 05:21:38 +00:00
53384b5a97 add comment 2 2021-08-15 12:58:17 +08:00
7486db0d1a Missing ticks 2021-08-14 17:58:08 +02:00
f988fd3339 Change sequence of permissions
As per earlier comment (see from tulir) the sequence has been changed.
2021-08-14 17:47:31 +02:00
30aa8c2c3f Update docs/configuring-playbook-bridge-mautrix-signal.md
Improvement of documentation

Co-authored-by: Jan <31133207+Jaffex@users.noreply.github.com>
2021-08-14 17:38:58 +02:00
d249fe874e Update roles/matrix-bridge-mautrix-signal/templates/config.yaml.j2
Updated settings in template file:
* relay for any user
* user permissions only for HS domain users

Co-authored-by: Jan <31133207+Jaffex@users.noreply.github.com>
2021-08-14 17:36:43 +02:00
ae9639585c Update roles/matrix-bridge-mautrix-signal/defaults/main.yml
Improved setup through template file

Co-authored-by: Jan <31133207+Jaffex@users.noreply.github.com>
2021-08-14 17:35:49 +02:00
d9e8be7c79 Update docs/configuring-playbook-bridge-mautrix-signal.md
Document how to enable relay functionality in a room

Co-authored-by: Jan <31133207+Jaffex@users.noreply.github.com>
2021-08-14 17:32:54 +02:00
7491508d63 add comment 2021-08-14 21:12:47 +08:00
a34241e4cc Remove intial permissions seting
Permissions, when set in the template, will be augmented rahter than replaced when using matrix_mautrix_signal_configuration_extension_yaml. Therefore, permissions shall only be set in the defaults/vars.yml or in the HS specific vars.yml file
2021-08-13 21:11:41 +02:00
bb931493ee Update as per suggestion 2021-08-13 20:15:19 +02:00
c3b4a1a66d Augment documentation for relay bot 2021-08-13 17:48:28 +02:00
5ca28ba872 Default relay bot functionality setting
Per default relay bot functionality is disabled; the bridge user permissions depends on the relay bot, if enabled the base domain users are on level relay, else remain on user;
2021-08-13 17:48:05 +02:00
e6b77284f2 Relay bot configurable + permissions
Enable / disable relay bot functionality as configuratoin paramter; set bridge permissions for base domain users to user level
2021-08-13 17:46:37 +02:00
98e6cd685d sync with previous repo 2021-08-13 16:05:57 +08:00
83a90f1cd1 Initial commit 2021-08-13 08:00:23 +00:00
0c59251c5b Merge pull request #1228 from Jaffex/master
Update matrix-mautrix-signal config to 0.2.0 to enable relay mode
2021-08-12 16:34:03 +03:00
e90b33c4e3 Update matrix-mautrix-signal config to 0.2.0 to enable relay mode 2021-08-12 12:52:55 +02:00
4c12c1892c use saner folder permissions 2021-08-11 17:32:38 +08:00
4d57a41b3f remove matrix_awx_enabled from these 2021-08-11 17:18:57 +08:00
2e30802b87 use group variables instead 2021-08-11 15:21:09 +08:00
8238d65e5f simplify template conditional 2021-08-11 14:19:19 +08:00
e27539ad60 Merge pull request #1226 from hifi/feature/synapse-txn-limit
Allow configuring synapse database transaction limit
2021-08-10 21:54:23 +03:00
bce94c5860 Allow configuring synapse database transaction limit 2021-08-10 21:09:28 +03:00
05ad620386 Update homeserver.yaml to keep up with Synapse v1.40.0
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1225
2021-08-10 17:36:44 +03:00
c5d64f4dda Merge pull request #1225 from wol-win/update_synapse
Update Synapse (1.39.0 -> 1.40.0)
2021-08-10 17:33:47 +03:00
2469ada520 Update Synapse (1.39.0 -> 1.40.0) 2021-08-10 15:32:07 +02:00
bfb61e776e GMH v0.5.7... maybe! 2021-08-10 12:58:10 +08:00
24b89f8288 Merge pull request #1223 from rndmh3ro/fix_irc_imagetag
irc appservice image tag has a 'v' now
2021-08-09 20:26:50 +03:00
24589b91f4 irc appservice image tag has a 'v' now 2021-08-09 19:01:51 +02:00
6de8b5925a Merge pull request #1222 from wol-win/feature/signal
New version of Mautrix Signal bridge (version 0.2.0)
2021-08-09 13:59:17 +03:00
f54f2827c4 Merge pull request #1221 from thomwiggers/patch-4
Update IRC appservice
2021-08-09 13:58:19 +03:00
6ecfbe98b1 New version of Mautrix Signal bridge version 0.2.0 provided through new GitLab repository location 2021-08-09 11:19:12 +02:00
d11d6f52ae Update IRC appservice
https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.29.0
2021-08-09 10:57:45 +02:00
f9bc5e2cb6 Merge pull request #1217 from rndmh3ro/patch-1
whatsapp bridge has new docker image location
2021-08-07 19:15:25 +03:00
d2a1b8b134 whatsapp bridge has new docker image location
See https://github.com/mautrix/whatsapp/releases/tag/v0.1.8
2021-08-07 15:47:24 +02:00
2e23166ed3 Merge pull request #1216 from aaronraimist/hydrogen
Upgrade Hydrogen (0.2.3 -> 0.2.5)
2021-08-07 11:34:04 +03:00
f3aae70f70 Upgrade Hydrogen (0.2.3 -> 0.2.5) 2021-08-07 02:47:51 -05:00
23006fd64e Fix email2matrix path initialization
Regression since 421f85defa
2021-08-04 17:59:49 +03:00
421f85defa Add self-building support to matrix-email2matrix 2021-08-04 15:03:45 +03:00
2697590d28 Remove some useless if conditions 2021-08-04 14:51:15 +03:00
a68ac9cb4f Split install/uninstall tasks in matrix-email2matrix 2021-08-04 14:45:07 +03:00
5fc61ed964 Upgrade Element (1.7.33 -> 1.7.34) 2021-08-04 09:09:35 +03:00
5575ad8117 Merge pull request #1211 from 0xLAITH/patch-1
Update howto-server-delegation.md
2021-08-02 12:05:32 +03:00
519eef9e4b Remove unnecessary argument from Postgres import command
The default of using the `matrix` database is better anyway.
2021-08-02 10:08:30 +03:00
dca876a8f0 Update howto-server-delegation.md
The attached code for the "Serving the Federation API with your certificates and matrix-nginx-proxy" section suggests using the matrix.<your-domain> certificate for the federation API as opposed to the necessary <your-domain> certificate for the federation to work. This can cause some confusion to readers.
2021-08-01 19:34:54 +00:00
179775b92d Upgrade Synapse (1.38.1 -> 1.39.0) 2021-07-29 18:51:22 +03:00
dfa7b6e4fd Merge pull request #1171 from BackInBash/patch-1
Updating to ma1sd v2.5.0
2021-07-28 11:09:39 +03:00
676101e999 Minor fixups for ma1sd 2.5.0
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1171
2021-07-28 11:08:50 +03:00
418506a74d Merge pull request #1207 from GoMatrixHosting/master
GoMatrixHosting v0.5.5
2021-07-27 10:45:27 +03:00
67db5a0024 GoMatrixHosting v0.5.5 2021-07-27 15:12:03 +08:00
3b5ea5cbc4 Merge pull request #1202 from maximilianschmelzer/patch-1
Update configuring-well-known.md
2021-07-26 09:08:37 +03:00
975a49be54 Update docs/self-building.md 2021-07-26 08:56:38 +03:00
16c29fb02e Merge pull request #1204 from TheRocketEquation/reminder-bot-self-build
Added selfbuild functionality to matrix-reminder-bot
2021-07-26 08:55:24 +03:00
49abe66f1d Remove unnecessary if condition
All of `setup_install.yml` only runs if `matrix_bot_matrix_reminder_bot_enabled`,
so it's not necessary to add that condition once again.
2021-07-26 08:54:35 +03:00
f5d6b01b9f Updated group_vars to update self_build based on matrix_architecture 2021-07-25 14:24:38 -07:00
012440c309 Allow for self-building of reminder-bot 2021-07-25 14:16:37 -07:00
cc5a8ee1a9 Merge pull request #1203 from hardye/jitsi-auth-fix
Restore authentication for Jitsi Meet
2021-07-25 21:19:25 +03:00
03e8c75a30 Restore authentication for Jitsi Meet. 2021-07-25 16:23:51 +02:00
5ddd7d9ea1 Update configuring-well-known.md 2021-07-24 13:12:32 +02:00
4cf8e3cbbb Merge pull request #1199 from sakkiii/patch-2
Update prometheus node exporter (1.1.2 -> 1.2.0)
2021-07-23 09:33:18 +03:00
4a2b169fc9 systemd-timesyncd for ubuntu 2021-07-22 23:42:53 +05:30
f4a9c4dff2 Update prometheus node exporter (1.1.2 -> 1.2.0) 2021-07-22 23:29:43 +05:30
112d8d8243 Upgrade Synapse (1.38.0 -> 1.38.1) 2021-07-22 19:48:29 +03:00
7f0b8fef0a Merge branch 'spantaleev:master' into patch-1 2021-07-21 23:50:19 +05:30
31244e7fcc Merge pull request #1180 from Toorero/master
Fixed self-build functionality for mautrix-signal
2021-07-21 15:17:57 +03:00
7d9ee3e2fb Remove unnecessary if-condition 2021-07-21 15:17:17 +03:00
a21696f687 Fix some if-checks
We'd rather not suppress pull errors or run self-build tasks if pulling fails.
2021-07-21 15:16:14 +03:00
ead4b00c09 Reverted back to manual self-build detection 2021-07-21 14:05:21 +02:00
30339cd313 Merge pull request #1139 from sakkiii/jitsi-fix
Jitsi Update -> stable-5963
2021-07-20 09:57:11 +03:00
d08a78ff1f remove prosody JICOFO_COMPONENT_SECRET 2021-07-20 12:09:11 +05:30
4105ba854b Merge pull request #1147 from datenkollektiv-net/allow-custom-federation-fqn
Make federation domain customizable
2021-07-20 09:12:16 +03:00
25e6eb27ab Merge pull request #1183 from Toorero/mautrix-telegram-selfbuild-fix
Fixed mautrix-telegram selfbuild not working on non amd64 platforms
2021-07-20 09:06:04 +03:00
fb221c8179 Do not needlessly ignore errors 2021-07-20 09:05:13 +03:00
51b94d9987 Merge pull request #1194 from meyerrj/master
Update main.yml for matrix-reminder-bot
2021-07-20 08:57:59 +03:00
931b16fa66 Merge pull request #1193 from sakkiii/patch-2
Upgrade hydrogen (v0.2.0 -> v0.2.3)
2021-07-20 08:57:23 +03:00
9345d840be root path for the base domain is wrong (#1189)
* root path for the base domain

* Fix path when running in a container

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2021-07-20 08:48:11 +03:00
a8373d6bd4 Update main.yml
Fixes an issue related to https://github.com/anoadragon453/matrix-reminder-bot/issues/86
2021-07-19 19:02:29 -05:00
8b304445e5 Upgrade hydrogen (v0.2.0 -> v0.2.3) 2021-07-19 23:31:39 +05:30
5209a17da1 migrate from ntp to chrony 2021-07-19 23:11:30 +05:30
70cb27138c Upgrade Element (1.7.32 -> 1.7.33) 2021-07-19 18:57:19 +03:00
b3793f3595 Masked TARGETARCH via docker.build.arg directive 2021-07-17 14:40:21 +02:00
3a28100131 Renamed matrix_lottieconverter to matrix_telegram_lottieconverter 2021-07-17 14:05:13 +02:00
5d0b213d19 Merge pull request #1185 from JokerGermany/patch-2
Docs - Change link to the correct Step
2021-07-17 09:42:09 +03:00
814fb33f45 Merge pull request #1184 from Toorero/apache-example-enhancements
Added proxy config for synapse-admin
2021-07-17 09:30:10 +03:00
635b0cf670 Merge pull request #1182 from Toorero/fix-missing-proto-header
Added missing X-Forwarded-Proto header
2021-07-17 09:29:25 +03:00
5b692b6e76 Docs 2021-07-16 22:15:34 +02:00
7f15787d54 Fixed mautrix-telegram selfbuild not working on non amd64 platforms 2021-07-16 18:58:55 +02:00
b5ab31240f Added missing X-Forwarded-Proto header 2021-07-16 18:52:26 +02:00
f933ba14ae Fixed self-build functionality for mautrix-signal and added self-build functionality for signald 2021-07-16 13:27:36 +02:00
593922f5c3 Merge pull request #1179 from sakkiii/patch-1
Upgrade grafana (8.0.5 -> 8.0.6)
2021-07-15 20:53:29 +03:00
e90979e91f Upgrade grafana (8.0.5 -> 8.0.6) 2021-07-15 23:10:45 +05:30
a435c64c13 Merge pull request #1176 from GoMatrixHosting/master
GoMatrixHosting v0.5.4
2021-07-15 09:28:59 +03:00
76ceebff0a Merge pull request #1175 from Toorero/master
Added selfbuild functionality to mautrix-signal bridge
2021-07-15 09:26:37 +03:00
86e4649578 GoMatrixHosting v0.5.5 2021-07-15 12:47:00 +08:00
03006eb5ab GoMatrixHosting v0.5.5 2021-07-15 12:46:38 +08:00
245986c793 Merge remote-tracking branch 'upstream/master' 2021-07-15 12:44:54 +08:00
ab0d2055ba Added proxy config for synapse-admin 2021-07-15 02:15:07 +02:00
aa6398a948 Autoset self-build for mautrix-signal bridge 2021-07-14 22:46:17 +02:00
f732a75ca5 Added selfbuild functionality to mautrix-signal bridge 2021-07-14 03:11:13 +02:00
4bb205a0a8 Merge pull request #1174 from juusujanar/SynapseUpdate
Update synapse to v1.38.0
2021-07-13 22:32:08 +03:00
c198320f65 feat: update synapse to 1.38.0 2021-07-13 20:56:47 +03:00
2e0eddde9d Upgrade matrix-corporal (2.1.0 -> 2.1.1) 2021-07-10 19:40:53 +03:00
22857b4598 Merge pull request #1170 from sakkiii/patch-2
Upgrade certbot, nginx & grafana
2021-07-10 17:56:38 +03:00
83b9908c9d Update to ma1sd v2.5.0 2021-07-10 14:09:08 +02:00
cd54147144 Upgrade grafana (8.0.3 -> 8.0.5) 2021-07-09 17:55:15 +05:30
7a51268dfc Upgrade certbot & nginx
Upgrade certbot (v1.16.0 -> v1.17.0) nginx (1.21.0 -> 1.21.1)
2021-07-09 17:51:27 +05:30
3fa895fe96 Upgrade Element (1.7.31 -> 1.7.32) 2021-07-09 11:26:13 +03:00
3fc077d135 Merge pull request #1169 from sakkiii/patch-1
prometheus version 2.28.0 -> 2.28.1
2021-07-08 09:07:21 +03:00
f6e0cbe5f3 did i even update this 2021-07-08 09:46:29 +08:00
49455a9ce0 prometheus version 2.28.0 -> 2.28.1 2021-07-07 21:53:05 +05:30
a26b056163 Merge pull request #1166 from GoMatrixHosting/master
GoMatrixHosting 0.5.2
2021-07-06 10:23:44 +03:00
1c938c72fd GoMatrixHosting 0.5.2 2021-07-06 14:51:36 +08:00
5c0c0d5af0 Merge pull request #1162 from hauau/patch-1
Fix docs template syntax error in OIDC SSO example
2021-07-05 10:53:18 +03:00
29b6d011d7 Fix template syntax error in OIDC SSO example 2021-07-05 14:47:50 +07:00
b4d7ab0b53 Merge pull request #1153 from Cadair/worker_prom
Add worker metrics to prometheus exporter
2021-07-05 10:30:02 +03:00
b6d71b9da1 Fix self-building for Coturn
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1158
2021-07-03 10:06:09 +03:00
d4fb0cc02f Merge pull request #1160 from dotneutron/skip-config-validation-for-disabled-synapse
Skip importing validate_config task when Synapse is disabled
2021-07-03 10:04:39 +03:00
1ad9bba88f Skip importing validate_config task when Synapse is disabled 2021-07-02 20:58:57 +03:00
2aa457efcc Use a prom variable and not a synapse role variable 2021-07-02 15:41:36 +00:00
3777334778 Do not try to use TURNS when TLS disabled for Coturn
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1145
2021-07-02 17:05:08 +03:00
8b146f083e Disable turns when Let's Encrypt is used
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1145
2021-07-02 17:00:40 +03:00
935967f3a6 Merge pull request #1157 from GoMatrixHosting/master
GoMatrixHosting v0.5.1
2021-07-02 10:18:51 +03:00
7acaef89df GoMatrixHosting v0.5.1 2021-07-02 14:11:09 +08:00
ea8daabf86 Merge pull request #1156 from aaronraimist/mjolnir-0.1.18
Upgrade mjolnir (0.1.17 -> 0.1.18) and implement self building
2021-07-02 08:53:07 +03:00
ccde2362fc Merge branch 'master' into mjolnir-0.1.18 2021-07-02 08:52:58 +03:00
672ddf2b89 Merge pull request #1155 from wol-win/doc_correction
Correct broken documentation link
2021-07-02 08:30:45 +03:00
55452c3068 Update Mjolnir (v0.1.17 -> v0.1.18) 2021-07-02 08:28:44 +03:00
fc16fbda5b Remove a bunch of redundant Ansible <2.8 self building checks 2021-07-02 00:14:37 -05:00
19ed8d1d17 Upgrade mjolnir (0.1.17 -> 0.1.18) and implement self building 2021-07-02 00:10:59 -05:00
a7d51d493a Correct broken documentation link
Recently, documentation on Synapse has been changed from .rst to .md. Therefore, the current links for the purge history API were resulting in a 404 error.
2021-07-01 22:16:01 +02:00
sak
d87947c779 remove jibri 2021-07-01 15:42:18 +05:30
sak
7b2211da8e remove jibri 2021-07-01 15:37:20 +05:30
6294e58304 Fix Content-Security-Policy for Element
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1154

According to
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy,
having both a header and the `<meta>`-tag provided by Element itself is
not a problem. The 2 CSP policies get combined.
2021-07-01 12:41:05 +03:00
09ee5ce52e we index from 0 apparently 2021-06-30 21:32:19 +00:00
3d063f6ace make them show as jobs in grafana 2021-06-30 21:30:18 +00:00
5df4d68829 Make federation domain customizable 2021-06-30 23:02:27 +02:00
7b52e6ad5e Add worker metrics to prometheus exporter 2021-06-30 20:52:49 +00:00
154c2bbe36 Merge pull request #1152 from DavyLandman/patch-1
Updating to latest synapse release (performance regression)
2021-06-30 18:18:08 +03:00
c9d73c6606 Updating to latest synapse release (performance regression)
https://github.com/matrix-org/synapse/releases/tag/v1.37.1
2021-06-30 16:15:00 +02:00
7439dd6333 Merge pull request #1151 from sakkiii/patch-2
postgres minor updates
2021-06-30 09:13:59 +03:00
d338090f00 postgres minor updates 2021-06-30 10:00:52 +05:30
3da4b684a5 Upgrade Synapse (1.36.0 -> 1.37.0) 2021-06-29 13:55:09 +03:00
c9789e95bd Merge pull request #1150 from thomwiggers/patch-3
Update IRC bridge
2021-06-29 13:55:04 +03:00
eb5619fd4b Update IRC bridge 2021-06-29 12:45:21 +02:00
3719107a3b Merge pull request #1149 from MichaelSasser/bugfix/#1148-heisenbridge-fix-service-name
heisenbridge: fix service name in setup_uninstall.yml
2021-06-29 13:28:58 +03:00
7578a355c4 heisenbridge fix service name 2021-06-29 12:15:03 +02:00
8a369f61f3 Merge branch 'spantaleev:master' into jitsi-fix 2021-06-26 21:54:42 +05:30
dc84edd5e8 Merge pull request #1143 from aaronraimist/patch-1
Remove asterisks from configuring-dns.md
2021-06-25 11:21:25 +03:00
26a5c28274 Remove asterisks from configuring-dns.md
These previously denoted optional DNS records but now optional records are a separate table so they are unnecessary.
2021-06-25 03:14:00 -05:00
1694487315 Merge pull request #1142 from hanthor/patch-2
Update hydrogen main.yml
2021-06-24 19:47:08 +03:00
ddbb4b2acc Update main.yml
update to v0.2.0
2021-06-24 12:10:45 -04:00
2d740dbebd Mount /data in matrix-redis container
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1140
2021-06-24 10:10:52 +03:00
f56e334035 Merge pull request #1141 from sakkiii/patch-1
Update prometheus  v2.27.1 -> v2.28.0
2021-06-24 09:31:40 +03:00
2b881e245b Update prometheus v2.27.1 -> v2.28.0 2021-06-24 10:07:14 +05:30
0cc17ab2ca matrix_jitsi_jicofo_component_secret validation 2021-06-23 23:55:55 +05:30
f2f1b20e44 jicofo client proxy connection 2021-06-23 23:17:24 +05:30
b132941e71 Merge branch 'spantaleev:master' into jitsi-fix 2021-06-23 21:31:25 +05:30
18533b5000 Merge pull request #1135 from sakkiii/patch-1
Coturn update 4.5.2 -> 4.5.2-r2
2021-06-23 11:15:41 +03:00
d019e9078a Remove unused variables from mx-puppet-* bridges
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1131
2021-06-23 09:56:31 +03:00
6ede9c8cd6 network-alias added to fix domains 2021-06-22 23:59:49 +05:30
d9e943aaaa minor fix 2021-06-22 23:32:32 +05:30
0c8a3c401f jibri service 2021-06-22 23:20:09 +05:30
04805f35a7 Coturn update 4.5.2 -> 4.5.2-r2 2021-06-22 22:39:35 +05:30
b19fa3acb2 Upgrade Element (1.7.30 -> 1.7.31) 2021-06-22 10:18:58 +03:00
1250208907 whitespaces 2021-06-22 12:24:35 +05:30
c0cd2a3c93 JICOFO_RESERVATION_ENABLED contains whitespaces. 2021-06-22 12:14:14 +05:30
f8be36327c jibri service 2021-06-22 11:11:01 +05:30
3e011bafd5 jibri env 2021-06-22 00:18:29 +05:30
8af2d818b1 domain_fix 2021-06-21 23:55:26 +05:30
2ca92b76b6 stable-5963 2021-06-21 23:37:08 +05:30
5a1dabe14f Bump exim-relay Docker image tag
The new one is based on Alpine 3.14, instead of Alpine 3.13.
2021-06-21 15:32:34 +03:00
282844209a Merge pull request #1105 from blaztinn/centos-stream-8
Add support for CentOS (Stream) 8
2021-06-21 15:32:11 +03:00
10fba32368 Merge pull request #1131 from dreamflasher/patch-3
according to discussion in channel not needed anymore
2021-06-21 13:58:55 +03:00
a790096adf matrix_mx_puppet_slack_client_id deprecated 2021-06-21 12:13:20 +02:00
ed078998b5 deprecated 2021-06-21 12:12:07 +02:00
ce28e87f4b according to discussion in channel not needed anymore 2021-06-20 16:38:04 +02:00
efa7486b88 Merge pull request #1127 from sakkiii/patch-3
Content-Security-Policy For Element Web
2021-06-20 10:01:43 +03:00
c48699f29d Merge pull request #1128 from sakkiii/patch-4
Update grafana 8.0.2 -> 8.0.3
2021-06-20 09:59:57 +03:00
b826171139 Update grafana 8.0.2 -> 8.0.3 2021-06-18 23:32:30 +05:30
0217644b48 Content-Security-Policy For Element Web
https://github.com/vector-im/element-web#configuration-best-practices
2021-06-18 23:27:23 +05:30
3dd32d2512 Update worker endpoints
Should have been part of 9daeb39710
2021-06-15 19:28:21 +03:00
9daeb39710 Upgrade Synapse (1.35.1 -> 1.36.0) 2021-06-15 19:25:41 +03:00
1e46785a0d Merge pull request #1124 from N07070/patch-1
Update configuring-playbook-synapse.md
2021-06-15 15:58:58 +03:00
1da3531a3d Update configuring-playbook-synapse.md
Added an example for configuring the variables for the OpenID, that might fails because the variables are not defined for the playbook parsing, but Synapse's own config file parsing.
2021-06-15 14:56:23 +02:00
e545869454 Merge pull request #1123 from GoMatrixHosting/master
GoMatrixHosting v0.5.0
2021-06-14 18:19:31 +03:00
4fb1134ad1 GoMatrixHosting v0.5.0 2021-06-14 22:36:49 +08:00
a7fcb7c04d Merge pull request #1122 from sakkiii/patch-2
update hydrogen v0.1.56 -> v0.1.57
2021-06-14 17:26:30 +03:00
68f91660d3 Merge pull request #1121 from sakkiii/patch-1
Update grafana 8.0.0 -> 8.0.2
2021-06-14 17:26:05 +03:00
4cd5835e11 update hydrogen v0.1.56 -> v0.1.57
https://github.com/vector-im/hydrogen-web/releases/tag/v0.1.57
2021-06-14 19:46:08 +05:30
08d1a5c2e7 Update grafana 8.0.0 -> 8.0.2 2021-06-14 19:41:23 +05:30
72bc9b5cfc Add support for CentOS (Stream) 8 2021-06-12 10:49:38 +02:00
1cf4d5ea7f Upgrade Redis (6.0.10 -> 6.2.4) 2021-06-10 12:25:55 +03:00
963f38ee7b Upgrade certbot (v1.14.0 -> v1.16.0) 2021-06-10 12:18:42 +03:00
c6002b0a0d Merge pull request #1114 from skepticalwaves/jitsi-prosody-modules
Add ability to configure jitsi-prosody to load custom modules
2021-06-09 08:12:35 +03:00
2e8a2bdf7d Add empty default for jitsi-prosody modules 2021-06-08 22:56:09 -04:00
2886dc3939 Add module configuration to jitsi-prosody env file 2021-06-08 22:55:19 -04:00
6c9c78ddae Merge pull request #1112 from sakkiii/patch-2
coturn update
2021-06-08 22:46:11 +03:00
94571ea5cf Merge pull request #1113 from sakkiii/patch-1
Update grafana 7.5.7 -> 8.0.0
2021-06-08 22:44:54 +03:00
be1d1d0b7c matrix_grafana_content_security_policy_customized default false 2021-06-09 00:52:52 +05:30
2d9ba82337 Update element 7.5.7 -> 8.0.0 2021-06-09 00:48:55 +05:30
00eeccbd39 Merge branch 'patch-2' of https://github.com/sakkiii/matrix-docker-ansible-deploy into patch-2 2021-06-09 00:45:58 +05:30
1cc1202df2 update coturn 2021-06-08 23:59:31 +05:30
96b1f896bd Merge pull request #1111 from rakshazi/patch-11
Update element 1.7.29 -> 1.7.30
2021-06-08 17:59:06 +03:00
77fd1bff22 Update element 1.7.29 -> 1.7.30 2021-06-08 14:57:49 +00:00
fa76c1ee5b Do not run self-build Ansible version-check, if component not enabled
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1108
2021-06-08 08:59:02 +03:00
bec9eaeb50 Merge pull request #1108 from tommes0815/fix-hydrogen-for-ansible2.7
fix error when running with Ansible 2.7 in the hydrogen setup
2021-06-07 22:09:39 +03:00
9f6ae12332 Merge pull request #1109 from thomwiggers/patch-2
Update IRC appservice
2021-06-07 22:07:43 +03:00
3c05cc04bc Update IRC appservice 2021-06-07 10:41:18 +02:00
7f4e71b22a fix error when running with Ansible 2.7 in the hydrogen setup
Without this the hydrogen task would fail for Ansible 2.7 even when hydrogen is not enabled.
2021-06-06 14:37:17 +02:00
8cf3bdb772 Link to Heisenbridge demonstration video 2021-06-04 09:32:31 +03:00
4e7367afbb Merge pull request #1106 from GoMatrixHosting/master
GoMatrixHosting v0.4.9
2021-06-04 08:32:03 +03:00
528ccb6713 Merge remote-tracking branch 'upstream/master' 2021-06-04 13:14:10 +08:00
122a92fa1c GoMatrixHosting v0.4.9 update 2021-06-04 13:10:45 +08:00
ab08a4f60e Upgrade Synapse (1.35.0 -> 1.35.1) 2021-06-03 16:27:15 +03:00
04f92dfccf Merge pull request #1104 from hanthor/patch-1
Update hydrogen-web version to v0.1.56
2021-06-03 09:20:33 +03:00
b772d11342 Update main.yml
Update hydrogen-web version to v0.1.56
2021-06-02 15:37:56 -04:00
b1f1c28ef0 Upgrade Synapse (1.34.0 -> 1.35.0) 2021-06-01 19:14:59 +03:00
45f05a0f3b Merge pull request #1101 from GoMatrixHosting/master
GoMatrixHosting v0.4.8
2021-06-01 11:18:27 +03:00
10c68a8cf4 Merge remote-tracking branch 'upstream/master' 2021-06-01 16:10:54 +08:00
ad7bbd6442 merge upstream 2021-06-01 16:00:13 +08:00
a2bf38854c Merge pull request #1098 from sakkiii/patch-2
prometheus security update 2.27.1
2021-05-31 10:33:26 +03:00
7d179502d3 Merge pull request #1099 from hifi/fix/heisenbridge-identd-unpriv
Heisenbridge identd on unprivileged port
2021-05-31 08:46:57 +03:00
3581e1b37b Heisenbridge identd on unprivileged port
Fixes running the container as an unprivileged user.
2021-05-31 08:43:57 +03:00
897c982517 prometheus security update 2.27.1 2021-05-30 14:32:51 +05:30
56464dff72 Merge pull request #1097 from pushytoxin/autocomplete
Fix local/bin scripts autocompletion by adding rx perms to everyone
2021-05-28 11:42:32 +03:00
bee14550ab Fix local/bin scripts autocompletion by adding rx perms to everyone
It's mildly annoying when trying to execute these scripts while logged
in as a regular user, as the missing execute permissions will hinder
autocompletion even when trying to use with sudo.

These shell scripts don't contain secrets, but may fail when ran by a
regular user. The failure is due to the lack of access to the /matrix
directory, and does not result in any damage.
2021-05-28 10:39:27 +02:00
4880dcceb0 Fix OCSP-stapling-related errors due to missing resolver
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1057
2021-05-28 11:14:33 +03:00
595c8c1af4 Merge pull request #1096 from wol-win/master
Minor correction
2021-05-28 10:43:21 +03:00
28b8bb0bf1 Minor correction 2021-05-28 09:31:55 +02:00
9924847f57 Merge pull request #1094 from coetzeer/master
Add support for a prometheus postgres exporter
2021-05-28 08:42:46 +03:00
518ec83272 Merge pull request #1095 from aaronraimist/patch-1
Update IRC channel
2021-05-28 08:40:22 +03:00
cf1a9078b0 Update IRC channel 2021-05-27 15:21:47 -05:00
4e2780ff88 Add support for a prometheus postgres exporter
This commit introduces a new role that downloads and installs the
prometheus community postgres exporter  https://github.com/prometheus-community/postgres_exporter.
A new credential is added to matrix_postgres_additional_databases that
allows the exporter access to the database to gather statistics.
A new dashboard was added to the grafana role, with some refactoring
to enable the dashboard only if the new role is enabled.
I've included some basic instructions for how to enable the role in
the Docs section.

In terms of testing, I've tested enabling the role, and disabling
it to make sure it cleans up the container and systemd role.
2021-05-27 20:13:29 +01:00
1cb6a0c96f Merge pull request #1093 from jezcope/fix/irc-db-migrate-after-disable
Check IRC appservice service is present before stopping it
2021-05-27 09:19:18 +03:00
a8dbd93f61 Check irc service is present before stopping it 2021-05-26 20:41:52 +01:00
36e583cc21 Merge pull request #1092 from wol-win/server_migration_doc_update
Server migration doc update
2021-05-26 18:04:00 +03:00
c791d1900c Improve wording 2021-05-26 18:03:47 +03:00
54e1c67e53 Update maintenance-migrating.md 2021-05-26 16:31:01 +02:00
8472848286 Annotate server migration
Annotate server migration with a note in regard to migration between different architectures and the need to dump/restore the database.
2021-05-26 16:30:08 +02:00
b120259d1c Merge pull request #1091 from wol-win/postgres_documentation
Update PostgreSQL Maintenance page
2021-05-26 15:01:14 +03:00
1b41e9c7dd Update PostgreSQL Maintenance page
Added a mid-sized VPS configuration with configuration changes to the PostgreSQL database config.

Deleted single quotes in one of the examples to unify the examples
2021-05-26 13:50:35 +02:00
3ae8013c10 Merge pull request #1089 from thomwiggers/patch-1
Update IRC appservice
2021-05-26 14:10:36 +03:00
af4bd50c2a Update IRC appservice 2021-05-26 11:04:47 +02:00
b3351d2a53 Merge pull request #1083 from haghighi-ahmad/active-directory-support-for-ldap_auth_provider
Synapse LDAP auth: add support for Active Directory
2021-05-26 10:53:27 +03:00
661bf89223 Merge pull request #1086 from hidraulicChicken/mjolnir_antispam
Mjolnir antispam
2021-05-26 10:52:27 +03:00
d61fe94bae Fix incorrect path in Mjolnir uninstallation tasks 2021-05-26 10:52:15 +03:00
BG
f8ba97ac14 Removing antispam note. 2021-05-26 09:05:28 +02:00
719ecb03a8 Add note about pgtune.leopard.in.ua 2021-05-26 09:55:40 +03:00
5e313ca0fc Merge pull request #1088 from rakshazi/patch-9
Updated nginx-proxy (1.20.0 -> 1.21.0)
2021-05-25 20:14:07 +03:00
4ddd8bbb84 Updated nginx-proxy (1.20.0 -> 1.21.0) 2021-05-25 17:06:39 +00:00
BG
9a7eddd563 Updating docs. 2021-05-25 16:59:49 +02:00
BG
763952395b Adding mjolnir antispam synapse modul. 2021-05-25 16:43:30 +02:00
bca37aba1e Merge pull request #1085 from GoMatrixHosting/master
GoMatrixHosting v0.4.7
2021-05-25 16:28:40 +03:00
6f40d78353 fix random edits to upstream 2021-05-25 21:25:40 +08:00
36910348cf Switch synapse-admin to tagged release (0.8.1)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1084
2021-05-25 16:21:11 +03:00
ea6e344d05 merge upstream 2021-05-25 21:10:34 +08:00
85777e8f96 merge with upstream 2021-05-25 21:08:00 +08:00
209d59070e Avoiding if(s), fix #1083
Conversation: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1083#discussion_r638671860

Signed-off-by: Ahmad Haghighi <haghighi@fedoraproject.org>
2021-05-25 15:41:58 +04:30
ee088d5d46 Synapse LDAP auth: add support for Active Directory
Signed-off-by: Ahmad Haghighi <haghighi@fedoraproject.org>
2021-05-25 15:36:41 +04:30
1ed0857019 Fix syntax error
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1024
2021-05-25 11:45:17 +03:00
c8a2309b78 Merge pull request #1024 from sakkiii/master
HSTS preload + X-XSS enables
2021-05-25 11:42:39 +03:00
4a4a7f136e changes added to hydrogen client 2021-05-25 11:42:51 +05:30
25e67b51d1 Merge branch 'spantaleev:master' into master 2021-05-25 11:40:56 +05:30
3436f9c10a rename to matrix_nginx_proxy_hsts_preload_enabled 2021-05-25 00:56:59 +05:30
0648b1b618 Upgrade Element (1.7.28 -> 1.7.29) 2021-05-24 20:38:48 +03:00
8d1d85ab4a Merge pull request #1082 from sakkiii/patch-2
OCSP Stapling SSL manually-managed
2021-05-24 16:00:46 +03:00
dcd5e5657d OCSP Stapling SSL manually-managed
# chain.pem file is required for 'ssl_trusted_certificate`
2021-05-24 17:59:34 +05:30
7cc5328ede Comments & Ref 2021-05-24 17:20:54 +05:30
df2d91970d matrix_nginx_proxy_xss_protection 2021-05-24 17:02:47 +05:30
d4c7a90b5c Merge pull request #1076 from Eagle-251/Jitsi-Prosody-OwnNginxCompatibility
Allow Jitsi XMPP websocket support for users using own webserver.
2021-05-24 11:07:05 +03:00
be7fb18ca9 Merge pull request #1081 from aaronraimist/patch-1
Remove synapse-admin incompatibility note
2021-05-24 09:41:10 +03:00
794035790c Remove synapse-admin incompatibility note 2021-05-23 16:53:14 -05:00
409cd2b9a3 Source port binding from group vars in line other components 2021-05-23 14:06:18 +02:00
ef6a7e051c Fix missing port binding. 2021-05-22 15:55:50 +02:00
1bb6ed97ae Make port bindings default for those disabling nginx proxy
I changed the conditional statement in prosody systemd template to bind the localhost port by default if people have set ```matrix_nginx_proxy_enabled == false ```.
Hopefully that should make it the default behaviour now.
2021-05-22 15:53:42 +02:00
c3abcad151 Merge pull request #1079 from aaronraimist/hydrogen-fix
Fix hydrogen
2021-05-22 09:25:18 +03:00
3c0452ff5a Remove unnecessary bind for config.json, use proper nginx.conf 2021-05-21 17:22:40 -05:00
4a772e50f4 Allow Jitsi XMPP webscoket support for users using own webserver.
Added:
 - Conditional localhost Port bindings for Jitsi Prosody systemd template
- Added variable to main.yml to allow overriding from vars.yml
2021-05-21 15:26:06 +02:00
4879fdd46b Merge pull request #1075 from throwawayay/patch-1
docs: update Configuring DNS in Hydrogen setup
2021-05-21 15:09:20 +03:00
b2d0a8a5e5 docs: update Configuring DNS in Hydrogen setup 2021-05-21 07:40:01 -04:00
7a086d7dd9 Mention Hydrgeon in self-building.md
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1055
2021-05-21 14:01:01 +03:00
55b92d5a13 Fix another typo 2021-05-21 13:52:33 +03:00
0a662dcbcd Fix typo 2021-05-21 13:52:07 +03:00
c5d52d49da Announce Hydrogen support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1055
2021-05-21 13:50:49 +03:00
1ffce13b35 Merge pull request #1055 from aaronraimist/hydrogen
Add Hydrogen
2021-05-21 13:41:46 +03:00
6f80292745 Add OCSP stapling support and other SSL optimizations to Hydrogen vhost
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1061
and https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1057
2021-05-21 13:40:37 +03:00
d0de21ab34 Delete Hydrogen nginx configuration file when disabled 2021-05-21 12:58:32 +03:00
b714222384 typo 2021-05-21 04:45:40 -05:00
ac4ede20af Add docs 2021-05-21 04:43:04 -05:00
1633f61018 Only install config.json when self building 2021-05-21 04:23:06 -05:00
04548f8df2 Merge branch 'master' into hydrogen 2021-05-21 04:09:18 -05:00
9437f78c9e Build using custom config.json, add CSP, update to 0.1.53 2021-05-21 03:45:21 -05:00
47b4608b96 Fail in a friendlier way when trying to self-build on Ansible <= 2.8
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070

Related discussion here: 1ab507349c (commitcomment-51108407)
2021-05-21 11:15:05 +03:00
9a8a81fdb0 Disable OCSP stapling when self-signed certificates are used
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1073
2021-05-21 08:38:20 +03:00
fa31a1548b OCSP Stapling self-signed issue
Fix https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1073
2021-05-21 10:26:26 +05:30
1ab507349c Fix self-building for various components on Ansible < 2.8
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
2021-05-20 08:43:20 +03:00
dd7a23ede6 Merge pull request #1068 from rafaelsgirao/master
Fix typo in examples/caddy2
2021-05-19 22:27:27 +03:00
15f4972dbf Remove syntax-breaking pagination line
Seems to have been added by mistake.
2021-05-19 22:25:27 +03:00
729f348864 Fix typo in examples/caddy2 2021-05-19 20:11:50 +01:00
66615c43a3 Merge pull request #1065 from sakkiii/patch-1
Update grafana (7.5.6->7.5.7)
2021-05-19 22:07:59 +03:00
f7e854c7cc Merge pull request #1067 from theCalcaholic/fix/set-grafana-root-url
Configure root_url in granafa.ini
2021-05-19 22:07:36 +03:00
d3c7be177a Improve wording 2021-05-19 22:07:23 +03:00
68aa5094cf docs/configuring-playbook-prometheus-grafana.md: Add documentation on how to override the grafana fqn 2021-05-19 19:57:35 +02:00
3dcbed6353 roles/matrix-grafana: Set root_url in granafa.ini 2021-05-19 19:52:58 +02:00
8529ca4c17 Update grafana (7.5.6->7.5.7) 2021-05-19 22:30:03 +05:30
073d920a62 Merge pull request #1061 from sakkiii/ssl_enhancement
Optimize SSL session
2021-05-19 17:14:52 +03:00
3fae13762d Cross-link similar bridges 2021-05-19 13:32:05 +03:00
9e98450bba Announce Heisenbridge support 2021-05-19 13:21:11 +03:00
1796658a69 Merge pull request #1052 from hifi/feature/heisenbridge
Add Heisenbridge
2021-05-19 13:12:11 +03:00
544915ff76 Add Heisenbridge 2021-05-19 10:42:21 +03:00
21eb39f986 Mention matrix_common_after_systemd_service_start_wait_for_timeout_seconds in failure message
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1062
2021-05-19 08:46:13 +03:00
ee46fabdca Make waiting time for --tags=start configurable
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1062
2021-05-19 08:39:55 +03:00
e9b878b9e9 Optimize SSL session 2021-05-18 19:39:43 +05:30
2606b41b16 Merge pull request #1053 from rakshazi/patch-7
Fixed typos in README
2021-05-18 08:54:22 +03:00
e6afa05f7b Enable OCSP stapling for the federation port
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1057

Not sure if this is beneficial though.
2021-05-18 08:15:42 +03:00
57a6a98a50 Fix incorrect SSL certificate path
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1057
2021-05-18 07:58:47 +03:00
b9c4e8ce16 Merge pull request #1057 from sakkiii/ssl_staple
Enable OCSP Stapling
2021-05-18 07:50:35 +03:00
d31b55b2a7 SSL-enabled block only 2021-05-18 03:24:06 +05:30
8bf4c52838 Fix typo 2021-05-17 14:32:31 +00:00
9c0fb98c0d Merge pull request #1059 from rakshazi/patch-8
Updated Element version (1.7.27 -> 1.7.28)
2021-05-17 17:06:55 +03:00
400371f6dd Updated Element version (1.7.27 -> 1.7.28) 2021-05-17 13:15:12 +00:00
578754e60e Bring back newlines 2021-05-17 13:10:54 +00:00
d156c8caa2 Upgrade Synapse (1.33.2 -> 1.34.0) 2021-05-17 14:58:07 +03:00
e4dd933cf0 Make missing /_synapse/admin correctly return 404 responses
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1058

We may try to capture such calls and return a friendlier response (HTML
or JSON) saying "The Synapse Admin API is not enabled", but that may not
be desirable.

For now, we stick to what "upstream" recommends: "simply
don't proxy these APIs", which should lead to the same kind of 404 that
we have now.
See here: 6660912226/docs/reverse_proxy.md (synapse-administration-endpoints)
2021-05-17 11:45:35 +03:00
2c3da6599b Added warning 2021-05-15 16:07:52 +05:30
0dd4459799 matrix_nginx_proxy_ocsp_stapling_enabled variable added 2021-05-15 16:01:49 +05:30
c05021640d Enable OCSP Stapling 2021-05-15 15:57:05 +05:30
ca361af616 Add Hydrogen 2021-05-15 04:23:36 -05:00
b191e461a5 Merge branch 'spantaleev:master' into master 2021-05-15 12:20:02 +05:30
df99c338d3 Merge pull request #1054 from sakkiii/patch-1
Update prometheus & grafana
2021-05-15 09:18:10 +03:00
4bd7d8b5e4 Update grafana (7.5.5->7.5.6) 2021-05-14 18:59:21 +05:30
d5cd3d443d Update prometheus (2.26.0->2.27.0) 2021-05-14 18:56:33 +05:30
322b750aad Merge branch 'spantaleev:master' into master 2021-05-14 18:54:47 +05:30
226d6a6f03 Fixed typos in README
Hi,
I used [LanguageTool](https://languagetool.org) to fix typos in README
2021-05-12 19:52:23 +00:00
f481b1a84b Upgrade matrix-mailer (4.94.2-r0 -> 4.94.2-r0-1)
Related to https://github.com/devture/exim-relay/pull/9
2021-05-12 18:09:08 +03:00
71e271893b Merge pull request #1049 from rakshazi/patch-6
Added services built by community
2021-05-12 10:48:43 +03:00
8cace72d95 Updated description with @GoMatrixHosting edits 2021-05-12 10:40:48 +03:00
8e6f1876f5 Switch to :latest version of synapse-admin
Related to https://github.com/Awesome-Technologies/synapse-admin/issues/132

We should switch back when >0.8.0 gets released.
2021-05-11 19:25:12 +03:00
9121ef2604 Added services built by community
Hi,
After discussion with Slavi ([link to private chat](https://matrix.to/#/!GWNJzoHiCybWdouIiP:etke.cc/$_XpK8-ucbWvxY667IVZ9ROZPqSVkG2UGglNagrbDQmw?via=etke.cc&via=devture.com)), we agreed on adding services that use matrix-docker-ansible-deploy as a core to list in README file.

@GoMatrixHosting could you approve the description is correct, please? (Sorry, I just put what I know about your service)
2021-05-11 16:02:13 +00:00
840ff5e19b Merge pull request #1048 from sakkiii/Synapse-patch
Upgrade Synapse (1.33.1 -> 1.33.2)
2021-05-11 17:35:09 +03:00
8fc55b30c5 Upgrade Synapse (1.33.1 -> 1.33.2)
This release fixes a denial of service attack (CVE-2021-29471) against Synapse's push rules implementation. Server admins are encouraged to upgrade.

Ref: https://github.com/matrix-org/synapse/releases/tag/v1.33.2
2021-05-11 19:06:30 +05:30
2d4b039c55 Merge pull request #1046 from GoMatrixHosting/master
GoMatrixHosting v0.4.6
2021-05-11 09:07:48 +03:00
2b4bada72a fix conditional 2021-05-11 14:05:45 +08:00
0adcef65e6 fix conditional 2021-05-11 13:58:42 +08:00
f70102e40c no dashes in usernames 2021-05-11 13:55:13 +08:00
f03adc83f1 Fix matrix_ma1sd_dns_overwrite_homeserver_client_value when not matrix_nginx_proxy_enabled
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1047
2021-05-11 08:50:04 +03:00
f4657b2cdb Upgrade Element (1.7.26 -> 1.7.27) 2021-05-11 08:22:43 +03:00
f827a3cc46 GMH 0.4.6 update 2 2021-05-10 18:54:25 +08:00
4e6f6e179b GMH 0.4.6 update 2021-05-10 18:50:10 +08:00
29cf6a0087 Merge branch 'spantaleev:master' into master 2021-05-10 15:10:18 +05:30
3dcc006932 Fix self-building for Coturn
689dcea773 wasn't enough. The `upstream/..` tags are
just upstream sources, without the alpine-based Dockerfile.
We need to use the `docker/..` tags for that (or `master`)

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1032

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1023

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1009
2021-05-10 11:35:53 +03:00
33f0074862 Upgrade matrix-mailer (4.94-r0 -> 4.94.2-r0)
Related to https://github.com/devture/exim-relay/issues/6
2021-05-10 11:23:44 +03:00
c19508087a Merge pull request #1036 from sakkiii/grafana-csp
Grafana csp template backward compatible with older browsers
2021-05-10 10:09:13 +03:00
a198b87455 Upgrade synapse-admin (0.7.2 -> 0.8.0)
Related to https://github.com/Awesome-Technologies/synapse-admin/issues/132
2021-05-10 10:06:12 +03:00
62112789d6 Merge pull request #1044 from aaronraimist/patch-2
Mention updating Nginx
2021-05-09 10:30:39 +03:00
ac8a9989aa Merge pull request #1043 from aaronraimist/patch-1
Tweak maintenance-synapse.md
2021-05-09 10:29:36 +03:00
65035c62c1 Mention updating Nginx 2021-05-08 15:16:31 -05:00
cdaf4695c0 Tweak maintenance-synapse.md 2021-05-08 15:07:54 -05:00
867ebb52ab Merge pull request #1037 from pushytoxin/jitsi-5765-1
Update Jitsi (5142 -> 5765-1)
2021-05-08 12:35:29 +03:00
bb0810302d Merge branch 'spantaleev:master' into master 2021-05-07 23:03:55 +05:30
61220ea487 Upgrade Synapse (1.33.0 -> 1.33.1) 2021-05-06 20:47:09 +03:00
9174448e5e get rid of this {% else %} 2021-05-06 12:46:17 +05:30
0d5fe2d9f7 Update roles/matrix-grafana/templates/grafana.ini.j2
Co-authored-by: Aaron Raimist <aaron@raim.ist>
2021-05-06 12:38:40 +05:30
b10655ebb1 Jitsi XMPP Websocket support
Jitsi-meet enabled websockets by default, claiming better reliability.
Matrix-nginx-proxy configuration has been set up according to the
Prosody documentation: https://prosody.im/doc/websocket
2021-05-05 19:10:58 +02:00
116bcaa13b Update jitsi to stable-5765-1
Changelog:
https://github.com/jitsi/docker-jitsi-meet/blob/stable-5765-1/CHANGELOG.md
2021-05-05 19:10:58 +02:00
37de7fc96a Updated Reference 2021-05-05 22:25:38 +05:30
303de935d5 grafana CSP backward compatible with older browsers 2021-05-05 22:12:56 +05:30
d4d1e2e922 Upgrade Synapse (1.32.2 -> 1.33.0) 2021-05-05 19:18:53 +03:00
b09a805939 Merge pull request #1031 from thedanbob/nginx-1.20.0
Update nginx (1.19.10 -> 1.20.0)
2021-05-04 10:41:02 +03:00
6fdc71c40b Merge pull request #1030 from thedanbob/grafana-7.5.5
Update grafana (7.5.4 -> 7.5.5)
2021-05-04 10:40:21 +03:00
cfaa3e598a Update nginx (1.19.10 -> 1.20.0) 2021-05-03 16:00:11 -05:00
bec5933db4 Update grafana (7.5.4 -> 7.5.5) 2021-05-03 15:57:06 -05:00
612d1fa455 Merge pull request #1027 from GoMatrixHosting/master
GoMatrixHosting v0.4.5 update
2021-04-29 07:54:20 +03:00
067b61e779 GoMatrixHosting v0.4.5 update 2021-04-29 08:06:45 +08:00
2409c33ea2 Upgrade Element (1.7.25 -> 1.7.26) 2021-04-27 17:21:31 +03:00
a90835e5a3 Merge pull request #1026 from benkuly/master
updated matrix-sms-bridge
2021-04-27 16:35:33 +03:00
49cb2635a2 updated matrix-sms-bridge 2021-04-27 14:39:58 +02:00
961a0e5c6c Merge pull request #1025 from GoMatrixHosting/master
GoMatrixHosting v0.4.4 update
2021-04-26 18:05:27 +03:00
a14bf6c2ed GoMatrixHosting v0.4.4 update 2021-04-26 20:00:32 +08:00
689dcea773 Fix self-building for Coturn
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1023

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1009
2021-04-24 20:31:25 +03:00
40fe6bd5c1 variable matrix_nginx_proxy_hsts_preload_enable added 2021-04-24 20:04:20 +05:30
389dc26615 Fix Synapse generic worker balancing
Potentially fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1022
2021-04-24 11:52:45 +03:00
5b4fdf9b87 Merge branch 'master' of https://github.com/sakkiii/matrix-docker-ansible-deploy 2021-04-24 12:15:34 +05:30
0ccf0fbf1c HSTS preload + X-XSS enables
**HSTS Preloading:**
In its strongest and recommended form, the [HSTS policy](https://www.chromium.org/hsts) includes all subdomains, and indicates a willingness to be “preloaded” into browsers:
`Strict-Transport-Security: max-age=31536000; includeSubDomains; preload`

**X-Xss-Protection:**
`1; mode=block` which tells the browser to block the response if it detects an attack rather than sanitising the script.
2021-04-24 12:12:34 +05:30
3564635f0f Merge branch 'master' into master 2021-04-24 11:46:52 +05:30
29bba5161b Element More security headers
More Production ready nginx headers for Matrix client element.
2021-04-24 11:10:40 +05:30
7cf2f352aa Add not about incompatibility between Synapse and Synapse Admin
Related to https://github.com/Awesome-Technologies/synapse-admin/issues/132
2021-04-23 07:17:04 +03:00
f6b371164c Remove useless variable 2021-04-23 07:07:18 +03:00
62c0587b6a Use Alpine-based Coturn 2021-04-22 15:05:37 +03:00
72a7cb4145 Merge pull request #1018 from GoMatrixHosting/master
GoMatrixHosting v0.4.3
2021-04-22 14:23:30 +03:00
e3fa3e12bc Upgrade Synapse (1.31 -> 1.32.2) 2021-04-22 14:22:07 +03:00
652dbbd244 Merge remote-tracking branch 'upstream/master' 2021-04-22 11:47:57 +08:00
50d7209c5b GMH v04.3 2021-04-22 11:45:59 +08:00
378fabf177 Revert "Upgrade Synapse (1.31 -> 1.32.1)"
This reverts commit 1fb54a37cb.

Seems like it's been pulled or something. It used to exist, but not
anymore. Not sure what's going on.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1017

Related to
https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1010
2021-04-21 23:36:58 +03:00
1fb54a37cb Upgrade Synapse (1.31 -> 1.32.1)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1010
2021-04-21 18:47:15 +03:00
c95ca4badc Do not ask everyone to whitelist Jitsi ports
It's an optional service, so we shouldn't bother most people with it.
2021-04-21 14:48:54 +03:00
d691cc0920 Move variable definition a bit 2021-04-21 13:59:20 +03:00
e00ef04b57 Add opt-out-of-FLoC headers by default 2021-04-21 13:58:24 +03:00
7fa7e3e5a6 Merge pull request #1012 from aaronraimist/facebook-docs
Update mautrix-facebook docs
2021-04-21 09:27:11 +03:00
42783972fd Merge pull request #1011 from aaronraimist/synapse-admin
Upgrade synapse-admin (0.7.0 -> 0.7.2)
2021-04-21 09:24:30 +03:00
ca786cc343 Revert "Upgrade Synapse (1.31 -> 1.32)"
This reverts commit f825c7c263.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1010
2021-04-20 23:40:55 +03:00
9ee1d23afe Update mautrix-facebook docs 2021-04-20 15:17:26 -05:00
bb64b80697 Upgrade synapse-admin (0.7.0 -> 0.7.2) 2021-04-20 15:14:08 -05:00
f825c7c263 Upgrade Synapse (1.31 -> 1.32) 2021-04-20 17:47:34 +03:00
7eda6a3c12 Merge pull request #1009 from thedanbob/coturn-official
Switch to official coturn image
2021-04-19 18:41:17 +03:00
adcecaffaf Fix connectivity between prometheus and prometheus-node-exporter
Expected to have regressed after https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1008

This patch comes with its own downsides (as described in the comments
for matrix_prometheus_node_exporter_container_http_host_bind_port),
but at least there's:
- no security issue
- metrics remain readable from matrix-prometheus (even if the network metrics are inaccurate)

A better patch is certainly welcome.
2021-04-19 18:29:03 +03:00
b2ca1f2829 Add capability required by new image 2021-04-19 10:16:26 -05:00
8da8979a24 Do not override matrix_prometheus_node_exporter_container_http_host_bind_port when matrix-nginx-proxy disabled
Not sure why this had been done in the first place.
It doesn't make any sense.

There's no relation between matrix-nginx-proxy and
prometheus-node-exporter.
2021-04-19 17:45:27 +03:00
398b9f5d66 Merge pull request #1008 from sakkiii/master
security** node-exporter data & port publicly exposed
2021-04-19 17:31:00 +03:00
82f7e1c7c0 Update docs 2021-04-19 09:05:04 -05:00
29177d4922 Switch to official coturn docker image 2021-04-19 09:04:08 -05:00
sak
88a30fb5ed security** node-exporter data & port publicly exposed 2021-04-19 15:35:23 +05:30
sak
0f9a455719 Revert "security** node-exporter data & port publicly exposed"
This reverts commit d0cd709c08.
2021-04-19 15:24:36 +05:30
sak
d0cd709c08 security** node-exporter data & port publicly exposed 2021-04-19 15:15:59 +05:30
4a1739f604 Merge pull request #1007 from teutat3s/fix/nginx-dont-send-version
Don't expose nginx version with each response
2021-04-18 21:33:11 +03:00
2bf7c26cfa Don't expose nginx version with each response 2021-04-18 16:24:13 +02:00
c565e72f0d Merge pull request #1003 from sakkiii/patch-2
updated matrix_grafana_docker_image to v7.5.4
2021-04-18 09:56:12 +03:00
51b46697c5 Merge pull request #1005 from sakkiii/master
Improve security for grafana
2021-04-18 09:50:59 +03:00
ac8a835fd2 Merge pull request #1006 from thedanbob/fix-prometheus-network
Fix prometheus network for ansible < 2.8
2021-04-18 09:09:37 +03:00
f04614a993 Fix prometheus network for ansible < 2.8 2021-04-17 20:15:26 -05:00
badd81e0ec Revert "Attempt to fix docker_network result discrepancy between Ansible versions"
This reverts commit 68ca81c8c2.
2021-04-17 19:31:20 +03:00
1958d0792d Update matrix-client-element.conf.j2 2021-04-17 21:33:07 +05:30
b6d45c5fd8 Merge branch 'master' of https://github.com/sakkiii/matrix-docker-ansible-deploy 2021-04-17 21:03:26 +05:30
05042f5ff1 Improve security grafana
- duplicate X-Content-Type-Options
- X-Frame-Options header
- Referrer-Policy [Might consider adding variable]
- Secure flag with cookies
- matrix_grafana_content_security_policy variable for [Content Security Policy](https://grafana.com/docs/grafana/latest/administration/configuration/#content_security_policy)
2021-04-17 21:03:05 +05:30
27377e099d updated matrix_grafana_docker_image to v7.5.4
Latest stable grafana version is [7.5.4 (2021-04-14)](https://github.com/grafana/grafana/releases/tag/v7.5.4)
2021-04-17 17:31:14 +05:30
68ca81c8c2 Attempt to fix docker_network result discrepancy between Ansible versions
Supposedly fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/907
2021-04-17 11:42:06 +03:00
9c1f41eadf Merge pull request #1002 from thedanbob/node-exporter-1.1.2
Update prometheus node exporter (1.1.0->1.1.2)
2021-04-17 11:15:13 +03:00
92925e5537 Merge pull request #1001 from thedanbob/prometheus-2.26.0
Update prometheus (2.24.1->2.26.0)
2021-04-17 11:14:53 +03:00
8a550ce67c Update prometheus (2.24.1->2.26.0) 2021-04-16 09:25:45 -05:00
83cc5c9e6a Update prometheus node exporter (1.1.0 -> 1.1.2) 2021-04-16 09:17:04 -05:00
5dc642ace1 Nginx element web: XSS protection & nosniff header
X-XSS-Protection: 1; mode=block; header, for basic XSS protection in legacy browsers.
X-Content-Type-Options: nosniff header, to disable MIME sniffing
2021-04-16 14:45:04 +05:30
fcb9e9618a Make Coturn TLSv1/v1.1 configurable
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999
2021-04-16 09:29:32 +03:00
8ae0628c2f Merge pull request #999 from sakkiii/patch-1
CoTurn Disable support for TLS 1.0 and TLS 1.1
2021-04-16 09:21:23 +03:00
540416e32d Disable support for TLS 1.0 and TLS 1.1
These old versions of TLS rely on MD5 and SHA-1, both now broken, and contain other flaws. TLS 1.0 is no longer PCI-DSS compliant and the TLS working group has adopted a document to deprecate TLS 1.0 and TLS 1.1.
2021-04-15 19:25:23 +05:30
ed3c9ccbd2 Merge pull request #998 from GoMatrixHosting/master
GoMatrixHosting v0.4.2
2021-04-15 12:20:27 +03:00
0607e01304 Merge remote-tracking branch 'upstream/master' 2021-04-15 17:08:03 +08:00
89cb5a3d7a GMH v0.4.2 update 2021-04-15 17:07:03 +08:00
c7c137df74 Upgrade nginx and certbot 2021-04-14 13:24:41 +03:00
931452bb06 Upgrade exim (4.93 -> 4.94) 2021-04-14 08:57:01 +03:00
316d7d815a Add FAQ entry about debugging SSL certificate renewal troubles 2021-04-13 10:52:38 +03:00
291621c984 Merge pull request #997 from rakshazi/patch-3
Updated Element Web 1.7.24.1 -> 1.7.25
2021-04-13 09:22:08 +03:00
4f8e1bd43a Updated Element Web 1.7.24.1 -> 1.7.25 2021-04-12 18:04:56 +00:00
68db6d028b Merge pull request #990 from haghighi-ahmad/feature-use-custom-docker-registry
use custom docker registry
2021-04-12 16:08:34 +03:00
126fbbc0cc fix typo 2021-04-12 17:23:55 +04:30
e335f3fc77 rename matrix_global_registry to matrix_container_global_registry_prefix related to #990
Signed-off-by: Ahmad Haghighi <haghighi@fedoraproject.org>
2021-04-12 17:23:55 +04:30
f52a8b6484 use custom docker registry 2021-04-12 17:23:55 +04:30
898c0a842e Merge pull request #991 from aaronraimist/arch-sanity-check
Add sanity check for server architecture
2021-04-12 10:38:14 +03:00
3d2142f88b Add sanity check for server architecture 2021-04-10 16:14:32 -05:00
f751176069 Merge pull request #987 from MarcProe/master
Fix for"nginx and two other services boot loops" #966
2021-04-09 11:39:23 +03:00
4ecfd78f92 Merge pull request #988 from aaronraimist/fix-mjolnir
Fix step 3 of Mjolnir instructions
2021-04-09 11:36:15 +03:00
3e11ee158e Fix step 3 of Mjolnir instructions 2021-04-08 13:32:44 -05:00
3e119e483e Update init.yml
fix nginx boot loop
2021-04-07 21:34:16 +02:00
4830b7d830 Upgrade Synapse for ARM64 (1.30.1 -> 1.31.0) 2021-04-06 17:22:25 +03:00
3f426de599 Upgrade Synapse (1.30.1 -> 1.31.0) 2021-04-06 16:00:10 +03:00
a1a0d91604 Make prometheus-node-exporter not overlap with Synapse metrics port
This was causing a port conflict when `matrix_nginx_proxy_enabled: false`.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/983
2021-04-06 12:23:43 +03:00
c386e8e9db Use integers for some variables
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/868
2021-04-05 11:38:23 +03:00
832e191ab8 Fix incorrect variable usage in when statement
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/868
2021-04-05 11:32:48 +03:00
1b55766927 Do not redefine matrix-postgres role vars in matrix-postgres-backup
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/868
2021-04-05 11:32:19 +03:00
298556e02e Fix undefined matrix_postgres_backup_detected_version_corresponding_docker_image
.. and prevent variable name overlap with `matrix-postgres` for the
other variables as well.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/868
2021-04-05 11:23:12 +03:00
6526087c14 Announce automated local Postgres backup support 2021-04-05 11:16:44 +03:00
37c089bb96 Minor docs improvements 2021-04-05 11:13:45 +03:00
0a107dc0ce Merge pull request #868 from foxcris/postgres-backup
- Added a postgres-backup role
2021-04-05 10:53:04 +03:00
14b8e3a3ab - fixed error with generator function 2021-04-05 09:31:32 +02:00
2178f3612f - matrix_postgres_backup_databases now uses more simple structure 2021-04-05 09:05:41 +02:00
560777cc16 Merge pull request #981 from aaronraimist/grafana
Allow special characters in Grafana password and upgrade Grafana
2021-04-04 10:04:07 +03:00
3b8d9bcb32 Merge pull request #982 from GoMatrixHosting/master
GoMatrixHosting v0.4.0 update
2021-04-04 10:03:26 +03:00
f41bfb69d2 update survey template formatting 2021-04-04 12:01:53 +08:00
814bdf5a88 update spelling 2021-04-04 11:52:26 +08:00
fbe22289bd merge with upstream and testing branch 2021-04-04 11:41:06 +08:00
458c17b9d0 Upgrade Grafana (7.4.0 -> 7.5.2) 2021-04-03 16:41:30 -05:00
504f1b6445 Allow special characters in Grafana password 2021-04-03 16:41:10 -05:00
179edb2c06 Merge pull request #980 from aaronraimist/mjolnir-doc-tweaks
Couple of additional tweaks to the mjolnir docs
2021-04-03 11:54:02 +03:00
df31694d12 Couple of additional tweaks to the mjolnir docs 2021-04-03 03:23:45 -05:00
28a6f8bd57 Announce Mjolnir bot support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/962
2021-04-03 10:52:39 +03:00
995c483856 Merge pull request #962 from aaronraimist/mjolnir
Add mjolnir
2021-04-03 10:45:29 +03:00
a37a8c76d4 Merge pull request #979 from aaronraimist/synapse-speed
Add some advice about making Synapse faster
2021-04-03 09:52:42 +03:00
26d334dcb9 Typo 2021-04-03 01:12:06 -05:00
f183add44d Merge pull request #977 from aaronraimist/simple-antispam
Upgrade synapse-simple-antispam (0.0.1 -> 0.0.3)
2021-04-03 08:45:14 +03:00
1bb4fe594d Merge pull request #978 from aaronraimist/element-1.7.24.1
Upgrade Element (1.7.24 -> 1.7.24.1)
2021-04-03 08:44:34 +03:00
598f00b335 Nice link 2021-04-02 19:28:48 -05:00
c86cc11386 Add some advice about tuning PostgreSQL 2021-04-02 19:26:41 -05:00
f85054fd80 Add some advice about making Synapse faster
Also removes some duplicate table of contents entries in maintenance-synapse.md
2021-04-02 19:10:53 -05:00
81dddd2e25 Upgrade Element (1.7.24 -> 1.7.24.1) 2021-04-02 18:43:30 -05:00
b084a35e9d Add note about making bot a server admin 2021-04-02 18:40:42 -05:00
11c93682db YOURDOMAIN -> DOMAIN 2021-04-02 18:26:50 -05:00
12a120e175 how do words good 2021-04-02 18:14:52 -05:00
219c2fdb12 Fix paths 2021-04-02 18:11:05 -05:00
c43bd412dd Upgrade synapse-simple-antispam (0.0.1 -> 0.0.3) 2021-04-02 18:08:08 -05:00
b5fb98dd28 Write some docs 2021-04-02 17:55:46 -05:00
1ecee625d5 Depend on more services, add a delay 2021-04-02 17:07:24 -05:00
a88391edf5 Merge pull request #972 from JohannesKleine/nginx-config
matrix-nginx-proxy: add custom nginx options to nginx.conf.j2
2021-03-31 10:30:57 +03:00
40b6711453 Merge pull request #973 from teutat3s/mautrix-signal/update-config
Updates to mautrix-signal config
2021-03-31 08:47:51 +03:00
0b5e903693 Updates to mautrix-signal config
See these last commits:

tulir/mautrix-signal@4fc34330c1

tulir/mautrix-signal@64bc5c36a5

tulir/mautrix-signal@ddda1666d4
2021-03-31 02:51:23 +02:00
fcd66b2889 rename variables 2021-03-30 16:41:32 +02:00
8ba1105010 rename variable 2021-03-30 15:59:10 +02:00
3a772f2f65 matrix-nginx-proxy: add custom nginx options to nginx.conf.j2 2021-03-30 14:11:20 +02:00
93960b70be Do not fail if _matrix-identity DNS SRV record missing
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/963

This also simplifies Prerequisites, which is great.

It'd be nice if we were doing these checks in some optional manner
and reporting them as helpful messages (using
`matrix_playbook_runtime_results`), but that's more complicated.
I'd rather drop these checks completely.
2021-03-30 11:24:04 +03:00
5e1cf7f8b9 Upgrade Element (1.7.23 -> 1.7.24) 2021-03-29 17:58:02 +03:00
59699e0d98 Try to make Dimension wait for Synapse
Some people have reported Dimension failing to contact
matrix-nginx-proxy/Synapse on startup. This attempts to
delay Dimension startup some more.
2021-03-29 12:35:02 +03:00
9409588513 Fix variable name typo (take 2)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/970
2021-03-29 10:59:57 +03:00
179b416ed5 Fix variable name typo
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/970
2021-03-29 09:24:35 +03:00
77d598b315 Fix Go-NEB variable definitions using the wrong type
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/969
2021-03-28 12:10:22 +03:00
49868db3de Upgrade Synapse for ARM64 (1.30.0 -> 1.30.1) 2021-03-26 16:48:15 +02:00
94487dc6a7 Upgrade Synapse for amd64 (1.30.0 -> 1.30.1) 2021-03-26 15:37:11 +02:00
5ce6d98f6c Merge pull request #967 from jdreichmann/transcaffeine/push-ephemeral-to-appservices
feat: push ephemeral events to appservices
2021-03-25 19:56:33 +02:00
dbae18fd6a feat: push ephemeral events to appservices
This adds https://github.com/matrix-org/matrix-doc/pull/2409 to the
appservice registrations, enabling synapse to push EDUs to appservices.
2021-03-25 18:49:54 +01:00
59ac8a5921 Make Dimension require matrix-nginx-proxy, if enabled
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/966
2021-03-25 11:56:34 +02:00
efbeb42857 Fix YAML indentation in docs 2021-03-25 09:02:35 +02:00
5b7dbe8275 Make matrix-synapse wanted by matrix-nginx-proxy only if enabled 2021-03-25 08:51:26 +02:00
080658a2a9 Merge pull request #964 from thedanbob/nginx-1.19.8
Update nginx (1.19.6 -> 1.19.8)
2021-03-24 17:24:48 +02:00
97d8527e00 Update nginx (1.19.6 -> 1.19.8) 2021-03-24 09:42:08 -05:00
5a4ea5f866 Make AWX enabling/disabling consistent with other playbook roles
That is:
- enabled in the role by default
- disabled in the compilation (playbook), if considered an optional
component
2021-03-24 14:02:53 +02:00
b89936afba Make bridges depend on matrix-nginx-proxy
We don't point them straight to Synapse anymore, but rather
to matrix-nginx-proxy, which forwards to Synapse (or something else).
2021-03-24 14:00:41 +02:00
19cbdce6d2 Merge pull request #963 from aaronraimist/ma1sd-srv
Make ma1sd's SRV record optional
2021-03-24 10:05:42 +02:00
c6fb7acf5f Make ma1sd's SRV record optional 2021-03-23 23:08:43 -05:00
bab8b950ca Add mjolnir 2021-03-23 22:46:08 -05:00
06c74728eb Move matrix_nginx_proxy_proxy_synapse_federation_api_enabled definition to the role
This variable was previously undefined in the role and was only getting
defined via `group_vars/matrix_servers`.

We now properly initialize it (and its good default value) in the role
itself.
2021-03-23 10:28:32 +02:00
d09609daa8 Fix Jinja2 syntax error
Fixes a regression introduced in ffe649a240
2021-03-22 17:13:10 +02:00
6a3433fbad Update Synapse for ARM64 (1.29.0 -> 1.30.0)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/958
2021-03-22 16:43:23 +02:00
ffe649a240 Update homeserver.yaml to keep up with Synapse v1.30.0
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/958
2021-03-22 16:43:10 +02:00
bb49f33c62 Merge pull request #958 from rakshazi/patch-2
Updated synapse 1.29.0 -> 1.30.0
2021-03-22 16:40:54 +02:00
74106f2a80 Updated synapse 1.29.0 -> 1.30.0 2021-03-22 14:03:42 +00:00
8bcdbdef8c Merge pull request #957 from thomwiggers/update-irc
Update IRC appservice
2021-03-22 15:34:34 +02:00
54fe59f05c Update IRC appservice 2021-03-22 12:37:35 +01:00
2737ebc290 Complain if people try to use matrix-sygnal on non-amd64 2021-03-20 13:38:27 +02:00
b824522b33 Remove unnecessary with_items statement 2021-03-20 13:34:22 +02:00
9a0222fa47 Add Sygnal support
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/683
2021-03-20 13:32:22 +02:00
54315505de Merge pull request #956 from GoMatrixHosting/master
GoMatrixHosting v0.3.2 hotfix
2021-03-20 12:56:43 +02:00
af240aef37 remove sections from task list that arent needed 2021-03-20 17:35:30 +08:00
85127bacba Merge remote-tracking branch 'upstream/master' 2021-03-20 17:21:27 +08:00
1e54b1d1a5 merge upstream 2021-03-20 17:21:02 +08:00
f99dcd611f Pass proper UID/GID to Synapse
Fixes a regression caused by a5ee39266c.

If the user id and group id were different than 991:991
(which used to be a hardcoded default for us long ago),
there was a mismatch between what Synapse was trying to use (991:991)
and what it was actually started with (in `--user=..`). It was then
trying to change ownership, which was failing.

This was mostly affecting newer installations which were not using the
991:991 defaults we had long ago (since a1c5a197a9).
2021-03-19 16:44:10 +02:00
a5ee39266c Go through start.py when launching Synapse
This allows us to benefit from helpful things it does for us,
like enabling jemalloc: https://github.com/matrix-org/synapse/pull/8553

We weren't going through `start.py` before, because it was causing some
conflict with our `docker run --user=...` stuff, but it doesn't seem
to be a problem anymore.

Having done this, we won't need to do things like
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/941
anymore.
2021-03-19 08:16:59 +02:00
3f0550b5d9 Merge pull request #948 from chagai95/patch-1
fix typo
2021-03-18 08:59:47 +02:00
ff882ceb66 Merge pull request #950 from aaronraimist/x-forwarded-proto-federation
Set X-Forwarded-Proto on federation requests
2021-03-18 08:59:19 +02:00
32b3650c12 Set X-Forwarded-Proto on federation requests 2021-03-17 18:51:10 -05:00
07fb05a4ab fix typo
ot -> to
2021-03-17 20:29:17 +01:00
41c90d2087 Merge pull request #945 from pushytoxin/master
matrix.{{ matrix_domain }} -> {{ matrix_server_fqn_matrix }}
2021-03-17 14:20:42 +02:00
2d7e7680e5 matrix.{{ matrix_domain }} -> {{ matrix_server_fqn_matrix }} 2021-03-17 12:36:45 +01:00
f4d0abbaf5 Merge pull request #944 from aaronraimist/blank-or-none
Also check if matrix_ssl_lets_encrypt_support_email is blank
2021-03-17 08:08:02 +02:00
466827139a Also check if matrix_ssl_lets_encrypt_support_email is blank 2021-03-17 00:54:05 -05:00
97c0bf1a73 Merge pull request #942 from pushytoxin/etherpad1_8_12
Upgrade Etherpad (1.8.7 -> 1.8.12)
2021-03-16 20:07:34 +02:00
60aa40845f Upgrade Etherpad (1.8.7 -> 1.8.12) 2021-03-16 18:55:58 +01:00
a872db07ee Merge pull request #940 from Zir0h/master
Another field with 'invalid input syntax for type smallint'
2021-03-16 18:03:13 +02:00
27416607d9 Another field with 'invalid input syntax for type smallint' 2021-03-16 16:38:59 +01:00
93f79c63e1 Merge pull request #939 from GoMatrixHosting/master
GoMatrixHosting v0.3.1 hotfix!
2021-03-16 16:03:43 +02:00
739cd0e31d Merge remote-tracking branch 'upstream/master' 2021-03-16 21:54:59 +08:00
5a6bdb0c3d merge upstream 2021-03-16 21:52:26 +08:00
571b70a1f4 fix for running outside of AWX 2021-03-16 21:37:19 +08:00
76fbc59b61 - adapted documentation
- removed build_database_list.yml
2021-03-16 11:50:01 +01:00
11cd1cb0fa - removed matrix_postgres_backup_db_list variable
- add matrix_postgres_backup_databases to be build on top of matrix_postgres_additional_databases
- POSTGRES_DB is now directly set from matrix_postgres_backup_databases while building the templates/env-postgres-backup.j2
2021-03-16 11:40:16 +01:00
43f7d9afb6 - removed dynamic building of the postgres db list an reused matrix_postgres_additional_databases in group_vars/matrix_servers as source for the list
- adjusted env-postgres-backup.j2 to use the new role specific variables
2021-03-16 10:49:04 +01:00
604ffe7d79 - adapted validate_config.yml to use the renamed variables 2021-03-16 10:24:47 +01:00
ecc6bdb3ca - changed variables names to use role specific one and redefine them using group_vars/matrix_servers 2021-03-16 10:18:26 +01:00
1e45eeab7b - fixed typo 2021-03-16 10:05:07 +01:00
d61236213e - Fixed typo 2021-03-16 09:59:18 +01:00
c890e351fc Remove some whitespace 2021-03-16 09:56:29 +02:00
011e95c1d2 Merge pull request #893 from GoMatrixHosting/master
matrix-awx - the GoMatrixHosting v0.3.0 initial PR
2021-03-16 08:40:15 +02:00
b46ef46663 Do not mention login before registration 2021-03-16 08:02:20 +02:00
6cbfee539c Announce Go-NEB support 2021-03-16 07:54:26 +02:00
6181861ffe Merge pull request #929 from Zir0h/master
Added support for the Go-NEB bot
2021-03-16 07:49:53 +02:00
38b3fbd6f9 Mention DNS setup
This may be especially helpful to existing playbook users
who happen to find themselves installing Go-NEB later on.
2021-03-16 07:49:43 +02:00
9c5f4ef3e2 Merge pull request #937 from rakshazi/patch-1
Updated Element 1.7.22 -> 1.7.23
2021-03-15 18:02:04 +02:00
15fc7ac007 Updated Element 1.22 -> 1.23 2021-03-15 17:55:27 +02:00
c7e9f04756 Merge pull request #936 from irregulator/nginx_check_cors
matrix-nginx-proxy: specify Origin header, comply with CORS
2021-03-15 14:49:23 +02:00
28c255539c matrix-nginx-proxy: specify Origin header, comply with CORS
Self-checks against the .well-known URIs look for the HTTP header
"Access-Control-Allow-Origin" indicating that the remode endpoint
supports CORS. But the remote server is not required to include
said header in the response if the HTTP request does not include
the "Origin" header. This is in accordance with the specification
[1] stating: 'A CORS request is an HTTP request that includes an
"Origin" header.'

This is in fact true for Gitlab pages hosting and that's why the
issue was identified.

Let's specify "Origin" header in the respective uri tasks performing
the HTTP request and ensure a CORS request.

[1] https://fetch.spec.whatwg.org/#http-requests
2021-03-15 14:24:55 +02:00
9f95cef494 Change value of client_secret to avoid confusion 2021-03-15 13:08:59 +01:00
bfe0ca6cf8 Update docs, remove hard coded matrix_domain 2021-03-15 13:04:31 +01:00
7215fd4319 Merge pull request #933 from pmontepagano/fork/require-auth-synapse-configs
Adding vars to synapse for private servers
2021-03-15 08:03:43 +02:00
5a1f3b7d67 GMH v0.3.0 2021-03-14 14:35:38 +08:00
52fe8a05b0 Adding vars to synapse for private servers. 2021-03-14 00:39:44 -03:00
7d6bf446a3 Added a link to the doc in the README 2021-03-12 16:57:49 +01:00
86cf5d8c74 api_key doesn't seem to work for the imgur service, using client_id works 2021-03-12 15:57:23 +01:00
a640d8f9a6 Remove hard coded references to homeserver and matrix domain 2021-03-12 15:36:13 +01:00
9689948e73 Use the matrix_domain var for the AcceptVerificationFromUsers field 2021-03-12 14:59:42 +01:00
49028f1b05 Added |to_json to the config.yaml template 2021-03-12 14:55:57 +01:00
aaf93cb9fd Fix indentation spaces to tabs 2021-03-12 11:11:10 +01:00
20c6bd686e Added the matrix_bot_go_neb_container_http_host_bind_port variable to allow the container to expose its listen port 2021-03-12 11:10:00 +01:00
ce14e3e8af Enable the bot in the role and disable it in the group_vars 2021-03-12 11:03:13 +01:00
7d1d3b47bc Fix the description on the service file 2021-03-12 10:31:08 +01:00
51e2547484 Added support for the Go-NEB bot 2021-03-11 19:23:01 +01:00
9b72384df7 Upgrade Synapse (1.28.0 -> 1.29.0) 2021-03-08 17:24:09 +02:00
f0698ee641 Do not overwrite X-Forwarded-For when reverse-proxying to Synapse
We have a flow like this:
1. matrix.DOMAIN vhost (matrix-domain.conf)
2. matrix-synapse vhost (matrix-synapse.conf); or matrix-corporal container, if enabled
3. (optional) matrix-synapse vhost (matrix-synapse.conf), if matrix-corporal enabled
4. matrix-synapse container

We are setting `X-Forwarded-For` correctly in step #1, but were
overwriting it in step #2 with something inaccurate.

Not doing anything in step #2 is better than doing the wrong thing.
It's probably best if we append another reverse-proxy address there
though, although what we're doing now (with this patch) seems to yield
the correct result (when matrix-corporal is not enabled).

When matrix-corporal is enabled, we still seem to do the wrong thing for
some reason. It's something to be fixed later on.
2021-03-08 17:24:09 +02:00
5516bc8896 Merge pull request #923 from aaronraimist/patch-1
Make steps in configuring-playbook.md numbered
2021-03-07 09:53:49 +02:00
df5cbcc2e1 Make steps in configuring-playbook.md numbered
instead of bullet points which make it more difficult to tell whether or not you completed all of the steps
2021-03-06 12:35:12 -06:00
88d59f97c2 - 2021-03-06 11:43:59 +01:00
11f8b5f3a7 Merge pull request #916 from jokey2k/patch-2
Adjust wait timeout
2021-03-05 10:43:36 +02:00
be23249f4b Adjust wait timeout
During first setup postgres takes its time to get up and running, resulting in "postgres in startup" exceptions from synapse if you run without additional services that come in between. Hence suggesting increasing the time a bit to avoid having an error which heals itself and thus is hard to spot for newcomers.
2021-03-02 20:07:59 +01:00
7d1522d884 Add Ko-fi donation link 2021-03-02 13:29:04 +02:00
0f647594ac Merge pull request #915 from SierraKiloBravo/add-nginx-worker-config
Added nginx proxy worker configuration to template and defaults
2021-03-02 13:04:28 +02:00
0de0716527 Added nginx proxy worker configuration to template and defaults 2021-03-02 11:30:09 +01:00
31d2e013f7 Fix typo 2021-03-02 08:02:31 +02:00
009efdad49 Fix matrix.DOMAIN/_synapse/metrics exposing
This is something that got lost during
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456
and more specifically 4d62a75f6f.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/914
2021-03-02 07:59:59 +02:00
a25b8135b8 Fix point overlap between matrix-domain and Jitsi
Mostly affects people who disable the integrated `matrix-nginx-proxy`.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456
and more specifically 4d62a75f6f.
2021-03-01 20:27:45 +02:00
c527f2930e Upgrade Element (1.7.21 -> 1.7.22) 2021-03-01 15:53:54 +02:00
fef6d57626 Remove alembic migrations for mautrix-facebook
They're gone now: b8ce80e476
2021-02-28 18:42:31 +02:00
f4e462af51 Merge remote-tracking branch 'upstream/master' 2021-02-28 22:37:49 +08:00
33ec5710d9 0.2.1 revision 2021-02-28 22:21:40 +08:00
c8d4a42367 Merge pull request #910 from hardye/le-timers-update
Run Let's Encrypt renewal checks daily instead of weekly.
2021-02-28 11:55:00 +02:00
f4930d789e Run Let's Encrypt renewal checks daily instead of weekly.
This ensures more timely updates of certifcates.
2021-02-27 21:11:22 +01:00
6baa91dd9f Do not delete matrix-ssl-lets-encrypt-certificates-renew only to recreate it later
This seems to have been added to the list of "deprecated files to
remove" by mistake.
2021-02-26 13:37:51 +02:00
ccf5915874 Upgrade Synapse for ARM64 (v1.26.0 -> v1.28.0) 2021-02-25 19:09:46 +02:00
ae091d7b2d Upgrade Synapse (v1.27.0 -> v1.28.0) 2021-02-25 13:40:35 +02:00
1ef683d366 Make nginx proxy config (when disabled) obey matrix_federation_public_port
People who were disabling matrix-nginx-proxy (in favor of their own
nginx webserver) and also overriding `matrix_federation_public_port`,
found that the generated nginx configuration still hardcoded `8448`,
which forced their nginx server to use that, regardless of the fact
that `matrix_federation_public_port` was pointing elsewhere.

We now allow for the in-container federation port to be configurable,
and also automatically wire things properly.
2021-02-24 08:19:20 +02:00
2ef1d9c537 Make healthchecks work for Synapse worker containers
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456
2021-02-24 07:59:14 +02:00
f9a0ec6fd1 Fix some bridges failing when Synapse workers enabled
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/904
2021-02-23 13:17:52 +02:00
8f7f45d6e4 Revert "trust the reverse proxy by default"
This reverts commit fd3d48bb6d.

Normally this environment variable gets referred to from `settings.json.docker`,
but we have our own full configuration, which hardcodes `"trustProxy": true`,
thus making this useless.

This has been pointed out here:
fd3d48bb6d (commitcomment-47403097)
2021-02-22 13:03:09 +02:00
50ec607433 Merge pull request #902 from tctovsli/patch-2
Added paragraph about updating DNS to get stats
2021-02-22 11:54:06 +02:00
2b96fb0cf1 Added paragraph about updating DNS to get stats
This document didn't describe that it is necessary to have a DNS-entry for stats sub-domain.
2021-02-22 10:32:02 +01:00
fd18769e55 Merge pull request #901 from marcquark/backup_postgres
Recommend a better way of backing up postgres
2021-02-22 08:37:21 +02:00
ca22355910 Update backup docs a bit 2021-02-22 08:36:42 +02:00
53869ac14a recommend a better way of backing up postgres
don't spawn an extra container
run pg_dumpall within matrix-postgres instead, ensures correct version
store under /matrix so a backup of the folder will contain a DB dump
use absolute paths just in case something in the ENV is messed up
2021-02-21 21:38:20 +01:00
994afcfeb0 Merge pull request #899 from gsouquet/patch-2
Update lower power config example
2021-02-21 14:05:56 +02:00
6768bdcf81 Update lower power config example
All other examples show the config to lower the memory usage on the server
2021-02-21 11:57:05 +00:00
0585a3ed9f Merge pull request #896 from rakshazi/add_version_to_each_role
added "matrix_%SERVICE%_version" variable to all roles
2021-02-21 12:26:17 +02:00
38044e8c93 Merge pull request #894 from gsouquet/patch-1
Update Telegram bridge setup link
2021-02-21 12:22:12 +02:00
77ab0d3e98 Do not delete Prometheus/Grafana Docker images
Same reasoning as in 1cd251ed78
2021-02-21 11:14:40 +02:00
2f887f292c added "matrix_%SERVICE%_version" variable to all roles, use it in "matrix_%SERVICE%_docker_image" var (preserving backward-compatibility) 2021-02-20 19:08:28 +02:00
25e136ee0a Update Telegram bridge setup link
Change markdown to use link instead of tags for Telegram App setup
2021-02-20 15:45:25 +00:00
4c882c513b initial PR 2021-02-20 17:19:17 +08:00
9bc0eb36ab Merge pull request #892 from MarcProe/master
add support for mautrix-instagram
2021-02-19 20:49:35 +02:00
913e0dae42 update informational files. 2021-02-19 19:39:46 +01:00
2ca8211184 Merge remote-tracking branch 'upstream/master' 2021-02-19 19:02:48 +01:00
b99372a3c5 initial commit of mautrix-instagram role 2021-02-19 17:20:26 +01:00
108aed53be Fix invalid matrix-postgres.service when matrix_postgres_process_extra_arguments is empty
This only seems to be affecting some people badly enough to cause
matrix-postgres not to start. Certain systemd versions probably handle
it better or something.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/889
(hopefully)
2021-02-19 16:33:23 +02:00
1dbdfeec07 Fix matrix-postgres stopping for consistency with other services
This probably got lost somehow in all the work that happened in
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456
2021-02-19 15:53:30 +02:00
9f91eaa54b Fix incorrect service name
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/887
2021-02-19 12:12:21 +02:00
e56fcbbc0d Announce mx-puppet-groupme support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/872
2021-02-19 11:54:50 +02:00
91c987ca7d Merge pull request #872 from xangelix/add-mx-puppet-groupme-gh
Add mx-puppet-groupme support
2021-02-19 11:42:41 +02:00
d94d0e2ca5 Merge pull request #456 from eMPee584/synapse-workers
Synapse workers
2021-02-19 11:40:36 +02:00
b754c2778b Announce Synapse workers support 2021-02-19 11:39:58 +02:00
9dc87bb948 Add Synapse worker presets for easier configuration
Adding more presets in the future would be nice.
2021-02-19 11:38:47 +02:00
eaea215282 Allow Synapse workers to be used with an external nginx webserver
We're talking about a webserver running on the same machine, which
imports the configuration files generated by the `matrix-nginx-proxy`
in the `/matrix/nginx-proxy/conf.d` directory.

Users who run an nginx webserver on some other machine will need to do
something different.
2021-02-19 11:36:48 +02:00
2f732e4234 Update Synapse worker endpoints 2021-02-19 11:36:14 +02:00
1c4d914073 Merge pull request #885 from MarcProe/fix-webhook-docs
fix wrong json parameter in webhook documentation
2021-02-19 10:52:18 +02:00
217b4a8808 Release Synapse v1.27.0 to ARM32 via self-building
Related to: https://matrix.org/blog/2021/02/18/synapse-1-27-0-released#dropping-armv7-docker-images
2021-02-19 09:10:16 +02:00
bbaaf02f8f Merge pull request #888 from pionaiki/patch-1
Add Netlify instructions
2021-02-19 08:57:45 +02:00
c3fcaa5afe Add Netlify instructions 2021-02-19 02:37:01 +01:00
d5f2d99ac7 fix wrong json parameter
fixes HTTP 400 Error: "{\"errcode\":\"M_MISSING_PARAM\",\"error\":\"Missing key 'avatar_url'\"}"
2021-02-18 20:48:56 +01:00
41fd52f327 Merge pull request #883 from pushytoxin/etherpad-no-sqlite
Remove 'sqlite3' from the Etherpad role
2021-02-18 19:16:42 +02:00
65eab14a64 Make sure Etherpad has a database to write to 2021-02-18 17:43:14 +01:00
005f4d57f9 Remove mention of sqlite3 support for Etherpad
The official Etherpad Docker image has no support for sqlite3 databases.
2021-02-18 17:39:36 +01:00
1789620901 Merge branch 'master' into synapse-workers 2021-02-18 18:24:43 +02:00
d6c4d41c2b Define instanceId property on workers
This give us the possibility to run multiple instances of
workers that that don't expose a port.

Right now, we don't support that, but in the future we could
run multiple `federation_sender` or `pusher` workers, without
them fighting over naming (previously, they'd all be named
something like `matrix-synapse-worker-pusher-0`, because
they'd all define `port` as `0`).
2021-02-18 18:19:51 +02:00
ef45b60e32 Merge pull request #882 from pushytoxin/patch-1
Use the yaml callback plugin when running ansible-playbook
2021-02-18 17:37:25 +02:00
05bf1c045b Use the yaml callback plugin when running ansible-playbook
The default default Ansible screen output encodes and prints error outputs as a hard to read dense line of JSON.
This patch changes the ansible-playbook command behavior for this project to output yaml instead.
2021-02-18 15:57:05 +01:00
9e1d108ff1 Merge pull request #881 from rakshazi/patch-1
Update synapse-admin (0.6.1 -> 0.7.0)
2021-02-18 14:14:17 +02:00
996f732f98 Update synapse-admin (0.6.1 -> 0.7.0) 2021-02-18 12:05:21 +00:00
c4e1209452 Merge branch 'master' into add-mx-puppet-groupme-gh 2021-02-17 13:52:37 -05:00
66064f0890 Merge pull request #879 from Jaykul/patch-1
Change the new app link to use classsic apps
2021-02-17 08:45:23 +02:00
85e4c16905 Change the new app link to use classsic apps
Until [this issue](https://github.com/matrix-org/matrix-appservice-slack/issues/348) is fixed
2021-02-17 01:37:52 -05:00
d33483b8ce Document that Synapse pusher worker instances are shardable
Related to:
- https://github.com/matrix-org/synapse/pull/9407
- https://github.com/matrix-org/synapse/pull/7855
2021-02-16 17:45:41 +02:00
daae74b074 Merge branch 'master' into synapse-workers 2021-02-16 17:31:40 +02:00
521160c12f Upgrade Synapse (v1.26.0 -> v1.27.0) 2021-02-16 17:30:48 +02:00
865d71e35a Upgrade Element (1.7.20 -> 1.7.21) 2021-02-16 13:44:28 +02:00
ba7148e52e Update configuring-playbook-matrix-corporal.md 2021-02-16 10:44:35 +02:00
6e72fb9a58 - added a description howto use the postgres-backup role 2021-02-15 20:41:06 +01:00
eff2b30c96 Merge pull request #876 from marcquark/fix_etherpad_binding
Fix etherpad binding
2021-02-15 12:05:57 +02:00
fd3d48bb6d trust the reverse proxy by default 2021-02-15 10:50:45 +01:00
1434c371bd safer port binding of etherpad docker container
don't bind to any host port if nginx_proxy is used
only bind to localhost if it's not used
2021-02-15 10:46:23 +01:00
61e427d690 Do not let people enable more than 1 federation_sender worker 2021-02-15 11:37:03 +02:00
85a05f38e8 Allow Synapse worker list to be generated dynamically
This leads to much easier management and potential safety
features (validation). In the future, we could try to avoid port
conflicts as well, but it didn't seem worth the effort to do it now.
Our port ranges seem large enough.

This can also pave the way for a "presets" feature
(similar to `matrix_nginx_proxy_ssl_presets`) which makes it even easier
for people to configure worker counts.
2021-02-15 11:25:35 +02:00
43059bb040 Fix metrics listeners for Synapse workers
`::` leads to errors like:

> socket.gaierror: [Errno -9] Address family for hostname not supported
2021-02-15 11:19:07 +02:00
453a4ec2d8 Relocate tasks related to Synapse workers 2021-02-15 11:18:47 +02:00
e510481e84 Merge branch 'master' into add-mx-puppet-groupme-gh 2021-02-14 13:41:16 -05:00
c15d5a58a9 Make mx-puppet-groupme tokens unique 2021-02-14 13:37:12 -05:00
5cfeae806b Merge branch 'master' into synapse-workers 2021-02-14 13:00:57 +02:00
894679750e Merge pull request #862 from s-thom/nginx-additional
Add additional domains for Let's Encrypt certificates to be obtained
2021-02-14 11:05:25 +02:00
a8e9f35708 Touch up documentation a bit 2021-02-14 11:05:05 +02:00
7d39e5153a Upgrade Postgres minor versions 2021-02-14 09:12:29 +02:00
3459cc09c9 Fix listrooms mx-puppet-groupme command 2021-02-13 12:55:30 -05:00
dc5e7eed3f Fix mx-puppet-groupme port typo 2021-02-13 11:20:35 -05:00
2b3c143487 Update mx-puppet-groupme docker image 2021-02-13 11:10:53 -05:00
c9579cf902 Add docs 2021-02-13 10:55:54 -05:00
b900a4a3ba Add groupme postgres 2021-02-13 00:50:00 -05:00
5a70a56ff0 Initial implementation 2021-02-12 23:13:30 -05:00
70a9a28ca3 Mention Prometheus/Grafana on the README 2021-02-12 16:32:49 +02:00
8434af10de Do not fail on unrelated validation tasks when Grafana not enabled 2021-02-12 15:45:19 +02:00
66d5b0e5b9 Do not fail on unrelated validation tasks when Prometheus not enabled
These validation tasks should only run when Prometheus is enabled.
2021-02-12 15:41:15 +02:00
87ce12c3eb Add note about potential breaking change 2021-02-12 14:07:26 +02:00
2ac2b02cb4 Merge pull request #838 from Peetz0r/stats
Prometheus and Grafana on stats.<domain>
2021-02-12 14:03:17 +02:00
890e4ad1af Announce Prometheus/Grafana 2021-02-12 14:02:53 +02:00
2b47258c6c Do not auto-expose metrics on matrix.DOMAIN/_synapse/metrics
.. and other documentation improvements.
2021-02-12 13:47:53 +02:00
eb9aac0ac9 Minor docs updates 2021-02-12 11:59:24 +02:00
c8ab200cb1 Break dependency between matrix-prometheus and (matrix-prometheus-node-exporter, matrix-synapse) 2021-02-12 11:59:24 +02:00
6842102e00 Split install/uninstall tasks in matrix-prometheus 2021-02-12 11:59:24 +02:00
18e31526a8 Rename some variables 2021-02-12 11:59:24 +02:00
85a260daaf Make --tags=setup-prometheus not break, relying on matrix-base facts 2021-02-12 11:59:24 +02:00
df3dd1c824 Use --read-only FS for metrics-related containers
It seems like it doesn't cause any issues for any of these services.
2021-02-12 11:59:24 +02:00
1d7d99c5cd Improve metrics docs page a bit
We mainly switch the anonymous metrics viewing variable
to false, along with other wording changes.
2021-02-12 11:59:24 +02:00
3ce9712388 Fix Grafana dashboard/datasource label 2021-02-12 11:59:24 +02:00
f0cd294628 Fix matrix-prometheus-node-exporter failure to start
The quotes around "host" for both `--pid` and `--net` were
causing trouble for me:

> docker: --pid: invalid PID mode.

and:

> docker: Error response from daemon: network "host" not found.

I've also changed the `-v` call to `--mount` for consistency with the
rest of the playbook.
2021-02-12 11:59:24 +02:00
9531d13786 Split DNS table in default and optional parts 2021-02-12 11:59:22 +02:00
11b310d259 Merge pull request #870 from efraimbart/patch-1
Fix wrong docker image being pulled
2021-02-12 10:27:02 +02:00
b7e68cb779 Fix wrong docker image being pulled
Changed `matrix_mautrix_signal_docker_image_force_pull` to `matrix_mautrix_signal_daemon_docker_image_force_pull` when force pulling the daemon
2021-02-11 22:56:37 -05:00
0fe6352cf7 - Added role to setup https://github.com/prodrigestivill/docker-postgres-backup-local container to backup all postgres databases 2021-02-11 17:18:25 +01:00
fde222a041 Update Prometheus Node Exporter 1.0.1 => 1.1.0 2021-02-10 23:11:17 +01:00
3a77261dc6 Update Grafana 7.3.7 => 7.4.0 2021-02-10 23:11:02 +01:00
144a5e6198 Register docker network info and use it for prometheus-node-exporter
Using the hardcoded IP did break while I was
messing with IPv6 stuff on the other branch
2021-02-10 22:54:42 +01:00
da82d670af Document security and privacy considerations for stats. 2021-02-10 22:54:14 +01:00
8aafb44cb8 Mention new images in docks 2021-02-10 22:54:14 +01:00
1079272563 Mention stats subdomain in docs 2021-02-10 22:54:14 +01:00
76d7e84be5 Make prometheus-node-exporter a bit more capable
By running it in a more privileged container with access to the host network stack and such
2021-02-10 22:54:14 +01:00
a10e3244d9 Documentation for graphs 2021-02-10 22:54:14 +01:00
989100b1c1 Grafana nginx proxy config 2021-02-10 22:54:14 +01:00
eb5aa93e8a Grafana
Also includes the dashboards for Synapse and for Node Exporter.

Again has only been tested on debian amd64 so far, but the grafana docker image is available for arm64 and arm32. Nice.
2021-02-10 22:54:14 +01:00
e525970b39 Prometheus Node Exporter
Basic system stats, to show stuff the synapse metrics
can't show such as resource usage by bridges, etc

Seems to work fine as well.

This too has only been tested on debian amd64 so far
2021-02-10 22:54:14 +01:00
13ef9e85cf Prometheus
Initial attempt. Seems to work fine.

Only tested on debian amd64 so far
2021-02-10 22:54:14 +01:00
96e6111aa6 Improve S3 docs around data migration 2021-02-09 22:09:08 +02:00
7e8e95a09a Make S3-mounting path configurable
This will make data migration easier.
2021-02-09 22:05:07 +02:00
21fd44a557 Merge pull request #865 from yncyrydybyl/master
Fixes: a66a604e ("Selfbuild appservice-slack bridge")
2021-02-09 07:56:42 +02:00
Yan
385b6c623e Fixes: a66a604e ("Selfbuild appservice-slack bridge") 2021-02-09 00:02:48 +01:00
722cfc4586 Merge pull request #864 from yncyrydybyl/master
fix typo from skype to slack
2021-02-08 19:44:34 +02:00
Yan
599ff34be9 fix typo from skype to slack 2021-02-08 18:22:59 +01:00
2857b22794 Merge pull request #863 from buxel/patch-1
Update configuring-dns.md
2021-02-08 14:56:32 +02:00
479d8b3e44 Update configuring-dns.md
Added note about cloudflare, related to #821
2021-02-08 11:35:31 +01:00
8a8f94eda1 Merge pull request #859 from pushytoxin/patch-1
Etherpad docs: Padname length bug
2021-02-08 10:41:56 +02:00
093ecba405 Add more documentation 2021-02-07 16:09:20 +13:00
d416b0cebe Etherpad docs: Padname length bug
Warn users of the known bug https://github.com/turt2live/matrix-dimension/issues/395
2021-02-06 12:45:54 +01:00
f7bea5bb05 Add documentation for new variable 2021-02-06 20:31:24 +13:00
064b2e533c Add variable for extra domains to get LE certs for
I felt that adding another variable was probably going to be the easiest way to do this. I may end up adding another variable to enable this feature, for consistency with some of the other things.
2021-02-06 20:02:39 +13:00
62f79af0a8 Merge pull request #857 from ptman/patch-1
Upgrade Element (1.7.19 -> 1.7.20)
2021-02-04 16:53:36 +02:00
9ad67d7cdf Upgrade Element (1.7.19 -> 1.7.20)
https://github.com/vector-im/element-web/releases/tag/v1.7.20
https://hub.docker.com/layers/vectorim/element-web/v1.7.20/images/sha256-44cae3a532d86c16940deb70866b522ba6acc8c5d7adf3c661cfc8b06f1de681?context=explore
2021-02-04 16:26:56 +02:00
1523d092f7 Merge pull request #854 from aaronraimist/element-1.7.19
Upgrade Element (1.7.18 -> 1.7.19)
2021-02-03 18:34:32 +02:00
5cb976c321 Upgrade Element (1.7.18 -> 1.7.19) 2021-02-03 10:07:43 -06:00
47f82f275d Merge pull request #853 from aaronraimist/tls1.3-fed-tester
Remove note about federation tester not working with TLS 1.3
2021-02-03 17:58:16 +02:00
47784d465a Remove note about federation tester not working with TLS 1.3 2021-02-03 09:50:58 -06:00
2467ed4ace Merge pull request #852 from julianfoad/fix-docs-mautrix-signal-links-1
Fix wrong links in mautrix-signal docs
2021-02-03 17:39:24 +02:00
b8ac089562 Fix wrong links in mautrix-signal docs 2021-02-03 13:12:57 +00:00
33e2887876 Merge pull request #851 from julianfoad/postgres-cli-allow-psql-args
Allow psql args to be given to matrix-postgres-cli
2021-02-03 15:09:41 +02:00
d1f28d17bb Allow psql args to be given to matrix-postgres-cli
This passes any arguments given to 'matrix-postgres-cli' to the 'psql' command.

Examples:
  $ # start an interactive shell connected to a given db
  $ sudo matrix-postgres-cli -d synapse
  $ # run a query, non-interactively
  $ sudo matrix-postgres-cli -d synapse -c 'SELECT group_id FROM groups;'
2021-02-03 12:59:21 +00:00
c4a05b760a Make mautrix bridges not overwrite their config
If they do, our next playbook runs would simply revert it
and report "changed" for that task.

There's no benefit to letting the bridge spew a new config file.

This does not apply to the mautrix whatsapp bridge, because that one
is written in Go (not Python) and takes different flags. There's no
equivalent flag there.
2021-02-03 13:23:18 +02:00
ee936b618d Merge pull request #848 from aaronraimist/hosts
Clarify hosts file wording
2021-02-01 11:25:05 +02:00
a8b61adb8d Clarify hosts file wording 2021-02-01 03:22:04 -06:00
889b299bc2 Merge pull request #804 from pushytoxin/matrix-etherpad
Self-hosted Etherpad
2021-01-31 09:55:46 +02:00
5df2f6cdd1 Update docs and changelog 2021-01-31 09:54:12 +02:00
7804060eee Use Etherpad 1.8.7, not :latest 2021-01-31 09:47:47 +02:00
98f9619279 Merge pull request #843 from thomwiggers/update-irc
Update IRC bridge to 0.23.0
2021-01-31 09:26:56 +02:00
c97dd5dc2d Merge pull request #845 from o8F0LY/improve-matrix-postgres-init-additional-db-user-and-role
Add double quotes 'matrix-postgres-init-additional-db-user-and-role.sql.j2' template
2021-01-31 09:11:00 +02:00
0a0c9a4efc Add double quotes to avoid synatx errors 2021-01-30 22:54:51 +01:00
0ac5bee57b Merge pull request #842 from Peetz0r/bullseye
Fixed missing quotes
2021-01-30 20:34:36 +02:00
8de739132a Update IRC bridge to 0.23.0 2021-01-30 12:47:56 +01:00
e0e459ac0c Fixed missing quotes 2021-01-30 11:58:24 +01:00
efbffa26bf Fix typo 2021-01-30 11:37:08 +02:00
63586acfff Merge pull request #841 from Peetz0r/bullseye
Use Debian Buster Docker repo on Debian Bullseye
2021-01-30 10:18:02 +02:00
473936065d Use Debian Buster Docker repo on Debian Bullseye
Future maintainer: check on https://docs.docker.com/engine/install/debian/ if Docker for
Debian 11 is released, then undo this commit
2021-01-30 09:02:41 +01:00
29e3ab6967 Merge pull request #840 from aaronraimist/readme-puppet
Add mx-puppet-skype and mx-puppet-slack to README
2021-01-30 09:29:18 +02:00
bcdc42624f Add mx-puppet-skype and mx-puppet-slack to README
I also moved matrix-sms-bridge up to match the order from container-images.md
2021-01-29 17:32:07 -06:00
1a0f64f23b Mention specs on the Prerequisites page
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/682
2021-01-28 19:21:33 +02:00
78b059d9f2 Merge pull request #834 from pushytoxin/rust_compress_database_name
Name the Synapse database on state compression import
2021-01-28 19:13:15 +02:00
2edc9cb83c Name the Synapse database on state compression import
Fixes:
https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/833
2021-01-28 17:54:02 +01:00
b7261dc098 Etherpad role: Etherpad needs Dimension
The default scalar.vector.im integrations manager doesn't support custom
URL's for etherpad, therefore Dimension needs to be enabled.
2021-01-28 15:11:22 +01:00
3ea90ca436 Upgrade Element (1.7.17 -> 1.7.18) 2021-01-28 09:23:23 +02:00
e7f3f7c431 Enable /devices endpoint for generic workers 2021-01-27 22:18:47 +02:00
26b287bd17 Upgrade certbot (1.10.1 -> 1.11.0) 2021-01-27 21:51:46 +02:00
1cd2a218de Merge branch 'master' into synapse-workers 2021-01-27 21:41:54 +02:00
c6feb0b99e Upgrade Synapse (v1.25.0 -> v1.26.0) 2021-01-27 21:41:47 +02:00
39c2d72d17 Merge branch 'master' into synapse-workers 2021-01-27 17:12:16 +02:00
008049f2a9 Fix mautrix-telegram registration file mistake
Regression since f6097fbba1
2021-01-27 17:11:46 +02:00
a49dab76f8 Merge branch 'master' into synapse-workers 2021-01-27 15:49:16 +02:00
e3290d8bcb Remove |to_json causing trouble
Fixes a regression introduced in f6097fbba1, which was cauing Synapse
to die with this error message:

> ValueError: sender_localpart needs characters which are not URL encoded.
2021-01-27 15:48:35 +02:00
a31c9603fa Merge branch 'master' into synapse-workers 2021-01-27 15:43:56 +02:00
f6097fbba1 E2BE not working for mautrix bridges
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/806
2021-01-27 15:43:33 +02:00
07f1ea24ee Make it possible to override the welcome.html.j2 template used for Element 2021-01-27 12:36:57 +02:00
d98a1ceadd Merge branch 'master' into synapse-workers 2021-01-27 10:27:17 +02:00
512f42aa76 Do not report docker kill/rm attempts as errors
These are just defensive cleanup tasks that we run.
In the good case, there's nothing to kill or remove, so they trigger an
error like this:

> Error response from daemon: Cannot kill container: something: No such container: something

and:

> Error: No such container: something

People often ask us if this is a problem, so instead of always having to
answer with "no, this is to be expected", we'd rather eliminate it now
and make logs cleaner.

In the event that:
- a container is really stuck and needs cleanup using kill/rm
- and cleanup fails, and we fail to report it because of error
suppression (`2>/dev/null`)

.. we'd still get an error when launching ("container name already in use .."),
so it shouldn't be too hard to investigate.
2021-01-27 10:22:46 +02:00
869727a402 Add comment to mautrix-facebook bridge regarding alembic migrations 2021-01-27 10:17:48 +02:00
a9af36841d Merge branch 'master' into synapse-workers 2021-01-27 09:34:29 +02:00
1aec5f9735 Merge pull request #831 from phirz/correct-faq-typos
Correct some typos in FAQ
2021-01-27 09:31:56 +02:00
deff7421fb Correct some typos in FAQ 2021-01-27 00:13:22 +01:00
e443b376b9 Improve "things to do after installation" docs section 2021-01-26 17:20:34 +02:00
346f8b3475 Fix typo 2021-01-26 10:13:08 +02:00
26542308b3 Use |to_json in more places in matrix-appservice-discord config
I don't think this was causing an issue, but it might
if the bot token has a more special value in the future.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/828
2021-01-26 10:00:07 +02:00
42f338016b Etherpad matrix-nginx-proxy configuration 2021-01-26 05:04:47 +01:00
7bc9be95cb Add map directive to the base of nginx.conf
This needs to be added for WebSocket upgrades to work properly (see doc:
http://nginx.org/en/docs/http/websocket.html)
2021-01-26 05:04:47 +01:00
38bf1eda70 Etherpad Jitsi integration 2021-01-26 05:04:47 +01:00
4b451ff782 Etherpad role 2021-01-26 05:04:47 +01:00
8355348aae Etherpad documentation 2021-01-26 05:04:47 +01:00
d9bf2f59db Fix adminme.js usage for matrix-appservice-discord (still hacky)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/795
and https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/822

A better fix will come later: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/825
2021-01-25 15:36:08 +02:00
a535226210 Stop/disable unnecessary worker services before deleting them 2021-01-25 15:20:37 +02:00
dd24942c03 Use |to_json for mautrix-telegram config
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/824
2021-01-25 15:15:27 +02:00
778b66876c Merge branch 'master' into synapse-workers 2021-01-25 14:56:55 +02:00
70dcdd41a7 Simplify matrix-remove-all
We don't have instantiated services anymore, nor
/etc/systemd/system/matrix-synapse.service.wants/ stuff.
2021-01-25 14:02:30 +02:00
d3ecc6f017 Fix bridges failing to upload media when Synapse workers are enabled 2021-01-25 13:55:08 +02:00
66cdc7bf5a Clean up worker.yaml generation a bit and make it more flexible 2021-01-25 13:02:01 +02:00
1462409b34 Fix worker listening addresses
Not specifying bind addresses for the worker resulted in this warning:

> synapse.app - 47 - WARNING - None - Failed to listen on 0.0.0.0, continuing because listening on [::]

Additionally, metrics listening only on 127.0.0.1 seems like a no-op.
Only having it accessible from within the container is likely not what
we intend. Changed that to all interfaces as well.

Whether it actually gets exposed or not depends on the systemd service
and `matrix_synapse_workers_container_host_bind_address`.
2021-01-25 12:29:47 +02:00
01747c8cc4 Prevent Synapse warning about enabling metric listeners with enable_metrics: false
> synapse.app.generic_worker - 606 - WARNING - None - Metrics listener configured, but enable_metrics is not True!
2021-01-25 12:24:12 +02:00
70796703d3 Run Synapse workers in their own containers
This switches the `docker exec` method of spawning
Synapse workers inside the `matrix-synapse` container with
dedicated containers for each worker.

We also have dedicated systemd services for each worker,
so this are now:
- more consistent with everything else (we don't use systemd
instantiated services anywhere)
- we don't need the "parse systemd instance name into worker name +
port" part
- we don't need to keep track of PIDs manually
- we don't need jq (less depenendencies)
- workers dying would be restarted by systemd correctly, like any other
service
- `docker ps` shows each worker separately and we can observe resource
usage
2021-01-25 12:14:46 +02:00
6fc214480c Fix Signal role using incorrect database string variable
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/823
2021-01-25 10:42:23 +02:00
da50fb27a0 Whitelist /_matrix/key requests for going to generic workers on the federation port 2021-01-25 09:46:50 +02:00
4d62a75f6f Get matrix-corporal to play nicely with a Synapse worker setup
We do this by creating one more layer of indirection.

First we reach some generic vhost handling matrix.DOMAIN.
A bunch of override rules are added there (capturing traffic to send to
ma1sd, etc). nginx-status and similar generic things also live there.

We then proxy to the homeserver on some other vhost (only Synapse being
available right now, but repointing this to Dendrite or other will be
possible in the future).
Then that homeserver-specific vhost does its thing to proxy to the
homeserver. It may or may not use workers, etc.

Without matrix-corporal, the flow is now:
1. matrix.DOMAIN (matrix-nginx-proxy/matrix-domain.conf)
2. matrix-nginx-proxy/matrix-synapse.conf
3. matrix-synapse

With matrix-corporal enabled, it becomes:
1. matrix.DOMAIN (matrix-nginx-proxy/matrix-domain.conf)
2. matrix-corporal
3. matrix-nginx-proxy/matrix-synapse.conf
4. matrix-synapse

(matrix-corporal gets injected at step 2).
2021-01-25 09:46:41 +02:00
c05d3d09bd Disable systemd services while stopping them
This removes some `multi-target.wants` symlinks as well, etc.

But despite systemd saying:

> Removed symlink /etc/systemd/system/matrix-synapse.service.wants/matrix-synapse-worker@appservice:0.service

.. I still see such symlinks tehre for me for some reason, so keeping the
code (below) to find & delete them still seems like a good idea.
2021-01-25 08:58:23 +02:00
63301b0ef1 Improvements around Synapse worker/metrics ports exposure
There was a `matrix_nginx_proxy_enabled|default(False)` check, but:
- it didn't seem to work reliably for some reason (hmm)
- referring to a `matrix_nginx_proxy_*` variable from within the
  `matrix-synapse` role is not ideal
- exposing always happened on `127.0.0.1`, which may not be good enough
  for some rarer setups (where the own webserver is external to the host)
2021-01-25 08:25:43 +02:00
f66a6b066b Be more specific with the Redis version being used 2021-01-25 01:34:58 +02:00
5ca68210cd Do not handle /_matrix/federation on client-server port, nor /_matrix/client stuff on federation port
I guess it didn't hurt to do it until now, but it's not great serving
federation APIs on the client-server API port, etc.

matrix-corporal doesn't work yet (still something to be solved in the
future), but its firewalling operations will also be sabotaged
by Client-Server APIs being served on the federation port (it's a way to get around its firewalling).
2021-01-24 22:22:57 +02:00
cc5cf0d725 Load roles/matrix-synapse/vars/workers.yml earlier to not break --tags=setup-nginx-proxy
If we load it at runtime, during matrix-synapse role execution,
it's good enough for matrix-synapse and all roles after that,
but.. it breaks when someone uses `--tags=setup-nginx-proxy` alone.

The downside of including this vars file like this in `setup.yml`
is that the variables contained in it cannot be overriden by the user
(in their inventory's `vars.yml`).
... but it's not like overriding these variables was possible anyway
when including them at runtime.
2021-01-24 20:19:55 +02:00
92ee3d78a0 Fix matrix-remove-all for when Synapse workers are enabled 2021-01-24 19:42:32 +02:00
8fa913dca7 Fix Ansible warning 2021-01-24 19:11:35 +02:00
42f60142c0 Merge pull request #819 from jolly-jump/patch-1
small fix to CHANGELOG.md
2021-01-24 17:24:32 +02:00
67fab21d7e Update CHANGELOG.md
propose explicit showing single quotes around the password, since I forgot to put them there.
2021-01-24 12:31:07 +00:00
9b5daf54f0 Fix wording a bit 2021-01-24 10:08:11 +02:00
07c7afb861 Make README more tidy 2021-01-24 10:04:30 +02:00
edc21f15e5 Restrict publishing worker (metrics) ports to localhost 2021-01-24 08:53:09 +01:00
183adec3d8 Merge remote-tracking branch 'origin/master' into synapse-workers 2021-01-23 15:04:11 +01:00
c8f051a42d Track workers endpoint list in repo instead of regenerating on user side 2021-01-23 14:44:36 +01:00
f2c7d79238 Drop probably incorrect comment from synapse homeserver.yaml.j2 2021-01-23 14:44:36 +01:00
a56cb34850 Notify people if /matrix/postgres/data-auto-upgrade-backup exists 2021-01-23 14:14:45 +02:00
a2422c458a Notify of remaining matrix-postgres local data in a better way 2021-01-23 14:04:51 +02:00
1cd251ed78 Don't delete Docker images which may have been pulled by another
Some people run Coturn or Jitsi, etc., by themselves and disable it
in the playbook.

Because the playbook is trying to be nice and clean up after itself,
it was deleting these Docker images.

However, people wish to pull and use them separately and would rather
they don't get deleted.

We could make this configurable for the sake of this special case, but
it's simpler to just avoid deleting these images.
It's not like this "cleaning things up" thing works anyway.
As time goes on, the playbook gets updated with newer image tags
and we leave so many images behind. If one doesn't run
`docker system prune -a` manually once in a while, they'd get swamped
with images anyway. Whether we leave a few images behind due to the lack
of this cleanup now is pretty much irrelevant.
2021-01-23 14:01:31 +02:00
f085362149 Fix some Postgres CLI scripts to target the correct database
Fixes a regression introduced in 95346f3117.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/814

Using `matrix_synapse_` variables in the `matrix-postgres` role is not
ideal, but.. this script belongs neither here, nor there.
We'll have it be like that for now.
2021-01-23 11:38:34 +02:00
acf7866442 Fix step number 2021-01-23 09:24:08 +02:00
ec9fda4cd7 Merge pull request #812 from prapooskur/master
Fixed typo
2021-01-23 08:57:43 +02:00
b61c8a7e72 fixed typo 2021-01-22 16:38:27 -08:00
c2e970ee61 Merge pull request #810 from drpaneas/irc
Selfbuild appservice-irc bridge
2021-01-22 22:43:22 +02:00
3051655d21 Ensure matrix_appservice_irc_docker_src_files_path created when self-building
The git module will create it anyway, but that would likely use `root:root`.
2021-01-22 22:42:40 +02:00
f10e3fef0d Merge branch 'master' into irc 2021-01-22 20:30:24 +00:00
e502ee33da Selfbuild appservice-irc bridge 2021-01-22 21:28:53 +01:00
0f64f4dc4b Stop using + to mean "or newer" 2021-01-22 22:05:52 +02:00
f9968b6981 Fix matrix_postgres_connection_password length check 2021-01-22 21:22:58 +02:00
3647b23628 Add some warning about ; in SQL statements (take 2) 2021-01-22 20:23:35 +02:00
49c0e254db Add some warning about ; in SQL statements
I got at least a few reports of people pasting these statements one by
one and missing the `;`.
2021-01-22 20:21:22 +02:00
2997a7fc3e Make mx-puppet-* bridges not log to files
We log everything in systemd/journald for every service already,
so there's no need for double-logging, bridges rotating log files
manually and other such nonsense.
2021-01-22 19:22:26 +02:00
f3dd346724 Try to tighten Signal bridge security 2021-01-22 18:56:08 +02:00
8ec975e3c8 Use matrix:matrix for Signal bridge (not root) 2021-01-22 18:52:20 +02:00
37909aa7a9 Create signald/{avatars,attachments,data} and rename config dir 2021-01-22 18:40:51 +02:00
88addd71fc Fix Postgres imports going to the matrix DB by default
Well, they still do go to that DB by default,
but our docs give a better command to users, which would do the right
thing.
2021-01-22 17:39:08 +02:00
bef0702fea Wait some more when starting Postgres during setup on ARM 2021-01-22 16:21:30 +02:00
3273f023dc Fix Postgres importing guide
This fixes things to make them compatible
with the changes done in 95346f3117
2021-01-22 15:50:24 +02:00
9011b166eb Merge pull request #807 from thedanbob/fix-changelog
Fix typos
2021-01-22 15:10:32 +02:00
d95f160705 Fix typos 2021-01-22 06:48:25 -06:00
89db6be568 Fix typo 2021-01-22 14:33:02 +02:00
1a3034b0c8 Fix typo 2021-01-22 14:13:56 +02:00
d3aea8f4b8 Update Postgres backup docs for ARM32 2021-01-22 14:04:36 +02:00
e88dcfa252 Mention Postgres backup 2021-01-22 13:58:55 +02:00
f9c1d62435 Fix Postgres database (-alpine) failing to start on ARM32 2021-01-22 13:52:55 +02:00
95346f3117 Reorganize Postgres access (breaking change)
In short, this makes Synapse a 2nd class citizen,
preparing for a future where it's just one-of-many homeserver software
options.

We also no longer have a default Postgres superuser password,
which improves security.

The changelog explains more as to why this was done
and how to proceed from here.
2021-01-22 13:26:12 +02:00
703f1b1a04 Add some more questions/answers to the FAQ 2021-01-21 22:07:50 +02:00
a47813585d Rename file to prevent common mistake
Prompted by this: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/779#issuecomment-764807507
2021-01-21 19:24:05 +02:00
3b5907d83d Update FAQ with details about /matrix/postgres/data-auto-upgrade-backup 2021-01-21 13:01:24 +02:00
fb28f59f8c Initial work on a FAQ document 2021-01-21 12:55:17 +02:00
068f9d5763 Merge pull request #803 from throwawayay/patch-1
Update element-web (1.7.16 -> 1.7.17)
2021-01-20 16:11:54 +02:00
a30ef0cc29 Update element-web (1.7.16 -> 1.7.17) 2021-01-20 08:35:07 -05:00
f6861e3c65 Improve wording a bit 2021-01-20 10:19:39 +02:00
024a23ed17 Upgrade mautrix-facebook to the new Postgres-only version
I had intentionally held it back in 39ea3496a4
until:
- it received more testing (there were a few bugs during the
migration, but now it seems OK)
- this migration guide was written
2021-01-20 10:12:51 +02:00
9be9f43be7 Merge pull request #801 from pushytoxin/patch-1
When validating LE certs, do not wait for a random time
2021-01-19 19:54:12 +02:00
d51ea25219 When validating LE certs, do not wait for a random time
While administering we will occasionally invoke this script interactively with the "non-interactive" switch still there, yet still sit at the desk waiting for 300 seconds for this timer to run out.

The systemd-timer already uses a 3h randomized delay for automatic renewals, which serves this purpose well.
2021-01-19 18:41:45 +01:00
39ea3496a4 Downgrade/lock mautrix-facebook to pre-mobile times
The `mobile` branch got merged to `master`, which ends up becoming
`:latest`. It's a "rewrite" of the bridge's backend and only
supports a Postgres database.

We'd like to go back (well, forward) to `:latest`, but that will take
a little longer, because:
- we need to handle and document things for people still on SQLite
(especially those with external Postgres, who are likely on SQLite for
bridges)
- I'd rather test the new builds (and migration) a bit before
releasing it to others and possibly breaking their bridge

Brave ones who are already using the bridge with Postgres
can jump on `:latest` and report their experience.
2021-01-19 18:44:15 +02:00
c9d96d8135 Fix mautrix-telegram paths creation bug 2021-01-19 09:15:34 +02:00
56c54d5cc7 Upgrade matrix-corporal (2.0.1 -> 2.1.0) 2021-01-18 18:23:17 +02:00
c1008fde44 Upgrade matrix-coturn (4.5.1.3 -> 4.5.2) 2021-01-18 00:41:47 +02:00
cf06f84608 Upgrade matrix-corporal (2.0.0 -> 2.0.1) 2021-01-17 22:05:26 +02:00
ef64c88dc7 Announce matrix-corporal v2 2021-01-17 18:48:21 +02:00
d95cbe38d7 Rename configuration setting 2021-01-17 18:29:26 +02:00
28d86e3aaa Initial work on support for matrix-corporal v2 2021-01-16 23:47:14 +02:00
6f51c1ed96 Fix Docker image link for matrix-registration
Related to 69f71f48
2021-01-16 00:26:19 +02:00
8549926395 Attempt to fix mautrix-whatsapp DB migration user table conflict
Discussed in https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/791
2021-01-15 17:13:47 +02:00
1692a28fe4 Work around annoying Docker warning about undefined $HOME
> WARNING: Error loading config file: .dockercfg: $HOME is not defined

.. which appeared in Docker 20.10.
2021-01-15 00:23:01 +02:00
26f0bbfdef Fix self-building for matrix-ma1sd on non-version tag/branch
Building `master` or something like this was failing.
2021-01-14 23:57:38 +02:00
9e936e45ad Use BuildKit for ma1sd Docker building
Newer versions (`master`) use things like `--platform=...`,
which are not supported unless we enable the new BuildKit building
backend.
2021-01-14 23:48:30 +02:00
e1690722f7 Replace cronjobs with systemd timers
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/756

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/737

I feel like timers are somewhat more complicated and dirty (compared to
cronjobs), but they come with these benefits:

- log output goes to journald
- on newer systemd distros, you can see when the timer fired, when it
will fire, etc.
- we don't need to rely on cron (reducing our dependencies to just
systemd + Docker)

Cronjobs work well, but it's one more dependency that needs to be
installed. We were even asking people to install it manually
(in `docs/prerequisites.md`), which could have gone unnoticed.

Once in a while someone says "my SSL certificates didn't renew"
and it's likely because they forgot to install a cron daemon.

Switching to systemd timers means that installation is simpler
and more unified.
2021-01-14 23:35:50 +02:00
05ca9357a8 Add .service suffix to systemd units list
We'll be adding `.timer` units later on, so it's good to be
more explicit.
2021-01-14 23:02:10 +02:00
653d1d7924 Revert "Don't self-build ma1sd every time unless git sources changed"
This reverts commit 2a25b63bb6.

Looking at other roles, we trigger building regardless of this.
It's better to always trigger it, because it's less fragile.
If the build fails and we only trigger it on "git changes"
then we won't trigger it for a while. That's not good.

Triggering it each and every time may seem like a waste,
but it supposedly runs quickly due to Docker caching.
2021-01-14 22:20:51 +02:00
6f5aaad48d Split install/uninstall tasks in matrix-coturn 2021-01-14 22:11:38 +02:00
57ea43d8b0 Remove unused variable
This variable has been useless since 2019-01-08.
We probably don't need to check for its usage anymore,
given how much time has passed since then, but ..
2021-01-14 17:47:13 +02:00
7a90eb6d4f Relocate some validation tasks 2021-01-14 17:00:46 +02:00
67dc5237c5 Merge pull request #794 from drpaneas/appservice_slack_rebuild
Selfbuild appservice-slack bridge
2021-01-14 10:47:31 +02:00
862a6276a0 Do not pull appservice-slack when self-building 2021-01-14 10:47:23 +02:00
b15da29ebb Bump Synapse to v1.25.0 for ARM 2021-01-14 10:41:47 +02:00
a66a604e53 Selfbuild appservice-slack bridge 2021-01-14 01:29:11 +01:00
48b6487d41 Use ready-made image for mautrix-telegram on arm64
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/793
2021-01-13 22:40:47 +02:00
2a25b63bb6 Don't self-build ma1sd every time unless git sources changed 2021-01-13 20:14:47 +02:00
88acc98c23 Mention LXC 2021-01-13 19:39:08 +02:00
789f9b4606 Mention matrix-bridge-mautrix-telegram in self-building docs
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/786
2021-01-13 18:01:55 +02:00
a5a44a9d3f Merge pull request #786 from drpaneas/rebuild_telegram
Local rebuild for Telegram
2021-01-13 18:01:15 +02:00
52fa7e576b Fix path typo 2021-01-13 18:00:32 +02:00
5fa30cdfcb Ensure matrix_mautrix_facebook_docker_src_files_path created
Before we potentially clone to that path, we'd better make sure it exists.

We also simplify `when` statements a bit.
Given that we're in `setup_install.yml`, we know that the bridge is enabled,
so there's no need to check for that.
2021-01-13 17:59:46 +02:00
105354a052 Remove useless comment 2021-01-13 17:56:10 +02:00
fd540d8592 Enable Telegram self-building 2021-01-13 16:51:45 +01:00
568cb3d86f Upgrade matrix-mailer (4.93-r0 -> 4.93-r1)
This is a bit misleading, because the old Docker image
was tagged as `4.93.1`. There hasn't been a `4.93.1` version yet though.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/792
2021-01-13 17:37:31 +02:00
24100342e1 Tell people that federation_ip_range_blacklist is gone
Related to d5945c6e78
2021-01-13 13:47:51 +02:00
d5945c6e78 Upgrade Synapse (v1.24.0 -> v1.25.0) for amd64 2021-01-13 13:02:49 +02:00
21d3802ed7 Fix one more URL typo 2021-01-12 22:44:55 +02:00
018f213c60 Fix URL typo 2021-01-12 22:43:28 +02:00
999fd2596f Local rebuild for Telegram 2021-01-12 19:29:50 +01:00
0b260a133f Add matrix-aux role to help with managing auxiliary files/directories 2021-01-11 22:32:52 +02:00
0f9be8321c Document --tags=list-matrix-registration-tokens
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/778
2021-01-10 10:33:36 +02:00
c6382f3c46 Merge pull request #778 from june07/master
Call API list tokens enpoint
2021-01-10 10:33:07 +02:00
5b0761bf40 Create list_tokens.yml 2021-01-09 08:52:02 -08:00
1468010194 Update main.yml 2021-01-09 08:50:34 -08:00
cd8100544b Merge remote-tracking branch 'origin/master' into synapse-workers
Sync with upstream
2021-01-08 20:58:50 +01:00
3943a747b8 Merge branch 'py-crash-master'
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/755
2021-01-08 21:31:14 +02:00
95ebff1ef1 Announce nginx SSL configuration presets 2021-01-08 21:30:13 +02:00
f7ae050eaf Remove useless quotes around ssl_ciphers value
Not sure if it breaks with them or not, but no other directive
uses quotes and the nginx docs show examples without quotes,
so we're being consistent with all of that.
2021-01-08 21:22:44 +02:00
5822ba0c01 Use a more natural if statement 2021-01-08 21:21:33 +02:00
de6ecd8818 Update inaccurate comments 2021-01-08 21:15:14 +02:00
4bc8193f69 Fix typos and improve wording 2021-01-08 21:13:01 +02:00
5156c63a76 Clean up code
Code was clean up and simplified to make it simpler and easier to
maintain. No features were modified.
2021-01-08 18:35:27 +01:00
d7dba0a2ff Update some Docker image references 2021-01-08 16:37:39 +02:00
25d423e6b6 Fix errors per spantaleev suggestions
The different configurations are now all lower case, for consistent
naming.

`matrix_nginx_proxy_ssl_config` is now called
`matrix_nginx_proxy_ssl_preset`. The different options for "modern",
"intermediate" and "old" are stored in the main.yml file, instead of
being hardcoded in the configuration files. This will improve the
maintainability of the code.

The "custom" preset was removed. Now if one of the variables is set, it
will use it instead of the preset. This will allow to mix and match more
easily, for example using all the intermediate options but only
supporting TLSv1.2. This will also provide better backward
compatibility.
2021-01-08 11:32:10 +01:00
7de51b7df3 Merge branch 'master' of https://github.com/spantaleev/matrix-docker-ansible-deploy 2021-01-07 19:45:10 +01:00
1dec01095a Merge pull request #774 from teutat3s/fix-appservice-slack-default-db-nedb
Fix appservice-slack default db: nedb
2021-01-06 23:35:28 +02:00
a2f6adbeaf Fix appservice-slack default db: nedb 2021-01-06 22:00:49 +01:00
0a977ce113 Fix incorrect path in docs 2021-01-05 22:59:35 +02:00
24d73a554d Fix incorrect federation port in Traefik example 2021-01-04 23:46:34 +02:00
3cb71e7e84 Merge branch 'master' of https://github.com/spantaleev/matrix-docker-ansible-deploy 2021-01-03 13:18:21 +01:00
6b1e25d843 Do not create matrix_bridge_sms Postgres database
That bridge only supports its own file-based database,
so preparing a Postgres database for it is pointless.
2021-01-03 10:21:59 +02:00
bcb408497d Fix broken links (mautrix bridges are not on Docker Hub) 2021-01-03 10:18:53 +02:00
23f246b0ad Mention mautrix-signal migration steps to early adopters 2021-01-03 09:19:06 +02:00
6cce5383bc Fix Ansible 2.9.6 check
Fixup for https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/769
2021-01-03 08:55:30 +02:00
2c09111a3a Actually enforce that we run on Ansible >= 2.7.1
Related to 6e652e10ad
2021-01-03 08:54:17 +02:00
8710883064 Merge pull request #743 from pushytoxin/docker_network
Drop the old workaround for an Ansible bug that has been fixed three years ago
2021-01-03 08:49:09 +02:00
6e652e10ad Bump minimium Ansible version to 2.7.1
Provoked by https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/743
2021-01-03 08:48:29 +02:00
cd2d2f594a Merge pull request #686 from laszabine/signal
Added a role for the bridge mautrix-signal
2021-01-03 08:25:01 +02:00
3b524ee815 Make mautrix-signal bridge not log to files
We try to only use console logging (going to journald) for everything,
instead of logging things twice (or more).
2021-01-03 08:20:43 +02:00
274f23f668 Make matrix-mautrix-signal-daemon.service depend on docker.service 2021-01-03 08:16:49 +02:00
da2a6682b3 Get rid of matrix_mautrix_signal_configuration_permissions
While it's kind of nice having it, it's also somewhat raw
and unnecessary.

Having a good default and not even mentioning it seems better
for most users.

People who need a more exposed bridge (rare) can use
override the default configuration using
`matrix_mautrix_signal_configuration_extension_yaml`.
2021-01-03 08:06:32 +02:00
aac400664a Announce mautrix-signal bridge 2021-01-03 07:59:49 +02:00
df8d9cfd34 Remove some TODOs
The answer to these is: it's good to have them in both places.
The role defines the obvious things it depends on (not knowing
what setup it will find itself into), and then
`group_vars/matrix_servers` "extends" it based on everything else it
knows (the homeserver being Synapse, whether or not the internal
Postgres server is being used, etc.)
2021-01-03 07:46:55 +02:00
4805637181 Add support for custom ma1sd view sesion templates 2021-01-03 07:36:09 +02:00
f84c69c164 Relocate custom ma1sd threepid email templates to config/
We used to store them in data/, but that seems inappropriate,
since it's just static configuration that the playbook can recreate.
2021-01-03 07:35:13 +02:00
b5812b539b Rename ma1sd custom email template variable
Keeps up with a1f64f5159 (diff-0ccf69eb4d59a7645eb4d0a0b077e693948edb33ad06df043bba3fb30122879b)
2021-01-03 00:58:31 +02:00
fb83eccf99 Relocate SQL template file 2021-01-03 00:58:31 +02:00
84cac25c11 added config data_dir (else in ~, which isn't set) 2021-01-02 19:01:21 +01:00
56af2b1a8c small fixes 2021-01-02 00:56:45 +01:00
89f7f3c3b8 added log level configuration 2021-01-02 00:55:55 +01:00
ffb837d4bc made the bridge use the default postgres db 2021-01-02 00:39:11 +01:00
a06c58c753 Merge branch 'master' into signal 2021-01-01 21:05:00 +01:00
e39b9ab3fd Merge pull request #772 from 0hlov3/master
Example Files for Caddy2
2020-12-29 16:35:34 +02:00
f86d781244 Updates the the caddy2 Readme and comment lines for dimension 2020-12-29 14:07:32 +01:00
63c92fc2de Adds Example for Caddy2 Jitsi 2020-12-29 12:02:12 +01:00
a1ecaf54ef Adds Example for Caddy2 Jitsi 2020-12-29 12:00:01 +01:00
1ed991e25c Merge pull request #769 from aaronraimist/check-for-buggy-ansible
Check for buggy version of Ansible that Ubuntu 20.04 provides
2020-12-29 11:19:37 +02:00
86da489b9b Never fail when stopping systemd service during (SQLite -> Postgres) migration
We need to suppress systemd service-stopping requests in certain rare
cases like https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/771

That issue seems to describe a case, where a migration from mxisd to
ma1sd was happening (DB files had just been moved), and then we were
attemping to stop `matrix-ma1sd.service` so we could import that database into
Postgres. However, there's neither `matrix-mxisd.service`, nor
`matrix-ma1sd.service` after `migrate_mxisd.yml` had just run, so
stopping `matrix-ma1sd.service` was failing.
2020-12-29 10:31:20 +02:00
8827a49e21 Check equality properly 2020-12-26 20:20:00 -06:00
3dd0517f04 Check for buggy version of Ansible that Ubuntu 20.04 provides 2020-12-26 20:13:49 -06:00
c0a62d6c17 Mention base domain serving 2020-12-24 11:56:36 +02:00
d023355d2e Fix typo 2020-12-24 11:43:35 +02:00
6403904f59 Try to make DNS SRV setup sound scarier (which it is)
We've had people who get the impression that well-known = bad,
DNS SRV = good, and who try to use DNS SRV for server delegation.

While it's true that DNS SRV can be superior for high-availability
scenarios, it's much harder to set up and comes with its own potential
downsides.

Using the well-known method is more straightforward and is enough
for almost all of us. Throwing people into the deep for no good
reason is not nice. Hopefully wording is better after this patch.
2020-12-24 11:38:06 +02:00
19d030be16 Merge pull request #3 from spantaleev/master
Merge
2020-12-24 00:25:25 +00:00
067f12b628 Merge pull request #766 from lxp/fix-postgres-upgrade
Fix concatenation of additional databases
2020-12-23 20:44:36 +02:00
befffa926b Fix concatenation of additional databases
Otherwise the postgres upgrade fails with the following error:

Unexpected templating type error occurred on ({{
  [matrix_postgres_connection_username]
  +
  matrix_postgres_additional_databases|map(attribute='username')
}}
): can only concatenate list (not "generator") to list
2020-12-23 19:24:45 +01:00
a2a4218e95 Make mautrix-python-based bridges E2EE happier
Fixes a problem like this:
> File "/usr/lib/python3.8/site-packages/mautrix/bridge/e2ee.py", line 79, in __init__
> raise RuntimeError("Unsupported database scheme")

mautrix-python's e2ee.py module expects to find `postgres://` instead of
`postgresql://`.
2020-12-23 15:39:12 +02:00
80c72615c7 Fixup all Dimension boolean fields after pgloader import
This is 8b6174786b done right. There were many more fields
that we had to account for.
2020-12-23 14:12:11 +02:00
21662af3be Archive database only after additional_psql_statements_list had executed 2020-12-23 14:12:11 +02:00
a284b6f452 Merge pull request #765 from Cadair/fix-db
Use role relative paths for references to matrix-postgres role
2020-12-23 13:38:40 +02:00
019a4d7dcd Use role relative paths for things 2020-12-23 11:34:48 +00:00
be0c599565 Feed more slashes to mautrix bridges when using SQLite
This makes the `sqlite://` URI match what we were using before
and what the config expects.
2020-12-23 13:33:25 +02:00
ea804f2f9f Do not use underscore in salts passed to sha512
Some Ansible installations choke on it, it seems.
Similar to 9f00970c90
2020-12-23 12:59:48 +02:00
8b6174786b Fixup Dimension database schema a bit after pgloader import 2020-12-23 12:57:43 +02:00
f3fc832e85 Merge pull request #764 from KloolK/patch-1
Update updating-users-passwords.md
2020-12-23 12:51:53 +02:00
9f00970c90 Do not use salts longer than 16 characters
We've hit this problem before as well. Certain Ansible installations
choke on it.
2020-12-23 12:31:52 +02:00
Jan
4675c8a715 Update updating-users-passwords.md
Fixed markdown error
2020-12-23 11:23:09 +01:00
c5f8b1f61b Fix mautrix-whatsapp Postgres connection string to not use SSL by default 2020-12-23 11:40:22 +02:00
4fe1248d95 Update changelog entry to be more informative 2020-12-23 11:21:06 +02:00
3475b98b76 Announce the big move to all-on-Postgres
Related to
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/740
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686
2020-12-23 11:02:33 +02:00
f19b29846d Merge pull request #740 from jdreichmann/postgres-per-default
postgres: create databases for all services
2020-12-23 11:00:41 +02:00
ad1425eee4 Add pgloader self-building support (for ARM) 2020-12-23 09:08:54 +02:00
8675dedbdb Add support for automatic (nedb -> Postgres) migration to matrix-appservice-slack 2020-12-22 19:56:52 +02:00
9b95e1937c Auto-restart matrix-appservice-irc after (nedb -> Postgres) migration 2020-12-22 19:34:08 +02:00
715bdf2c64 Add support for automatic (nedb -> Postgres) migration to mx-appservice-irc 2020-12-22 19:32:43 +02:00
815a80c290 Fix alignment issues 2020-12-22 17:16:56 +02:00
15f4cc924d Rename variables (_database_db_name -> _database_name) 2020-12-22 17:10:02 +02:00
ab6563ce4e Add support for automatic (Postgres -> SQLite) migration to mx-puppet-twitter 2020-12-22 17:09:08 +02:00
69cc2145d2 Add support for automatic (Postgres -> SQLite) migration to mx-puppet-steam 2020-12-22 16:51:59 +02:00
262a25f997 Add support for automatic (Postgres -> SQLite) migration to mx-puppet-slack 2020-12-22 16:39:21 +02:00
a80b5b2ca5 Merge pull request #761 from thedanbob/element-1.7.16
Update element-web (1.7.15 -> 1.7.16)
2020-12-22 16:30:40 +02:00
e49eb078a2 Add support for automatic (Postgres -> SQLite) migration to mx-puppet-skype 2020-12-22 16:29:47 +02:00
c3b63c6c97 Update element-web (1.7.15 -> 1.7.16) 2020-12-22 08:29:37 -06:00
c180fa4e83 Merge pull request #760 from thedanbob/nginx-1.19.6
Update nginx (1.19.5 -> 1.19.6)
2020-12-22 16:25:43 +02:00
10e0fa17ad Update nginx (1.19.5 -> 1.19.6) 2020-12-22 08:23:37 -06:00
d135cd9cd3 Ensure mx-puppet-discord directories are created before attempting migration
Our old (base-path -> data-path) SQLite migration can't work otherwise.

It's probably not necessary to keep it anymore, but since we still do,
at least we should take care to ensure it works.
2020-12-22 13:44:36 +02:00
44c9f4daca Add support for automatic (Postgres -> SQLite) migration to mx-puppet-instagram 2020-12-22 13:30:52 +02:00
e64758c119 Add missing restart task
Should have been part of 149872e00c
2020-12-22 13:24:53 +02:00
149872e00c Add support for automatic (Postgres -> SQLite) migration to mx-puppet-discord 2020-12-22 11:10:10 +02:00
9b4bf73587 Fix undefined variable reference 2020-12-22 11:08:07 +02:00
6488e11d69 Relocate some tasks 2020-12-22 10:52:36 +02:00
ca066217d1 Merge pull request #757 from 0x46616c6b/disable-nginx-logging-option
add option to disable nginx access log
2020-12-21 22:30:25 +02:00
dcd4716636 add option to disable nginx access log 2020-12-21 21:26:49 +01:00
d0ee86e0a5 Fix matrix_corporal_docker_image_name_prefix referencing matrix_synapse_ stuff 2020-12-21 15:44:14 +02:00
a06feba281 Merge branch 'master' of https://github.com/spantaleev/matrix-docker-ansible-deploy 2020-12-18 10:22:43 +01:00
8748f3d443 Move python{,3}-docker installation to another task
This also adds support for installing python3-docker (not python-docker)
in systems that run Python 3.
2020-12-17 11:49:56 +02:00
349fbb6434 Do not hardcode armhf for Raspbian
Raspbian doesn't seem to support arm64, so this is somewhat pointless
right now.

However, they might in the future. Doing this should also unify us
some more with `setup_debian.yml` with the ultimate goal of
eliminating `setup_raspbian.yml`.
2020-12-17 11:47:34 +02:00
a09ed58892 Ensure gnupg installed on Raspbian
It's likely installed by default, but it doesn't hurt to specify it.
It also makes us more the same with `setup_debian.yml`.
2020-12-17 11:45:32 +02:00
f545de53f7 Do not hardcode "ubuntu" for the Docker APT key URL
Well, `ubuntu` or `debian`, the same key is served right now,
so it doesn't really matter.

This seems cleaner and less prone to breakage though.
2020-12-17 11:39:18 +02:00
55f252a6ed Do not hardcode amd64 in setup_debian.yml
Until now, we've only supported non-amd64 on Raspbian.

Seems like there are now people running Debian/Ubuntu on ARM,
so we were forcing them into amd64 Docker packages.

I've gotten a report that this change fixes support
for Ubuntu Server 20.04 on RPi 4B.
2020-12-17 11:37:30 +02:00
ed159cc742 Move matrix_architecture to matrix-base
We were only defining this in `group_vars/matrix_servers`, which is
inconsistent with how we normally do things.
2020-12-17 11:33:18 +02:00
e2e6cfaa8b Document Ansible's Python interpreter discovery some more
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/570

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/641
2020-12-16 18:14:52 +02:00
db69a51653 Do not recommend usePrivilegedIntents for appservice-discord
We're getting reports of it being broken and I can confirm that the
bridge works well without it, so I don't see why we'd be asking
people to enable it.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/751
2020-12-16 16:26:15 +02:00
49b3cc024b Document the SSL changes in the CHANGELOG
The breaking changes are properly documented in the CHANGELOG.md file.
The date used is specified as XXXX-XX-XX and should be modified at the
moment of merge.
2020-12-16 10:53:11 +01:00
ff6db5fd3b Document the new variables for ngingx SSL config
The new variables created to the nginx reverse proxy are properly added
to the documentation.
2020-12-16 10:50:08 +01:00
2082242499 Add matrix_nginx_proxy_ssl_config
A new variable called `matrix_nginx_proxy_ssl_config` is created for
configuring how the nginx proxy configures SSL. Also a new configuration
validation option and other auxiliary variables are created.

A new variable configuration called `matrix_nginx_proxy_ssl_config` is
created. This allow to set the SSL configuration easily using the
default options proposed by Mozilla. The default configuration is set to
"Intermediate", removing the weak ciphers used in the old
configurations.

The new variable can also be set to "Custom" for a more granular control.
This allows to set another three variables called:

- `matrix_nginx_proxy_ssl_protocols`,
- `matrix_nginx_proxy_ssl_prefer_server_ciphers`
- `matrix_nginx_proxy_ssl_ciphers`

Also a new task is added to validate the SSL configuration variable.
2020-12-16 10:35:37 +01:00
0f4649a45c Merge branch 'master' into postgres-per-default 2020-12-16 03:35:39 +02:00
a4b8baee49 Fix inability to send (Matrix -> Discord) messages via appservice-discord
Revert "Correct inabillity for appservice-discord to connect"
This reverts commit 673e19f830.

While certain things do work even with such a local URL, sending
messages leads to an error like this:

> [DiscordBot] verbose: DiscordAPIError: Invalid Form Body
> avatar_url: Not a well formed URL.

Fixes https://github.com/Half-Shot/matrix-appservice-discord/issues/649

The sample configuration file for appservice-discord
c29cfc72f5/config/config.sample.yaml (L8)
explicitly says that we need a public URL.
2020-12-16 03:35:13 +02:00
a197968b7f Make matrix-registration use Postgres by default
Now that 0.7.2 is out, the Docker image supports Postgres
and we can do the (SQLite -> Postgres) migration.

I've also found out that we needed to fix up the `tokens.ex_date` column
data type a bit to prevent matrix-registration from raising exceptions
when comparing `datetime.now()` with `ex_date` coming from the database.

Example:

> File "/usr/local/lib/python3.8/site-packages/matrix_registration/tokens.py", line 58, in valid
> expired = self.ex_date < datetime.now()
> TypeError: can't compare offset-naive and offset-aware datetimes
2020-12-15 23:19:56 +02:00
1bd5c240e5 Add support for executing additional DB migration statements
In cases where pgloader is not enough and we need to do some additional
migration work after it, we can now use
`additional_psql_statements_list` and
`additional_psql_statements_db_name`.

This is to be used when migrating `matrix-registration`'s data at the
very least.
2020-12-15 23:18:29 +02:00
3289298ac7 Merge branch 'master' into postgres-per-default 2020-12-15 22:02:52 +02:00
69f71f48a6 Upgrade matrix-registration (v0.7.1 -> 0.7.2) and use official image
This switches us to a container image maintained by the
matrix-registration developer.

0.7.2 also supports a `base_url` configuration option we can use to
make it easier to reverse-proxy at a different base URL.

We still keep some workarounds, because of this issue:
https://github.com/ZerataX/matrix-registration/issues/47
2020-12-15 22:02:06 +02:00
6ebebcaa81 Merge pull request #754 from straend/patch-1
Missing ` in traefik domains instructions
2020-12-15 17:51:42 +02:00
6a3f6fbcb5 Missing ` in traefik domains instructions 2020-12-15 14:15:40 +02:00
e2ba46bf01 Fix Jinja2 syntax error (else if -> elif) 2020-12-14 22:40:37 +02:00
dd797ba6a7 Fix Postgres database importing/upgrading conflicts
We were running into conflicts, because having initialized
the roles (users) and databases, trying to import leads to
errors (role XXX already exists, etc.).

We were previously ignoring the Synapse database (`homeserver`)
when upgrading/importing, because that one gets created by default
whenever the container starts.

For our additional databases, it's a similar situation now.
It's not created by default as soon as Postgres starts with an empty
database, but rather we create it as part of running the playbook.

So we either need to skip those role/database creation statements
while upgrading/importing, or to avoid creating the additional database
and rely on the import for that. I've gone for the former, because
it's already similar to what we were doing and it's simpler
(it lets `setup_postgres.yml` be the same in all scenarios).
2020-12-14 22:28:20 +02:00
2a502db239 Add (SQLite + Postgres) support and automatic migration to matrix-dimension 2020-12-14 21:01:47 +02:00
0790a7b2a8 Add support for matrix_dimension_systemd_{required,wanted}_services_list
We were referencing them from `group_vars/matrix_servers` since
recently, but there were no such variables and they weren't being put to
use.
2020-12-14 20:31:07 +02:00
374f43735a Separate matrix-dimension install/uninstall tasks 2020-12-14 20:05:31 +02:00
8d74593878 Prepare matrix-registation for (SQLite + Postgres) support
Auto-migration and everything seems to work. It's just that
matrix-registration cannot load the Python modules required
for talking to a Postgres database.

Tracked here: https://github.com/ZerataX/matrix-registration/issues/44

Until this gets fixed, we'll continue default to 'sqlite'.
2020-12-14 18:58:37 +02:00
516ccb2b2b Separate matrix-registration install/uninstall tasks 2020-12-14 18:12:14 +02:00
13d8a9b39c hint supported automatic migration nedb->postgres 2020-12-14 16:33:40 +01:00
3ab7dd1abe Potentially add matrix-postgres.service as required for bridges, etc. 2020-12-14 17:22:31 +02:00
af3ea67bba Add (SQLite + Postgres) support and automatic migration to matrix-ma1sd 2020-12-14 17:16:25 +02:00
0ca48f3532 Separate matrix-ma1sd install/uninstall tasks 2020-12-14 16:57:51 +02:00
7248eb3c11 Fix syntax error in roles/matrix-bridge-appservice-irc/defaults/main.yml 2020-12-14 16:25:44 +02:00
cba973d6b5 Enable automatic (SQLite -> Postgres) migration for matrix-appservice-discord 2020-12-14 16:25:22 +02:00
13f84e2ad5 Enable automatic (SQLite -> Postgres) migration for matrix-mautrix-whatsapp 2020-12-14 16:21:01 +02:00
86a8091768 Enable automatic (SQLite -> Postgres) migration for matrix-mautrix-telegram 2020-12-14 16:19:54 +02:00
3ba8520266 Enable automatic (SQLite -> Postgres) migration for matrix-mautrix-hangouts 2020-12-14 16:18:38 +02:00
bbc08722c5 Enable automatic (SQLite -> Postgres) migration for matrix-mautrix-facebook 2020-12-14 16:14:23 +02:00
c1431b28f0 Make use of matrix_postgres_db_migration_request.caller 2020-12-14 16:13:57 +02:00
ac37091d01 Enable automatic (SQLite -> Postgres) migration for matrix-reminder-bot 2020-12-14 16:03:40 +02:00
dc7850e83c Fix wording and variable names a bit 2020-12-14 16:03:40 +02:00
bc376c2fb2 Add database migration utility to matrix-postgres role 2020-12-14 16:03:40 +02:00
54da61f81b add postgres support mx-appservice-[slack|irc] with fallback to nedb in role and migration notice 2020-12-14 14:08:35 +01:00
e3a0c9adda Add (Postgres + SQLite) support to matrix-reminder-bot
This has been tested and appears to work.
2020-12-14 15:02:11 +02:00
dde1c9f899 Fix indentation causing YAML syntax error 2020-12-14 14:53:35 +02:00
aa828ff9f6 Separate matrix-reminder-bot install/uninstall tasks 2020-12-14 14:50:04 +02:00
b9a04a7f95 Rename some remaining matrix_*_postgres_* vars back to matrix_*_database_*
Looks like there are some that I missed in 087dbe4ddc
2020-12-14 14:42:18 +02:00
5d70bc1376 add postgres support for mx-puppet-* with fallback to sqlite in role and migration notice 2020-12-14 13:22:58 +01:00
087dbe4ddc Rename matrix_*_postgres_* back to matrix_*_database_*
I was thinking that it makes sense to be more specific,
and using `_postgres_` also separated these variables
from the `_database_` variables that ended up in bridge configuration.

However, @jdreichmann makes a good point
(https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/740#discussion_r542281102)
that we don't need to be so specific and can allow for other engines (like MySQL) to use these variables.
2020-12-14 13:02:47 +02:00
ce21ea3640 Add (Postgres + SQLite) support to matrix-mautrix-hangouts bridge
I don't use this bridge, so this is completely untested.
2020-12-14 12:34:59 +02:00
43d6ff2af8 Fix sqlite usage for mautrix-facebook/mautrix-telegram
Regression since 2d99ade72f and 9bf8ce878e, respectively.

When SQLite is to be used, these bridges expect an `sqlite://`
connection string, and not a plain file name (path), like Appservice
Discord and mautrix-whatsapp do.
2020-12-14 12:30:10 +02:00
6c77eae969 Add (Postgres + SQLite) support to matrix-mautrix-whatsapp bridge
I don't use this bridge, so this is completely untested.
2020-12-14 12:24:37 +02:00
2848322461 Remove some remaining _database_password usage in favor of _postgres_pasword
The only one that remains is `matrix_synapse_database_password`, but
that's something old and should be dealt with separately in the future
(unless it remains as it is).
2020-12-14 12:19:35 +02:00
6a2dd8088c Fix typo (matrix_telegram_facebook_postgres_hostname -> matrix_mautrix_telegram_postgres_hostname)
Related to 9bf8ce878e.
2020-12-14 12:13:10 +02:00
05dd091133 Rename _database_hostname to _postgres_hostname
Should have been done during 2a99e84b5b, but I've missed it.

Because of this, 9bf8ce878e was also incomplete and would have caused
an error.
2020-12-14 12:11:41 +02:00
9bf8ce878e Add (Postgres + SQLite) support to matrix-mautrix-telegram bridge
I don't use this bridge, so this is completely untested.
2020-12-14 12:06:28 +02:00
a3406a182b Move some things around 2020-12-14 12:04:47 +02:00
2d99ade72f Add (Postgres + SQLite) support to matrix-mautrix-facebook bridge 2020-12-14 11:50:42 +02:00
5dba0c038b Make --tags=import-generic-sqlite-db commands not pass a sensitive connection string around
Instead of passing the connection string, we can now pass a name of a
variable, which contains a connection string.

Both are supported for having extra flexibility.
2020-12-14 11:47:00 +02:00
2a99e84b5b Rename Postgres-related variables (matrix*database_* -> matrix*postgres_*)
`matrix_SERVICE_database_engine` remains as it is - the only one with a
`_database_` infix. Postgres-related ones move to `_postgres_`.
2020-12-14 11:19:18 +02:00
c0edacbefd Fix matrix_postgres_additional_databases syntax problems 2020-12-14 11:17:12 +02:00
d91aa5a060 Do not introduce sub-variables exposing implementation details 2020-12-14 10:52:07 +02:00
f1e85f7112 Don't mention Postgres roles, just say users 2020-12-14 10:04:37 +02:00
b217a2ed69 postgres: set default in playbook to postgres but fallback to sqlite 2020-12-14 07:54:24 +01:00
4617984b9f Add (SQLite -> Postgres) migration instructions 2020-12-14 02:24:32 +02:00
cb969c6ca2 Add --tags=import-generic-sqlite-db (pgloader import)
This can be used by various bridges, etc., to import an SQLite
(or some other supported) database into Postgres.
2020-12-14 02:23:29 +02:00
c66c084027 Merge branch 'master' into postgres-per-default 2020-12-14 01:51:15 +02:00
6e1dfb62f0 Rename some doc files and commands related to importing
Since we'll likely have generic SQLite database importing
via [pgloader](https://pgloader.io/) for migrating bridge
databases from SQLite to Postgres, we'd rather avoid
calling the "import Synapse SQLite database" command
as just `--tags=import-sqlite-db`.

Similarly, for the media store, we'd like to mention that it's
related to Synapse as well.

We'd like to be more explicit, so as to be less confusing,
especially in light of other homeserver implementations
coming in the future.
2020-12-14 01:51:00 +02:00
b87b754372 Fail if appservice-discord wants Postgres, but has leftover SQLite data 2020-12-14 01:36:15 +02:00
dd994995bc Simplify password for additional Postgres databases
Using the result of `password_hash` works for creating them,
but authentication seems to be failing with some tools like pgloader.

It's possible that we're not escaping things properly somewhere.
Ideally, it'd be nice to solve that. But the easier (and still
relatively safe/good) solution is to just turn that password hash
into a UUID that's safe for passing around without worrying about
escaping.
2020-12-14 01:22:23 +02:00
183d2a10db Ensure matrix-postgres.service is started before creating additional users/databases 2020-12-14 00:59:59 +02:00
a374d309c8 Make appservice-discord support both SQLite and Postgres
People can toggle between them now. The playbook also defaults
to using SQLite if an external Postgres server is used.

Ideally, we'd be able to create databases/users in external Postgres
servers as well, but our initialization logic (and `docker run` command,
etc.) hardcode too many things right now.
2020-12-14 00:52:25 +02:00
46a4034d3e Use "password" for additional Postgres databases, not "pass"
Being more explicit sounds better.
2020-12-14 00:43:03 +02:00
3a037a5993 Ensure additional databases contain all the keys that we expect 2020-12-14 00:39:38 +02:00
da4cb2f639 Do not use the postgresql_user/postgresql_db modules
While these modules are really nice and helpful, we can't use them
for at least 2 reasons:

- for us, Postgres runs in a container on a private Docker network
(`--network=matrix`) without usually being exposed to the host.
These modules execute on the host so they won't be able to reach it.

- these modules require `psycopg2`, so we need to install it before
using it. This might or might not be its own can of worms.
2020-12-14 00:31:38 +02:00
bbc09d013b Do not execute additional databases creation code if not necessary
The tasks in `create_additional_databases.yml` will likely
ensure `matrix-postgres.service` is started, etc.

If no additional databases are defined, we'd rather not execute that
file and all these tasks that it may do in the future.
2020-12-13 23:46:05 +02:00
c765ceb270 Prevent weird loop error
> Invalid data passed to 'loop', it requires a list, got this instead: matrix_postgres_additional_databases. Hint: If you passed a list/dict of just one element, try adding wantlist=True to your lookup invocation or use q/query instead of lookup.

Well, or working around it, as I've done in this commit (which seems
more sane than `wantlist=True` stuff).
2020-12-13 22:56:56 +02:00
e2952f16f7 Determine matrix-postgres IP address without relying on jq
To avoid needing to have `jq` installed on the machine, we could:
- try to run jq in a Docker container using some small image providing
that
- better yet, avoid `jq` altogether
2020-12-13 22:45:48 +02:00
f47e8a97e6 Make use of matrix_host_command_docker instead of hardcoding 2020-12-13 22:38:35 +02:00
d251764c16 Fix syntax issues in matrix_postgres_additional_databases
Quotes are necessary around dictionary field names.

There was a missing `}` as well.
2020-12-13 22:37:04 +02:00
0641106370 Allow username of additional Postgres databases to be different
We'll most likely use one that matches the database name, but
it's better to have it configurable.
2020-12-13 22:37:04 +02:00
527d5f57d5 Relocate Postgres additional database creation logic
Moving it above the "uninstalling" set of tasks is better.
Extracting it out to another file at the same time, for readability,
especially given that it will probably have to become more complex in
the future (potentially installing `jq`, etc.)
2020-12-13 22:37:04 +02:00
dac0d3a682 Add default matrix_postgres_additional_databases 2020-12-13 21:07:16 +02:00
77a5c7cf3c Merge branch 'master' into postgres-per-default 2020-12-13 21:04:15 +02:00
9dc023c558 Merge pull request #750 from chagai95/patch-1
Adding jitsi as well
2020-12-12 01:44:50 +02:00
bae4113422 Mention that we possibly obtain a Jitsi certificate 2020-12-12 01:44:34 +02:00
d96d7f2a43 Adding jitsi as well 2020-12-12 00:24:38 +01:00
47613e5a27 Remove synapse-janitor support
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/746
2020-12-11 23:24:42 +02:00
86988ae180 Switch matrix-registration to v0.7.1
Now that a new release has been made, we no longer need to use
`latest` / `master`.

Related to 0a9109771d and https://github.com/ZerataX/matrix-registration/issues/43
2020-12-11 22:52:42 +02:00
0a9109771d Use latest/master version of matrix-registration
v0.7.0 is broken right now, because it calls
`/_matrix/client/r0/admin/register`, which is now at
`/_synapse/admin/v1/register`.

This has been fixed here: 6b26255fea

.. but it's not part of any release.

Switching to `master` (`docker.io/devture/zeratax-matrix-registration:latest`) until it gets resolved.

Reported upstream here: https://github.com/ZerataX/matrix-registration/issues/43
2020-12-11 22:22:07 +02:00
7f1f3fd97b Merge pull request #749 from aaronraimist/synapse-admin-0.6.1
Upgrade synapse-admin (v0.5.0 -> 0.6.1)
2020-12-11 00:46:12 +02:00
3c2a644e5c Upgrade synapse-admin (v0.5.0 -> 0.6.1) 2020-12-10 16:28:48 -06:00
eae4f67470 Mention Docker 20.10 in the changelog 2020-12-11 00:13:10 +02:00
7593d969e3 Make matrix-mailer not occupy matrix_server_fqn_matrix
Starting with Docker 20.10, `--hostname` seems to have the side-effect
of making Docker's internal DNS server resolve said hostname to the IP
address of the container.

Because we were giving the mailer service a hostname of `matrix.DOMAIN`,
all requests destined for `matrix.DOMAIN` originating from other
services on the container network were resolving to `matrix-mailer`.
This is obviously wrong.

Initially reported here: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/748

We normally try to not use the public hostname (and IP address) on the
container network and try to make services talk to one another locally,
but it sometimes could happen.

With this, we use a `matrix-mailer` hostname for the matrix-mailer
container. My testing shows that it doesn't cause any trouble with
email deliverability.
2020-12-10 23:51:11 +02:00
d9f4914e0d WIP: postgres: create databases for all services
If a service is enabled, a database for it is created in postgres with a uniqque password. The service can then use this database for data storage instead of relying on sqlite.
2020-12-10 18:26:22 +01:00
d08b27784f Fix systemd services autostart problem with Docker 20.10
The Docker 19.04 -> 20.10 upgrade contains the following change
in `/usr/lib/systemd/system/docker.service`:

```
-BindsTo=containerd.service
-After=network-online.target firewalld.service containerd.service
+After=network-online.target firewalld.service containerd.service multi-user.target
-Requires=docker.socket
+Requires=docker.socket containerd.service
Wants=network-online.target
```

The `multi-user.target` requirement in `After` seems to be in conflict
with our `WantedBy=multi-user.target` and `After=docker.service` /
`Requires=docker.service` definitions, causing the following error on
startup for all of our systemd services:

> Job matrix-synapse.service/start deleted to break ordering cycle starting with multi-user.target/start

A workaround which appears to work is to add `DefaultDependencies=no`
to all of our services.
2020-12-10 11:43:20 +02:00
327ca847b6 Merge pull request #748 from jgoerzen/patch-1
Correct inabillity for appservice-discord to connect
2020-12-10 10:50:52 +02:00
673e19f830 Correct inabillity for appservice-discord to connect
After recently updating my matrix-docker-ansible-deploy installation, matrix-appservice-discord would refuse to start, logging ECONNREFUSED to https://matrix.[mydomain]:443, which was resolving to 172.18.0.2 due to the `--hostname` in mailer grabbing that hostname.

Curious why the IRC bridge didn't have this issue, I looked into it, and it was connecting to `http://matrix-synapse:8008`.  Correcting this one to that URL resolved the issue.
2020-12-09 21:20:06 -06:00
245b749946 Upgrade Synapse for ARM (v1.23.0 -> v1.24.0)
Continuation of aa86e0dac6, now that ARM images are out.
2020-12-09 20:54:18 +02:00
aa86e0dac6 Upgrade Synapse (v1.23.0 -> v1.24.0)
Because the ARM images are not pushed yet, we hold back to v1.23.0
for now.
2020-12-09 13:31:10 +02:00
f453d28f0e Merge pull request #747 from benkuly/master
updated matrix-sms-bridge
2020-12-09 11:08:49 +02:00
ad92c61fdd updated matrix-sms-bridge 2020-12-09 09:45:44 +01:00
c07c927d9f Automatically enable openid listeners when ma1sd enabled
ma1sd requires the openid endpoints for certain functionality.
Example: 90b2b5301c/src/main/java/io/kamax/mxisd/auth/AccountManager.java (L67-L99)

If federation is disabled, we still need to expose these openid APIs on the
federation port.

Previously, we were doing similar magic for Dimension.
As per its documentation, when running unfederated, one is to enable
the openid listener as well. As per their recommendation, people
are advised to do enable it on the Client-Server API port
and use the `federationUrl` variable to override where the federation
port is (making federation requests go to the Client-Server API).

Because ma1sd always uses the federation port (unless you do some
DNS overwriting magic using its configuration -- which we'd rather not
do), it's better if we just default to putting the `openid` listener
where it belongs - on the federation port.

With this commit, we retain the "automatically enable openid APIs" thing
we've been doing for Dimension, but move it to the federation port instead.
We also now do the same thing when ma1sd is enabled.
2020-12-08 16:59:20 +02:00
8c02f7b79b Upgrade services 2020-12-07 15:18:03 +02:00
d556aa943f Update docker-ce.repo to not hardcode $releasever=7
This keeps it in line with https://download.docker.com/linux/centos/docker-ce.repo

Whether or not Docker works well on CentOS 8 for our purposes
hasn't been verified yet.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/300
2020-12-07 07:20:47 +02:00
1e0777f2ed Merge pull request #745 from wabuMike/patch-1
fixes config.js
2020-12-07 00:46:14 +02:00
9713ac9617 fixes config.js
comments in config.js must begin with two slashes
2020-12-06 23:42:44 +01:00
7372480e95 Properly serialize some ma1sd configuration values
We've had a report of the `connection` value getting cut off,
supposedly because it contains something that breaks off the string.

Using `|to_json` takes care of it.
2020-12-06 23:59:58 +02:00
cc683a85ab Merge pull request #744 from hardye/jitsi-recording
Remove the recording button from the Jitsi UI if recording is disabled.
2020-12-06 15:48:15 +02:00
ec2a9d4852 Remove the recording button from the Jitsi UI if recording is disabled. 2020-12-06 13:50:45 +01:00
6f9b4bd9ac Drop workaround for old Ansible docker_network bug 2020-12-05 19:02:10 +01:00
6921ec4b8a Revert "Work around buggy docker_network sometimes failing to work"
The docker_network bug was fixed two years ago
This reverts commit 36658addcd.
2020-12-05 19:02:10 +01:00
a5ae7e9ef0 Add self-building support to matrix-corporal 2020-12-04 01:48:08 +02:00
b3d91ed488 Fix passing of matrix_appservice_discord_auth_usePrivilegedIntents 2020-12-04 01:06:42 +02:00
05cecb5261 Merge branch 'discord-v1.0'
This may be a bit premature, because the bridge didn't work for me
the last time I tried it (RC3).

Some bugs have been fixed to make our config compatible with v1.0.0
though, so it may work for some people (especially those starting
fresh).

I'm not for shipping potentially broken things, but given that we were
using `docker.io/halfshot/matrix-appservice-discord:latest` and that
points to v1.0.0 already (with no other tag we can use), our setup was
already broken in any case.

Now, at least it has some chance of running.
2020-12-03 15:17:30 +02:00
edd40811a5 Update matrix-appservice-discord to v1.0.0 final 2020-12-03 15:16:26 +02:00
b6b95fe742 synapse workers-doc-to-yaml script: compatibility++ with non-gnu awk 2020-12-02 23:22:02 +01:00
3156d96619 synapse workers-doc-to-yaml.awk: escape slash for non-gnu awk versions 2020-12-02 00:29:20 +01:00
e892ac464f synapse workers: untangle config template and specify bind address
.. to mitigate log noise - WARNING:
Failed to listen on 0.0.0.0, continuing because listening on [::]
2020-12-01 23:49:23 +01:00
f201bca519 synapse workers: define and expose METRICS port for each worker
As seen on TV:
https://github.com/matrix-org/synapse/blob/master/docs/metrics-howto.md#monitoring-workers
2020-12-01 22:49:15 +01:00
af08f18779 synapse workers default config: disable user_dir worker for now
(until https://github.com/matrix-org/synapse/issues/8787 is resolved)
2020-12-01 22:22:04 +01:00
414b812a29 synapse role workers setup: make configs clean action remote compatible
Many people probably didn't even know this - that ansible can be
quite a bit picky about what it will be willing to work with remotely.

Thanks @maxklenk !
2020-12-01 22:20:27 +01:00
d5932ca393 synapse role workers setup: execute the endpoint extraction locally
Thanks @maxklenk !
2020-12-01 22:18:42 +01:00
851c25c47f matrix-synapse nginx template: fix invalid jinja comment syntax 2020-12-01 21:55:07 +01:00
e314613ded Add files created by workers-doc-to-yaml.awk to .gitignore 2020-12-01 21:52:59 +01:00
b73ac965ac Merge remote-tracking branch 'origin/master' into synapse-workers 2020-12-01 21:24:26 +01:00
06ade5e187 Add donation and support room badges 2020-12-01 15:24:07 +02:00
694e6fe141 Create FUNDING.yml 2020-12-01 15:11:37 +02:00
04da1bddf7 Update matrix-mautrix-facebook config a bit
This also disables presence if it's disabled for Synapse.
2020-12-01 11:55:18 +02:00
90078dd296 Add matrix_services_autostart_enabled variable for preventing services autostart
Some people requested that `--tags=start` not set up service autostart.

One can now do `--tags=start --extra-vars="matrix_services_autostart_enabled=false"`
to just start services ones and not set up autostarting.
2020-11-30 20:58:21 +02:00
d64ad91c25 Add some notes about recent Jitsi changes
A bit late, but still better than nothing.
2020-11-30 13:11:57 +02:00
77b04b282d Merge pull request #2 from spantaleev/master
merge master
2020-11-28 23:38:07 +00:00
e0d7d5f0ca Disable Jitsi recording/transcriptions by default
It's not like it worked anyway, because we don't have the necessary
services installed for transcription (Jigasi), nor recording (Jibri).

Disabling these, should hopefully disable their related elements
in the Jitsi Web UI.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/726
2020-11-28 22:31:00 +02:00
be5263f397 Move self-building git repository URLs to variables (stop hardcoding) 2020-11-28 21:34:14 +02:00
b354155d7c Make JVB websockets reverse-proxying work 2020-11-27 17:57:15 +02:00
fa76128fd8 Update Jitsi to build 5142
This supersedes/fixes-up this Pull Request:
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/719

The Jitsi Web and JVB containers now (in build 5142) always
start by bulding their own default configuration
(`config.js` and `sip-communicator.properties`, respectively).

The fact that we were generating these files ourselves was no longer of use,
because our configuration was thrown away in favor of the one created
by the containers on startup.

With this commit, we're completely redoing things. We no longer
generate these configuration files. We try to pass the proper
environment variables, so that Jitsi services can generate the
configuration files themselves.

Besides that, we try to use the "custom configuration" mechanism
provided by Jitsi Web and Jitsi JVB (`custom-config.js` and
`custom-sip-communicator.properties`, respectively), so that
we and our users can inject additional configuration.

Some configuration options we had are gone now. Others are no longer
controllable via variables and need to be injected using
the `_config_extension` variables that we provide.

The validation logic that is part of the role should take care
to inform people about how to upgrade (if they're using some custom
configuration, which needs special care now). Most users should not
have to do anything special though.
2020-11-27 17:57:15 +02:00
6e930174db Merge pull request #736 from benkuly/master
updated matrix-sms-bridge
2020-11-27 17:41:55 +02:00
f93a4f6474 updated matrix-sms-bridge 2020-11-27 16:01:24 +01:00
84c7c19068 Add jitsi.DOMAIN to sample Traefik 2.0 config
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/735
2020-11-27 13:30:00 +02:00
d702e74079 Fix matrix-nginx-proxy static files mounting when SSL retrieval is none
Fixup for 12867e9f18.

This shouldn't have been caught in the `if`.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/734
2020-11-26 18:40:15 +02:00
d235335507 Do not mount /matrix/ssl into matrix-coturn when matrix_ssl_retrieval_method is 'none'
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/734

Similar to 12867e9f18, but for `matrix-coturn` (not
`matrix-nginx-proxy`).
2020-11-26 10:08:54 +02:00
12867e9f18 Do not try to mount /matrix/ssl when matrix_ssl_retrieval_method is 'none'
Since the switch from `-v` to `--mount` (in 1fca917ad1),
we've regressed when `matrix_ssl_retrieval_method == 'none'`.

In such a case, we don't create `/matrix/ssl` directories at all
and shouldn't be trying to mount them into the `matrix-nginx-proxy`
container.

Previously, with `-v`, Docker would auto-create them, effectively hiding
our mistake. Now that `--mount` doesn't do such auto-creation magic,
the `matrix-nginx-proxy` container was failing to start.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/734
2020-11-26 09:55:26 +02:00
796c752b60 Ensure Postgres passwords are not longer than 99 characters
Complements https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/732
2020-11-26 09:51:48 +02:00
93c485c276 Merge pull request #732 from CodingAnonymous/master
Note about the max length of the postgres password
2020-11-26 09:51:23 +02:00
d4ef751052 Update matrix_servers 2020-11-26 01:30:08 +01:00
732f57cbd9 Note about the max length of the postgres password 2020-11-26 01:24:43 +01:00
704318436d Merge pull request #731 from benkuly/patch-1
Update configuring-playbook-bridge-matrix-bridge-sms.md
2020-11-25 16:40:40 +02:00
58baa0ac30 Update configuring-playbook-bridge-matrix-bridge-sms.md 2020-11-25 15:39:14 +01:00
47db2d5363 Merge pull request #730 from benkuly/master
updates matrix-sms-bridge (changed SMS provider)
2020-11-25 16:36:11 +02:00
75f9fde7a4 Remove some more -v usage
Continuation of 1fca917ad1.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/722
2020-11-25 10:49:59 +02:00
1fca917ad1 Replace some -v instances with --mount
`-v` magically creates the source destination as a directory,
if it doesn't exist already. We'd like to avoid this magic
and the potential breakage that it might cause.

We'd rather fail while Docker tries to find things to `--mount`
than have it automatically create directories and fail anyway,
while having contaminated the filesystem.

There's a lot more `-v` instances remaining to be fixed later on.
This is just some start.

Things like `matrix_synapse_container_additional_volumes` and
`matrix_nginx_proxy_container_additional_volumes` were not changed to
use `--mount`, as options for each one are passed differently
(`ro` is `ro`, but `rw` doesn't exist and `slave` is `bind-propagation=slave`).
To avoid breaking people's custom volume mounts, we keep it as it is for now.

A deficiency with `--mount` is that it lacks the `z` option (SELinux
ownership changes), and some of our `-v` instances use that. I'm not
sure how supported SELinux is for us right now, but it might be,
and breaking that would not be a good idea.
2020-11-24 10:26:05 +02:00
27c9014cb8 Improve uninstallation instructions
Also switches to using `docker system prune -a` for a less invasive
cleanup of Docker images and related resources.
2020-11-24 09:38:17 +02:00
3e2355282b Upgrade Postgres minor versions
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/727
2020-11-24 09:06:19 +02:00
da87d9f957 Merge pull request #728 from aaronraimist/element-1.7.14
Upgrade Element (1.7.13 -> 1.7.14)
2020-11-24 09:04:52 +02:00
c9d2ef7981 Upgrade Element (1.7.13 -> 1.7.14) 2020-11-23 23:05:54 -06:00
8c8002f639 added changelog 2020-11-23 14:48:04 +01:00
ff9a4e90c4 updated matrix-sms-bridge 2020-11-23 13:43:04 +01:00
3a2e058f2e updated version of matrix-sms-bridge 2020-11-23 13:07:08 +01:00
f1ceb49ae2 fixed wrong path of truststore 2020-11-23 12:52:16 +01:00
ad1f0a01ce fixed systemd service typo 2020-11-23 12:49:28 +01:00
76b0b9dc34 fixed application.yml loading 2020-11-23 12:48:08 +01:00
2fb42dd7f1 fixed typo in truststore path 2020-11-23 12:38:17 +01:00
75600aa357 Merge remote-tracking branch 'github/master' 2020-11-23 12:31:14 +01:00
4713e5d5f7 updated matrix-sms-bridge to 0.5.0 2020-11-23 12:30:39 +01:00
6c85b84c1e Fix self-building for synapse-admin 2020-11-18 18:36:03 +02:00
b627d93cdc Update homeserver.yaml to keep up with Synapse v1.23.0
Related to #724 (Github Pull Request)
2020-11-18 16:57:50 +02:00
a68845d499 Merge pull request #724 from jdreichmann/update-synapse
synapse: update to 1.23.0
2020-11-18 16:47:13 +02:00
c58a7e03c7 synapse: update to 1.23.0 2020-11-18 14:16:46 +01:00
41fa00edb4 Revert "Update jitsi web to stable-5142"
This reverts commit 078592454c
due to reports of breakage both in the support chat room
and in here https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/719
2020-11-18 12:54:43 +02:00
7a8d663070 Merge pull request #723 from jdreichmann/update-mautrix-telegram
update mautrix-telegram to 0.9.0
2020-11-17 23:36:41 +02:00
f7d7190bd0 update mautrix-telegram to 0.9.0 2020-11-17 21:20:12 +01:00
8153e25d2d updated matrix-sms-bridge image 2020-11-16 13:59:03 +01:00
787a9ef8ad updated matrix-sms-bridge image 2020-11-16 11:51:11 +01:00
31b24078bb Merge pull request #720 from benkuly/master
updated matrix-sms-bridge image version
2020-11-15 17:47:16 +02:00
775b1ca7af updated matrix-sms-bridge image version 2020-11-15 12:12:44 +01:00
ccabc82d4c Use more fully-qualified container images
This is both for consistency with 93cc71cb69976c
and for making things more obvious.
2020-11-14 23:01:11 +02:00
5eed874199 Improve self-building experience (avoid conflict with pullable images)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/716

This patch makes us use more fully-qualified container image names
(either prefixed with docker.io/ or with localhost/).

The latter happens when self-building is enabled.

We've recently had issues where if an image was removed manually
and the service was restarted (making `docker run` fetch it from Docker Hub, etc.),
we'd end up with a pulled image, even though we're aiming for a self-built one.
Re-running the playbook would then not do a rebuild, because:
- the image with that name already exists (even though it's something
else)
- we sometimes had conditional logic where we'd build only if the git
repo changed

By explicitly changing the name of the images (prefixing with localhost/),
we avoid such confusion and the possibility that we'd automatically pul something
which is not what we expect.

Also, I've removed that condition where building would happen on git
changes only. We now always build (unless an image with that name
already exists). We just force-build when the git repo changes.
2020-11-14 23:00:49 +02:00
32847afb06 Merge pull request #719 from joao-p-marques/update-jitsi
Update jitsi web to stable-5142
2020-11-14 13:38:53 +02:00
078592454c Update jitsi web to stable-5142
Changelog https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_5142
2020-11-13 18:13:45 +00:00
8b01cb5103 Merge pull request #718 from benkuly/master
updated matrix-sms-bridge
2020-11-13 09:56:15 +02:00
c985e17f18 updated matrix-sms-bridge 2020-11-13 08:44:21 +01:00
6dbb90258e Mention and recommend enabling usePrivilegedIntents 2020-11-13 08:23:40 +02:00
fe7bed5df3 Upgrade appservice-discord 2020-11-12 08:21:02 +02:00
4678c5d7bd Merge remote-tracking branch 'origin/master' into synapse-workers
Also, replace vague FIXME by a proper NOTE on the complete
story of the user_dir endpoints..
2020-11-11 21:26:08 +01:00
4dbec2470f Fix systemd_path being undefined breakage
Regression since #681 (Github Pull Request).

Fixes #715 (Github Issue).
2020-11-11 00:45:02 +02:00
b5435db338 Fix syntax error in group_vars/matrix_servers 2020-11-11 00:22:09 +02:00
d910df2b1c Announce Dynamic DNS support
Related to #681 (Github Pull Request)
2020-11-11 00:01:08 +02:00
5598a89ad5 synapse workers doc: link to relevant synapse issue list search 2020-11-10 23:00:24 +01:00
4d12a6f8e9 Merge pull request #681 from scottcrossen/slc/ddclient
Dynamic DNS
2020-11-10 23:54:21 +02:00
de0987e806 Remove unnecessary variable definition
Related to #681 (Github Pull Request)
2020-11-10 23:51:38 +02:00
2708f9aec7 Remove duplicate configuration in docs page
Related to #681 (Github Pull Request)
2020-11-10 23:50:44 +02:00
1427286cec Integrate matrix-dynamic-dns with matrix-nginx-proxy without causing a dependency
We'd like the roles to be self-contained (as much as possible).

Thus, the `matrix-nginx-proxy` shouldn't reference any variables from
other roles. Instead, we rely on injection via
`group_vars/matrix_servers`.

Related to #681 (Github Pull Request)
2020-11-10 23:49:36 +02:00
8782919d85 Ensure matrix_dynamic_dns_domain_configurations contains configurations
If `matrix_dynamic_dns_enabled`, we'd like to ensure there's at least
one configuration defined.

Related to #681 (Github Pull Request)
2020-11-10 23:49:36 +02:00
97a7c8b0f0 Fix matrix_dynamic_dns_domain_configurations validation check
- `item` was undefined
- `'key' in configurations == ''` was doing the wrong thing

Related to #681 (Github Pull Request)
2020-11-10 23:49:36 +02:00
fef44b93d3 Define the matrix_dynamic_dns_domain_configurations variable in the role
Having it unset in the role itself (while referencign it) is a little strange.

Now people can look at the `roles/matrix-dynamic-dns/defaults/main.yml`
file and figure out everything that's necessary to run the role.

Related to #681 (Github Pull Request)
2020-11-10 23:49:36 +02:00
5c5f828405 Use more YAML-like syntax for the dynamic DNS configurations
Related to #681 (Github Pull Request)
2020-11-10 23:49:36 +02:00
f3d2797d9c synapse workers: make awk script invocation handle paths with spaces
(quoting ftw)
2020-11-10 22:40:48 +01:00
73d5faa1f9 Fix variable name typo 2020-11-10 23:30:38 +02:00
dd402bee92 synapse workers: add rudimentary documentation on worker support 2020-11-10 22:30:33 +01:00
b05d298ae4 synapse workers nginx rule: add client_max_body_size on media endpoints
so transfer limits are properly set in accord to the relevant setting
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456#issuecomment-719996778
2020-11-10 21:43:33 +01:00
1e971312e8 synapse workers: handle auth fallback endpoint on main process only
(allegedly breaks with SSO enabled)
2020-11-10 21:23:19 +01:00
e5072c20d9 synapse workers/nginx: handle media_repository worker endpoints on federation port
to prevent "404 on the federation port for the path `/_matrix/media`,
if a remote server is trying to get the media object on federation
port, see https://github.com/matrix-org/synapse/issues/8695 "

https://github.com/matrix-org/synapse/pull/8701
2020-11-10 20:35:39 +01:00
b61b73f6f4 Merge pull request #714 from aaronraimist/element-1.7.13
Upgrade Element (1.7.12 -> 1.7.13)
2020-11-10 19:32:48 +02:00
31619e0968 Upgrade Element (1.7.12 -> 1.7.13) 2020-11-10 11:27:15 -06:00
da2e84837d Merge pull request #711 from enekonieto/feature/traefik_docker_compose
Added docker-compose example for launching Traefik.
2020-11-10 09:59:19 +02:00
235299939d Upgrade nginx (1.19.3 -> 1.19.4) 2020-11-10 09:30:00 +02:00
59bb6b2971 responded to reviewer comments 2020-11-09 13:32:58 -08:00
2c33aa3ec5 Fixed entrypoint name. 2020-11-09 00:03:15 +01:00
c448aa54a1 Added docker-compose example for launching Traefik. 2020-11-08 22:39:08 +01:00
e894befd87 Updates to reviewer comments 2020-11-07 17:53:13 -08:00
350c39d745 Update comment 2020-11-02 11:13:25 +02:00
ef68d3d296 Add support for reverse-proxying /_synapse/oidc
This broke in 63a49bb2dc.

Proxying the OpenID Connect endpoints is now possible,
but needs to be enabled explicitly now.

Supersedes #702 (Github Pull Request).

This patch builds up on the idea from that Pull Request,
but does things in a cleaner way.
2020-11-02 11:10:03 +02:00
5c91e56898 Upgrade Synapse (v1.22.0 -> v1.22.1) 2020-10-30 19:35:55 +02:00
e805776736 Merge pull request #700 from aaronraimist/vectorim/element-web
Switch to the new vectorim/element-web Docker image
2020-10-29 18:52:04 +02:00
c33d007306 Switch to the new vectorim/element-web Docker image 2020-10-29 11:46:58 -05:00
56ebeb1ae2 Revert "Restore self-building on ARM for Synapse for now"
This reverts commit 7d211b71e2.

The multi-arch images are now available, as discussed in #699 (Github Issue).
2020-10-29 07:35:53 +02:00
cce90b187a synapse workers: fix undefined variable cases when removing workers 2020-10-28 23:09:21 +01:00
cea2faa1b3 added docs for bridge permissions 2020-10-28 21:59:36 +01:00
aabefe21f4 fixed yaml 2020-10-28 21:58:59 +01:00
468cc39465 added a workaround for postgres's issue with initdb 2020-10-28 21:56:13 +01:00
c1c6eaefff Upgrade Element (1.7.10 -> 1.7.12) 2020-10-28 17:34:39 +02:00
9a46647010 Make https://matrix.DOMAIN/ redirect to https://element.DOMAIN/
Fixes #696 (Github Issue)
2020-10-28 10:39:12 +02:00
4700e80389 Raise standalone default Matrix Client API client_max_body_size
We do this to match Synapse's new default "max_upload_size" (50MB).

This `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb`
default value only affects standalone usage of the `matrix-nginx-proxy`
role. When the role is used in the context of the playbook,
the value is dynamically assigned from `group_vars/matrix_servers`.

Somewhat related to #692 (Github Issue).
2020-10-28 10:02:47 +02:00
e078e29ef8 synapse workers: fix self name in workers-doc-to-yaml.awk script 2020-10-28 08:39:31 +01:00
ef07aa8e5d Prevent certain nginx location blocks from being ignored
The regex introduced in 63a49bb2dc seems to take precedence
over the bare location blocks, causing a regression.

> It is important to understand that, by default, Nginx will serve regular expression matches in preference to prefix matches.
> However, it evaluates prefix locations first, allowing for the administer to override this tendency by specifying locations using the = and ^~ modifiers.

Source: https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and-location-block-selection-algorithms
2020-10-28 09:38:04 +02:00
2d1b9f2dbf synapse workers: reworkings + get endpoints from upstream docs via awk
(yes, a bit awkward and brittle… xD)
2020-10-28 07:13:19 +01:00
67d0f26463 Improve wording a bit 2020-10-27 20:41:52 +02:00
5a7d265997 Fix Synapse Admin not working due to unexposed Synapse Admin APIs
Regression since 63a49bb2dc.

Related to #685 (Github Issue).

We now automatically expose the APIs when Synapse Admin is enabled.
2020-10-27 20:33:37 +02:00
7d211b71e2 Restore self-building on ARM for Synapse for now
While v1.22.0 supposedly has multi-arch Docker images
(thanks to https://github.com/matrix-org/synapse/pull/7921),
I can't them on Docker Hub yet, so I'm backing out of this change
for now and letting people fall back to self-building there.
2020-10-27 14:32:32 +02:00
70f0b97a0a Upgrade Synapse (v1.21.2 -> v1.22.0) 2020-10-27 14:24:02 +02:00
5430a65411 Merge pull request #684 from deSagaz/patch-1
Fix docker mount instruction in documentation
2020-10-26 10:44:03 +02:00
63a49bb2dc Do not expose /_synapse/admin publicly by default
Fixes #685 (Github Issue).
2020-10-26 10:36:38 +02:00
dd50ee19ab fixed bridge permissions 2020-10-25 21:42:40 +01:00
2211e678f3 fixed comments that were copied over from mautrix-telegram role 2020-10-25 21:01:25 +01:00
e59aa07b86 more cleanup 2020-10-25 20:47:10 +01:00
c36e1355cf cleanup 2020-10-25 20:46:57 +01:00
8ebc39dea0 fixed dependencies of bridge service (not ideal, but correct) 2020-10-25 20:46:32 +01:00
9b890e9ced moved some settings from role to group_vars 2020-10-25 20:45:24 +01:00
ff1d7921a0 moved registration.yaml contents to template 2020-10-25 20:16:24 +01:00
d6940d9f10 added docs 2020-10-25 18:44:19 +01:00
1227349d0c Fix docker mount instruction in documentation
The SSL certificates should be accessible to the nginx proxy container, not the synapse container.
2020-10-24 17:03:24 +02:00
7a54e11090 started moving settings to group_vars 2020-10-24 12:15:03 +02:00
87bd64ce9e Merge remote-tracking branch 'origin/master' into synapse-workers 2020-10-23 23:45:07 +02:00
a4125d5446 synapse workers: polishing, cleansing and installation of jq dependency 2020-10-23 20:49:53 +02:00
69efcb5c21 added mautrix-signal role 2020-10-22 23:29:34 +02:00
501efee07e synapse workers: supply systemd with actual worker PIDs (requires jq)
also, worker.yaml.j2:
  - hone worker_name
  - remove worker_pid_file entry (would only be used if worker_daemonize
    set to true; also, synapse only knows about the container namespace
    and thus can not provide the required host-view PID)
2020-10-22 20:53:41 +02:00
24c6d7e81f Upgrade Element (1.7.9 -> 1.7.10) 2020-10-20 19:06:16 +03:00
94dcceb7b9 removed intentional delay 2020-10-19 11:26:37 -07:00
efeb651789 Removed typo 2020-10-19 11:25:01 -07:00
e7d79a95dc removed platform-specific stuff 2020-10-19 10:46:02 -07:00
19721be8b1 removed dhcp option 2020-10-18 21:05:32 -07:00
de1511b4bb Fixed valdiation 2020-10-16 21:31:07 -07:00
8e6d7d9022 changed domain naming 2020-10-16 21:28:43 -07:00
806f98447c Removed directory creation 2020-10-16 21:26:58 -07:00
51cca4c312 Added containerization 2020-10-16 21:21:58 -07:00
9e6d087224 Merge pull request #679 from hgka/master
add variables for secure_backup_required and secure_backup_setup_methods
2020-10-16 10:31:56 +03:00
1cf5b1d80f e2ee_backup: rename variables to be consistent with naming scheme 2020-10-16 09:24:50 +02:00
5158fa4df9 e2ee_backup_methods: rather leave the default empty, so that the system default may apply 2020-10-16 08:50:16 +02:00
8f7e21892d fix indentation, updated to proposed changes from Slavi: no more ifdef 2020-10-16 08:47:37 +02:00
4cfa112755 update default backup_methods as proposed by the system anyway 2020-10-16 08:44:04 +02:00
6599204334 fix commata not being set when secure_backup_required false 2020-10-16 08:20:22 +02:00
48f929dc91 add variables for secure_backup_required and secure_backup_setup_methods 2020-10-16 00:32:00 +02:00
f7ecc7a2a5 Upgrade Synapse (v1.21.1 -> v1.21.2) 2020-10-15 17:42:52 +03:00
3fd198e89a Add notes about running Ansible on Ubuntu 20.04
Discussed in #669 (Github Issue).
2020-10-15 11:35:29 +03:00
5e4c5e52c7 Merge pull request #677 from jgbresson/patch-1
Upgrade Element (1.7.8 -> 1.7.9)
2020-10-15 09:25:37 +03:00
640166e4c3 Upgrade Element (1.7.8 -> 1.7.9) 2020-10-15 00:09:54 -04:00
a4224ad1f9 Merge pull request #676 from thedanbob/nginx-1.19.3
Update nginx (1.19.2 -> 1.19.3)
2020-10-14 14:27:51 +03:00
b65bfc38ce Update nginx (1.19.2 -> 1.19.3) 2020-10-14 06:23:33 -05:00
28c8b0fec0 Merge pull request #675 from scottcrossen/slc/rename
Shameless refactor of all systemd descriptions for bridges
2020-10-14 10:58:52 +03:00
53bc7a77e1 fixed EOF issues 2020-10-13 16:47:09 -07:00
fa5d85426b Renamed systemd descriptions for all bridges 2020-10-13 16:40:30 -07:00
1f988969a5 Added role for dynamic dns 2020-10-13 16:26:57 -07:00
5abd511368 Upgrade Synapse (v1.21.0 -> v1.21.1) 2020-10-13 13:08:25 +03:00
d250727e8b Upgrade certbot (1.7.0 -> 1.9.0) 2020-10-13 09:44:32 +03:00
0df5e069dd Merge pull request #671 from aaronraimist/synapse-1.21.0
Upgrade Synapse (v1.20.1 -> v1.21.0)
2020-10-13 09:43:28 +03:00
78529cbd47 Upgrade Synapse (v1.20.1 -> v1.21.0) 2020-10-12 23:59:34 -05:00
652b4fba35 Merge pull request #668 from FanchTheSystem/add_docker_prune
Add docker prune
2020-10-12 11:06:58 +03:00
d2e61af224 Add worker_name to synapse worker config template
& restrict federation listener; frontend_proxy / user_dir don't need it
2020-10-11 21:52:08 +02:00
36e9be6092 matrix_synapse_workers_{avail,enabled}_list: sort non-generic workers
.. alphabetically and put those not documented as multi-instance
capable on ports ending on zero.
2020-10-11 21:44:42 +02:00
e9241f5fb9 Improve synapse-workers systemd service template
Is the PID magic gonna work? or will it need an ExecStartPost hack..
2020-10-11 21:09:19 +02:00
40024e9b81 Prevent workers failing if their config doesn't exist
- cherry-pick "Ensure worker config exists in systemd service (#7528)"
  from synapse d74cdc1a42e8b487d74c214b1d0ca575429d546a:
  "check that the worker config file exists instead of silently failing."
2020-10-11 21:09:19 +02:00
93a8ea7e4a Merge remote-tracking branch 'master' into feature/add-worker-support 2020-10-11 20:59:05 +02:00
4d5068e283 add some doc about the run-docker-prune tag 2020-10-10 14:27:07 +02:00
1a9cafa3a3 add run-docker-prune command 2020-10-10 04:11:26 +02:00
898f319e11 Add additional notice to SQLite importing docs 2020-10-07 09:06:59 +03:00
6a72e3fa54 Try to make importing SQLite from older Synapse version work
If the SQLite database was from an older version of Synapse, it appears
that Synapse would try to run migrations on it first, before importing.
This was failing, because the file wasn't writable.

Hopefully, this fixes the problem.
2020-10-07 08:54:46 +03:00
736a52f735 Merge pull request #666 from dhose/master
Adding '.python-version' to .gitignore
2020-10-06 12:45:14 +03:00
1f9c173a7e Adding '.python-version' to .gitignore 2020-10-06 11:42:32 +02:00
14c23c52bb Merge pull request #664 from panos/master
caddy2: removed unknown tls directive
2020-10-05 07:29:44 +03:00
8370ee0647 caddy2: removed unknown tls directive 2020-10-04 19:28:22 +00:00
00f224b0d9 Merge pull request #663 from hardye/update-postgres-docs
Use up-to-date PostgreSQL container version for backups.
2020-10-03 15:22:40 +03:00
ee8dd44837 Use up-to-date PostgreSQL container version for backups. 2020-10-02 22:53:06 +02:00
ae75920be9 Update changelog
Related to 23daec748c and #662 (Github Issue).
2020-10-02 12:01:16 +03:00
23daec748c Require Ansible v2.7 or newer (because of items2dict and dict2items)
Interestingly, no one has reported this failure before #662 (Github
Issue).

It doesn't make sense to keep saying that we support such old Ansible
versions, when we're not even testing on anything close to those.

Time is also passing and such versions are getting more and more
ancient. It's time we bumped our requirements to something that is more
likely to work.
2020-10-02 11:53:19 +03:00
07fa8404bf Upgrade matrix-corporal (1.10.1 -> 1.11.0) 2020-10-01 18:30:30 +03:00
3bfbbc10bc Announce Postgres v13 upgrade 2020-10-01 09:46:43 +03:00
9e8c14bf65 Merge pull request #660 from clemsos/master
Element web : update welcome page template
2020-10-01 09:44:48 +03:00
5c5e5d4df6 Merge pull request #661 from thedanbob/postgres-13
Add support for postgres 13
2020-10-01 09:44:12 +03:00
e89dc7c7a8 Undo bad changelog edit 2020-09-30 19:54:28 -05:00
3a3383fada Add support for postgres 13 2020-09-30 16:50:59 -05:00
43c5f3ec6e Do not create /home/matrix when creating the matrix user 2020-09-29 18:14:37 +03:00
ac3ba1d919 element web : update welcome page template 2020-09-29 12:33:47 +02:00
7eb8192a51 Comlain about version requirement on Ansible v1
I don't believe Ansible v1 would even go as far as executing this
sanity check, but.. Adding an extra defensive check for completeness.
2020-09-29 12:37:39 +03:00
3d702fe03b Avoid set_fact with error message to prevent confusion 2020-09-29 12:23:39 +03:00
3818d82852 Upgrade Element (1.7.7 -> 1.7.8) 2020-09-28 22:20:36 +03:00
263727095d Merge pull request #657 from cnvandijk/feature-client-well-known
Client well known compatibility
2020-09-28 09:19:25 +03:00
3e2f0a4240 Upgrade matrix-synapse-admin (0.4.1 -> 0.5.0)
Related to #658 (Github Issue).
2020-09-28 09:11:05 +03:00
172bf24df7 Enable self-building of matrix-synapse-admin on non-amd64
Related to #658 (Github Issue).
2020-09-28 09:06:39 +03:00
b9c8d059d0 Support both the im.vector.riot and io.element variants in client .well-known
According to the docs, "e2ee" is already under "io.element":
  https://github.com/vector-im/element-web/blob/develop/docs/e2ee.md#disabling-encryption-by-default
however "jitsi" is still under "im.vector.riot":
  https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md#configuring-element-to-use-your-self-hosted-jitsi-server

For now let's just maintain backward and forward compatibility for both
settings since the client version is out of the control of this
playbook.
2020-09-26 16:57:02 +00:00
f6b0f0a477 Rename matrix_riot_jitsi_preferredDomain and matrix_riot_e2ee_default to Element 2020-09-26 16:24:09 +00:00
9fba46e694 Merge pull request #655 from aaronraimist/element-showLabs
Allow configuration of Element's bug_report_endpoint_url and showLabsSettings
2020-09-25 12:02:29 +03:00
dc2def914e Allow configuration of Element's bug_report_endpoint_url and showLabsSettings
showLabsSettings is the new enableLabs I guess. enableLabs doesn't seem to do anything anymore. It had been deprecated for a while.

This PR also removes @riot-bot:matrix.org as the default welcome_user_id since it doesn't exist anymore.
2020-09-24 18:37:31 -05:00
e68450f094 Upgrade Synapse (v1.20.0 -> v1.20.1) 2020-09-24 18:43:54 +03:00
329fef048f Upgrade matrix-corporal (1.10.0 -> 1.10.1) 2020-09-22 19:43:23 +03:00
32ac4706cb Upgrade matrix-corporal (1.9.0 -> 1.10.0) 2020-09-22 19:28:27 +03:00
dd217137b6 Upgrade Synapse (v1.19.3 -> v1.20.0) 2020-09-22 19:28:07 +03:00
65e22a6888 Upgrade Synapse (v1.19.2 -> v1.19.3) 2020-09-18 17:37:04 +03:00
6db3a46f88 Merge pull request #650 from dwiegreffe/master
New docker image appservice-slack
2020-09-18 14:31:39 +03:00
b3926e7cca Update main.yml 2020-09-18 13:26:07 +02:00
fc2edcbecf fix media routing 2020-09-18 10:45:01 +02:00
132daba1af fix worker routes 2020-09-18 10:18:32 +02:00
93cefa3dfe Merge pull request #654 from tctovsli/patch-1
Fixed dead link to mx-puppet-discord
2020-09-17 18:12:48 +03:00
152c163603 Fixed dead link to mx-puppet-discord 2020-09-17 10:20:41 +02:00
29cefae38d Merge pull request #653 from jquade/patch-1
Update configuring-playbook-dimension.md
2020-09-16 16:38:43 +03:00
e10e3e354d Upgrade Synapse (v1.19.1 -> v1.19.2) 2020-09-16 16:35:17 +03:00
8029ca59c9 Update configuring-playbook-dimension.md
Improved formatting for a header that was attached to the previous paragraph (...by inserting a newline).
2020-09-16 13:14:29 +02:00
1ffa871eaf Merge pull request #652 from 0hlov3/master
Corrects the Caddyfile
2020-09-15 15:58:14 +03:00
bd69e4fdef Merge branch 'master' of github.com:0hlov3/matrix-docker-ansible-deploy 2020-09-15 14:54:59 +02:00
59e1abb072 Corrects the Caddyfile 2020-09-15 14:54:47 +02:00
e1a30edf11 Merge pull request #651 from thedanbob/element-1.7.7
Update element (1.7.5 -> 1.7.7)
2020-09-15 14:20:21 +03:00
faa96ca0c3 Update element (1.7.5 -> 1.7.7) 2020-09-15 06:15:30 -05:00
8f41041f6d replacement of the docker image for appservice-slack to the officially maintained image 2020-09-15 09:11:56 +02:00
029e27b62a Merge pull request #649 from scottcrossen/patch-1
Use the same naming convention as the other mx-puppet suite.
2020-09-14 21:56:30 +03:00
b24333dd0f Use the same naming convention as the other mx-puppet suite. 2020-09-14 11:11:30 -07:00
6e8a39119b Update matrix-reminder-bot (0.1.0 -> 0.2.0) 2020-09-14 10:19:47 +03:00
e8ef07a445 Merge pull request #645 from 0hlov3/master
Caddy2 Caddyfile example and Comment in examples/host_vars.yml
2020-09-13 09:51:39 +03:00
6fefbc248a Fix typo and wording 2020-09-13 09:51:04 +03:00
6300c87396 Merge pull request #647 from banym/jitsi-ldap-docs-example
Update configuring-playbook-jitsi.md
2020-09-13 09:48:47 +03:00
21f20773c5 Merge pull request #2 from 0hlov3/dimension
Changes matrix_dimension_integrations_ui_url from /riot to /element h…
2020-09-13 04:21:08 +02:00
c19abe4a76 Changes matrix_dimension_integrations_ui_url from /riot to /element https://dimension.t2bot.io/ 2020-09-13 04:19:19 +02:00
e8ef50fbdc Merge pull request #1 from spantaleev/master
PullRequest
2020-09-13 03:24:23 +02:00
c366e26360 Updates exempes/caddy2/Caddyfile to SSL Grade A+ 2020-09-13 03:11:37 +02:00
7e78639aad Merge branch 'master' of github.com:0hlov3/matrix-docker-ansible-deploy 2020-09-12 23:26:38 +02:00
48a6525aca Removes DS_Store 2020-09-12 23:26:27 +02:00
a49718632a Delete .DS_Store
Removes DS-Store
2020-09-12 23:26:11 +02:00
f7ead046d1 Merge pull request #646 from aaronraimist/fix-link-own-webserver
Fix links to using your own webserver doc
2020-09-12 23:16:44 +03:00
b0511603fd Update configuring-playbook-jitsi.md
modified example for jitsi ldap authentication to show all available variables.
2020-09-12 22:10:41 +02:00
77635c4529 Fix links to using your own webserver doc 2020-09-12 14:11:16 -05:00
e7921e305b Comment in host-cars 2020-09-12 11:04:16 +02:00
abf70f7772 Adds example for Caddy2 Caddyfile 2020-09-12 10:52:25 +02:00
1e68d8b2e5 allow to pass arguments to the postgres process 2020-09-11 14:29:10 +02:00
880025324a fix redis config if no password is set 2020-09-11 10:35:50 +02:00
4fdfc0a34f add missing ratelimiting options required for load testing 2020-09-11 09:46:20 +02:00
9a3d84b931 Merge branch 'master' into feature/add-worker-support 2020-09-10 13:57:11 +02:00
a25a429a52 add redis support 2020-09-10 13:39:00 +02:00
5bb2c43502 Add support for enabling Jitsi lobby
Related to #643 (Github Issue)
2020-09-10 09:08:45 +03:00
4334abe69a Merge pull request #640 from asalminen/patch-1
Change anonymized to general
2020-09-07 20:09:28 +03:00
5733f4d157 Update configuring-playbook-telemetry.md
Change anonymized to more proper term as server vice this is not anonymized. Server name is the first parameter that is collected. And if server happens to be for individual use these statistics would be at personal level without any anonymising.
2020-09-07 17:14:34 +03:00
2a1ec38e3a Stop using Ansible's cron module
This is mainly to address SSL renewal not working for us due to:
- https://github.com/ansible/ansible/issues/71213
- https://github.com/ansible/ansible/pull/71207

Using the cron module was hacky anyway. We shouldn't need an extra
level of buggy abstraction to manage a cronjob file.
2020-09-06 10:49:19 +03:00
4ef873ceb0 Clarify Discord bridging docs 2020-09-03 16:31:27 +03:00
bed16fd065 Upgrade Element (1.7.4 -> 1.7.5) 2020-09-01 20:51:51 +03:00
6def66940f Fix broken cover photo for matrix-registration 2020-09-01 18:17:04 +03:00
1fd81835b6 Mention CAPTCHA for public-registration servers 2020-09-01 14:00:17 +03:00
7901293438 Relocate docs page for consistency 2020-09-01 13:47:58 +03:00
da38a7869f Add matrix-registration support 2020-09-01 13:46:05 +03:00
a456e3a9e7 Surface certain messages at the end of playbook execution
Fixes #106 (Github Issue).
2020-09-01 13:12:35 +03:00
b117dc0cb7 Fix self-check certificate validation when not self-signed 2020-09-01 11:44:44 +03:00
e3dca2f66f Try to avoid Docker logs growing too much for one-off containers
We recently had a report of the Postgres backup container's log file
growing the size of /var/lib/docker until it ran out of disk space.

Trying to prevent similar problems in the future.
2020-09-01 09:03:48 +03:00
06bc430c7c refactor to use new workers and routes they serve 2020-08-28 13:53:39 +02:00
53ccc783b7 remove duplicated key 2020-08-27 15:26:46 +02:00
59d1fb76b6 only apply worker redirects if workers are enabled 2020-08-27 15:25:32 +02:00
567d0318b0 Merge branch 'synapse-workers' into feature/add-worker-support 2020-08-27 15:22:12 +02:00
3c285bc6f5 Install lsb-release on Debian distros if unavailable
Certain more-minimal Debian installations may not have
lsb-release installed, which makes the playbook fail.

We need lsb-release on Debian, so that ansible_lsb
could tell us if this is Debian or Raspbian.
2020-08-27 13:58:35 +03:00
6e9600ffec Upgrade Synapse (v1.19.0 -> v1.19.1) 2020-08-27 12:59:11 +03:00
daf13107a0 Add support for rust-synapse-compress-state 2020-08-21 13:53:39 +03:00
073c96a3fd Be more clear that Corporal requires Shared Secret Auth 2020-08-19 09:29:39 +03:00
264fb60e99 Fix broken URLs - add some missing slashes 2020-08-17 18:34:18 +03:00
b4a549b772 Upgrade Element (1.7.3 -> 1.7.4) 2020-08-17 17:03:19 +03:00
9952ec6c16 Upgrade Synapse (v1.18.0 -> v1.19.0) 2020-08-17 17:02:40 +03:00
fc1655cd4b Merge pull request #633 from thedanbob/certbot-1.7.0
Update certbot (1.6.0 -> 1.7.0)
2020-08-17 16:47:12 +03:00
5abbeb75c9 Merge pull request #632 from thedanbob/nginx-1.19.2
Update nginx (1.19.1 -> 1.19.2)
2020-08-17 16:44:37 +03:00
f79ca1e249 Merge pull request #631 from thedanbob/postgres-12.4
Update postgres versions (12.3 -> 12.4, etc)
2020-08-17 16:44:21 +03:00
c8754f422a Update certbot (1.6.0 -> 1.7.0) 2020-08-16 15:01:13 -05:00
8d373409b8 Update nginx (1.19.1 -> 1.19.2) 2020-08-16 14:59:48 -05:00
20eea648a5 Update postgres versions (12.3 -> 12.4, etc) 2020-08-16 14:41:40 -05:00
0ff7c25700 Merge pull request #629 from ctwelve/patch-1
Undo ill-advised change
2020-08-10 08:57:56 +03:00
31e2a1f06b Undo ill-advised change
In #628 I proposed a CORS change that turns out not to be the root of the issue. Caffeine-addled diagnosis leads to sloppy thinking, and this change should be reverted. In fact, if left it will cause problems for new installations.
2020-08-09 14:20:37 -05:00
7c26d1b90e Merge pull request #628 from ctwelve/patch-1
Update CORS for ma1sd
2020-08-09 09:08:33 +03:00
c5d18733d2 Update CORS for ma1sd
Even with the v2 updates listed in #503 and partially addressed in #614, this is still needed to enable identity services to function with Element Desktop/Web. Testing on multiple clients with a clean config has confirmed this, at least for my installation.
2020-08-08 23:19:07 -05:00
ca83f20ec5 Merge pull request #627 from MatthewCroughan/patch-1
Update README.md -> 'many times' -> 'more than once'
2020-08-08 19:53:27 +03:00
19cc5fe573 Update README.md
Stating "many times" makes me think there is a finite amount of times I can run it before it *will* start causing trouble. But this is not true. So just state it can me ran more than once without causing trouble :)
2020-08-08 17:41:32 +01:00
e6dd0fbaee Upgrade Element (1.7.2 -> 1.7.3) 2020-08-06 19:25:52 +03:00
238d5e2c78 Merge pull request #623 from merklaw/docimprovements
Python requires docker package and other small improvements
2020-08-05 20:23:25 +03:00
fa6d85636f Add note about installing 'docker' Python package if Docker installation is disabled 2020-08-05 17:35:25 +02:00
87df15441c Add note about installilng 'docker' Python package if Docker installation is disabled 2020-08-05 17:31:16 +02:00
48b93091f9 Revert notes about the docker package being needed 2020-08-05 16:38:39 +02:00
a460420b34 Better wording 2020-08-05 15:59:52 +02:00
0cd243095d The docker package is a requirement and was not previously mentioned 2020-08-05 12:49:40 +02:00
205c15a80b Add note about certificate exceptions when using self-signed 2020-08-05 12:47:32 +02:00
e167b80f94 Added notes about disabling ma1sd 2020-08-05 12:46:30 +02:00
f57b2f6e92 Better wording 2020-08-05 12:45:44 +02:00
fffe9da5a9 Mention self-building support for synapse-admin
Related to #620 (Github Pull Request).
2020-08-04 17:24:31 +03:00
4b0a462aef Merge pull request #620 from NachvollCiba/synapse-admin_selfbuild
Allow self-build images for Synapse-Admin
2020-08-04 17:23:30 +03:00
b22b593d83 Changed setup of synapse-admin to allow for self-build images 2020-08-04 15:42:00 +02:00
54195b22c7 Allow framing Jitsi
Hopefully fixes a regression caused by b106a9592e.

Related to #597 (Github Pull Request).
2020-08-04 16:08:11 +03:00
7755e5efd4 Update sms-bridge (0.3.1 -> 0.3.2) 2020-07-30 16:25:07 +03:00
f78a5d4ee8 Upgrade Synapse (v1.17.0 -> v1.18.0) 2020-07-30 14:21:44 +03:00
675fbfbc52 Merge pull request #615 from vaivars/patch-1
Add a secondary option on how to get access token
2020-07-30 11:37:47 +03:00
e73b863329 Change the url to reflect the most common usecase 2020-07-30 10:52:49 +03:00
a7382924fc Merge pull request #614 from vractal/enable-ma1sd-hashing
Enable ma1sd hashing by default
2020-07-30 09:30:06 +03:00
68b2f2c33c Merge pull request #613 from vractal/fix-gpg-dep
Replace gpg dependency for gnupg for debian compatibility
2020-07-30 09:29:25 +03:00
fad1f72df8 Add a secondary option on how to get access token
Potentially the CURLing could be a better approach, since then you don't leave spare sessions hanging.
2020-07-29 19:53:39 +03:00
627c225101 Enable ma1sd hashing by default 2020-07-29 12:38:07 -04:00
050442af11 Merge pull request #611 from xshadow/silence_in_check_mode
Make ansible check mode runs silent, for non idempotent tasks
2020-07-29 14:33:41 +03:00
6539f2a156 Make ansible check mode runs silent, for all tasks which can't be idempotent 2020-07-29 13:23:15 +02:00
9b61fef271 Replace gpg dependency for gnupg for better debian compatibility 2020-07-28 15:26:16 -04:00
3dcef4faa9 Merge pull request #609 from jdreichmann/newTelegramBridgeVersion
Bump version of mautrix-telegram to 0.8.2
2020-07-28 20:59:51 +03:00
be5ca5258b Upgrade Element (1.7.1 -> 1.7.2) 2020-07-28 19:04:11 +03:00
2004143f14 Bump version of mautrix-telegram to 0.8.2
fixes matrix users unable to delete messages
2020-07-27 15:53:33 +02:00
196eb2da70 Merge pull request #607 from matthiasjo/docs_traefik_synapse_admin
Added config sample for synapse admin with traefik 2
2020-07-27 07:17:10 +03:00
95954fda43 Update configuring-playbook-synapse-admin.md 2020-07-26 21:27:54 +02:00
f005049dbe Update configuring-playbook-synapse-admin.md 2020-07-26 19:14:36 +02:00
c468aa9e86 Merge pull request #606 from rebruCH/patch-1
Update configuring-playbook-ma1sd.md
2020-07-26 18:44:49 +03:00
038b398d0e added config sample for synapse admin with traefik 2 2020-07-26 17:31:43 +02:00
f404a771cf Try to improve wording a bit 2020-07-26 18:24:53 +03:00
ae002d8ae4 Fix synapse-admin uninstallation 2020-07-26 18:09:29 +03:00
8a0d8651d0 Update configuring-playbook-ma1sd.md
Add an example to open all domains for registration in relation to black- and whitelists.
2020-07-25 23:50:36 +02:00
3f8e5b4363 Allow framing Dimension
Fix regression since 2a50b8b6bb (#597).

Dimension is intended to be embedded in various clients,
be it the Element service that we host (at element.DOMAIN),
some other Element (element-desktop running locally), etc.
2020-07-25 07:08:32 +03:00
d76d91a33e Update jitsi-web version
Changelog here https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_4857
2020-07-24 13:23:29 +03:00
2a50b8b6bb Merge pull request #597 from TwoTwenty/nginx-proxy-headers
Nginx proxy headers
2020-07-24 12:53:50 +03:00
16251355d9 Add information about deleting SSL renewal config 2020-07-23 08:15:18 +03:00
e0c1c94fa3 Merge pull request #601 from thedanbob/fix-synapse-admin-caps
Fix capability names for synapse-admin
2020-07-23 08:07:38 +03:00
7a3491a32a Fix capability names for synapse-admin 2020-07-22 21:18:15 -05:00
b106a9592e Update matrix-jitsi.conf.j2 2020-07-22 10:39:24 -07:00
c97e7c5a3e Update matrix-dimension.conf.j2 2020-07-22 10:39:07 -07:00
18ba885ca2 Update matrix-client-element.conf.j2 2020-07-22 10:38:50 -07:00
31b79553e0 Make matrix-reminder-bot default to in-container networking 2020-07-22 16:37:14 +03:00
46135fb30c Add trailing-slash redirect for /synapse-admin 2020-07-22 13:15:05 +03:00
296bd6e211 Fix variable name typo 2020-07-22 12:04:49 +03:00
b2ae669566 Add synapse-admin support
Fixes #562 (Github Issue)
2020-07-22 08:10:26 +03:00
34eec3bf11 Fix date typo 2020-07-22 08:06:39 +03:00
0fe1899d96 Be explicit about the type of DNS record to use
Fixes #595 (Github Issue)
2020-07-21 11:20:00 +00:00
6fe477c2fd Improve wording a bit 2020-07-20 14:24:49 +03:00
78b1ef9a5f Add support for matrix-reminder-bot 2020-07-20 14:13:08 +03:00
cdd27734dc Merge pull request #594 from ronanduddy/patch-1
Update configuring-dns.md
2020-07-20 08:04:30 +03:00
46f1137c42 Update configuring-dns.md
Adding a comment with regard to DNS propagation
2020-07-19 15:05:27 +01:00
4b38040efd Merge pull request #592 from hungrymonkey/issue_590
Added gpg as base dependency for Debian 10
2020-07-19 09:11:38 +03:00
d093b9b148 Added gpg as base dependency for Debian 10
AWS Debian marketplace image does not have gpg preinstalled

https://aws.amazon.com/marketplace/pp/B0859NK4HC?ref=cns_srchrow

TASK [matrix-base : Ensure Docker's APT key is trusted] *******************************************************************************************************************************************************
fatal: [matrix.domain.com]: FAILED! => {"changed": false, "msg": "Failed to find required executable gpg in paths: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"}

Closes #590
2020-07-18 07:56:30 -07:00
c3284d6f03 Improve Riot -> Element migration docs a bit 2020-07-17 18:56:40 +03:00
484fccecdb Fix incorrect directory name 2020-07-17 12:10:06 +03:00
b872053a50 Merge pull request #588 from mattcen/fix-ma1sd-image-build
Fix issues building ma1sd Docker image
2020-07-17 11:48:50 +03:00
28855d1bb4 Document matrix_ma1sd_docker_src_files_path naming 2020-07-17 11:47:15 +03:00
ab188018f3 Move when statement to block
The when statement is supposed to be on the block, not on the individual task.

It affects all tasks within the block (they're all to be executed when ma1sd is enabled and self-building is requested0.
2020-07-17 11:44:26 +03:00
c6ab1c6a90 Riot is now Element
Fixes #586 (Github Issue)
2020-07-17 11:31:20 +03:00
fede58fe96 Correctly tag self-built ma1sd Docker image 2020-07-17 17:12:16 +10:00
de0efe96e7 Fix incorrect when statement 2020-07-17 08:59:00 +03:00
298d277c6c Upgrade riot-web (1.7.0 -> 1.7.1) 2020-07-17 08:56:08 +03:00
b0e984136f Fix issues building ma1sd Docker image
The tag format used in the `ma1sd` repo have change. Versions no longer
start with 'v', and when building for non-amd64, we also need to strip
off the '-$arch' bit from the Docker image name.

Further, when building the .jar file, `ma1sd` currently names the .jar
based on the project's directory, which we call 'docker-src'. This means
other parts of the `ma1sd` build can't find the .jar file. Remedy this
by ensuring that the dir is called `docker-src/ma1sd`.
2020-07-17 13:57:47 +10:00
b3911185ea Merge pull request #587 from thedanbob/nginx-1.19.1-certbot-1.6.0
Update nginx (1.19.0 -> 1.19.1) and certbot (1.5.0 -> 1.6.0)
2020-07-16 14:45:13 +03:00
c47a55d170 Update nginx (1.19.0 -> 1.19.1) and certbot (1.5.0 -> 1.6.0) 2020-07-16 06:34:14 -05:00
e980c711f8 Merge pull request #585 from aa1874/patch-2
Update README.md to rename Riot into Element
2020-07-16 00:42:55 +03:00
8b44a024e0 Update README.md to rename Element 2020-07-15 20:44:49 +07:00
820dc6d7fa Fix translation issue (Riot.im -> Element) 2020-07-15 14:46:39 +03:00
7c55e94cff Upgrade riot-web (1.6.7 -> 1.7.0) 2020-07-15 14:28:23 +03:00
4eb87c1dcb Add more notes on migrating data from another installation
Related to #583 (Github Issue).
2020-07-14 16:25:39 +03:00
a1e248e0e1 updated matrix-sms-bridge (#581)
* updated matrix sms bridge container

* remove force pull

* updated matrix-sms-bridge container

* updated matrix-sms-bridge container

* updated version of matrix-sms-bridge

* updates matrix-sms-bridge
2020-07-14 14:02:34 +03:00
b50cfe8d18 Upgrade mautrix-telegram (0.7.2 -> 0.8.1) 2020-07-14 10:37:07 +03:00
25c5a1071c Merge pull request #580 from bertiebaggio/importing-postgres-table-ownership-workaround
importing-postgres.md: Add 'Troubleshooting' w/workaround for ownership
2020-07-13 22:00:36 +03:00
866d6fc1c9 Fix sed formatting 2020-07-13 15:12:17 +01:00
000b482d18 Add 'Troubleshooting' w/workaround for ownership
If a Postgres dump contains ALTER TABLE ... OWNER_TO <username>
statements which set the owner to a username different from
'synapse' the post Postgres import task will fail complaining
about lack of role.

Changing the matrix_postgres_connection_username group var has no
effect. However, the ALTER TABLE statements (and accompanying comments)
can be rewritten to change the username to 'synapse', which permits the
import task to succeed.

From a sample of 1, having the owner set in this was causes no
discernable side effects on the homeserver.
2020-07-13 15:03:24 +01:00
c23a0620f2 Fix default SSL path for federation api in docs
One could also remove the two variables from the docs completely,
because they are set by the playbook automatically.

Error: javax.net.ssl.SSLPeerUnverifiedException: Certificate for
<matrix.<your-domain>> doesn't match any of the subject alternative
names: [<your-domain>]

Fixes #577 (Github Issue).
2020-07-13 14:13:56 +03:00
200f912c04 Upgrade Synapse (v1.16.1 -> v1.17.0)
Fixes #579 (Github Issue).
2020-07-13 14:08:50 +03:00
0074ca646e Improve Goofys documentation example for GCS
Fixes #573 (Github Issue).
2020-07-12 09:50:39 +03:00
ddfc945fcf Remove unused validate_config.yml, since it causes ansible warnings 2020-07-11 00:40:12 +03:00
eff55e4d00 Upgrade Synapse (v1.16.0 -> v1.16.1) 2020-07-10 14:33:18 +03:00
3553d3d513 updated version of matrix-sms-bridge 2020-07-08 18:15:18 +03:00
8e1a418a45 updated matrix-sms-bridge container 2020-07-08 18:15:18 +03:00
bd3223cdd4 updated matrix-sms-bridge container 2020-07-08 18:15:18 +03:00
226d5a9c64 remove force pull 2020-07-08 18:15:18 +03:00
c5f9e02103 updated matrix sms bridge container 2020-07-08 18:15:18 +03:00
928982cffe Upgrade Synapse (v1.15.2 -> v1.16.0) 2020-07-08 14:08:46 +03:00
18ab677a96 Remove useless file 2020-07-08 00:22:47 +03:00
227f1a28e3 Allow matrix_user_uid/matrix_user_gid to be specified manually 2020-07-06 11:05:34 +03:00
024d3b84de Merge pull request #571 from AlwaysLivid/steam-puppet-link-fix
Fixed repository link for mx-puppet-steam
2020-07-05 23:57:43 +03:00
baed917a13 Fixed repository link for mx-puppet-steam
- https://github.com/icewind1991/mx-puppet-steam is the link that's referenced by the documentation.
- The previous link, https://github.com/matrix-steam/mx-puppet-steam, is invalid/inaccessible to the public.
2020-07-05 23:28:03 +03:00
f4412c10c1 Merge pull request #569 from AlwaysLivid/patch-2
Fixed Steam link
2020-07-05 11:28:03 +03:00
8b19ceb6fc Fixed Steam link 2020-07-05 10:26:34 +03:00
ddeefa5f79 Merge pull request #568 from xshadow/api_self_checks_ansible_check_mode
Run all API self checks in check_mode
2020-07-04 17:12:20 +03:00
6293f1bdb0 Run all API self checks in check_mode 2020-07-04 15:24:33 +02:00
b6b5435746 Fix some broken links 2020-07-04 14:20:02 +03:00
a851a14df0 Merge pull request #566 from dasTholo/patch-1
swap links
2020-07-04 14:18:48 +03:00
e2a5278d41 Fix some other swapped Twitter/Discord references 2020-07-04 14:18:37 +03:00
eb2766386f swap links 2020-07-04 10:17:46 +02:00
56640aeebb Merge pull request #564 from ctwelve/master
Expose reCAPTCHA variables and document
2020-07-04 09:35:39 +03:00
f7e4281751 Simplify enabling recaptcha instructions a bit 2020-07-04 09:35:20 +03:00
f758ee90cb Add |to_json to some values 2020-07-04 09:31:52 +03:00
b2a0830638 Better URL for reCAPTCHA doc 2020-07-03 19:10:00 -05:00
35c2655fa4 Removed troublesome #s 2020-07-03 19:01:03 -05:00
1f21f0c09a Add variables for reCAPTCHA validation 2020-07-03 18:33:25 -05:00
b08ee2f2fa Move Jitsi container image tag to a variable
Related to #554 (Github Pull Request).
2020-07-03 13:10:59 +03:00
a8f7ccf3f3 Announce mx-puppet-steam bridging support
Related to #557 (Github Pull Request).
2020-07-03 12:10:57 +03:00
3710e04e10 Merge pull request #557 from izissise/mx-puppet-steam
Add mx-puppet-steam
2020-07-03 12:05:41 +03:00
d5eb7eb949 Merge pull request #560 from aaronraimist/synapse-1.15.2
Upgrade Synapse (1.15.1 -> 1.15.2)
2020-07-02 18:41:51 +03:00
78382b0ce4 Upgrade Synapse (1.15.1 -> 1.15.2) 2020-07-02 10:38:25 -05:00
57f498217a Add mx-puppet-steam 2020-07-01 21:01:00 +02:00
76352bcbd8 Announce mx-puppet-discord bridging support
Related to #540 (Github Pull Request).
2020-07-01 19:01:14 +03:00
a2ba6b1b08 Merge pull request #540 from izissise/mx-puppet-discord
Add mx-puppet-discord
2020-07-01 18:52:32 +03:00
eb0df37247 Mx-puppet-discord Use official docker image
https://github.com/matrix-discord/mx-puppet-discord/issues/80

Thanks Sorunome for setting up the automated build
2020-07-01 13:33:01 +02:00
42e7f5e9bc Add mx-puppet-discord 2020-07-01 13:31:31 +02:00
b5bed60e6b Announce mx-puppet-instagram and mx-puppet-twitter support
Related to #551 and #555 (Github Pull Requests).
2020-06-30 17:52:06 +03:00
270c85ab19 Merge pull request #555 from tulir/mx-puppet-twitter
Add mx-puppet-twitter
2020-06-30 17:40:21 +03:00
9686a0fc5b Expose mx-puppet-twitter port when matrix-nginx-proxy disabled 2020-06-30 17:39:19 +03:00
744667b270 Merge branch 'master' into mx-puppet-twitter 2020-06-30 17:37:19 +03:00
31f9e7bbea Merge pull request #551 from jdreichmann/feat-mx-puppet-instagram
Add mx-puppet-instagram
2020-06-30 17:33:37 +03:00
8b59402f79 Upgrade Coturn (4.5.1.2 -> 4.5.1.3)
4.5.1.3 fixes a security vulnerability:
https://github.com/coturn/coturn/security/advisories/GHSA-c8r8-8vp5-6gcm
2020-06-30 14:28:41 +03:00
f41c5e89e5 Upgrade riot-web (1.6.6 -> 1.6.7) 2020-06-29 18:41:06 +03:00
5b960bcfb5 Make sender_localpart configurable for mx-puppet-twitter 2020-06-29 18:04:40 +03:00
13186a1ddc Add mx-puppet-twitter
Signed-off-by: Tulir Asokan <tulir@maunium.net>
2020-06-29 15:28:43 +03:00
de545f9c5f Update docs on self-building and remove useless variable
`matrix_container_images_self_build` was not really doing anything
anymore. It previously was influencing `matrix_*_self_build` variables,
but it's no longer the case since some time ago.

Individual `matrix_*_self_build` variables are still available.
People that would like to toggle self-building for a specific component
ought to use those.

These variables are also controlled automatically (via
`group_vars/matrix_servers`) depending on `matrix_architecture`.

In other words, self-building is being done automatically for
all components when they don't have a prebuilt image for the specified
architecture. Some components only support `amd64`, while others also
have images for other architectures.
2020-06-29 14:58:03 +03:00
635f385971 Use pre-built arm64 image for ma1sd
ma1sd 2.4.0 announced experimental support for arm64.
We're making use of those arm64 images instead of self-building.
2020-06-29 14:53:23 +03:00
f30d5e0950 Merge pull request #554 from teutat3s/jitsi-update-4627-1
Update Jitsi to stable-4627-1
2020-06-29 09:12:47 +03:00
e181049baf Merge pull request #553 from teutat3s/ma1sd-v2.4.0
Ma1sd v2.4.0
2020-06-29 09:11:15 +03:00
784cb3e325 Update Jitsi to stable-4627-1 2020-06-28 22:00:08 +02:00
0162fe31d1 Re-enable ma1sd user directory search 2020-06-28 21:47:39 +02:00
4cf59098ad Update ma1sd to v2.4.0 2020-06-28 21:47:19 +02:00
ad05c7f758 mx-puppet-instagram: add documentation on how to setup & use the bridge 2020-06-28 10:46:39 +02:00
2073cd6cae mx-puppet-instagram: change tokens appservice<>homeserver in order to not collide with mx-puppet-slack 2020-06-28 10:40:14 +02:00
a2464a365d Merge pull request #552 from pcorace/docs
Documentation of the variables added in the PR #548
2020-06-28 09:07:12 +03:00
19b9a1b16c Expose mautrix-hangouts port if matrix-nginx-proxy is disabled 2020-06-28 09:01:48 +03:00
f7ea5705f1 Agrego documentación de las variables de ajuste fino (Fine tune) de Jitsi. 2020-06-27 16:54:30 -03:00
eab32691d5 Merge pull request #1 from spantaleev/master
Actualizo con los cambios en el repositorio base de Slavi.
2020-06-27 13:02:31 -03:00
0fea35cdd2 mx-puppet-instagram: add role 2020-06-27 15:23:21 +02:00
4543f026a4 Merge pull request #550 from julianfoad/traefik-urls
Improve the example Traefik config.
2020-06-27 08:03:16 +03:00
a081979d39 Merge pull request #548 from pcorace/master
Add variables to fine tune jitsi
2020-06-27 08:01:54 +03:00
671cd51797 Improve the example Traefik config.
Use playbook variables instead of textual place-holders for the domain names.
2020-06-26 15:13:58 +01:00
69570de8a9 Rename variables 2020-06-25 11:20:40 -03:00
c341608480 Add variables to fine tune jitsi 2020-06-23 19:22:52 -03:00
46984a4f99 Nginx conf: more testing less b0rk 2020-04-19 21:42:34 +02:00
765c046beb add missing ; to matrix-synapse.conf.j2 2020-04-19 19:50:42 +02:00
5f63d287b7 Move synapse worker ports up 10k 2020-04-19 19:05:03 +02:00
e4763c21bc nginx config: route traffic to workers on matrix-synapse
FIXME: horrid duplication in template file
2020-04-19 19:05:03 +02:00
66a4073512 Publish synapse worker ports, need to be accessible to nginx 2020-04-19 19:05:03 +02:00
cf452fdf0a Fix corner-cases found through testing (aka ansible is nuts) 2020-04-19 19:05:03 +02:00
a14b9c09ad Add to synapse nginx template conditional URL rewrites for workers
· 😅 How to keep this in sync with the matrix-synapse documentation?
· regex location matching is expensive
· nginx syntax limit: one location only per block / statement
· thus, lots of duplicate statements in this file
2020-04-19 19:05:03 +02:00
353bc7c362 Add initial support for synapse workers
· needs documentation; no checks yet for port clashes or typos in worker name
· according to https://github.com/matrix-org/synapse/wiki/Workers-setup-with-nginx#results
  about 90% of requests go to the synchrotron endpoint
· thus, the synchrotron worker is especially suited to be load-balanced
· most of the other workers are documented to support only a single instance
· https://github.com/matrix-org/synapse/blob/master/docs/workers.md
2020-04-19 19:05:03 +02:00
717 changed files with 32814 additions and 5375 deletions

7
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,7 @@
---
# These are supported funding model platforms
# https://liberapay.com/s.pantaleev/
liberapay: s.pantaleev
# https://ko-fi.com/spantaleev
ko_fi: spantaleev

57
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,57 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
<!--
NOTE: This Ansible playbook installs tens of separate services. If you're having a problem with a specific service, it is likely that the problem is not with our deployment method, but with the service itself. You may wish to report that problem at the source, upstream, and not to us
-->
**To Reproduce**
My `vars.yml` file looks like this:
```yaml
Paste your vars.yml file here.
Make sure to remove any secret values before posting your vars.yml file publicly.
```
<!-- Below this line, tell us what you're doing to reproduce the problem. -->
**Expected behavior**
A clear and concise description of what you expected to happen.
**Matrix Server:**
- OS: [e.g. Ubuntu 21.04]
- Architecture [e.g. amd64, arm32, arm64]
**Ansible:**
If your problem appears to be with Ansible, tell us:
- where you run Ansible -- e.g. on the Matrix server itself; on another computer (which OS? distro? standard installation or containerized Ansible?)
- what version of Ansible you're running (see `ansible --version`)
<!--
The above is only applicable if you're hitting a problem with Ansible itself.
We don't need this information in most cases. Delete this section if not applicable.
-->
**Client:**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
<!--
The above is only applicable if you're hitting a problem with a specific device, but not with others.
We don't need this information in most cases. Delete this section if not applicable.
-->
**Additional context**
Add any other context about the problem here.

View File

@ -0,0 +1,28 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
<!--
NOTE: When submitting feature requests, be aware that:
- This Ansible playbook installs tens of separate services. If you're having a problem with a specific service or you'd like some functionality added to it, it is likely that the problem is not with our deployment method, but with the service itself. You may wish to report that problem at the source, upstream, and not to us.
- This is a community project with no financial backing. The easiest way to get a feature into this project is to just develop it yourself.
-->
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

49
.github/ISSUE_TEMPLATE/i-need-help.md vendored Normal file
View File

@ -0,0 +1,49 @@
---
name: I need help
about: Get support from our community
title: ''
labels: ''
assignees: ''
---
<!--
NOTE: you can usually get more timely support and from more people by joining our Matrix room (also bridged to IRC). See the [Support section of our README](https://github.com/spantaleev/matrix-docker-ansible-deploy#support)
-->
**Playbook Configuration**:
My `vars.yml` file looks like this:
```yaml
Paste your vars.yml file here.
Make sure to remove any secret values before posting your vars.yml file publicly.
```
**Matrix Server:**
- OS: [e.g. Ubuntu 21.04]
- Architecture [e.g. amd64, arm32, arm64]
**Ansible:**
If your problem appears to be with Ansible, tell us:
- where you run Ansible -- e.g. on the Matrix server itself; on another computer (which OS? distro? standard installation or containerized Ansible?)
- what version of Ansible you're running (see `ansible --version`)
**Problem description**:
Describe what you're doing, what you expect to happen and what happens instead here.
Tell us what you've tried and what you're aiming to achieve.
**Client (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
<!--
The above is only applicable if you're hitting a problem with a specific device, but not with others.
We don't need this information in most cases. Delete this section if not applicable.
-->
**Additional context**
Add any other context about the problem here.

7
.github/dependabot.yaml vendored Normal file
View File

@ -0,0 +1,7 @@
---
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: daily

16
.github/workflows/matrix.yml vendored Normal file
View File

@ -0,0 +1,16 @@
---
name: Matrix CI
on: # yamllint disable-line rule:truthy
push:
pull_request:
jobs:
yamllint:
name: 🧹 yamllint
runs-on: ubuntu-latest
steps:
- name: ⤵️ Check out configuration from GitHub
uses: actions/checkout@v3
- name: 🚀 Run yamllint
uses: frenck/action-yamllint@v1.1.2

6
.gitignore vendored
View File

@ -1,5 +1,3 @@
/inventory/*
!/inventory/.gitkeep
!/inventory/host_vars/.gitkeep
!/inventory/scripts
/roles/*/files/scratchpad
.DS_Store
.python-version

8
.yamllint Normal file
View File

@ -0,0 +1,8 @@
---
extends: default
ignore: |
roles/matrix-synapse/vars/workers.yml
rules:
line-length: disable

View File

@ -1,3 +1,796 @@
# 2022-04-25
## buscarron bot support
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [the Buscarron bot](https://gitlab.com/etke.cc/buscarron). It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room
See our [Setting up Buscarron](docs/configuring-playbook-bot-buscarron.md) documentation to get started.
# 2022-04-21
## matrix-registration-bot support
Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now help you set up [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) - a bot that is used to create and manage registration tokens for a Matrix server.
See our [Setting up matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) documentation to get started.
# 2022-04-19
## Borg backup support
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [Borg](https://www.borgbackup.org/) backups with [borgmatic](https://torsion.org/borgmatic/) of your Matrix server.
See our [Setting up borg backup](docs/configuring-playbook-backup-borg.md) documentation to get started.
## (Compatibility Break) Upgrading to Synapse v1.57 on setups using workers may require manual action
If you're running a worker setup for Synapse (`matrix_synapse_workers_enabled: true`), the [Synapse v1.57 upgrade notes](https://github.com/matrix-org/synapse/blob/v1.57.0rc1/docs/upgrade.md#changes-to-database-schema-for-application-services) say that you may need to take special care when upgrading:
> Synapse v1.57.0 includes a change to the way transaction IDs are managed for application services. If your deployment uses a dedicated worker for application service traffic, **it must be stopped** when the database is upgraded (which normally happens when the main process is upgraded), to ensure the change is made safely without any risk of reusing transaction IDs.
If you're not running an `appservice` worker (`matrix_synapse_workers_preset: little-federation-helper` or `matrix_synapse_workers_appservice_workers_count: 0`), you are probably safe to upgrade as per normal, without taking any special care.
If you are running a setup with an `appservice` worker, or otherwise want to be on the safe side, we recommend the following upgrade path:
0. Pull the latest playbook changes
1. Stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)
2. Re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all`)
3. Start Postgres (`systemctl start matrix-postgres` on the server)
4. Start the main Synapse process (`systemctl start matrix-synapse` on the server)
5. Wait a while so that Synapse can start and complete the database migrations. You can use `journalctl -fu matrix-synapse` on the server to get a clue. Waiting a few minutes should also be enough.
6. It should now be safe to start all other services. `ansible-playbook -i inventory/hosts setup.yml --tags=start` will do it for you
# 2022-04-14
## (Compatibility Break) Changes to `docker-src` permissions necessitating manual action
Users who build container images from source will need to manually correct file permissions of some directories on the server.
When self-building, the playbook used to `git clone` repositories (into `/matrix/SERVICE/docker-src`) using the `root` user, but now uses `matrix` instead to work around [the following issue with git 2.35.2](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1749).
If you're on a non-`amd64` architecture (that is, you're overriding `matrix_architecture` in your `vars.yml` file) or you have enabled self-building for some service (e.g. `matrix_*_self_build: true`), you're certainly building some container images from source and have `docker-src` directories with mixed permissions lying around in various `/matrix/SERVICE` directories.
The playbook *could* correct these permissions automatically, but that requires additional Ansible tasks in some ~45 different places - something that takes considerable effort. So we ask users observing errors related to `docker-src` directories to correct the problem manually by **running this command on the Matrix server** (which deletes all `/matrix/*/docker-src` directories): `find /matrix -maxdepth 2 -name 'docker-src' | xargs rm -rf`
# 2022-03-17
## (Compatibility Break) ma1sd identity server no longer installed by default
The playbook no longer installs the [ma1sd](https://github.com/ma1uta/ma1sd) identity server by default. The next time you run the playbook, ma1sd will be uninstalled from your server, unless you explicitly enable the ma1sd service (see how below).
The main reason we used to install ma1sd by default in the past was to prevent Element from talking to the `matrix.org` / `vector.im` identity servers, by forcing it to talk to our own self-hosted (but otherwise useless) identity server instead, thus preventing contact list leaks.
Since Element no longer defaults to using a public identity server if another one is not provided, we can stop installing ma1sd.
If you need to install the ma1sd identity server for some reason, you can explicitly enable it by adding this to your `vars.yml` file:
```yaml
matrix_ma1sd_enabled: true
```
# 2022-02-12
## matrix_encryption_disabler support
We now support installing the [matrix_encryption_disabler](https://github.com/digitalentity/matrix_encryption_disabler) Synapse module, which lets you prevent End-to-End-Encryption from being enabled by users on your homeserver. The popular opinion is that this is dangerous and shouldn't be done, but there are valid use cases for disabling encryption discussed [here](https://github.com/matrix-org/synapse/issues/4401).
To enable this module (and prevent encryption from being used on your homserver), add `matrix_synapse_ext_encryption_disabler_enabled: true` to your configuration. This module provides further customization. Check its other configuration settings (and defaults) in `roles/matrix-synapse/defaults/main.yml`.
# 2022-02-01
## matrix-hookshot bridging support
Thanks to [HarHarLinks](https://github.com/HarHarLinks), the playbook can now install the [matrix-hookshot](https://github.com/Half-Shot/matrix-hookshot) bridge for bridging Matrix to multiple project management services, such as GitHub, GitLab and JIRA.
See our [Setting up matrix-hookshot](docs/configuring-playbook-bridge-hookshot.md) documentation to get started.
# 2022-01-31
## ARM support for matrix-corporal
[matrix-corporal](https://github.com/devture/matrix-corporal) (as of version `2.2.3`) is now published to Docker Hub (see [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal)) as a multi-arch container image with support for all these platforms: `linux/amd64`, `linux/arm64/v8` and `linux/arm/v7`. The playbook no longer resorts to self-building matrix-corporal on these ARM architectures.
# 2022-01-07
## Dendrite support
**TLDR**: We now have optional experimental [Dendrite](https://github.com/matrix-org/dendrite) homeserver support for new installations. **Existing (Synapse) installations need to be updated**, because some internals changed. See [Adapting the configuration for existing Synapse installations](#adapting-the-configuration-for-existing-synapse-installations).
[Jip J. Dekker](https://github.com/Dekker1) did the [initial work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/818) of adding [Dendrite](https://github.com/matrix-org/dendrite) support to the playbook back in January 2021. Lots of work (and time) later, Dendrite support is finally ready for testing.
We believe that 2022 will be the year of the non-Synapse Matrix server!
The playbook was previously quite [Synapse](https://github.com/matrix-org/synapse)-centric, but can now accommodate multiple homeserver implementations. Only one homeserver implementation can be active (installed) at a given time.
**Synapse is still the default homeserver implementation** installed by the playbook. A new variable (`matrix_homeserver_implementation`) controls which server implementation is enabled (`synapse` or `dendrite` at the given moment).
### Adapting the configuration for existing Synapse installations
Because the playbook is not so Synapse-centric anymore, a small configuration change is necessary for existing installations to bring them up to date.
The `vars.yml` file for **existing installations will need to be updated** by adding this **additional configuration**:
```yaml
# All secrets keys are now derived from `matrix_homeserver_generic_secret_key`, not from `matrix_synapse_macaroon_secret_key`.
# To keep them all the same, define `matrix_homeserver_generic_secret_key` in terms of `matrix_synapse_macaroon_secret_key`.
# Using a new secret value for this configuration key is also possible and should not cause any problems.
#
# Fun fact: new installations (based on the new `examples/vars.yml` file) do this in reverse.
# That is, the Synapse macaroon secret is derived from `matrix_homeserver_generic_secret_key`.
matrix_homeserver_generic_secret_key: "{{ matrix_synapse_macaroon_secret_key }}"
```
### Trying out Dendrite
Finally, **to try out Dendrite**, we recommend that you **use a new server** and the following addition to your `vars.yml` configuration:
```yaml
matrix_homeserver_implementation: dendrite
```
**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse to Dendrite) without data loss.
We're excited to gain support for other homeserver implementations, like [Conduit](https://conduit.rs/), etc!
## Honoroit bot support
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://gitlab.com/etke.cc/honoroit) - a helpdesk bot.
See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documentation to get started.
# 2022-01-06
## Cinny support
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) - a new simple, elegant and secure Matrix client.
By default, we still install Element. Still, people who'd like to try Cinny out can now install it via the playbook.
Additional details are available in [Setting up Cinny](docs/configuring-playbook-client-cinny.md).
# 2021-12-22
## Twitter bridging support via mautrix-twitter
Thanks to [Matthew Cengia](https://github.com/mattcen) and [Shreyas Ajjarapu](https://github.com/shreyasajj), besides [mx-puppet-twitter](docs/configuring-playbook-bridge-mx-puppet-twitter.md), bridging to [Twitter](https://twitter.com/) can now also happen with [mautrix-twitter](docs/configuring-playbook-bridge-mautrix-twitter.md).
# 2021-12-14
## (Security) Users of the Signal bridge may wish to upgrade it to work around log4j vulnerability
Recently, a security vulnerability affecting the Java logging package `log4j` [has been discovered](https://www.huntress.com/blog/rapid-response-critical-rce-vulnerability-is-affecting-java). Software that uses this Java package is potentially vulnerable.
One such piece of software that is part of the playbook is the [mautrix-signal bridge](./docs/configuring-playbook-bridge-mautrix-signal.md), which [has been patched already](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1452). If you're running this bridge, you may wish to [upgrade](./docs/maintenance-upgrading-services.md).
# 2021-11-11
## Dropped support for Postgres v9.6
Postgres v9.6 reached its end of life today, so the playbook will refuse to run for you if you're still on that version.
Synapse still supports v9.6 (for now), but we're retiring support for it early, to avoid having to maintain support for so many Postgres versions. Users that are still on Postgres v9.6 can easily [upgrade Postgres](docs/maintenance-postgres.md#upgrading-postgresql) via the playbook.
# 2021-10-23
## Hangouts bridge no longer updated, superseded by a Googlechat bridge
The mautrix-hangouts bridge is no longer receiving updates upstream and is likely to stop working in the future.
We still retain support for this bridge in the playbook, but you're encouraged to switch away from it.
There's a new [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge that you can [install using the playbook](docs/configuring-playbook-bridge-mautrix-googlechat.md).
Your **Hangouts bridge data will not be migrated**, however. You need to start fresh with the new bridge.
# 2021-08-23
## LinkedIn bridging support via beeper-linkedin
Thanks to [Alexandar Mechev](https://github.com/apmechev), the playbook can now install the [beeper-linkedin](https://gitlab.com/beeper/linkedin) bridge for bridging to [LinkedIn](https://www.linkedin.com/) Messaging.
This brings the total number of bridges supported by the playbook up to 20. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks).
To get started with bridging to LinkedIn, see [Setting up Beeper LinkedIn bridging](docs/configuring-playbook-bridge-beeper-linkedin.md).
# 2021-08-20
# Sygnal upgraded - ARM support and no longer requires a database
The [Sygnal](docs/configuring-playbook-sygnal.md) push gateway has been upgraded from `v0.9.0` to `v0.10.1`.
This is an optional component for the playbook, so most of our users wouldn't care about this announcement.
Since this feels like a relatively big (and untested, as of yet) Sygnal change, we're putting up this changelog entry.
The new version is also available for the ARM architecture. It also no longer requires a database anymore.
If you need to downgrade to the previous version, changing `matrix_sygnal_version` or `matrix_sygnal_docker_image` will not be enough, as we've removed the `database` configuration completely. You'd need to switch to an earlier playbook commit.
# 2021-05-21
## Hydrogen support
Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) - a new lightweight matrix client with legacy and mobile browser support.
By default, we still install Element, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook.
Additional details are available in [Setting up Hydrogen](docs/configuring-playbook-client-hydrogen.md).
# 2021-05-19
## Heisenbridge support
Thanks to [Toni Spets (hifi)](https://github.com/hifi), the playbook now supports bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) using yet another bridge (besides matrix-appservice-irc), called [Heisenbridge](https://github.com/hifi/heisenbridge).
Additional details are available in [Setting up Heisenbridge bouncer-style IRC bridging](docs/configuring-playbook-bridge-heisenbridge.md).
# 2021-04-16
## Disabling TLSv1 and TLSv1.1 for Coturn
To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999) from our default [Coturn](https://github.com/coturn/coturn) configuration.
If you need to support old clients, you can re-enable both (or whichever one you need) with the following configuration:
```yaml
matrix_coturn_tls_v1_enabled: true
matrix_coturn_tls_v1_1_enabled: true
```
# 2021-04-05
## Automated local Postgres backup support
Thanks to [foxcris](https://github.com/foxcris), the playbook can now make automated local Postgres backups on a fixed schedule using [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local).
Additional details are available in [Setting up postgres backup](docs/configuring-playbook-postgres-backup.md).
# 2021-04-03
## Mjolnir moderation tool (bot) support
Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook can now install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation tool (bot).
Additional details are available in [Setting up Mjolnir](docs/configuring-playbook-bot-mjolnir.md).
# 2021-03-20
## Sygnal push gateway support
The playbook can now install the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you.
This is only useful to people who develop/build their own Matrix client applications.
Additional details are available in our [Setting up Sygnal](docs/configuring-playbook-sygnal.md) docs.
# 2021-03-16
## Go-NEB support
Thanks to [Zir0h](https://github.com/Zir0h), the playbook can now install and configure the [Go-NEB](https://github.com/matrix-org/go-neb) bot.
Additional details are available in [Setting up Go-NEB](docs/configuring-playbook-bot-go-neb.md).
# 2021-02-19
## GroupMe bridging support via mx-puppet-groupme
Thanks to [Cody Neiman](https://github.com/xangelix), the playbook can now install the [mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) bridge for bridging to [GroupMe](https://groupme.com).
This brings the total number of bridges supported by the playbook up to 18. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks).
To get started, follow our [Setting up MX Puppet GroupMe](docs/configuring-playbook-bridge-mx-puppet-groupme.md) docs.
## Mautrix Instagram bridging support
The playbook now supports bridging with [Instagram](https://www.instagram.com/) by installing the [mautrix-instagram](https://github.com/tulir/mautrix-instagram) bridge. This playbook functionality is available thanks to [@MarcProe](https://github.com/MarcProe).
Additional details are available in [Setting up Mautrix Instagram bridging](docs/configuring-playbook-bridge-mautrix-instagram.md).
## Synapse workers support
After [lots and lots of work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456) (done over many months by [Marcel Partap](https://github.com/eMPee584), [Max Klenk](https://github.com/maxklenk), a few others from the [Technical University of Dresden, Germany](https://tu-dresden.de/) and various other contributors), support for Synapse workers has finally landed.
Having support for workers makes the playbook suitable for larger homeserver deployments.
Our setup is not yet perfect (we don't support all types of workers; scaling some of them (like `pusher`, `federation_sender`) beyond a single instance is not yet supported). Still, it's a great start and can already power homeservers with thousands of users, like the [Matrix deployment at TU Dresden](https://doc.matrix.tu-dresden.de/en/) discussed in [Matrix Live S06E09 - TU Dresden on their Matrix deployment](https://www.youtube.com/watch?v=UHJX2pmT2gk).
By default, workers are disabled and Synapse runs as a single process (homeservers don't necessarily need the complexity and increased memory requirements of running a worker-based setup).
To enable Synapse workers, follow our [Load balancing with workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) documentation.
# 2021-02-12
## (Potential Breaking Change) Monitoring/metrics support using Prometheus and Grafana
Thanks to [@Peetz0r](https://github.com/Peetz0r), the playbook can now install a bunch of tools for monitoring your Matrix server: the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI.
To get get these installed, follow our [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](docs/configuring-playbook-prometheus-grafana.md) docs page.
This update comes with a **potential breaking change** for people who were already exposing Synapse metrics (for consumption via another Prometheus installation). From now on, `matrix_synapse_metrics_enabled: true` no longer exposes metrics publicly via matrix-nginx-proxy (at `https://matrix.DOMAIN/_synapse/metrics`). To do so, you'd need to explicitly set `matrix_nginx_proxy_proxy_synapse_metrics: true`.
# 2021-01-31
## Etherpad support
Thanks to [@pushytoxin](https://github.com/pushytoxin), the playbook can now install the [Etherpad](https://etherpad.org) realtime collaborative text editor. It can be used in a [Jitsi](https://jitsi.org/) audio/video call or integrated as a widget into Matrix chat rooms via the [Dimension](https://dimension.t2bot.io) integration manager.
To get it installed, follow [our Etherpad docs page](docs/configuring-playbook-etherpad.md).
# 2021-01-22
## (Breaking Change) Postgres changes that require manual intervention
We've made a lot of changes to our Postgres setup and some manual action is required (described below). Sorry about the hassle.
**TLDR**: people running an [external Postgres server](docs/configuring-playbook-external-postgres.md) don't need to change anything for now. Everyone else (the common/default case) is affected and manual intervention is required.
### Why?
- we had a default Postgres password (`matrix_postgres_connection_password: synapse-password`), which we think is **not ideal for security anymore**. We now ask you to generate/provide a strong password yourself. Postgres is normally not exposed outside the container network, making it relatively secure, but still:
- by tweaking the configuration, you may end up intentionally or unintentionally exposing your Postgres server to the local network (or even publicly), while still using the default default credentials (`synapse` + `synapse-password`)
- we can't be sure we trust all these services (bridges, etc). Some of them may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)
- you may have other containers running on the same Docker network, which may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)
- our Postgres usage **was overly-focused on Synapse** (default username of `synapse` and default/main database of `homeserver`). Additional homeserver options are likely coming in the future ([Dendrite](https://matrix.org/docs/projects/server/dendrite), [Conduit](https://matrix.org/docs/projects/server/conduit), [The Construct](https://matrix.org/docs/projects/server/construct)), so being too focused on `matrix-synapse` is not great. From now on, Synapse is just another component of this playbook, which happens to have an *additional database* (called `synapse`) on the Postgres server.
- we try to reorganize things a bit, to make the playbook even friendlier to people running an [external Postgres server](docs/configuring-playbook-external-postgres.md). Work on this will proceed in the future.
So, this is some **effort to improve security** and to **prepare for a brighter future of having more homeserver options** than just Synapse.
### What has really changed?
- the default superuser Postgres username is now `matrix` (used to be `synapse`)
- the default Postgres database is now `matrix` (used to be `homeserver`)
- Synapse's database is now `synapse` (used to be `homeserver`). This is now just another "additional database" that the playbook manages for you
- Synapse's user called `synapse` is just a regular user that can only use the `synapse` database (not a superuser anymore)
### What do I do if I'm using the integrated Postgres server (default)?
By default, the playbook runs an integrated Postgres server for you in a container (`matrix-postgres`). Unless you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), these steps are meant for you.
To migrate to the new setup, expect a few minutes of downtime, while you follow these steps:
1. We believe the steps below are safe and you won't encounter any data loss, but consider [making a Postgres backup](docs/maintenance-postgres.md#backing-up-postgresql) anyway. If you've never backed up Postgres, now would be a good time to try it.
2. Generate a strong password to be used for your superuser Postgres user (called `matrix`). You can use `pwgen -s 64 1` to generate it, or some other tool. The **maximum length** for a Postgres password is 100 bytes (characters). Don't go crazy!
3. Update your playbook's `inventory/host_vars/matrix.DOMAIN/vars.yml` file, adding a line like this:
```yaml
matrix_postgres_connection_password: 'YOUR_POSTGRES_PASSWORD_HERE'
```
.. where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2.
4. Stop all services: `ansible-playbook -i inventory/hosts setup.yml --tags=stop`
5. Log in to the server via SSH. The next commands will be performed there.
6. Start the Postgres database server: `systemctl start matrix-postgres`
7. Open a Postgres shell: `/usr/local/bin/matrix-postgres-cli`
8. Execute the following query, while making sure to **change the password inside** (**don't forget the ending `;`**):
```sql
CREATE ROLE matrix LOGIN SUPERUSER PASSWORD 'YOUR_POSTGRES_PASSWORD_HERE';
```
.. where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2.
9. Execute the following queries as you see them (no modifications necessary, so you can just **paste them all at once**):
```sql
CREATE DATABASE matrix OWNER matrix;
ALTER DATABASE postgres OWNER TO matrix;
ALTER DATABASE template0 OWNER TO matrix;
ALTER DATABASE template1 OWNER TO matrix;
\c matrix;
ALTER DATABASE homeserver RENAME TO synapse;
ALTER ROLE synapse NOSUPERUSER NOCREATEDB NOCREATEROLE;
\quit
```
You may need to press *Enter* after pasting the lines above.
10. Re-run the playbook normally: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`
### What do I do if I'm using an external Postgres server?
If you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), there are **no changes** that you need to do at this time.
The fact that we've renamed Synapse's database from `homeserver` to `synapse` (in our defaults) should not affect you, as you're already explicitly defining `matrix_synapse_database_database` (if you've followed our guide, that is). If you're not explicitly defining this variable, you may wish to do so (`matrix_synapse_database_database: homeserver`), to avoid the new `synapse` default and keep things as they were.
# 2021-01-20
## (Breaking Change) The mautrix-facebook bridge now requires a Postgres database
**Update from 2021-11-15**: SQLite support has been re-added to the mautrix-facebook bridge in [v0.3.2](https://github.com/mautrix/facebook/releases/tag/v0.3.2). You can ignore this changelog entry.
A new version of the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge has been released. It's a full rewrite of its backend and the bridge now requires Postgres. New versions of the bridge can no longer run on SQLite.
**TLDR**: if you're NOT using an [external Postgres server](docs/configuring-playbook-external-postgres.md) and have NOT forcefully kept the bridge on SQLite during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous), you will be automatically upgraded without manual intervention. All you need to do is send a `login` message to the Facebook bridge bot again.
Whether this change requires your intervention depends mostly on:
- whether you're using an [external Postgres server](docs/configuring-playbook-external-postgres.md). If yes, then [you need to do something](#upgrade-path-for-people-running-an-external-postgres-server).
- or whether you've force-changed the bridge's database engine to SQLite (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) some time in the past (likely during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous)).
As already mentioned above, you most likely don't need to do anything. If you rerun the playbook and don't get an error, you've been automatically upgraded. Just send a `login` message to the Facebook bridge bot again. Otherwise, read below for a solution.
### Upgrade path for people NOT running an external Postgres server (default for the playbook)
If you're **not running an external Postgres server**, then this bridge either already works on Postgres for you, or you've intentionally kept it back on SQLite with custom configuration (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) .
Simply remove that custom configuration from your `vars.yml` file (if it's there) and re-run the playbook. It should upgrade you automatically.
You'll need to send a `login` message to the Facebook bridge bot again.
Alternatively, [you can stay on SQLite for a little longer](#staying-on-sqlite-for-a-little-longer-temporary-solution).
### Upgrade path for people running an external Postgres server
For people using the internal Postgres server (the default for the playbook):
- we automatically create an additional `matrix_mautrix_facebook` Postgres database and credentials to access it
- we automatically adjust the bridge's `matrix_mautrix_facebook_database_*` variables to point the bridge to that Postgres database
- we use [pgloader](https://pgloader.io/) to automatically import the existing SQLite data for the bridge into the `matrix_mautrix_facebook` Postgres database
If you are using an [external Postgres server](docs/configuring-playbook-external-postgres.md), unfortunately we currently can't do any of that for you.
You have 3 ways to proceed:
- contribute to the playbook to make this possible (difficult)
- or, do the migration "steps" manually:
- stop the bridge (`systemctl stop matrix-mautrix-facebook`)
- create a new `matrix_mautrix_facebook` Postgres database for it
- run [pgloader](https://pgloader.io/) manually (we import this bridge's data using default settings and it works well)
- define `matrix_mautrix_facebook_database_*` variables in your `vars.yml` file (credentials, etc.) - you can find their defaults in `roles/matrix-mautrix-facebook/defaults/main.yml`
- switch the bridge to Postgres (`matrix_mautrix_facebook_database_engine: 'postgres'` in your `vars.yml` file)
- re-run the playbook (`--tags=setup-all,start`) and ensure the bridge works (`systemctl status matrix-mautrix-facebook` and `journalctl -fu matrix-mautrix-facebook`)
- send a `login` message to the Facebook bridge bot again
- or, [stay on SQLite for a little longer (temporary solution)](#staying-on-sqlite-for-a-little-longer-temporary-solution)
### Staying on SQLite for a little longer (temporary solution)
To keep using this bridge with SQLite for a little longer (**not recommended**), use the following configuration in your `vars.yml` file:
```yaml
# Force-change the database engine to SQLite.
matrix_mautrix_facebook_database_engine: 'sqlite'
# Force-downgrade to the last bridge version which supported SQLite.
matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_name_prefix }}tulir/mautrix-facebook:da1b4ec596e334325a1589e70829dea46e73064b"
```
If you do this, keep in mind that **you can't run this forever**. This SQLite-supporting bridge version is not getting any updates and will break sooner or later. The playbook will also drop support for SQLite at some point in the future.
# 2021-01-17
## matrix-corporal goes 2.0
[matrix-corporal v2 has been released](https://github.com/devture/matrix-corporal/releases/tag/2.0.0) and the playbook also supports it now.
No manual intervention is required in the common case.
The new [matrix-corporal](https://github.com/devture/matrix-corporal) version is also the first one to support Interactive Authentication. If you wish to enable that (hint: you should), you'll need to set up the [REST auth password provider](docs/configuring-playbook-rest-auth.md). There's more information in [our matrix-corporal docs](docs/configuring-playbook-matrix-corporal.md).
# 2021-01-14
## Moving from cronjobs to systemd timers
We no longer use cronjobs for Let's Encrypt SSL renewal and `matrix-nginx-proxy`/`matrix-coturn` reloading. Instead, we've switched to systemd timers.
The largest benefit of this is that we no longer require you to install a cron daemon, thus simplifying our install procedure.
The playbook will migrate you from cronjobs to systemd timers automatically. This is just a heads up.
# 2021-01-08
## (Breaking Change) New SSL configuration
SSL configuration (protocols, ciphers) can now be more easily controlled thanks to us making use of configuration presets.
We define a few presets (old, intermediate, modern), following the [Mozilla SSL Configuration Generator](https://ssl-config.mozilla.org/#server=nginx).
A new variable `matrix_nginx_proxy_ssl_preset` controls which preset is used (defaults to `"intermediate"`).
Compared to before, this changes nginx's `ssl_prefer_server_ciphers` to `off` (used to default to `on`). It also add some more ciphers to the list, giving better performance on mobile devices, and removes some weak ciphers. More information in the [documentation](docs/configuring-playbook-nginx.md).
To revert to the old behaviour, set the following variables:
```yaml
matrix_nginx_proxy_ssl_ciphers: "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
matrix_nginx_proxy_ssl_prefer_server_ciphers: "on"
```
Just like before, you can still use your own custom protocols by specifying them in `matrix_nginx_proxy_ssl_protocols`. Doing so overrides the values coming from the preset.
# 2021-01-03
## Signal bridging support via mautrix-signal
Thanks to [laszabine](https://github.com/laszabine)'s efforts, the playbook now supports bridging to [Signal](https://www.signal.org/) via the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge. See our [Setting up Mautrix Signal bridging](docs/configuring-playbook-bridge-mautrix-signal.md) documentation page for getting started.
If you had installed the mautrix-signal bridge while its Pull Request was still work-in-progress, you can migrate your data to the new and final setup by referring to [this comment](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686#issuecomment-753510789).
# 2020-12-23
## The big move to all-on-Postgres (potentially dangerous)
**TLDR**: all your bridges (and other services) will likely be auto-migrated from SQLite/nedb to Postgres, hopefully without trouble. You can opt-out (see how below), if too worried about breakage.
Until now, we've only used Postgres as a database for Synapse. All other services (bridges, bots, etc.) were kept simple and used a file-based database (SQLite or nedb).
Since [this huge pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/740), **all of our services now use Postgres by default**. Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann) for starting the work on it and for providing great input!
Moving all services to Postgres brings a few **benefits** to us:
- **improved performance**
- **improved compatibility**. Most bridges are deprecating SQLite/nedb support or offer less features when not on Postgres.
- **easier backups**. It's still some effort to take a proper backup (Postgres dump + various files, keys), but a Postgres dump now takes you much further.
- we're now **more prepared to introduce other services** that need a Postgres database - [Dendrite](https://github.com/matrix-org/dendrite), the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge (existing [pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686)), etc.
### Key takeway
- existing installations that use an [external Postgres](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-external-postgres.md) server should be unaffected (they remain on SQLite/nedb for all services, except Synapse)
- for existing installations which use our integrated Postgres database server (`matrix-postgres`, which is the default), **we automatically migrate data** from SQLite/nedb to Postgres and **archive the database files** (`something.db` -> `something.db.backup`), so you can restore them if you need to go back (see how below).
### Opting-out of the Postgres migration
This is a **very large and somewhat untested change** (potentially dangerous), so **if you're not feeling confident/experimental, opt-out** of it for now. Still, it's the new default and what we (and various bridges) will focus on going forward, so don't stick to old ways for too long.
You can remain on SQLite/nedb (at least for now) by adding a variable like this to your `vars.yml` file for each service you use: `matrix_COMPONENT_database_engine: sqlite` (e.g. `matrix_mautrix_facebook_database_engine: sqlite`).
Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them.
### Going back to SQLite/nedb if things went wrong
If you went with the Postgres migration and it went badly for you (some bridge not working as expected or not working at all), do this:
- stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)
- SSH into the server and rename the old database files (`something.db.backup` -> `something.db`). Example: `mv /matrix/mautrix-facebook/data/mautrix-facebook.db.backup /matrix/mautrix-facebook/data/mautrix-facebook.db`
- switch the affected service back to SQLite (e.g. `matrix_mautrix_facebook_database_engine: sqlite`). Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them.
- re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`)
- [get in touch](README.md#support) with us
# 2020-12-11
## synapse-janitor support removed
We've removed support for the unmaintained [synapse-janitor](https://github.com/xwiki-labs/synapse_scripts) script. There's been past reports of it corrupting the Synapse database. Since there hasn't been any new development on it and it doesn't seem too useful nowadays, there's no point in including it in the playbook.
If you need to clean up or compact your database, consider using the Synapse Admin APIs directly. See our [Synapse maintenance](docs/maintenance-synapse.md) and [Postgres maintenance](docs/maintenance-postgres.md) documentation pages for more details.
## Docker 20.10 is here
(No need to do anything special in relation to this. Just something to keep in mind)
Docker 20.10 got released recently and your server will likely get it the next time you update.
This is the first major Docker update in a long time and it packs a lot of changes.
Some of them introduced some breakage for us initially (see [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/d08b27784f222effcbce2abf924bf07bbe0893be) and [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/7593d969e316cc0144bce378a5be58c76c2c37ee)), but it should be all good now.
# 2020-12-08
## openid APIs exposed by default on the federation port when federation disabled
We've changed some defaults. People running with our default configuration (federation enabled), are not affected at all.
If you are running an unfederated server (`matrix_synapse_federation_enabled: false`), this may be of interest to you.
When federation is disabled, but ma1sd or Dimension are enabled, we'll now expose the `openid` APIs on the federation port.
These APIs are necessary for some ma1sd features to work. If you'd like to prevent this, you can: `matrix_synapse_federation_port_openid_resource_required: false`.
# 2020-11-27
## Recent Jitsi updates may require configuration changes
We've recently [updated from Jitsi build 4857 to build 5142](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/719), which brings a lot of configuration changes.
**If you use our default Jitsi settings, you won't have to do anything.**
People who have [fine-tuned Jitsi](docs/configuring-playbook-jitsi.md#optional-fine-tune-jitsi) may find that some options got renamed now, others are gone and yet others still need to be defined in another way.
The next time you run the playbook [installation](docs/installing.md) command, our validation logic will tell you if you're using some variables like that and will recommend a migration path for each one.
Additionally, we've recently disabled transcriptions (`matrix_jitsi_enable_transcriptions: false`) and recording (`matrix_jitsi_enable_recording: false`) by default. These features did not work anyway, because we don't install the required dependencies for them (Jigasi and Jibri, respectively). If you've been somehow pointing your Jitsi installation to some manually installed Jigasi/Jibri service, you may need to toggle these flags back to enabled to have transcriptions and recordings working.
# 2020-11-23
## Breaking change matrix-sms-bridge
Because of many problems using gammu as SMS provider, matrix-sms-bridge now uses (https://github.com/RebekkaMa/android-sms-gateway-server) by default. See (the docs)[./docs/configuring-playbook-bridge-matrix-bridge-sms.md] which new vars you need to add.
If you are using this playbook to deploy matrix-sms-bridge and still really want to use gammu as SMS provider, we could possibly add support for both android-sms-gateway-server and gammu.
# 2020-11-13
## Breaking change matrix-sms-bridge
The new version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) changed its database from neo4j to h2. You need to sync the bridge at the first start. Note that this only will sync rooms where the @smsbot:yourServer is member. For rooms without @smsbot:yourServer you need to kick and invite the telephone number **or** invite @smsbot:yourServer.
1. Add the following to your `vars.yml` file: `matrix_sms_bridge_container_extra_arguments=['--env SPRING_PROFILES_ACTIVE=initialsync']`
2. Login to your host shell and remove old systemd file from your host: `rm /etc/systemd/system/matrix-sms-bridge-database.service`
2. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-matrix-sms-bridge,start`
3. Login to your host shell and check the logs with `journalctl -u matrix-sms-bridge` until the sync finished.
4. Remove the var from the first step.
5. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`.
# 2020-11-10
## Dynamic DNS support
Thanks to [Scott Crossen](https://github.com/scottcrossen), the playbook can now manage Dynamic DNS for you using [ddclient](https://ddclient.net/).
To learn more, follow our [Dynamic DNS docs page](docs/configuring-playbook-dynamic-dns.md).
# 2020-10-28
## (Compatibility Break) https://matrix.DOMAIN/ now redirects to https://element.DOMAIN/
Until now, we used to serve a static page coming from Synapse at `https://matrix.DOMAIN/`. This page was not very useful to anyone.
Since `matrix.DOMAIN` may be accessed by regular users in certain conditions, it's probably better to redirect them to a better place (e.g. to the [Element](docs/configuring-playbook-client-element.md) client).
If Element is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page.
If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable.
To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: ""`).
# 2020-10-26
## (Compatibility Break) /_synapse/admin is no longer publicly exposed by default
We used to expose the Synapse Admin APIs publicly (at `https://matrix.DOMAIN/_synapse/admin`).
These APIs require authentication with a valid access token, so it's not that big a deal to expose them.
However, following [official Synapse's reverse-proxying recommendations](https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints), we're no longer exposing `/_synapse/admin` by default.
If you'd like to restore restore the old behavior and expose `/_synapse/admin` publicly, you can use the following configuration (in your `vars.yml`):
```yaml
matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true
```
# 2020-10-02
## Minimum Ansible version raised to v2.7.0
We were claiming to support [Ansible](https://www.ansible.com/) v2.5.2 and higher, but issues like [#662](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/662) demonstrate that we need at least v2.7.0.
If you've been using the playbook without getting any errors until now, you're probably on a version higher than that already (or you're not using the `matrix-ma1sd` and `matrix-client-element` roles).
Our [Ansible docs page](docs/ansible.md) contains information on how to run a more up-to-date version of Ansible.
# 2020-10-01
## Postgres 13 support
The playbook now installs [Postgres 13](https://www.postgresql.org/about/news/postgresql-13-released-2077/) by default.
If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x, 11.x or 12.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql).
# 2020-09-01
## matrix-registration support
The playbook can now help you set up [matrix-registration](https://github.com/ZerataX/matrix-registration) - an application that lets you keep your Matrix server's registration private, but still allow certain users (those having a unique registration link) to register by themselves.
See our [Setting up matrix-registration](docs/configuring-playbook-matrix-registration.md) documentation page to get started.
# 2020-08-21
## rust-synapse-compress-state support
The playbook can now help you use [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) to compress the state groups in your Synapse database.
See our [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state) documentation page to get started.
# 2020-07-22
## Synapse Admin support
The playbook can now help you set up [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin).
See our [Setting up Synapse Admin](docs/configuring-playbook-synapse-admin.md) documentation to get started.
# 2020-07-20
## matrix-reminder-bot support
The playbook can now help you set up [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot).
See our [Setting up matrix-reminder-bot](docs/configuring-playbook-bot-matrix-reminder-bot.md) documentation to get started.
# 2020-07-17
## (Compatibility Break) Riot is now Element
As per the official announcement, [Riot has been rebraned to Element](https://element.io/blog/welcome-to-element/).
The playbook follows suit. Existing installations have a few options for how to handle this.
See our [Migrating to Element](docs/configuring-playbook-riot-web.md#migrating-to-element) documentation page for more details.
# 2020-07-03
## Steam bridging support via mx-puppet-steam
Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Steam](https://steamapp.com/) via the [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) bridge. See our [Setting up MX Puppet Steam bridging](docs/configuring-playbook-bridge-mx-puppet-steam.md) documentation page for getting started.
# 2020-07-01
## Discord bridging support via mx-puppet-discord
Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mx-puppet-discord](https://github.com/Sorunome/mx-puppet-discord) bridge. See our [Setting up MX Puppet Discord bridging](docs/configuring-playbook-bridge-mx-puppet-discord.md) documentation page for getting started.
**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md). You're free too use the bridge that serves you better, or even both (for different users and use-cases).
# 2020-06-30
## Instagram and Twitter bridging support
Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann)'s efforts, the playbook now supports bridging to [Instagram](https://www.instagram.com/) via the [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) bridge. See our [Setting up MX Puppet Instagram bridging](docs/configuring-playbook-bridge-mx-puppet-instagram.md) documentation page for getting started.
Thanks to [Tulir Asokan](https://github.com/tulir)'s efforts, the playbook now supports bridging to [Twitter](https://twitter.com/) via the [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) bridge. See our [Setting up MX Puppet Twitter bridging](docs/configuring-playbook-bridge-mx-puppet-twitter.md) documentation page for getting started.
# 2020-06-28
## (Post Mortem / fixed Security Issue) Re-enabling User Directory search powered by the ma1sd Identity Server
User Directory search requests used to go to the ma1sd identity server by default, which queried its own stores and the Synapse database.
ma1sd's [security issue](https://github.com/ma1uta/ma1sd/issues/44) has been fixed in version `2.4.0`, with [this commit](ma1uta/ma1sd@2bb5a734d11662b06471113cf3d6b4cee5e33a85). `ma1sd 2.4.0` is now the default version for this playbook. For more information on what happened, please check the mentioned issue.
We are re-enabling user directory search with this update. Those who would like to keep it disabled can use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: false`
As always, re-running the playbook is enough to get the updated bits.
# 2020-06-11
## SMS bridging requires db reset
@ -12,7 +805,7 @@ To reuse your existing rooms, invite `@smsbot:yourServer` to the room or write a
Thanks to [benkuly](https://github.com/benkuly)'s efforts, the playbook now supports bridging to SMS (with one telephone number only) via [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge).
See our [Setting up Matrix SMS bridging](docs/configuring-playbook-matrix-bridge-sms.md) documentation page for getting started.
See our [Setting up Matrix SMS bridging](docs/configuring-playbook-bridge-matrix-bridge-sms.md) documentation page for getting started.
# 2020-05-19

193
README.md
View File

@ -1,26 +1,37 @@
[![Support room on Matrix](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate)
# Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
## Purpose
This Ansible playbook is meant to easily let you run your own [Matrix](http://matrix.org/) homeserver.
This [Ansible](https://www.ansible.com/) playbook is meant to help you run your own [Matrix](http://matrix.org/) homeserver, along with the [various services](#supported-services) related to that.
That is, it lets you join the Matrix network with your own `@<username>:<your-domain>` identifier, all hosted on your own server.
That is, it lets you join the Matrix network using your own `@<username>:<your-domain>` identifier, all hosted on your own server (see [prerequisites](docs/prerequisites.md)).
We run all services in [Docker](https://www.docker.com/) containers (see [the container images we use](docs/container-images.md)), which lets us have a predictable and up-to-date setup, across multiple supported distros (see [prerequisites](docs/prerequisites.md)) and [architectures](docs/alternative-architectures.md) (x86/amd64 being recommended).
[Installation](docs/README.md) (upgrades) and some maintenance tasks are automated using [Ansible](https://www.ansible.com/) (see [our Ansible guide](docs/ansible.md)).
## Supported services
Using this playbook, you can get the following services configured on your server:
- (optional, default) a [Synapse](https://github.com/matrix-org/synapse) homeserver - storing your data and managing your presence in the [Matrix](http://matrix.org/) network
- (optional) a [Dendrite](https://github.com/matrix-org/dendrite) homeserver - storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse.
- (optional) [Amazon S3](https://aws.amazon.com/s3/) storage for Synapse's content repository (`media_store`) files using [Goofys](https://github.com/kahing/goofys)
- (optional, default) [PostgreSQL](https://www.postgresql.org/) database for Synapse. [Using an external PostgreSQL server](docs/configuring-playbook-external-postgres.md) is also possible.
- (optional, default) a [coturn](https://github.com/coturn/coturn) STUN/TURN server for WebRTC audio/video calls
- (optional, default) free [Let's Encrypt](https://letsencrypt.org/) SSL certificate, which secures the connection to the Synapse server and the Riot web UI
- (optional, default) free [Let's Encrypt](https://letsencrypt.org/) SSL certificate, which secures the connection to the Synapse server and the Element web UI
- (optional, default) a [Riot](https://riot.im/) web UI, which is configured to connect to your own Synapse server by default
- (optional, default) an [Element](https://app.element.io/) ([formerly Riot](https://element.io/previously-riot)) web UI, which is configured to connect to your own Synapse server by default
- (optional, default) an [ma1sd](https://github.com/ma1uta/ma1sd) Matrix Identity server
- (optional) a [ma1sd](https://github.com/ma1uta/ma1sd) Matrix Identity server
- (optional, default) an [Exim](https://www.exim.org/) mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)
@ -36,13 +47,23 @@ Using this playbook, you can get the following services configured on your serve
- (optional, advanced) the [Matrix Corporal](https://github.com/devture/matrix-corporal) reconciliator and gateway for a managed Matrix server
- (optional) the [mautrix-telegram](https://github.com/tulir/mautrix-telegram) bridge for bridging your Matrix server to [Telegram](https://telegram.org/)
- (optional) the [mautrix-telegram](https://github.com/mautrix/telegram) bridge for bridging your Matrix server to [Telegram](https://telegram.org/)
- (optional) the [mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) bridge for bridging your Matrix server to [Whatsapp](https://www.whatsapp.com/)
- (optional) the [mautrix-whatsapp](https://github.com/mautrix/whatsapp) bridge for bridging your Matrix server to [WhatsApp](https://www.whatsapp.com/)
- (optional) the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge for bridging your Matrix server to [Facebook](https://facebook.com/)
- (optional) the [mautrix-facebook](https://github.com/mautrix/facebook) bridge for bridging your Matrix server to [Facebook](https://facebook.com/)
- (optional) the [mautrix-hangouts](https://github.com/tulir/mautrix-hangouts) bridge for bridging your Matrix server to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts)
- (optional) the [mautrix-twitter](https://github.com/mautrix/twitter) bridge for bridging your Matrix server to [Twitter](https://twitter.com/)
- (optional) the [mautrix-hangouts](https://github.com/mautrix/hangouts) bridge for bridging your Matrix server to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts)
- (optional) the [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge for bridging your Matrix server to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)
- (optional) the [mautrix-instagram](https://github.com/mautrix/instagram) bridge for bridging your Matrix server to [Instagram](https://instagram.com/)
- (optional) the [mautrix-signal](https://github.com/mautrix/signal) bridge for bridging your Matrix server to [Signal](https://www.signal.org/)
- (optional) the [beeper-linkedin](https://gitlab.com/beeper/linkedin) bridge for bridging your Matrix server to [LinkedIn](https://www.linkedin.com/)
- (optional) the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge for bridging your Matrix server to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)
@ -52,46 +73,65 @@ Using this playbook, you can get the following services configured on your serve
- (optional) the [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.)
- (optional) the [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for bridging your Matrix server to SMS
- (optional) the [matrix-hookshot](https://github.com/Half-Shot/matrix-hookshot) bridge for bridging Matrix to generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular
- (optional) [Email2Matrix](https://github.com/devture/email2matrix) for relaying email messages to Matrix rooms
- (optional) the [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for bridging your Matrix server to SMS - see [docs/configuring-playbook-bridge-matrix-bridge-sms.md](docs/configuring-playbook-bridge-matrix-bridge-sms.md) for setup documentation
- (optional) [Dimension](https://github.com/turt2live/matrix-dimension), an open source integrations manager for matrix clients
- (optional) the [Heisenbridge](https://github.com/hifi/heisenbridge) for bridging your Matrix server to IRC bouncer-style - see [docs/configuring-playbook-bridge-heisenbridge.md](docs/configuring-playbook-bridge-heisenbridge.md) for setup documentation
- (optional) [Jitsi](https://jitsi.org/), an open source video-conferencing platform
- (optional) the [mx-puppet-skype](https://hub.docker.com/r/sorunome/mx-puppet-skype) for bridging your Matrix server to [Skype](https://www.skype.com) - see [docs/configuring-playbook-bridge-mx-puppet-skype.md](docs/configuring-playbook-bridge-mx-puppet-skype.md) for setup documentation
Basically, this playbook aims to get you up-and-running with all the basic necessities around Matrix, without you having to do anything else.
- (optional) the [mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) for bridging your Matrix server to [Slack](https://slack.com) - see [docs/configuring-playbook-bridge-mx-puppet-slack.md](docs/configuring-playbook-bridge-mx-puppet-slack.md) for setup documentation
- (optional) the [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) bridge for Instagram-DMs ([Instagram](https://www.instagram.com/)) - see [docs/configuring-playbook-bridge-mx-puppet-instagram.md](docs/configuring-playbook-bridge-mx-puppet-instagram.md) for setup documentation
- (optional) the [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) bridge for Twitter-DMs ([Twitter](https://twitter.com/)) - see [docs/configuring-playbook-bridge-mx-puppet-twitter.md](docs/configuring-playbook-bridge-mx-puppet-twitter.md) for setup documentation
- (optional) the [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord) bridge for [Discord](https://discordapp.com/) - see [docs/configuring-playbook-bridge-mx-puppet-discord.md](docs/configuring-playbook-bridge-mx-puppet-discord.md) for setup documentation
- (optional) the [mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) bridge for [GroupMe](https://groupme.com/) - see [docs/configuring-playbook-bridge-mx-puppet-groupme.md](docs/configuring-playbook-bridge-mx-puppet-groupme.md) for setup documentation
- (optional) the [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) bridge for [Steam](https://steamapp.com/) - see [docs/configuring-playbook-bridge-mx-puppet-steam.md](docs/configuring-playbook-bridge-mx-puppet-steam.md) for setup documentation
- (optional) [Email2Matrix](https://github.com/devture/email2matrix) for relaying email messages to Matrix rooms - see [docs/configuring-playbook-email2matrix.md](docs/configuring-playbook-email2matrix.md) for setup documentation
- (optional) [Dimension](https://github.com/turt2live/matrix-dimension), an open source integrations manager for matrix clients - see [docs/configuring-playbook-dimension.md](docs/configuring-playbook-dimension.md) for setup documentation
- (optional) [Etherpad](https://etherpad.org), an open source collaborative text editor - see [docs/configuring-playbook-etherpad.md](docs/configuring-playbook-etherpad.md) for setup documentation
- (optional) [Jitsi](https://jitsi.org/), an open source video-conferencing platform - see [docs/configuring-playbook-jitsi.md](docs/configuring-playbook-jitsi.md) for setup documentation
- (optional) [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for scheduling one-off & recurring reminders and alarms - see [docs/configuring-playbook-bot-matrix-reminder-bot.md](docs/configuring-playbook-bot-matrix-reminder-bot.md) for setup documentation
- (optional) [honoroit](https://gitlab.com/etke.cc/honoroit) helpdesk bot - see [docs/configuring-playbook-bot-honoroit.md](docs/configuring-playbook-bot-honoroit.md) for setup documentation
- (optional) [Go-NEB](https://github.com/matrix-org/go-neb) multi functional bot written in Go - see [docs/configuring-playbook-bot-go-neb.md](docs/configuring-playbook-bot-go-neb.md) for setup documentation
- (optional) [Mjolnir](https://github.com/matrix-org/mjolnir), a moderation tool for Matrix - see [docs/configuring-playbook-bot-mjolnir.md](docs/configuring-playbook-bot-mjolnir.md) for setup documentation
- (optional) [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin), a web UI tool for administrating users and rooms on your Matrix server - see [docs/configuring-playbook-synapse-admin.md](docs/configuring-playbook-synapse-admin.md) for setup documentation
- (optional) [matrix-registration](https://github.com/ZerataX/matrix-registration), a simple python application to have a token based matrix registration - see [docs/configuring-playbook-matrix-registration.md](docs/configuring-playbook-matrix-registration.md) for setup documentation
- (optional) the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI - see [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](docs/configuring-playbook-prometheus-grafana.md) for setup documentation
- (optional) the [Sygnal](https://github.com/matrix-org/sygnal) push gateway - see [Setting up the Sygnal push gateway](docs/configuring-playbook-sygnal.md) for setup documentation
- (optional) the [Hydrogen](https://github.com/vector-im/hydrogen-web) web client - see [docs/configuring-playbook-client-hydrogen.md](docs/configuring-playbook-client-hydrogen.md) for setup documentation
- (optional) the [Cinny](https://github.com/ajbura/cinny) web client - see [docs/configuring-playbook-client-cinny.md](docs/configuring-playbook-client-cinny.md) for setup documentation
- (optional) the [Borg](https://borgbackup.org) backup - see [docs/configuring-playbook-backup-borg.md](docs/configuring-playbook-backup-borg.md) for setup documentation
- (optional) the [Buscarron](https://gitlab.com/etke.cc/buscarron) bot - see [docs/configuring-playbook-bot-buscarron.md](docs/configuring-playbook-bot-buscarron.md) for setup documentation
Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else.
**Note**: the list above is exhaustive. It includes optional or even some advanced components that you will most likely not need.
Sticking with the defaults (which install a subset of the above components) is the best choice, especially for a new installation.
You can always re-run the playbook later to add or remove components.
## What's different about this Ansible playbook?
This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy) Ansible deployment, but:
- this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** - especially for folks not familiar with Ansible
- this one installs and hooks together **a lot more Matrix-related services** for you (see above)
- this one **can be re-ran many times** without causing trouble
- works on various distros: **CentOS** (7.0+), Debian-based distributions (**Debian** 9/Stretch+, **Ubuntu** 16.04+), **Archlinux**
- this one installs everything in a single directory (`/matrix` by default) and **doesn't "contaminate" your server** with files all over the place
- this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up nginx for you there, but you can also [use your own webserver](docs/configuring-playbook-own-webserver.md)
- this one **runs everything in Docker containers**, so it's likely more predictable and less fragile (see [Docker images used by this playbook](#docker-images-used-by-this-playbook))
- this one retrieves and automatically renews free [Let's Encrypt](https://letsencrypt.org/) **SSL certificates** for you
- this one optionally can store the `media_store` content repository files on [Amazon S3](https://aws.amazon.com/s3/) (but defaults to storing files on the server's filesystem)
- this one optionally **allows you to use an external PostgreSQL server** for Synapse's database (but defaults to running one in a container)
## Installation
To configure and install Matrix on your own server, follow the [README in the docs/ directory](docs/README.md).
@ -104,76 +144,15 @@ This playbook evolves over time, sometimes with backward-incompatible changes.
When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new.
## Docker images used by this playbook
This playbook sets up your server using the following Docker images:
- [matrixdotorg/synapse](https://hub.docker.com/r/matrixdotorg/synapse/) - the official [Synapse](https://github.com/matrix-org/synapse) Matrix homeserver (optional)
- [instrumentisto/coturn](https://hub.docker.com/r/instrumentisto/coturn/) - the [Coturn](https://github.com/coturn/coturn) STUN/TURN server (optional)
- [vectorim/riot-web](https://hub.docker.com/r/vectorim/riot-web/) - the [Riot.im](https://about.riot.im/) web client (optional)
- [ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/) - the [ma1sd](https://github.com/ma1uta/ma1sd) Matrix Identity server (optional)
- [postgres](https://hub.docker.com/_/postgres/) - the [Postgres](https://www.postgresql.org/) database server (optional)
- [ewoutp/goofys](https://hub.docker.com/r/ewoutp/goofys/) - the [Goofys](https://github.com/kahing/goofys) Amazon [S3](https://aws.amazon.com/s3/) file-system-mounting program (optional)
- [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/) - the [Exim](https://www.exim.org/) email server (optional)
- [devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/) - the [Email2Matrix](https://github.com/devture/email2matrix) email server, which can relay email messages to Matrix rooms (optional)
- [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal/) - [Matrix Corporal](https://github.com/devture/matrix-corporal): reconciliator and gateway for a managed Matrix server (optional)
- [nginx](https://hub.docker.com/_/nginx/) - the [nginx](http://nginx.org/) web server (optional)
- [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) - the [certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/) (optional)
- [tulir/mautrix-telegram](https://hub.docker.com/r/tulir/mautrix-telegram/) - the [mautrix-telegram](https://github.com/tulir/mautrix-telegram) bridge to [Telegram](https://telegram.org/) (optional)
- [tulir/mautrix-whatsapp](https://hub.docker.com/r/tulir/mautrix-whatsapp/) - the [mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) bridge to [Whatsapp](https://www.whatsapp.com/) (optional)
- [tulir/mautrix-facebook](https://hub.docker.com/r/tulir/mautrix-facebook/) - the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge to [Facebook](https://facebook.com/) (optional)
- [tulir/mautrix-hangouts](https://hub.docker.com/r/tulir/mautrix-hangouts/) - the [mautrix-hangouts](https://github.com/tulir/mautrix-hangouts) bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts) (optional)
- [matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc) - the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) (optional)
- [halfshot/matrix-appservice-discord](https://hub.docker.com/r/halfshot/matrix-appservice-discord) - the [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) bridge to [Discord](https://discordapp.com/) (optional)
- [cadair/matrix-appservice-slack](https://hub.docker.com/r/cadair/matrix-appservice-slack) - the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge to [Slack](https://slack.com/) (optional)
- [turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks) - the [Appservice Webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge (optional)
- [folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge) - the [matrix-sms-brdige](https://github.com/benkuly/matrix-sms-bridge) (optional)
- [sorunome/mx-puppet-skype](https://hub.docker.com/r/sorunome/mx-puppet-skype) - the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge to [Skype](https:/www.skype.com) (optional)
- [sorunome/mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) - the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge to [Slack](https:/slack.com) (optional)
- [turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension) - the [Dimension](https://dimension.t2bot.io/) integrations manager (optional)
- [jitsi/web](https://hub.docker.com/r/jitsi/web) - the [Jitsi](https://jitsi.org/) web UI (optional)
- [jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo) - the [Jitsi](https://jitsi.org/) Focus component (optional)
- [jitsi/prosody](https://hub.docker.com/r/jitsi/prosody) - the [Jitsi](https://jitsi.org/) Prosody XMPP server component (optional)
- [jitsi/jvb](https://hub.docker.com/r/jitsi/jvb) - the [Jitsi](https://jitsi.org/) Video Bridge component (optional)
## Deficiencies
This Ansible playbook can be improved in the following ways:
- setting up automatic backups to one or more storage providers
## Support
- Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)
- IRC channel: `#matrix-docker-ansible-deploy` on the [Freenode](https://freenode.net/) IRC network (irc.freenode.net)
- IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)
- Github issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)
- GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)
## Services by the community
- [etke.cc](https://etke.cc) - matrix-docker-ansible-deploy and system stuff "as a service". That service will create your matrix homeserver on your domain and server (doesn't matter if it's cloud provider or on an old laptop in the corner of your room), (optional) maintains it (server's system updates, cleanup, security adjustments, tuning, etc.; matrix homeserver updates & maintenance) and (optional) provide full-featured email service for your domain

View File

@ -1,5 +1,11 @@
[defaults]
vault_password_file = gpg/open_vault.sh
retry_files_enabled = False
stdout_callback = yaml
inventory = inventory/hosts
[connection]
pipelining = True

View File

@ -0,0 +1,4 @@
---
collections:
- name: community.general
- name: community.docker

View File

@ -1,6 +1,8 @@
# Table of Contents
- [Prerequisites](prerequisites.md)
- [FAQ](faq.md) - lots of questions and answers. Jump to [Prerequisites](prerequisites.md) to avoid reading too much and to just start a guided installation.
- [Prerequisites](prerequisites.md) - go here to a guided installation using this Ansible playbook
- [Configuring your DNS server](configuring-dns.md)
@ -10,6 +12,14 @@
- [Installing](installing.md)
- **Importing data from another server installation**
- [Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)
- [Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)
- [Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)
- [Registering users](registering-users.md)
- [Updating users passwords](updating-users-passwords.md)

View File

@ -1,8 +1,8 @@
# Alternative architectures
As stated in the [Prerequisites](prerequisites.md), currently only x86_64 is supported. However, it is possible to set the target architecture, and some tools can be built on the host or other measures can be used.
As stated in the [Prerequisites](prerequisites.md), currently only `x86_64` is fully supported. However, it is possible to set the target architecture, and some tools can be built on the host or other measures can be used.
To that end add the following variable to your `vars.yaml` file:
To that end add the following variable to your `vars.yml` file (see [Configuring playbook](configuring-playbook.md)):
```yaml
matrix_architecture: <your-matrix-server-architecture>
@ -13,7 +13,7 @@ Currently supported architectures are the following:
- `arm64`
- `arm32`
so for the Raspberry Pi, the following should be in your `vars.yaml` file:
so for the Raspberry Pi, the following should be in your `vars.yml` file:
```yaml
matrix_architecture: "arm32"
@ -21,9 +21,6 @@ matrix_architecture: "arm32"
## Implementation details
This subsection is used for a reminder, how the different roles implement architecture differences. This is **not** aimed at the users, so one does not have to do anything based on this subsection.
For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used for all components (except [Hydrogen](configuring-playbook-client-hydrogen.md), which goes through self-building).
On most roles [self-building](self-building.md) is used if the architecture is not `amd64`, however there are some special cases:
- `matrix-bridge-mautrix-facebook`: there is a pre-built Docker image for `arm64` as well
- `matrix-bridge-mautrix-hangouts`: there is a pre-built Docker image for `arm64` as well
- `matrix-nginx-proxy`: Certbot has a pre-built Docker image for both `arm32` and `arm64`, however tagging is used, which requires special handling.
For other architectures, components which have a prebuilt image make use of it. If the component is not available for the specific architecture, [self-building](self-building.md) will be used. Not all components support self-building though, so your mileage may vary.

View File

@ -9,7 +9,9 @@ If your local computer cannot run Ansible, you can also run Ansible on some serv
## Supported Ansible versions
Ansible 2.5.2 or newer is required.
Ansible 2.7.1 or newer is required ([last discussion about Ansible versions](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/743)).
Note: Ubuntu 20.04 ships with Ansible 2.9.6 which is a buggy version (see this [bug](https://bugs.launchpad.net/ubuntu/+source/ansible/+bug/1880359)), which can't be used in combination with a host running new systemd (more details in [#517](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/517), [#669](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/669)). If this problem affects you, you can: avoid running Ubuntu 20.04 on your host; run Ansible from another machine targeting your host; or try to upgrade to a newer Ansible version (see below).
## Checking your Ansible version
@ -49,7 +51,7 @@ docker run -it --rm \
-v `pwd`:/work \
-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
--entrypoint=/bin/sh \
devture/ansible:2.9.9-r0
docker.io/devture/ansible:2.11.6-r1
```
The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`).

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

View File

@ -0,0 +1,23 @@
(Adapted from the [upstream project](https://github.com/matrix-org/synapse/blob/develop/docs/CAPTCHA_SETUP.md))
# Overview
Captcha can be enabled for this home server. This file explains how to do that.
The captcha mechanism used is Google's [ReCaptcha](https://www.google.com/recaptcha/). This requires API keys from Google.
## Getting keys
Requires a site/secret key pair from:
<http://www.google.com/recaptcha/admin>
Must be a reCAPTCHA **v2** key using the "I'm not a robot" Checkbox option
## Setting ReCaptcha Keys
Once registered as above, set the following values:
```yaml
matrix_synapse_enable_registration_captcha: true
matrix_synapse_recaptcha_public_key: 'YOUR_SITE_KEY'
matrix_synapse_recaptcha_private_key: 'YOUR_SECRET_KEY'
```

View File

@ -15,38 +15,62 @@ As we discuss in [Server Delegation](howto-server-delegation.md), there are 2 di
This playbook mostly discusses the well-known file method, because it's easier to manage with regard to certificates.
If you decide to go with the alternative method ([Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)), please be aware that the general flow that this playbook guides you through may not match what you need to do.
## General outline of DNS settings you need to do
## DNS settings for services enabled by default
| Type | Host | Priority | Weight | Port | Target |
| ----- | ---------------------------- | -------- | ------ | ---- | ---------------------- |
| A | `matrix` | - | - | - | `matrix-server-IP` |
| CNAME | `riot` | - | - | - | `matrix.<your-domain>` |
| CNAME | `dimension` (*) | - | - | - | `matrix.<your-domain>` |
| CNAME | `jitsi` (*) | - | - | - | `matrix.<your-domain>` |
| CNAME | `element` | - | - | - | `matrix.<your-domain>` |
Be mindful as to how long it will take for the DNS records to propagate.
If you are using Cloudflare DNS, make sure to disable the proxy and set all records to `DNS only`. Otherwise, fetching certificates will fail.
## DNS settings for optional services/features
| Type | Host | Priority | Weight | Port | Target |
| ----- | ---------------------------- | -------- | ------ | ---- | ---------------------- |
| SRV | `_matrix-identity._tcp` | 10 | 0 | 443 | `matrix.<your-domain>` |
DNS records marked with `(*)` above are optional. They refer to services that will not be installed by default (see the section below). If you won't be installing these services, feel free to skip creating these DNS records.
| CNAME | `dimension` | - | - | - | `matrix.<your-domain>` |
| CNAME | `jitsi` | - | - | - | `matrix.<your-domain>` |
| CNAME | `stats` | - | - | - | `matrix.<your-domain>` |
| CNAME | `goneb` | - | - | - | `matrix.<your-domain>` |
| CNAME | `sygnal` | - | - | - | `matrix.<your-domain>` |
| CNAME | `hydrogen` | - | - | - | `matrix.<your-domain>` |
| CNAME | `cinny` | - | - | - | `matrix.<your-domain>` |
| CNAME | `buscarron` | - | - | - | `matrix.<your-domain>` |
## Subdomains setup
As the table above illustrates, you need to create 2 subdomains (`matrix.<your-domain>` and `riot.<your-domain>`) and point both of them to your new server's IP address (DNS `A` record or `CNAME` record is fine).
As the table above illustrates, you need to create 2 subdomains (`matrix.<your-domain>` and `element.<your-domain>`) and point both of them to your new server's IP address (DNS `A` record or `CNAME` record is fine).
The `riot.<your-domain>` subdomain is necessary, because this playbook installs the Riot web client for you.
If you'd rather instruct the playbook not to install Riot (`matrix_riot_web_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `riot.<your-domain>` DNS record.
The `element.<your-domain>` subdomain may be necessary, because this playbook installs the [Element](https://github.com/vector-im/element-web) web client for you.
If you'd rather instruct the playbook not to install Element (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.<your-domain>` DNS record.
The `dimension.<your-domain>` subdomain may be necessary, because this playbook could install the [Dimension integrations manager](http://dimension.t2bot.io/) for you. Dimension installation is disabled by default, because it's only possible to install it after the other Matrix services are working (see [Setting up Dimension](configuring-playbook-dimension.md) later). If you do not wish to set up Dimension, feel free to skip the `dimension.<your-domain>` DNS record.
The `jitsi.<your-domain>` subdomain may be necessary, because this playbook could install the [Jitsi video-conferencing platform](https://jitsi.org/) for you. Jitsi installation is disabled by default, because it may be heavy and is not a core required component. To learn how to install it, see our [Jitsi](configuring-playbook-jitsi.md) guide. If you do not wish to set up Jitsi, feel free to skip the `jitsi.<your-domain>` DNS record.
The `stats.<your-domain>` subdomain may be necessary, because this playbook could install [Grafana](https://grafana.com/) and setup performance metrics for you. Grafana installation is disabled by default, it is not a core required component. To learn how to install it, see our [metrics and graphs guide](configuring-playbook-prometheus-grafana.md). If you do not wish to set up Grafana, feel free to skip the `stats.<your-domain>` DNS record. It is possible to install Prometheus without installing Grafana, this would also not require the `stats.<your-domain>` subdomain.
The `goneb.<your-domain>` subdomain may be necessary, because this playbook could install the [Go-NEB](https://github.com/matrix-org/go-neb) bot. The installation of Go-NEB is disabled by default, it is not a core required component. To learn how to install it, see our [configuring Go-NEB guide](configuring-playbook-bot-go-neb.md). If you do not wish to set up Go-NEB, feel free to skip the `goneb.<your-domain>` DNS record.
The `sygnal.<your-domain>` subdomain may be necessary, because this playbook could install the [Sygnal](https://github.com/matrix-org/sygnal) push gateway. The installation of Sygnal is disabled by default, it is not a core required component. To learn how to install it, see our [configuring Sygnal guide](configuring-playbook-sygnal.md). If you do not wish to set up Sygnal (you probably don't, unless you're also developing/building your own Matrix apps), feel free to skip the `sygnal.<your-domain>` DNS record.
The `hydrogen.<your-domain>` subdomain may be necessary, because this playbook could install the [Hydrogen](https://github.com/vector-im/hydrogen-web) web client. The installation of Hydrogen is disabled by default, it is not a core required component. To learn how to install it, see our [configuring Hydrogen guide](configuring-playbook-client-hydrogen.md). If you do not wish to set up Hydrogen, feel free to skip the `hydrogen.<your-domain>` DNS record.
The `cinny.<your-domain>` subdomain may be necessary, because this playbook could install the [Cinny](https://github.com/ajbura/cinny) web client. The installation of cinny is disabled by default, it is not a core required component. To learn how to install it, see our [configuring cinny guide](configuring-playbook-client-cinny.md). If you do not wish to set up cinny, feel free to skip the `cinny.<your-domain>` DNS record.
The `buscarron.<your-domain>` subdomain may be necessary, because this playbook could install the [buscarron](https://github.com/etke.cc/buscarron) bot. The installation of buscarron is disabled by default, it is not a core required component. To learn how to install it, see our [configuring buscarron guide](configuring-playbook-bot-buscarron.md). If you do not wish to set up buscarron, feel free to skip the `buscarron.<your-domain>` DNS record.
## `_matrix-identity._tcp` SRV record setup
To make the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server (which this playbook installs for you) be authoritative for your domain name, set up one more SRV record that looks like this:
To make the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server (which this playbook may optionally install for you) enable its federation features, set up an SRV record that looks like this:
- Name: `_matrix-identity._tcp` (use this text as-is)
- Content: `10 0 443 matrix.<your-domain>` (replace `<your-domain>` with your own)
This is an optional feature for the optionally-installed [ma1sd service](configuring-playbook-ma1sd.md). See [ma1sd's documentation](https://github.com/ma1uta/ma1sd/wiki/mxisd-and-your-privacy#choices-are-never-easy) for information on the privacy implications of setting up this SRV record.
When you're done with the DNS configuration and ready to proceed, continue with [Configuring this Ansible playbook](configuring-playbook.md).
Note: This `_matrix-identity._tcp` SRV record for the identity server is different from the `_matrix._tcp` that can be used for Synapse delegation. See [howto-server-delegation.md](howto-server-delegation.md) for more information about delegation.
When you're done with the DNS configuration and ready to proceed, continue with [Getting the playbook](getting-the-playbook.md).

View File

@ -0,0 +1,69 @@
# Setting up borg backup (optional)
The playbook can install and configure [borgbackup](https://www.borgbackup.org/) with [borgmatic](https://torsion.org/borgmatic/) for you.
BorgBackup is a deduplicating backup program with optional compression and encryption.
That means your daily incremental backups can be stored in a fraction of the space and is safe whether you store it at home or on a cloud service.
You will need a remote server where borg will store the backups. There are hosted, borg compatible solutions available, such as [BorgBase](https://www.borgbase.com).
The backup will run based on `matrix_backup_borg_schedule` var (systemd timer calendar), default: 4am every day.
By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), Borg backups will also include dumps of your Postgres database. An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for Borg using the `matrix_backup_borg_postgresql_enabled` variable.
## Prerequisites
1. Create a new SSH key:
```bash
ssh-keygen -t ed25519 -N '' -f matrix-borg-backup -C matrix
```
This can be done on any machine and you don't need to place the key in the `.ssh` folder. It will be added to the Ansible config later.
2. Add the **public** part of this SSH key (the `matrix-borg-backup.pub` file) to your borg provider/server:
If you plan to use a hosted solution, follow their instructions. If you have your own server, copy the key over:
```bash
# example to append the new PUBKEY contents, where:
# PUBKEY is path to the public key,
# USER is a ssh user on a provider / server
# HOST is a ssh host of a provider / server
cat PUBKEY | ssh USER@HOST 'dd of=.ssh/authorized_keys oflag=append conv=notrunc'
```
## Adjusting the playbook configuration
Minimal working configuration (`inventory/host_vars/matrix.DOMAIN/vars.yml`) to enable borg backup:
```yaml
matrix_backup_borg_enabled: true
matrix_backup_borg_location_repositories:
- USER@HOST:REPO
matrix_backup_borg_storage_encryption_passphrase: "PASSPHRASE"
matrix_backup_borg_ssh_key_private: |
PRIVATE KEY
```
where:
* USER - SSH user of a provider/server
* HOST - SSH host of a provider/server
* REPO - borg repository name, it will be initialized on backup start, eg: `matrix`
* PASSPHRASE - passphrase used for encrypting backups, you may generate it with `pwgen -s 64 1` or use any password manager
* PRIVATE KEY - the content of the **private** part of the SSH key you created before
To backup without encryption, add `matrix_backup_borg_encryption: 'none'` to your vars. This will also enable the `matrix_backup_borg_unknown_unencrypted_repo_access_is_ok` variable.
`matrix_backup_borg_location_source_directories` defines the list of directories to back up: it's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges. You might want to exclude certain directories or file patterns from the backup using the `matrix_backup_borg_location_exclude_patterns` variable.
Check the `roles/matrix-backup-borg/defaults/main.yml` file for the full list of available options.
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```

View File

@ -14,7 +14,7 @@ Usually, there are 2 options:
This documentation page tells you how to do the latter. With some easy changes, we make it possible to serve the base domain from the Matrix server via the integrated webserver (`matrix-nginx-proxy`).
Just **adjust your DNS records**, so that your base domain is pointed to the Matrix server's IP address **and use the following configuration**:
Just **adjust your DNS records**, so that your base domain is pointed to the Matrix server's IP address (using a DNS `A` record) **and then use the following configuration**:
```yaml
matrix_nginx_proxy_base_domain_serving_enabled: true

View File

@ -0,0 +1,75 @@
# Setting up Buscarron (optional)
The playbook can install and configure [buscarron](https://gitlab.com/etke.cc/buscarron) for you.
It's a bot you can use to setup **your own helpdesk on matrix**
It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) matrix room
## Registering the bot user
By default, the playbook will set up the bot with a username like this: `@bot.buscarron:DOMAIN`.
(to use a different username, adjust the `matrix_bot_buscarron_login` variable).
You **need to register the bot user manually** before setting up the bot. You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.buscarron password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_bot_buscarron_enabled: true
# Adjust this to whatever password you chose when registering the bot user
matrix_bot_buscarron_password: PASSWORD_FOR_THE_BOT
# Adjust accepted forms
matrix_bot_buscarron_forms:
- name: contact # (mandatory) Your form name, will be used as endpoint, eg: buscarron.DOMAIN/contact
room: "!yourRoomID:DOMAIN" # (mandatory) Room ID where form submission will be posted
redirect: https://DOMAIN # (mandatory) To what page user will be redirected after the form submission
ratelimit: 1r/m # (optional) rate limit of the form, format: <max requests>r/<interval:s,m>, eg: 1r/s or 54r/m
extensions: [] # (optional) list of form extensions (not used yet)
matrix_bot_buscarron_spam_hosts: [] # (optional) list of email domains/hosts that should be rejected automatically
matrix_bot_buscarron_spam_emails: [] # (optional) list of email addresses that should be rejected automatically
```
You will also need to add a DNS record so that buscarron can be accessed.
By default buscarron will use https://buscarron.DOMAIN so you will need to create an CNAME record for `buscarron`.
See [Configuring DNS](configuring-dns.md).
If you would like to use a different domain, add the following to your configuration file (changing it to use your preferred domain):
```yaml
matrix_server_fqn_buscarron: "form.{{ matrix_domain }}"
```
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
To use the bot, invite the `@bot.buscarron:DOMAIN` to the room you specified in a config, after that any point your form to the form url, example for the `contact` form:
```html
<form method="POST" action="https://buscarron.DOMAIN/contact">
<!--your fields-->
</form>
```
You can also refer to the upstream [documentation](https://gitlab.com/etke.cc/buscarron).

View File

@ -0,0 +1,226 @@
# Setting up Go-NEB (optional)
The playbook can install and configure [Go-NEB](https://github.com/matrix-org/go-neb) for you.
Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python.
See the project's [documentation](https://github.com/matrix-org/go-neb) to learn what it does and why it might be useful to you.
## Registering the bot user
The playbook does not automatically create users for you. The bot requires at least 1 access token to be able to connect to your homeserver.
You **need to register the bot user manually** before setting up the bot.
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.go-neb password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
## Getting an access token
If you use curl, you can get an access token like this:
```
curl -X POST --header 'Content-Type: application/json' -d '{
"identifier": { "type": "m.id.user", "user": "bot.go-neb" },
"password": "a strong password",
"type": "m.login.password"
}' 'https://matrix.YOURDOMAIN/_matrix/client/r0/login'
```
Alternatively, you can use a full-featured client (such as Element) to log in and get the access token from there (note: don't log out from the client as that will invalidate the token), but doing so might lead to decryption problems. That warning comes from [here](https://github.com/matrix-org/go-neb#quick-start).
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
```yaml
matrix_bot_go_neb_enabled: true
# You need at least 1 client.
# Use the access token you obtained in the step above.
matrix_bot_go_neb_clients:
- UserID: "@goneb:{{ matrix_domain }}"
AccessToken: "MDASDASJDIASDJASDAFGFRGER"
DeviceID: "DEVICE1"
HomeserverURL: "{{ matrix_homeserver_container_url }}"
Sync: true
AutoJoinRooms: true
DisplayName: "Go-NEB!"
AcceptVerificationFromUsers: [":{{ matrix_domain }}"]
- UserID: "@another_goneb:{{ matrix_domain }}"
AccessToken: "MDASDASJDIASDJASDAFGFRGER"
DeviceID: "DEVICE2"
HomeserverURL: "{{ matrix_homeserver_container_url }}"
Sync: false
AutoJoinRooms: false
DisplayName: "Go-NEB!"
AcceptVerificationFromUsers: ["^@admin:{{ matrix_domain }}"]
# Optional, for use with the github_cmd, github_webhooks or jira services
matrix_bot_go_neb_realms:
- ID: "github_realm"
Type: "github"
Config: {} # No need for client ID or Secret as Go-NEB isn't generating OAuth URLs
# Optional. The list of *authenticated* sessions which Go-NEB is aware of.
matrix_bot_go_neb_sessions:
- SessionID: "your_github_session"
RealmID: "github_realm"
UserID: "@YOUR_USER_ID:{{ matrix_domain }}" # This needs to be the username of the person that's allowed to use the !github commands
Config:
# Populate these fields by generating a "Personal Access Token" on github.com
AccessToken: "YOUR_GITHUB_ACCESS_TOKEN"
Scopes: "admin:org_hook,admin:repo_hook,repo,user"
# The list of services which Go-NEB is aware of.
# Delete or modify this list as appropriate.
# See the docs for /configureService for the full list of options:
# https://matrix-org.github.io/go-neb/pkg/github.com/matrix-org/go-neb/api/index.html#ConfigureServiceRequest
# You need at least 1 service.
matrix_bot_go_neb_services:
- ID: "echo_service"
Type: "echo"
UserID: "@goneb:{{ matrix_domain }}"
Config: {}
# Can be obtained from https://developers.giphy.com/dashboard/
- ID: "giphy_service"
Type: "giphy"
UserID: "@goneb:{{ matrix_domain }}" # requires a Syncing client
Config:
api_key: "qwg4672vsuyfsfe"
use_downsized: false
# This service has been dead for over a year :/
- ID: "guggy_service"
Type: "guggy"
UserID: "@goneb:{{ matrix_domain }}" # requires a Syncing client
Config:
api_key: "2356saaqfhgfe"
# API Key via https://developers.google.com/custom-search/v1/introduction
# CX via http://www.google.com/cse/manage/all
# https://stackoverflow.com/questions/6562125/getting-a-cx-id-for-custom-search-google-api-python
# 'Search the entire web' and 'Image search' enabled for best results
- ID: "google_service"
Type: "google"
UserID: "@goneb:{{ matrix_domain }}" # requires a Syncing client
Config:
api_key: "AIzaSyA4FD39m9"
cx: "AIASDFWSRRtrtr"
# Get a key via https://api.imgur.com/oauth2/addclient
# Select "oauth2 without callback url"
- ID: "imgur_service"
Type: "imgur"
UserID: "@imgur:{{ matrix_domain }}" # requires a Syncing client
Config:
client_id: "AIzaSyA4FD39m9"
client_secret: "somesecret"
- ID: "wikipedia_service"
Type: "wikipedia"
UserID: "@goneb:{{ matrix_domain }}" # requires a Syncing client
Config:
- ID: "rss_service"
Type: "rssbot"
UserID: "@another_goneb:{{ matrix_domain }}"
Config:
feeds:
"http://lorem-rss.herokuapp.com/feed?unit=second&interval=60":
rooms: ["!qmElAGdFYCHoCJuaNt:{{ matrix_domain }}"]
must_include:
author:
- author1
description:
- lorem
- ipsum
must_not_include:
title:
- Lorem
- Ipsum
- ID: "github_cmd_service"
Type: "github"
UserID: "@goneb:{{ matrix_domain }}" # requires a Syncing client
Config:
RealmID: "github_realm"
# Make sure your BASE_URL can be accessed by Github!
- ID: "github_webhook_service"
Type: "github-webhook"
UserID: "@another_goneb:{{ matrix_domain }}"
Config:
RealmID: "github_realm"
ClientUserID: "@YOUR_USER_ID:{{ matrix_domain }}" # needs to be an authenticated user so Go-NEB can create webhooks. Check the UserID field in the github_realm in matrix_bot_go_neb_sessions.
Rooms:
"!someroom:id":
Repos:
"matrix-org/synapse":
Events: ["push", "issues"]
"matrix-org/dendron":
Events: ["pull_request"]
"!anotherroom:id":
Repos:
"matrix-org/synapse":
Events: ["push", "issues"]
"matrix-org/dendron":
Events: ["pull_request"]
- ID: "slackapi_service"
Type: "slackapi"
UserID: "@slackapi:{{ matrix_domain }}"
Config:
Hooks:
"hook1":
RoomID: "!someroom:id"
MessageType: "m.text" # default is m.text
- ID: "alertmanager_service"
Type: "alertmanager"
UserID: "@alertmanager:{{ matrix_domain }}"
Config:
# This is for information purposes only. It should point to Go-NEB path as follows:
# `/services/hooks/<base64 encoded service ID>`
# Where in this case "service ID" is "alertmanager_service"
# Make sure your BASE_URL can be accessed by the Alertmanager instance!
webhook_url: "http://localhost/services/hooks/YWxlcnRtYW5hZ2VyX3NlcnZpY2U"
# Each room will get the notification with the alert rendered with the given template
rooms:
"!someroomid:domain.tld":
text_template: "{% raw %}{{range .Alerts -}} [{{ .Status }}] {{index .Labels \"alertname\" }}: {{index .Annotations \"description\"}} {{ end -}}{% endraw %}"
html_template: "{% raw %}{{range .Alerts -}} {{ $severity := index .Labels \"severity\" }} {{ if eq .Status \"firing\" }} {{ if eq $severity \"critical\"}} <font color='red'><b>[FIRING - CRITICAL]</b></font> {{ else if eq $severity \"warning\"}} <font color='orange'><b>[FIRING - WARNING]</b></font> {{ else }} <b>[FIRING - {{ $severity }}]</b> {{ end }} {{ else }} <font color='green'><b>[RESOLVED]</b></font> {{ end }} {{ index .Labels \"alertname\"}} : {{ index .Annotations \"description\"}} <a href=\"{{ .GeneratorURL }}\">source</a><br/>{{end -}}{% endraw %}"
msg_type: "m.text" # Must be either `m.text` or `m.notice`
```
## Installing
Don't forget to add `goneb.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
To use the bot, invite it to any existing Matrix room (`/invite @whatever_you_chose:DOMAIN` where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain, make sure you have permission from the room owner if that's not you).
Basic usage is like this: `!echo hi` or `!imgur puppies` or `!giphy matrix`
If you enabled the github_cmd service you can get the supported commands via `!github help`
You can also refer to the upstream [Documentation](https://github.com/matrix-org/go-neb).

View File

@ -0,0 +1,55 @@
# Setting up Honoroit (optional)
The playbook can install and configure [Honoroit](https://gitlab.com/etke.cc/honoroit) for you.
It's a bot you can use to setup **your own helpdesk on matrix**
See the project's [documentation](https://gitlab.com/etke.cc/honoroit#how-it-looks-like) to learn what it does with screenshots and why it might be useful to you.
## Registering the bot user
By default, the playbook will set up the bot with a username like this: `@honoroit:DOMAIN`.
(to use a different username, adjust the `matrix_bot_honoroit_login` variable).
You **need to register the bot user manually** before setting up the bot. You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=honoroit password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_bot_honoroit_enabled: true
# Adjust this to whatever password you chose when registering the bot user
matrix_bot_honoroit_password: PASSWORD_FOR_THE_BOT
# Adjust this to your room ID
matrix_bot_honoroit_roomid: "!yourRoomID:DOMAIN"
```
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
To use the bot, invite the `@honoroit:DOMAIN` to the room you specified in config, after that any matrix user can send a message to the `@honoroit:DOMAIN` to start a new thread in that room.
Send `!ho help` to the room to see the bot's help menu for additional commands.
You can also refer to the upstream [documentation](https://gitlab.com/etke.cc/honoroit#features).

View File

@ -0,0 +1,72 @@
# Setting up matrix-registration-bot (optional)
The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you.
The bot allows you to easily **create and manage registration tokens**. It can be used for an invitation-based server,
where you invite someone by sending them a registration token. They can register as normal but have to provide a valid
registration token in a final step of the registration.
See the project's [documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands) to learn what it
does and why it might be useful to you.
## Registering the bot user
By default, the playbook will set use the bot with a username like this: `@bot.matrix-registration-bot:DOMAIN`.
(to use a different username, adjust the `matrix_bot_matrix_registration_bot_matrix_user_id_localpart` variable).
You **need to register the bot user manually** before setting up the bot. You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.matrix-registration-bot password=PASSWORD_FOR_THE_BOT admin=yes' --tags=register-user
```
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
## Obtaining an admin access token
In order to use the bot you need to add an admin user's access token token to the configuration. As you created an admin user for the
bot, it is recommended to obtain an access token by logging into Element/Schildichat with the bot account
(using the password you set) and navigate to `Settings->Help&About` and scroll to the bottom.
You can expand "Access token" to copy it.
![Obatining an admin access token with Element](assets/obtain_admin_access_token_element.png)
**IMPORTANT**: once you copy the token, just close the Matrix client window/tab. Do not "log out", as that would invalidate the token.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_bot_matrix_registration_bot_enabled: true
# Token obtained via logging into the bot account (see above)
matrix_bot_matrix_registration_bot_bot_access_token: "syt_bW9hbm9z_XXXXXXXXXXXXXr_2kuzbE"
# Enables registration
matrix_synapse_enable_registration: true
# Restrict registration to users with a token
matrix_synapse_registration_requires_token: true
```
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
To use the bot, create a **non-encrypted** room and invite `@bot.matrix-registration-bot:DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
In this room send `help` and the bot will reply with all options.
You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands).
If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md)
or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de).

View File

@ -0,0 +1,59 @@
# Setting up matrix-reminder-bot (optional)
The playbook can install and configure [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for you.
It's a bot you can use to **schedule one-off & recurring reminders and alarms**.
See the project's [documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage) to learn what it does and why it might be useful to you.
## Registering the bot user
By default, the playbook will set up the bot with a username like this: `@bot.matrix-reminder-bot:DOMAIN`.
(to use a different username, adjust the `matrix_bot_matrix_reminder_bot_matrix_user_id_localpart` variable).
You **need to register the bot user manually** before setting up the bot. You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.matrix-reminder-bot password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_bot_matrix_reminder_bot_enabled: true
# Adjust this to whatever password you chose when registering the bot user
matrix_bot_matrix_reminder_bot_matrix_user_password: PASSWORD_FOR_THE_BOT
# Adjust this to your timezone
matrix_bot_matrix_reminder_bot_reminders_timezone: Europe/London
```
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
To use the bot, start a chat with `@bot.matrix-reminder-bot:DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
You can also add the bot to any existing Matrix room (`/invite @bot.matrix-reminder-bot:DOMAIN`).
Basic usage is like this: `!remindme in 2 minutes; This is a test`
Send `!help reminders` to the room to see the bot's help menu for additional commands.
You can also refer to the upstream [Usage documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage).

View File

@ -0,0 +1,132 @@
# Setting up Mjolnir (optional)
The playbook can install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation bot for you.
See the project's [documentation](https://github.com/matrix-org/mjolnir) to learn what it does and why it might be useful to you.
## 1. Register the bot account
The playbook does not automatically create users for you. The bot requires an access token to be able to connect to your homeserver.
You **need to register the bot user manually** before setting up the bot.
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.mjolnir password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
If you would like Mjolnir to be able to deactivate users, move aliases, shutdown rooms, etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above.
## 2. Get an access token
If you use curl, you can get an access token like this:
```
curl -X POST --header 'Content-Type: application/json' -d '{
"identifier": { "type": "m.id.user", "user": "bot.mjolnir" },
"password": "PASSWORD_FOR_THE_BOT",
"type": "m.login.password"
}' 'https://matrix.DOMAIN/_matrix/client/r0/login'
```
Alternatively, you can use a full-featured client (such as Element) to log in and get the access token from there (note: don't log out from the client as that will invalidate the token).
## 3. Make sure the account is free from rate limiting
You will need to prevent Synapse from rate limiting the bot's account. This is not an optional step. If you do not do this step Mjolnir will crash. [Currently there is no Synapse config option for this](https://github.com/matrix-org/synapse/issues/6286) so you have to manually edit the Synapse database. Manually editing the Synapse database is rarely a good idea but in this case it is required. Please ask for help if you are uncomfortable with these steps.
1. Copy the statement below into a text editor.
```
INSERT INTO ratelimit_override VALUES ('@bot.mjolnir:DOMAIN', 0, 0);
```
1. Change the username (`@bot.mjolnir:DOMAIN`) to the username you used when you registered the bot's account. You must change `DOMAIN` to your server's domain.
1. Get a database terminal by following these steps: [maintenance-postgres.md#getting-a-database-terminal](maintenance-postgres.md#getting-a-database-terminal)
1. Connect to Synapse's database by typing `\connect synapse` into the database terminal
1. Paste in the `INSERT INTO` command that you edited and press enter.
You can run `SELECT * FROM ratelimit_override;` to see if it worked. If the output looks like this:
```
user_id | messages_per_second | burst_count
-----------------------+---------------------+-------------
@bot.mjolnir:raim.ist | 0 | 0`
```
then you did it correctly.
## 4. Create a management room
Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room. Anyone in this room can control the bot so it is important that you only invite trusted users to this room. The room must be unencrypted since the playbook does not support installing Pantalaimon yet.
Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element you can do this by going to the room's settings, clicking Advanced, and then coping the internal room ID. The room ID will look something like `!QvgVuKq0ha8glOLGMG:DOMAIN`.
Finally invite the `@bot.mjolnir:DOMAIN` account you created earlier into the room.
## 5. Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
You must replace `ACCESS_TOKEN_FROM_STEP_2_GOES_HERE` and `ROOM_ID_FROM_STEP_4_GOES_HERE` with the your own values.
```yaml
matrix_bot_mjolnir_enabled: true
matrix_bot_mjolnir_access_token: "ACCESS_TOKEN_FROM_STEP_2_GOES_HERE"
matrix_bot_mjolnir_management_room: "ROOM_ID_FROM_STEP_4_GOES_HERE"
```
## 6. Adding mjolnir synapse antispam module (optional)
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
```yaml
matrix_synapse_ext_spam_checker_mjolnir_antispam_enabled: true
matrix_synapse_ext_spam_checker_mjolnir_antispam_config_block_invites: true
matrix_synapse_ext_spam_checker_mjolnir_antispam_config_block_messages: false
matrix_synapse_ext_spam_checker_mjolnir_antispam_config_block_usernames: false
matrix_synapse_ext_spam_checker_mjolnir_antispam_config_ban_lists: []
```
## 7. Installing
After configuring the playbook, run the [installation](installing.md) command:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
You can refer to the upstream [documentation](https://github.com/matrix-org/mjolnir) for additional ways to use and configure mjolnir. Check out their [quickstart guide](https://github.com/matrix-org/mjolnir#quickstart-guide) for some basic commands you can give to the bot.
You can configure additional options by adding the `matrix_bot_mjolnir_configuration_extension_yaml` variable to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file.
For example to change mjolnir's `recordIgnoredInvites` option to `true` you would add the following to your `vars.yml` file.
```yaml
matrix_bot_mjolnir_configuration_extension_yaml: |
# Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_bot_mjolnir_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_bot_mjolnir_configuration_yaml`.
recordIgnoredInvites: true
```

View File

@ -1,5 +1,7 @@
# Setting up Appservice Discord (optional)
**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) bridge supported by the playbook.
The playbook can install and configure [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) for you.
See the project's [documentation](https://github.com/Half-Shot/matrix-appservice-discord/blob/master/README.md) to learn what it does and why it might be useful to you.
@ -20,31 +22,56 @@ matrix_appservice_discord_client_id: "YOUR DISCORD APP CLIENT ID"
matrix_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN"
```
4. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready.
5. Retrieve Discord invite link from the `{{ matrix_appservice_discord_config_path }}/invite_link` file on the server (this defaults to `/matrix/appservice-discord/config/invite_link`)
6. Invite the Bot to Discord servers you wish to bridge. Administrator permission is recommended.
7. Room addresses follow this syntax: `#_discord_guildid_channelid`. You can easily find the guild and channel ids by logging into Discord in a browser and opening the desired channel. The URL will have this format: `discordapp.com/channels/guild_id/channel_id`. Once you have figured out the appropriate room addrss, you can join by doing `/join #_discord_guildid_channelid` in your Matrix client.
5. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready.
Other configuration options are available via the `matrix_appservice_discord_configuration_extension_yaml` variable.
## Self-Service Bridging (Manual)
## Getting Administrator access in a room
Self-service bridging allows you to bridge specific and existing Matrix rooms to specific Discord rooms. This is disabled by default, so it must be enabled by adding this to your `vars.yml`:
```yaml
matrix_appservice_discord_bridge_enableSelfServiceBridging: true
```
_Note: If self-service bridging is not enabled, `!discord help` commands will return no results._
Once self-service is enabled:
1. Start a chat with `@_discord_bot:<YOUR_DOMAIN>` and say `!discord help bridge`.
2. Follow the instructions in the help output message. If the bot is not already in the Discord server, follow the provided invite link. This may require you to be a administrator of the Discord server.
_Note: Encrypted Matrix rooms are not supported as of writing._
On the Discord side, you can say `!matrix help` to get a list of available commands to manage the bridge and Matrix users.
## Portal Bridging (Automatic)
Through portal bridging, Matrix rooms will automatically be created by the bot and bridged to the relevant Discord room. This is done by simply joining a room with a specific name pattern (`#_discord_<guildID>_<channlID>`).
All Matrix rooms created this way are **listed publicly** by default, and you will not have admin permissions to change this. To get more control, [make yourself a room Administrator](#getting-administrator-access-in-a-portal-bridged-room). You can then unlist the room from the directory and change the join rules.
If you want to disable portal bridging, set the following in `vars.yml`:
```yaml
matrix_appservice_discord_bridge_disablePortalBridging: true
```
To get started with Portal Bridging:
1. To invite the bot to Discord, retrieve the invite link from the `{{ matrix_appservice_discord_config_path }}/invite_link` file on the server (this defaults to `/matrix/appservice-discord/config/invite_link`). You need to peek at the file on the server via SSH, etc., because it's not available via HTTP(S).
2. Room addresses follow this syntax: `#_discord_<guildID>_<channelID>`. You can easily find the guild and channel IDs by logging into Discord in a browser and opening the desired channel. The URL will have this format: `discord.com/channels/<guildID>/<channelID>`.
3. Once you have figured out the appropriate room address, you can join by doing `/join #_discord_<guildID>_<channelID>` in your Matrix client.
## Getting Administrator access in a portal bridged room
By default, you won't have Administrator access in rooms created by the bridge.
To [adjust room access privileges](#adjusting-room-access-privileges) or do various other things (change the room name subsequently, etc.), you'd wish to become an Administrator.
To adjust room access privileges or do various other things (change the room name subsequently, etc.), you'd wish to become an Administrator.
There's the Discord bridge's guide for [setting privileges on bridge managed rooms](https://github.com/Half-Shot/matrix-appservice-discord/blob/master/docs/howto.md#set-privileges-on-bridge-managed-rooms). To do the same with our container setup, run the following command on the server:
```sh
docker exec -it matrix-appservice-discord \
/bin/sh -c 'cp /cfg/registration.yaml /tmp/discord-registration.yaml && cd /tmp && node /build/tools/adminme.js -c /cfg/config.yaml -m "!ROOM_ID:SERVER" -u "@USER:SERVER" -p 100'
```
docker exec -it matrix-appservice-discord /bin/sh -c 'cp /build/tools/adminme.js /tmp/adminme.js && cp /cfg/registration.yaml /tmp/discord-registration.yaml && cd /tmp && node /tmp/adminme.js -c /cfg/config.yaml -r "!ROOM_ID:SERVER" -u "@USER:SERVER" -p 100'
```
## Adjusting room access privileges
All rooms created by the bridge are **listed publicly** in your server's directory and **joinable by everyone** by default.
To get more control of them, [make yourself a room Administrator](#getting-administrator-access-in-a-room) first.
You can then unlist the room from the directory and change the join rules.

View File

@ -1,6 +1,8 @@
# Setting up Appservice IRC (optional)
The playbook can install and configure [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) for you.
**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [Heisenbridge](configuring-playbook-bridge-heisenbridge.md) bridge supported by the playbook.
The playbook can install and configure the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge for you.
See the project's [documentation](https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md) to learn what it does and why it might be useful to you.

View File

@ -1,5 +1,7 @@
# Setting up Appservice Slack (optional)
**Note**: bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) bridge supported by the playbook.
The playbook can install and configure [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) for you.
See the project's [documentation](https://github.com/matrix-org/matrix-appservice-slack/blob/master/README.md) to learn what it does and why it might be useful to you.
@ -9,7 +11,7 @@ See the project's [documentation](https://github.com/matrix-org/matrix-appservic
loosely based on [this](https://github.com/matrix-org/matrix-appservice-slack#Setup)
1. Create a new Matrix room to act as the administration control room. Note its internal room ID. This can
be done in Riot by making a message, opening the options for that message and choosing "view source". The
be done in Element by making a message, opening the options for that message and choosing "view source". The
room ID will be displayed near the top.
2. Enable the bridge with the following configuration in your `vars.yml` file:
@ -27,7 +29,7 @@ matrix_appservice_slack_control_room_id: "Your matrix admin room id"
Note that the bot's domain is your server's domain **without the `matrix.` prefix.**
5. Create a new Slack App [here](https://api.slack.com/apps).
5. Create a Classic Slack App [here](https://api.slack.com/apps?new_classic_app=1).
Name the app "matrixbot" (or anything else you'll remember).
@ -106,5 +108,5 @@ Check you logs, if they say something like
`WARN SlackEventHandler Ignoring message from unrecognised slack channel id : %s (%s) <the channel id> <some other id>`
then unlink your room, reinvite the bot and re-link it again. This may particularly hit you, if you tried to unsuccessfully link
then unlink your room, reinvite the bot and re-link it again. This may particularly hit you, if you tried to unsuccessfully link
your room multiple times without unlinking it after each failed attempt.

View File

@ -2,6 +2,8 @@
The playbook can install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you.
Note: This bridge is no longer maintained. While not a 1:1 replacement, the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/Half-Shot/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md).
This bridge provides support for Slack-compatible webhooks.
Setup Instructions:
@ -45,7 +47,7 @@ matrix_appservice_webhooks_log_level: '<log_level>'
"text": "Hello world!",
"format": "plain",
"displayName": "My Cool Webhook",
"avatarUrl": "http://i.imgur.com/IDOBtEJ.png"
"avatar_url": "http://i.imgur.com/IDOBtEJ.png"
}
```
@ -57,7 +59,7 @@ curl --header "Content-Type: application/json" \
"text": "Hello world!",
"format": "plain",
"displayName": "My Cool Webhook",
"avatarUrl": "http://i.imgur.com/IDOBtEJ.png"
"avatar_url": "http://i.imgur.com/IDOBtEJ.png"
}' \
<the link you've gotten in 5.>
```

View File

@ -0,0 +1,59 @@
# Setting up Beeper Linkedin (optional)
The playbook can install and configure [beeper-linkedin](https://gitlab.com/beeper/linkedin) for you, for bridging to [LinkedIn](https://www.linkedin.com/) Messaging. This bridge is based on the mautrix-python framework and can be configured in a similar way to the other mautrix bridges
See the project's [documentation](https://gitlab.com/beeper/linkedin/-/blob/master/README.md) to learn what it does and why it might be useful to you.
```yaml
matrix_beeper_linkedin_enabled: true
```
There are some additional things you may wish to configure about the bridge before you continue.
Encryption support is off by default. If you would like to enable encryption, add the following to your `vars.yml` file:
```yaml
matrix_beeper_linkedin_configuration_extension_yaml: |
bridge:
encryption:
allow: true
default: true
```
If you would like to be able to administrate the bridge from your account it can be configured like this:
```yaml
matrix_beeper_linkedin_configuration_extension_yaml: |
bridge:
permissions:
'@YOUR_USERNAME:YOUR_DOMAIN': admin
```
You may wish to look at `roles/matrix-bridge-beeper-linkedin/templates/config.yaml.j2` to find other things you would like to configure.
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
## Usage
You then need to start a chat with `@linkedinbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
Send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to enable bridging for your LinkedIn account.
If you run into trouble, check the [Troubleshooting](#troubleshooting) section below.
After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so.
## Troubleshooting
### Bridge asking for 2FA even if you don't have 2FA enabled
If you don't have 2FA enabled and are logging in from a strange IP for the first time, LinkedIn will send an email with a one-time code. You can use this code to authorize the bridge session. In my experience, once the IP is authorized, you will not be asked again.

View File

@ -0,0 +1,38 @@
# Setting up Heisenbridge (optional)
**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) bridge supported by the playbook.
The playbook can install and configure [Heisenbridge](https://github.com/hifi/heisenbridge) - the bouncer-style [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) bridge for you.
See the project's [README](https://github.com/hifi/heisenbridge/blob/master/README.md) to learn what it does and why it might be useful to you. You can also take a look at [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I).
## Configuration
Below are the common configuration options that you may want to set, exhaustive list is in [the bridge's defaults var file](../roles/matrix-bridge-heisenbridge/defaults/main.yml).
At a minimum, you only need to enable the bridge to get it up and running (`inventory/host_vars/matrix.DOMAIN/vars.yml`):
```yaml
matrix_heisenbridge_enabled: true
# set owner (optional)
matrix_heisenbridge_owner: "@you:your-homeserver"
# to enable identd on host port 113/TCP (optional)
matrix_heisenbridge_identd_enabled: true
```
That's it! A registration file is automatically generated during the setup phase.
Setting the owner is optional as the first local user to DM `@heisenbridge:your-homeserver` will be made the owner.
If you are not using a local user you must set it as otherwise you can't DM it at all.
## Usage
After the bridge is successfully running just DM `@heisenbridge:your-homeserver` to start setting it up.
Help is available for all commands with the `-h` switch.
If the bridge ignores you and a DM is not accepted then the owner setting may be wrong.
You can also learn the basics by watching [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I).
If you encounter issues or feel lost you can join the project room at [#heisenbridge:vi.fi](https://matrix.to/#/#heisenbridge:vi.fi) for help.

View File

@ -0,0 +1,70 @@
# Setting up Hookshot (optional)
The playbook can install and configure [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) for you.
Hookshot can bridge [Webhooks](https://en.wikipedia.org/wiki/Webhook) from software project management services such as GitHub, GitLab, JIRA, and Figma, as well as generic webhooks.
See the project's [documentation](https://matrix-org.github.io/matrix-hookshot/hookshot.html) to learn what it does in detail and why it might be useful to you.
Note: the playbook also supports [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), which however is soon to be archived by its author and to be replaced by hookshot.
## Setup Instructions
Refer to the [official instructions](https://matrix-org.github.io/matrix-hookshot/setup.html) to learn what the individual options do.
1. For each of the services (GitHub, GitLab, Jira, Figma, generic webhooks) fill in the respective variables `matrix_hookshot_service_*` listed in [main.yml](/roles/matrix-bridge-hookshot/defaults/main.yml) as required.
2. Take special note of the `matrix_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab, Generic), while you must first add the required configuration and enable the others (GitHub, Jira, Figma).
3. If you're setting up the GitHub bridge, you'll need to generate and download a private key file after you created your GitHub app. Copy the contents of that file to the variable `matrix_hookshot_github_private_key` so the playbook can install it for you, or use one of the [other methods](#manage-github-private-key-with-matrix-aux-role) explained below.
4. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready. Hookshot can be set up individually using the tag `setup-hookshot`.
5. Refer to [Hookshot's official instructions](https://matrix-org.github.io/matrix-hookshot/latest/usage.html) to start using the bridge. **Important:** Note that the different listeners are bound to certain paths which might differ from those assumed by the hookshot documentation, see [URLs for bridges setup](urls-for-bridges-setup) below.
Other configuration options are available via the `matrix_hookshot_configuration_extension_yaml` and `matrix_hookshot_registration_extension_yaml` variables, see the comments in [main.yml](/roles/matrix-bridge-hookshot/defaults/main.yml) for how to use them.
### URLs for bridges setup
Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled).
| listener | default path | variable | used as |
|---|---|---|---|
| webhooks | `/hookshot/webhooks/` | `matrix_hookshot_webhook_endpoint` | generics, GitHub "Webhook URL", GitLab "URL", etc. |
| github oauth | `/hookshot/webhooks/oauth` | `matrix_hookshot_github_oauth_endpoint` | GitHub "Callback URL" |
| jira oauth | `/hookshot/webhooks/jira/oauth` | `matrix_hookshot_jira_oauth_endpoint` | JIRA OAuth |
| figma endpoint | `/hookshot/webhooks/figma/webhook` | `matrix_hookshot_figma_endpoint` | Figma |
| provisioning | `/hookshot/v1/` | `matrix_hookshot_provisioning_endpoint` | Dimension [provisioning](#provisioning-api) |
| appservice | `/hookshot/_matrix/app/` | `matrix_hookshot_appservice_endpoint` | Matrix server |
| widgets | `/hookshot/widgetapi/` | `/matrix_hookshot_widgets_endpoint` | Widgets |
| metrics | `/hookshot/metrics/` (on `stats.` subdomain) | `matrix_hookshot_metrics_endpoint` | Prometheus |
See also `matrix_hookshot_matrix_nginx_proxy_configuration` in [init.yml](/roles/matrix-bridge-hookshot/tasks/init.yml).
The different listeners are also reachable *internally* in the docker-network via the container's name (configured by `matrix_hookshot_container_url`) and on different ports (e.g. `matrix_hookshot_appservice_port`). Read [main.yml](/roles/matrix-bridge-hookshot/defaults/main.yml) in detail for more info.
### Manage GitHub Private Key with matrix-aux role
The GitHub bridge requires you to install a private key file. This can be done in multiple ways:
- copy the *contents* of the downloaded file and set the variable `matrix_hookshot_github_private_key` to the contents (see example in [main.yml](/roles/matrix-bridge-hookshot/defaults/main.yml)).
- somehow copy the file to the path `{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}` (default: `/matrix/hookshot/private-key.pem`) on the server manually.
- use the `matrix-aux` role to copy the file from an arbitrary path on your ansible client to the correct path on the server.
To use `matrix-aux`, make sure the `matrix_hookshot_github_private_key` variable is empty. Then add to `matrix-aux` configuration like this:
```yaml
matrix_aux_file_definitions:
- dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}"
content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}"
mode: '0400'
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
```
For more info see the documentation in the [matrix-aux base configuration file](/roles/matrix-aux/defaults/main.yml).
### Provisioning API
The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with dimension, you will need to enter as "Provisioning URL": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`.
### Metrics
If metrics are enabled, they will be automatically available in the builtin Prometheus and Grafana, but you need to set up your own Dashboard for now. If additionally metrics proxying for use with external Prometheus is enabled (`matrix_nginx_proxy_proxy_synapse_metrics`), hookshot metrics will also be available (at `matrix_hookshot_metrics_endpoint`, default `/hookshot/metrics`, on the stats subdomain) and with the same password. See also [the Prometheus and Grafana docs](../configuring-playbook-prometheus-grafana.md).
### Collision with matrix-appservice-webhooks
If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_user_id_prefix: '_webhooks_'`).

View File

@ -0,0 +1,37 @@
# Setting up matrix-sms-bridge (optional)
The playbook can install and configure [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you.
See the project page to learn what it does and why it might be useful to you.
**The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/android-sms-gateway-server). You need to configure it first.**
To enable the bridge just use the following
playbook configuration:
```yaml
matrix_sms_bridge_enabled: true
# (optional but recommended) a room id to a default room
matrix_sms_bridge_default_room: ""
# (optional but recommended) configure your server location
matrix_sms_bridge_default_region: DE
matrix_sms_bridge_default_timezone: Europe/Berlin
# Settings to connect to android-sms-gateway-server
matrix_sms_bridge_provider_android_baseurl: https://192.168.24.24:9090
matrix_sms_bridge_provider_android_username: admin
matrix_sms_bridge_provider_android_password: supeSecretPassword
# (optional) if your android-sms-gateway-server uses a self signed vertificate, the bridge needs a "truststore". This can be the certificate itself.
matrix_sms_bridge_provider_android_truststore_local_path: android-sms-gateway-server.p12
matrix_sms_bridge_provider_android_truststore_password: 123
```
## Usage
Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works.

View File

@ -1,17 +1,38 @@
# Setting up Mautrix Facebook (optional)
The playbook can install and configure [mautrix-facebook](https://github.com/tulir/mautrix-facebook) for you.
The playbook can install and configure [mautrix-facebook](https://github.com/mautrix/facebook) for you.
See the project's [documentation](https://github.com/tulir/mautrix-facebook/wiki#usage) to learn what it does and why it might be useful to you.
See the project's [documentation](https://github.com/mautrix/facebook/blob/master/ROADMAP.md) to learn what it does and why it might be useful to you.
```yaml
matrix_mautrix_facebook_enabled: true
```
There are some additional things you may wish to configure about the bridge before you continue.
Encryption support is off by default. If you would like to enable encryption, add the following to your `vars.yml` file:
```yaml
matrix_mautrix_facebook_configuration_extension_yaml: |
bridge:
encryption:
allow: true
default: true
```
If you would like to be able to administrate the bridge from your account it can be configured like this:
```yaml
matrix_mautrix_facebook_configuration_extension_yaml: |
bridge:
permissions:
'@YOUR_USERNAME:YOUR_DOMAIN': admin
```
You may wish to look at `roles/matrix-bridge-mautrix-facebook/templates/config.yaml.j2` to find other things you would like to configure.
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://github.com/tulir/mautrix-facebook/wiki/Authentication#double-puppeting) (hint: you most likely do), you have 2 ways of going about it.
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
@ -42,40 +63,13 @@ https://matrix.DOMAIN/_matrix/client/r0/login
You then need to start a chat with `@facebookbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
Send `login YOUR_FACEBOOK_EMAIL_ADDRESS YOUR_FACEBOOK_PASSWORD` to the bridge bot to enable bridging for your Facebook/Messenger account.
You can learn more here about authentication from the bridge's [official documentation on Authentication](https://github.com/tulir/mautrix-facebook/wiki/Authentication).
Send `login YOUR_FACEBOOK_EMAIL_ADDRESS` to the bridge bot to enable bridging for your Facebook Messenger account. You can learn more here about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/facebook/authentication.html).
If you run into trouble, check the [Troubleshooting](#troubleshooting) section below.
After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so.
## Set up community-grouping
This is an **optional feature** that you may wish to enable.
The Facebook bridge can create a Matrix community for you, which would contain all your chats and contacts.
For this to work, the bridge's bot needs to have permissions to create communities (also referred to as groups).
Since the bot is a non-admin user, you need to enable such group-creation for non-privileged users in [Synapse's settings](configuring-playbook-synapse.md).
Here's an example configuration:
```yaml
matrix_synapse_configuration_extension_yaml: |
enable_group_creation: true
group_creation_prefix: "unofficial/"
matrix_mautrix_facebook_configuration_extension_yaml: |
bridge:
community_template: "unofficial/facebook_{localpart}={server}"
```
Once the bridge is restarted, it would create a community and invite you to it. You need to accept the community invitation manually.
If you don't see all your contacts, you may wish to send a `sync` message to the bot.
## Troubleshooting
### Facebook rejecting login attempts and forcing you to change password

View File

@ -0,0 +1,58 @@
# Setting up Mautrix Google Chat (optional)
The playbook can install and configure [mautrix-googlechat](https://github.com/mautrix/googlechat) for you.
See the project's [documentation](https://docs.mau.fi/bridges/python/googlechat/index.html) to learn what it does and why it might be useful to you.
To enable the [Google Chat](https://chat.google.com/) bridge just use the following playbook configuration:
```yaml
matrix_mautrix_googlechat_enabled: true
```
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
### Method 2: manually, by asking each user to provide a working access token
**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)).
When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:
- retrieve a Matrix access token for yourself. You can use the following command:
```
curl \
--data '{"identifier": {"type": "m.id.user", "user": "YOUR_MATRIX_USERNAME" }, "password": "YOUR_MATRIX_PASSWORD", "type": "m.login.password", "device_id": "Mautrix-googlechat", "initial_device_display_name": "Mautrix-googlechat"}' \
https://matrix.DOMAIN/_matrix/client/r0/login
```
- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`
- make sure you don't log out the `Mautrix-googlechat` device some time in the future, as that would break the Double Puppeting feature
## Usage
Once the bot is enabled you need to start a chat with `googlechat bridge bot` with handle `@googlechatbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
Send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions.
Automatic login may not work. If it does not, reload the page and select the "Manual login" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools.
Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages.
You can learn more about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html).
After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so.

View File

@ -1,8 +1,10 @@
# The [Mautrix Hangouts Bridge](https://mau.dev/mautrix/hangouts) is no longer maintained. It has changed to a [Google Chat Bridge](https://github.com/mautrix/googlechat). Setup instructions for the Google Chat Bridge can be [found here](configuring-playbook-bridge-mautrix-googlechat.md).
# Setting up Mautrix Hangouts (optional)
The playbook can install and configure [mautrix-hangouts](https://github.com/tulir/mautrix-hangouts) for you.
The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for you.
See the project's [documentation](https://github.com/tulir/mautrix-hangouts/wiki#usage) to learn what it does and why it might be useful to you.
See the project's [documentation](https://docs.mau.fi/bridges/python/hangouts/index.html) to learn what it does and why it might be useful to you.
To enable the [Google Hangouts](https://hangouts.google.com/) bridge just use the following playbook configuration:
@ -14,7 +16,7 @@ matrix_mautrix_hangouts_enabled: true
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://github.com/tulir/mautrix-hangouts/wiki/Authentication#double-puppeting) (hint: you most likely do), you have 2 ways of going about it.
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
@ -52,7 +54,7 @@ Automatic login may not work. If it does not, reload the page and select the "Ma
Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages.
You can learn more about authentication from the bridge's [official documentation on Authentication](https://github.com/tulir/mautrix-hangouts/wiki/Authentication).
You can learn more about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/hangouts/authentication.html).
After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so.

View File

@ -0,0 +1,17 @@
# Setting up Mautrix Instagram (optional)
The playbook can install and configure [mautrix-instagram](https://github.com/mautrix/instagram) for you.
See the project's [documentation](https://docs.mau.fi/bridges/python/instagram/index.html) to learn what it does and why it might be useful to you.
```yaml
matrix_mautrix_instagram_enabled: true
```
## Usage
You then need to start a chat with `@instagrambot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
Send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger account.
You can learn more here about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/instagram/authentication.html).

View File

@ -0,0 +1,91 @@
# Setting up Mautrix Signal (optional)
The playbook can install and configure [mautrix-signal](https://github.com/mautrix/signal) for you.
See the project's [documentation](https://docs.mau.fi/bridges/python/signal/index.html) to learn what it does and why it might be useful to you.
**Note/Prerequisite**: If you're running with the Postgres database server integrated by the playbook (which is the default), you don't need to do anything special and can easily proceed with installing. However, if you're [using an external Postgres server](configuring-playbook-external-postgres.md), you'd need to manually prepare a Postgres database for this bridge and adjust the variables related to that (`matrix_mautrix_signal_database_*`).
Use the following playbook configuration:
```yaml
matrix_mautrix_signal_enabled: true
```
There are some additional things you may wish to configure about the bridge before you continue.
The relay bot functionality is off by default. If you would like to enable the relay bot, add the following to your `vars.yml` file:
```yaml
matrix_mautrix_signal_relaybot_enabled: true
```
If you want to activate the relay bot in a room, use `!signal set-relay`.
Use `!signal unset-relay` to deactivate.
By default, any user on your homeserver will be able to use the bridge.
If you enable the relay bot functionality, it will relay every user's messages in a portal room - no matter which homeserver they're from.
Different levels of permission can be granted to users:
* relay - Allowed to be relayed through the bridge, no access to commands;
* user - Use the bridge with puppeting;
* admin - Use and administer the bridge.
The permissions are following the sequence: nothing < relay < user < admin.
The default permissions are set as follows:
```yaml
permissions:
'*': relay
YOUR_DOMAIN: user
```
If you want to augment the preset permissions, you might want to set the additional permissions with the following settings in your `vars.yml` file:
```yaml
matrix_mautrix_signal_configuration_extension_yaml: |
bridge:
permissions:
'@YOUR_USERNAME:YOUR_DOMAIN': admin
```
This will add the admin permission to the specific user, while keepting the default permissions.
In case you want to replace the default permissions settings **completely**, populate the following item within your `vars.yml` file:
```yaml
matrix_mautrix_signal_bridge_permissions: |
'@ADMIN:YOUR_DOMAIN': admin
'@USER:YOUR_DOMAIN' : user
```
You may wish to look at `roles/matrix-bridge-mautrix-signal/templates/config.yaml.j2` to find more information on the permissions settings and other options you would like to configure.
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
### Method 2: manually, by asking each user to provide a working access token
**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)).
When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:
- retrieve a Matrix access token for yourself. You can use the following command:
```
curl \
--data '{"identifier": {"type": "m.id.user", "user": "YOUR_MATRIX_USERNAME" }, "password": "YOUR_MATRIX_PASSWORD", "type": "m.login.password", "device_id": "Mautrix-Signal", "initial_device_display_name": "Mautrix-Signal"}' \
https://matrix.DOMAIN/_matrix/client/r0/login
```
- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`
- make sure you don't log out the `Mautrix-Signal` device some time in the future, as that would break the Double Puppeting feature
## Usage
You then need to start a chat with `@signalbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).

View File

@ -1,10 +1,10 @@
# Setting up Mautrix Telegram (optional)
The playbook can install and configure [mautrix-telegram](https://github.com/tulir/mautrix-telegram) for you.
The playbook can install and configure [mautrix-telegram](https://github.com/mautrix/telegram) for you.
See the project's [documentation](https://github.com/tulir/mautrix-telegram/wiki#usage) to learn what it does and why it might be useful to you.
See the project's [documentation](https://docs.mau.fi/bridges/python/telegram/index.html) to learn what it does and why it might be useful to you.
You'll need to obtain API keys from `https://my.telegram.org/apps` and then use the following playbook configuration:
You'll need to obtain API keys from [https://my.telegram.org/apps](https://my.telegram.org/apps) and then use the following playbook configuration:
```yaml
matrix_mautrix_telegram_enabled: true
@ -12,10 +12,9 @@ matrix_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID
matrix_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH
```
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://github.com/tulir/mautrix-telegram/wiki/Authentication#replacing-telegram-accounts-matrix-puppet-with-matrix-account) (hint: you most likely do), you have 2 ways of going about it.
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
@ -46,8 +45,23 @@ https://matrix.DOMAIN/_matrix/client/r0/login
You then need to start a chat with `@telegrambot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
If you want to use the relay-bot feature ([relay bot documentation](https://github.com/tulir/mautrix-telegram/wiki/Relay-bot)), which allows anonymous user to chat with telegram users, use the following additional playbook configuration:
If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, use the following additional playbook configuration:
```yaml
matrix_mautrix_telegram_bot_token: YOUR_TELEGRAM_BOT_TOKEN
matrix_mautrix_telegram_configuration_extension_yaml: |
bridge:
permissions:
'*': relaybot
```
You might also want to give permissions to administrate the bot:
```yaml
matrix_mautrix_telegram_configuration_extension_yaml: |
bridge:
permissions:
'@user:DOMAIN': admin
```
More details about permissions in this example:
https://github.com/mautrix/telegram/blob/master/mautrix_telegram/example-config.yaml#L410

View File

@ -0,0 +1,35 @@
# Setting up Mautrix Twitter (optional)
**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md) bridge supported by the playbook.
The playbook can install and configure [mautrix-twitter](https://github.com/mautrix/twitter) for you.
See the project's [documentation](https://github.com/mautrix/twitter) to learn what it does and why it might be useful to you.
```yaml
matrix_mautrix_twitter_enabled: true
```
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
### Method 2: manually, by asking each user to provide a working access token
This method is currently not available for the Mautrix-Twitter bridge, but is on the [roadmap](https://github.com/mautrix/twitter/blob/master/ROADMAP.md) under Misc/Manual login with `login-matrix`
## Usage
1. You then need to start a chat with `@twitterbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
2. Send login-cookie to start the login. The bot should respond with instructions on how to proceed.
You can learn more here about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/twitter/authentication.html).
After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so.

View File

@ -1,19 +1,36 @@
# Setting up Mautrix Whatsapp (optional)
The playbook can install and configure [mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) for you.
The playbook can install and configure [mautrix-whatsapp](https://github.com/mautrix/whatsapp) for you.
See the project's [documentation](https://github.com/tulir/mautrix-whatsapp/wiki) to learn what it does and why it might be useful to you.
See the project's [documentation](https://docs.mau.fi/bridges/go/whatsapp/index.html) to learn what it does and why it might be useful to you.
Use the following playbook configuration:
```yaml
matrix_mautrix_whatsapp_enabled: true
```
```
Whatsapp multidevice beta is required, now it is enough if Whatsapp is connected to the Internet every 2 weeks.
## Enable backfilling history
This requires a server with MSC2716 support, which is currently an experimental feature in synapse.
Note that as of Synapse 1.46, there are still some bugs with the implementation, especially if using event persistence workers.
Use the following playbook configuration:
```yaml
matrix_synapse_configuration_extension_yaml: |
experimental_features:
msc2716_enabled: true
```
```yaml
matrix_mautrix_whatsapp_configuration_extension_yaml:
bridge:
history_sync:
backfill: true
```
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://github.com/tulir/mautrix-whatsapp/wiki/Authentication#replacing-whatsapp-accounts-matrix-puppet-with-matrix-account) (hint: you most likely do), you have 2 ways of going about it.
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth

View File

@ -0,0 +1,36 @@
# Setting up MX Puppet Discord (optional)
**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) bridge supported by the playbook.
The playbook can install and configure
[mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord) for you.
See the project page to learn what it does and why it might be useful to you.
**Note**: we actually use the [Beeper](https://www.beeper.com/)-maintained [fork of mx-puppet-discord](https://gitlab.com/beeper/mx-puppet-monorepo), because `matrix-discord/mx-puppet-discord` is a low-quality and poorly maintained project.
To enable the [Discord](https://discordapp.com/) bridge just use the following
playbook configuration:
```yaml
matrix_mx_puppet_discord_enabled: true
```
## Usage
Once the bot is enabled you need to start a chat with `Discord Puppet Bridge` with
the handle `@_discordpuppet_bot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base
domain, not the `matrix.` domain).
Three authentication methods are available, Legacy Token, OAuth and xoxc token.
See mx-puppet-discord [documentation](https://github.com/matrix-discord/mx-puppet-discord)
for more information about how to configure the bridge.
Once logged in, send `list` to the bot user to list the available rooms.
Clicking rooms in the list will result in you receiving an invitation to the
bridged room.
Also send `help` to the bot to see the commands available.

View File

@ -0,0 +1,36 @@
# Setting up MX Puppet GroupMe (optional)
The playbook can install and configure
[mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) for you.
See the project page to learn what it does and why it might be useful to you.
To enable the [GroupMe](https://groupme.com/) bridge just use the following
playbook configuration:
```yaml
matrix_mx_puppet_groupme_enabled: true
```
## Usage
Once the bot is enabled you need to start a chat with `GroupMe Puppet Bridge` with
the handle `@_groupmepuppet_bot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base
domain, not the `matrix.` domain).
One authentication method is available.
To link your GroupMe account, go to [dev.groupme.com](https://dev.groupme.com/), sign in, and select "Access Token" from the top menu. Copy the token and message the bridge with:
```
link <access token>
```
Once logged in, send `listrooms` to the bot user to list the available rooms.
Clicking rooms in the list will result in you receiving an invitation to the
bridged room.
Also send `help` to the bot to see the commands available.

View File

@ -0,0 +1,36 @@
# Setting up mx-puppet-instagram (optional)
The playbook can install and configure
[mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) for you.
This allows you to bridge Instagram DirectMessages into Matrix.
To enable the [Instagram](https://www.instagram.com/) bridge just use the following
playbook configuration:
```yaml
matrix_mx_puppet_instagram_enabled: true
```
## Usage
Once the bot is enabled, you need to start a chat with `Instagram Puppet Bridge` with
the handle `@_instagrampuppet_bot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base
domain, not the `matrix.` domain).
Send `link <username> <password>` to the bridge bot to link your instagram account.
The `list` commands shows which accounts are linked and which `puppetId` is associated.
For double-puppeting, you probably want to issue these commands:
- `settype $puppetId puppet` to enable puppeting for the link (instead of relaying)
- `setautoinvite $puppetId 1` to automatically invite you to chats
- `setmatrixtoken $accessToken` to set the access token to enable puppeting from the other side (the "double" in double puppeting)
If you are linking only one Instagram account, your `$puppetId` is probably 1, but use the `list` command find out.
The `help` command shows which commands are available, though at the time of writing, not every command is fully implemented.

View File

@ -1,20 +1,33 @@
# Setting up MX Puppet Slack (optional)
The playbook can install and configure
[mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) for you.
**Note**: bridging to [Slack](https://slack.com) can also happen via the
[matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md)
bridge supported by the playbook.
The playbook can install and configure [Beeper](https://www.beeper.com/)-maintained fork of
[mx-puppet-slack](https://gitlab.com/beeper/mx-puppet-monorepo) for you.
See the project page to learn what it does and why it might be useful to you.
To enable the [Slack](https://slack.com/) bridge just use the following
playbook configuration:
## Setup
To enable the [Slack](https://slack.com/) bridge:
```yaml
matrix_mx_puppet_slack_enabled: true
matrix_mx_puppet_slack_client_id: ""
matrix_mx_puppet_slack_client_secret: ""
```
1. Follow the
[OAuth credentials](https://github.com/Sorunome/mx-puppet-slack#option-2-oauth)
instructions to create a new Slack app, setting the redirect URL to
`https://matrix.YOUR_DOMAIN/slack/oauth`.
2. Update your `vars.yml` with the following:
```yaml
matrix_mx_puppet_slack_enabled: true
# Client ID must be quoted so YAML does not parse it as a float.
matrix_mx_puppet_slack_oauth_client_id: "<SLACK_APP_CLIENT_ID>"
matrix_mx_puppet_slack_oauth_client_secret: "<SLACK_APP_CLIENT_SECRET>"
```
3. Run playbooks with `setup-all` and `start` tags:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage

View File

@ -0,0 +1,32 @@
# Setting up MX Puppet Steam (optional)
The playbook can install and configure
[mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) for you.
See the project page to learn what it does and why it might be useful to you.
To enable the [Steam](https://steampowered.com/) bridge just use the following
playbook configuration:
```yaml
matrix_mx_puppet_steam_enabled: true
```
## Usage
Once the bot is enabled you need to start a chat with `Steam Puppet Bridge` with
the handle `@_steampuppet_bot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base
domain, not the `matrix.` domain).
Three authentication methods are available, Legacy Token, OAuth and xoxc token.
See mx-puppet-steam [documentation](https://github.com/icewind1991/mx-puppet-steam)
for more information about how to configure the bridge.
Once logged in, send `list` to the bot user to list the available rooms.
Clicking rooms in the list will result in you receiving an invitation to the
bridged room.
Also send `help` to the bot to see the commands available.

View File

@ -0,0 +1,36 @@
# Setting up MX Puppet Twitter (optional)
**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) bridge supported by the playbook.
The playbook can install and configure
[mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) for you.
See the project page to learn what it does and why it might be useful to you.
To enable the [Twitter](https://twitter.com) bridge, make an app on [developer.twitter.com](https://developer.twitter.com/en/apps)
and fill out the following playbook configuration.
```yaml
matrix_mx_puppet_twitter_enabled: true
matrix_mx_puppet_twitter_consumer_key: ''
matrix_mx_puppet_twitter_consumer_secret: ''
matrix_mx_puppet_twitter_access_token: ''
matrix_mx_puppet_twitter_access_token_secret: ''
matrix_mx_puppet_twitter_environment: ''
```
## Usage
Once the bot is enabled you need to start a chat with `Twitter Puppet Bridge` with
the handle `@_twitterpuppet_bot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base
domain, not the `matrix.` domain).
To log in, use `link` and click the link.
Once logged in, send `list` to the bot user to list the available rooms.
Clicking rooms in the list will result in you receiving an invitation to the
bridged room.
Also send `help` to the bot to see the commands available.

View File

@ -0,0 +1,21 @@
# Configuring Cinny (optional)
This playbook can install the [cinny](https://github.com/ajbura/cinny) Matrix web client for you.
cinny is a web client focusing primarily on simple, elegant and secure interface.
cinny can be installed alongside or instead of Element.
If you'd like cinny to be installed, add the following to your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_client_cinny_enabled: true
```
You will also need to add a DNS record so that cinny can be accessed.
By default cinny will use https://cinny.DOMAIN so you will need to create an CNAME record
for `cinny`. See [Configuring DNS](configuring-dns.md).
If you would like to use a different domain, add the following to your configuration file (changing it to use your preferred domain):
```yaml
matrix_server_fqn_cinny: "app.{{ matrix_domain }}"
```

View File

@ -0,0 +1,41 @@
# Configuring Element (optional)
By default, this playbook installs the [Element](https://github.com/vector-im/element-web) Matrix client web application.
If that's okay, you can skip this document.
## Disabling Element
If you'd like for the playbook to not install Element (or to uninstall it if it was previously installed), you can disable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_client_element_enabled: false
```
## Configuring Element settings
The playbook provides some customization variables you could use to change Element's settings.
Their defaults are defined in [`roles/matrix-client-element/defaults/main.yml`](../roles/matrix-client-element/defaults/main.yml) and they ultimately end up in the generated `/matrix/element/config.json` file (on the server). This file is generated from the [`roles/matrix-client-element/templates/config.json.j2`](../roles/matrix-client-element/templates/config.json.j2) template.
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
Alternatively, **if there is no pre-defined variable** for an Element setting you wish to change:
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of Element's various settings that rarely get used.
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/matrix-client-element/templates/config.json.j2)) by making use of the `matrix_client_element_configuration_extension_json_` variable. You can find information about this in [`roles/matrix-client-element/defaults/main.yml`](../roles/matrix-client-element/defaults/main.yml).
- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_client_element_configuration_default` (or `matrix_client_element_configuration`). You can find information about this in [`roles/matrix-client-element/defaults/main.yml`](../roles/matrix-client-element/defaults/main.yml).
## Themes
To change the look of Element, you can define your own themes manually by using the `matrix_client_element__settingDefaults_custom_themes` setting.
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_element_themes_enabled: true`).
If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it.
Note that for a custom theme to work well, all Element instances that you use must have the same theme installed.

View File

@ -0,0 +1,21 @@
# Configuring Hydrogen (optional)
This playbook can install the [Hydrogen](https://github.com/vector-im/hydrogen-web) Matrix web client for you.
Hydrogen is a lightweight web client that supports mobile and legacy web browsers.
Hydrogen can be installed alongside or instead of Element.
If you'd like Hydrogen to be installed, add the following to your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_client_hydrogen_enabled: true
```
You will also need to add a DNS record so that Hydrogen can be accessed.
By default Hydrogen will use https://hydrogen.DOMAIN so you will need to create an CNAME record
for `hydrogen`. See [Configuring DNS](configuring-dns.md).
If you would like to use a different domain, add the following to your configuration file (changing it to use your preferred domain):
```yaml
matrix_server_fqn_hydrogen: "helium.{{ matrix_domain }}"
```

View File

@ -3,11 +3,12 @@
**[Dimension](https://dimension.t2bot.io) can only be installed after Matrix services are installed and running.**
If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) flow and come back here later.
**Note**: This playbook now supports running [Dimension](https://dimension.t2bot.io) in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_synapse_federation_enabled`. Enabling Dimension, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. It's something to be aware of, especially in terms of firewall whitelisting (make sure port `8448` is accessible).
## Prerequisites
This playbook now supports running [Dimension](https://dimension.t2bot.io) in both a federated and an [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environment. This is handled automatically based on the value of `matrix_synapse_federation_enabled`.
Other important prerequisite is the `dimension.<your-domain>` DNS record being set up correctly. See [Configuring your DNS server](configuring-dns.md) on how to set up DNS record correctly.
The `dimension.<your-domain>` DNS record must be created. See [Configuring your DNS server](configuring-dns.md) on how to set up DNS record correctly.
## Enable
@ -21,7 +22,7 @@ matrix_dimension_enabled: true
## Define admin users
These users can modify the integrations this Dimension supports. Admin interface is accessible by opening Dimension in Riot and clicking the settings icon.
These users can modify the integrations this Dimension supports.
Add this to your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
@ -30,6 +31,7 @@ matrix_dimension_admins:
- "@user2:{{ matrix_domain }}"
```
The admin interface is accessible within Element by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element by the "Add widgets, bridges, & bots" link in the room information.
## Access token
@ -37,14 +39,27 @@ We recommend that you create a dedicated Matrix user for Dimension (`dimension`
Follow our [Registering users](registering-users.md) guide to learn how to register **a regular (non-admin) user**.
You are required to specify an access token (belonging to this new user) for Dimension to work.
To get an access token for the Dimension user, follow these steps:
To get an access token for the Dimension user, you can follow one of two options:
1. In a private browsing session (incognito window), open Riot.
2. Log in with the `dimension` user and its password.
*Through an interactive login*:
1. In a private browsing session (incognito window), open Element.
1. Log in with the `dimension` user and its password.
1. Set the display name and avatar, if required.
2. In the settings page choose "Help & About", scroll down to the bottom and click `Access Token: <click to reveal>`.
3. Copy the highlighted text to your configuration.
4. Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work.
1. In the settings page choose "Help & About", scroll down to the bottom and expand the `Access Token` section.
1. Copy the access token to your configuration.
1. Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work.
*With CURL*
```
curl -X POST --header 'Content-Type: application/json' -d '{
"identifier": { "type": "m.id.user", "user": "YourDimensionUsername" },
"password": "YourDimensionPassword",
"type": "m.login.password"
}' 'https://matrix.YOURDOMAIN/_matrix/client/r0/login'
```
*Change `YourDimensionUsername`, `YourDimensionPassword`, and `YOURDOMAIN` accordingly.*
**Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone.**
@ -65,12 +80,14 @@ After these variables have been set, please run the following command to re-run
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
After Dimension has been installed you may need to log out and log back in for it to pick up the new integrations manager. Then you can access integrations in Element by opening a room, clicking the Room info button (`i`) button in the top right corner of the screen, and then clicking Add widgets, bridges & bots.
## Jitsi domain
By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](./configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance. Currently there is no way to configure this via the playbook, see [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details.
In the interim until the above limitation is resolved, an admin user needs to configure the domain via the admin ui once dimension is running. In riot-web, go to *Manage Integrations* &rightarrow; *Settings* &rightarrow; *Widgets* &rightarrow; *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately.
In the interim until the above limitation is resolved, an admin user needs to configure the domain via the admin ui once dimension is running. In Element, go to *Manage Integrations* &rightarrow; *Settings* &rightarrow; *Widgets* &rightarrow; *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately.
## Additional features

View File

@ -0,0 +1,27 @@
# Dynamic DNS
## Setup
Most cloud providers / ISPs will charge you extra for a static IP address. If you're
not hosting a highly reliable homeserver you can workaround this via dynamic DNS. To
set this up, you'll need to get the username/password from your DNS provider. For
google domains, this process is described [here](https://support.google.com/domains/answer/6147083).
After you've gotten the proper credentials you can add the following config to your `inventory/host_vars/matrix.DOMAIN/vars.yml`:
```yaml
matrix_dynamic_dns_enabled: true
matrix_dynamic_dns_domain_configurations:
- provider: domains.google.com
protocol: dyndn2
username: XXXXXXXXXXXXXXXX
password: XXXXXXXXXXXXXXXX
domain: "{{ matrix_domain }}"
```
## Additional Reading
Additional resources:
- https://matrix.org/docs/guides/free-small-matrix-server

View File

@ -0,0 +1,48 @@
# Setting up Etherpad (optional)
[Etherpad](https://etherpad.org) is is an open source collaborative text editor that can be embedded in a Matrix chat room using the [Dimension integrations manager](https://dimension.t2bot.io)
When enabled together with the Jitsi audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences.
## Prerequisites
For the self-hosted Etherpad instance to be available to your users, you must first enable and configure the **Dimension integrations manager** as described in [the playbook documentation](configuring-playbook-dimension.md)
## Installing
[Etherpad](https://etherpad.org) installation is disabled by default. You can enable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_etherpad_enabled: true
```
## Set Dimension default to the self-hosted Etherpad
The Dimension administrator users can configure the default URL template. The Dimension configuration menu can be accessed with the sprocket icon as you begin to add a widget to a room in Element. There you will find the Etherpad Widget Configuration action beneath the _Widgets_ tab. Replace `scalar.vector.im` with your own Dimension domain.
### Removing the integrated Etherpad chat
If you wish to disable the Etherpad chat button, you can do it by appending `?showChat=false` to the end of the pad URL, or the template.
Example: `https://dimension.<your-domain>/etherpad/p/$roomId_$padName?showChat=false`
### Etherpad Admin access (optional)
Etherpad comes with a admin web-UI which is disabled by default. You can enable it by setting a username and password in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_etherpad_admin_username: admin
matrix_etherpad_admin_password: some-password
```
The admin web-UI should then be available on: `https://dimension.<your-domain>/etherpad/admin`
### Managing / Deleting old pads
If you want to manage and remove old unused pads from Etherpad, you will first need to able Admin access as described above.
Then from the plugin manager page (`https://dimension.<your-domain>/etherpad/admin/plugins`), install the `adminpads2` plugin. Once installed, you should have a "Manage pads" section in the Admin web-UI.
## Known issues
If your Etherpad widget fails to load, this might be due to Dimension generating a Pad name so long, the Etherpad app rejects it.
`$roomId_$padName` can end up being longer than 50 characters. You can avoid having this problem by altering the template so it only contains the three word random identifier `$padName`.

View File

@ -4,7 +4,10 @@ By default, this playbook would set up a PostgreSQL database server on your mach
If that's alright, you can skip this.
If you'd like to use an external PostgreSQL server that you manage, you can edit your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`).
It should be something like this:
**NOTE**: using **an external Postgres server is currently [not very seamless](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682#issuecomment-1061461683) when it comes to enabling various other playbook services** - you will need to create a new database/credentials for each service and to point each service to its corresponding database using custom `vars.yml` configuration. **For the best experience with the playbook, stick to using the integrated Postgres server**.
If you'd like to use an external Postgres server, use a custom `vars.yml` configuration like this:
```yaml
matrix_postgres_enabled: false
@ -14,6 +17,10 @@ matrix_synapse_database_host: "your-postgres-server-hostname"
matrix_synapse_database_user: "your-postgres-server-username"
matrix_synapse_database_password: "your-postgres-server-password"
matrix_synapse_database_database: "your-postgres-server-database-name"
# Rewire any other service (each `matrix-*` role) you may wish to use to use your external Postgres server.
# Each service expects to have its own dedicated database on the Postgres server
# and uses its own variable names (see `roles/matrix-*/defaults/main.yml) for configuring Postgres connectivity.
```
The database (as specified in `matrix_synapse_database_database`) must exist and be accessible with the given credentials.

View File

@ -37,3 +37,30 @@ matrix_synapse_federation_enabled: false
```
With that, your server's users will only be able to talk among themselves, but not to anyone who is on another server.
**Disabling federation does not necessarily disable the federation port** (`8448`). Services like [Dimension](configuring-playbook-dimension.md) and [ma1sd](configuring-playbook-ma1sd.md) normally rely on `openid` APIs exposed on that port. Even if you disable federation and only if necessary, we may still be exposing the federation port and serving the `openid` APIs there. To override this and completely disable Synapse's federation port use:
```yaml
# This stops the federation port on the Synapse side (normally `matrix-synapse:8048` on the container network).
matrix_synapse_federation_port_enabled: false
# This removes the `8448` virtual host from the matrix-nginx-proxy reverse-proxy server.
matrix_nginx_proxy_proxy_matrix_federation_api_enabled: false
```
## Changing the federation port from 8448 to a different port to use a CDN that only accepts 443/80 ports
Why? This change could be useful for people running small Synapse instances on small severs/VPSes to avoid being impacted by a simple DOS/DDOS when bandwidth, RAM, an CPU resources are limited and if your hosting provider does not provide a DOS/DDOS protection.
The following changes in the configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) will allow this and make it possible to proxy the federation through a CDN such as CloudFlare or any other:
```
matrix_synapse_http_listener_resource_names: ["client","federation"]
# Any port can be used but in this case we use 443
matrix_federation_public_port: 443
matrix_synapse_federation_port_enabled: false
# Note that the following change might not be "required per se" but probably will be due to the proxying of the traffic through the CDN proxy servers (CloudFlare for instance). The security impact of doing this should be minimal as your CDN itself will encrypt the traffic no matter what on their proxy servers. You could however first try and see if federation works while setting the following to true.
matrix_synapse_tls_federation_listener_enabled: false
```
**Use this at you own risk as all the possible side-effects of doing this are not fully known. However, it has been tested and works fine and passes all the tests on <https://federationtester.matrix.org/> without issues.**

View File

@ -1,6 +1,6 @@
# Jitsi
The playbook can install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with [Riot](configuring-playbook-riot-web.md).
The playbook can install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with [Element](configuring-playbook-client-element.md).
Jitsi installation is **not enabled by default**, because it's not a core component of Matrix services.
@ -13,8 +13,8 @@ Before installing Jitsi, make sure you've created the `jitsi.DOMAIN` DNS record.
You may also need to open the following ports to your server:
- `10000/udp` - RTP media over UDP
- `4443/tcp` - RTP media fallback over TCP
- `10000/udp` - RTP media over UDP. Depending on your firewall/NAT setup, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`matrix_jitsi_jvb_stun_servers`](../roles/matrix-jitsi/defaults/main.yml)).
## Installation
@ -26,7 +26,6 @@ matrix_jitsi_enabled: true
# Run `bash inventory/scripts/jitsi-generate-passwords.sh` to generate these passwords,
# or define your own strong passwords manually.
matrix_jitsi_jicofo_component_secret: ""
matrix_jitsi_jicofo_auth_password: ""
matrix_jitsi_jvb_auth_password: ""
matrix_jitsi_jibri_recorder_password: ""
@ -42,13 +41,23 @@ If you're fine with such an open Jitsi instance, please skip to [Apply changes](
If you would like to control who is allowed to open meetings on your new Jitsi instance, then please follow this step to enable Jitsi's authentication and guests mode. With authentication enabled, all meeting rooms have to be opened by a registered user, after which guests are free to join. If a registered host is not yet present, guests are put on hold in individual waiting rooms.
Add these two lines to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
Add these lines to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
```yaml
matrix_jitsi_enable_auth: true
matrix_jitsi_enable_guests: true
matrix_jitsi_prosody_auth_internal_accounts:
- username: "jitsi-moderator"
password: "secret-password"
- username: "another-user"
password: "another-password"
```
**Caution:** Accounts added here and subsquently removed will not be automatically removed from the Prosody server until user account cleaning is integrated into the playbook.
**If you get an error** like this: "Error: Account creation/modification not supported.", it's likely that you had previously installed Jitsi without auth/guest support. In such a case, you should look into [Rebuilding your Jitsi installation](#rebuilding-your-jitsi-installation).
### (Optional) LDAP authentication
The default authentication mode of Jitsi is `internal`, however LDAP is also supported. An example LDAP configuration could be:
@ -56,11 +65,19 @@ The default authentication mode of Jitsi is `internal`, however LDAP is also sup
```yaml
matrix_jitsi_enable_auth: true
matrix_jitsi_auth_type: ldap
matrix_jitsi_ldap_url: ldap://ldap.DOMAIN # or ldaps:// if using tls
matrix_jitsi_ldap_base: "OU=People,DC=DOMAIN"
matrix_jitsi_ldap_filter: "(&(uid=%u)(employeeType=active))"
matrix_jitsi_ldap_use_tls: false
matrix_jitsi_ldap_start_tls: true
matrix_jitsi_ldap_url: "ldap://ldap.DOMAIN"
matrix_jitsi_ldap_base: "OU=People,DC=DOMAIN
#matrix_jitsi_ldap_binddn: ""
#matrix_jitsi_ldap_bindpw: ""
matrix_jitsi_ldap_filter: "uid=%u"
matrix_jitsi_ldap_auth_method: "bind"
matrix_jitsi_ldap_version: "3"
matrix_jitsi_ldap_use_tls: true
matrix_jitsi_ldap_tls_ciphers: ""
matrix_jitsi_ldap_tls_check_peer: true
matrix_jitsi_ldap_tls_cacert_file: "/etc/ssl/certs/ca-certificates.crt"
matrix_jitsi_ldap_tls_cacert_dir: "/etc/ssl/certs"
matrix_jitsi_ldap_start_tls: false
```
For more information refer to the [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet#authentication-using-ldap) and the [saslauthd `LDAP_SASLAUTHD`](https://github.com/winlibs/cyrus-sasl/blob/master/saslauthd/LDAP_SASLAUTHD) documentation.
@ -81,35 +98,52 @@ matrix_jitsi_jvb_container_extra_arguments:
- '--env "DOCKER_HOST_ADDRESS=<Local IP adress of the host>"'
```
## (Optional) Fine tune Jitsi
Sample **additional** `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration to save up resources (explained below):
```yaml
matrix_jitsi_web_custom_config_extension: |
config.enableLayerSuspension = true;
config.disableAudioLevels = true;
// Limit the number of video feeds forwarded to each client
config.channelLastN = 4;
matrix_jitsi_web_config_resolution_width_ideal_and_max: 480
matrix_jitsi_web_config_resolution_height_ideal_and_max: 240
```
You may want to **suspend unused video layers** until they are requested again, to save up resources on both server and clients.
Read more on this feature [here](https://jitsi.org/blog/new-off-stage-layer-suppression-feature/)
For this add this line to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
You may wish to **disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved.
You may want to **limit the number of video feeds forwarded to each client**, to save up resources on both server and clients. As clients bandwidth and CPU may not bear the load, use this setting to avoid lag and crashes.
This feature is found by default in other webconference applications such as Office 365 Teams (limit is set to 4).
Read how it works [here](https://github.com/jitsi/jitsi-videobridge/blob/master/doc/last-n.md) and performance evaluation on this [study](https://jitsi.org/wp-content/uploads/2016/12/nossdav2015lastn.pdf).
You may want to **limit the maximum video resolution**, to save up resources on both server and clients.
## Apply changes
Then re-run the playbook: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`
## Required if configuring Jitsi with internal authentication: register new users
Until this gets integrated into the playbook, we need to register new users / meeting hosts for Jitsi manually.
Please SSH into your matrix host machine and execute the following command targeting the `matrix-jitsi-prosody` container:
```bash
docker exec matrix-jitsi-prosody prosodyctl --config /config/prosody.cfg.lua register <USERNAME> matrix-jitsi-web <PASSWORD>
```
Run this command for each user you would like to create, replacing `<USERNAME>` and `<PASSWORD>` accordingly. After you've finished, please exit the host.
**If you get an error** like this: "Error: Account creation/modification not supported.", it's likely that you had previously installed Jitsi without auth/guest support. In such a case, you should look into [Rebuilding your Jitsi installation](#rebuilding-your-jitsi-installation).
## Usage
You can use the self-hosted Jitsi server in multiple ways:
- **by adding a widget to a room via riot-web** (the one configured by the playbook at `https://riot.DOMAIN`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server.
- **by adding a widget to a room via Element** (the one configured by the playbook at `https://element.DOMAIN`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server.
- **by adding a widget to a room via the Dimension Integration Manager**. You'll have to point the widget to your own Jitsi server manually. See our [Dimension](./configuring-playbook-dimension.md) documentation page for more details. Naturally, Dimension would need to be installed first (the playbook doesn't install it by default).
- **directly (without any Matrix integration)**. Just go to `https://jitsi.DOMAIN`
**Note**: Riot apps on mobile devices currently [don't support joining meetings on a self-hosted Jitsi server](https://github.com/vector-im/riot-web/blob/601816862f7d84ac47547891bd53effa73d32957/docs/jitsi.md#mobile-app-support).
**Note**: Element apps on mobile devices currently [don't support joining meetings on a self-hosted Jitsi server](https://github.com/vector-im/riot-web/blob/601816862f7d84ac47547891bd53effa73d32957/docs/jitsi.md#mobile-app-support).
## Troubleshooting

View File

@ -1,10 +1,21 @@
# Adjusting ma1sd Identity Server configuration (optional)
By default, this playbook configures an [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you.
The playbook can configure the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you.
ma1sd, being an Identity Server, is not strictly needed. It is only used for 3PIDs (3rd party identifiers like E-mail and phone numbers) and some [enhanced features](https://github.com/ma1uta/ma1sd/#features).
This server is private by default, potentially at the expense of user discoverability.
ma1sd is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21.
*ma1sd is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21.*
**Note**: enabling ma1sd, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. It's something to be aware of, especially in terms of firewall whitelisting (make sure port `8448` is accessible).
To enable ma1sd, use the following additional configuration in your `vars.yml` file:
```yaml
matrix_ma1sd_enabled: true
```
## Matrix.org lookup forwarding
@ -31,12 +42,17 @@ To use the [Registration](https://github.com/ma1uta/ma1sd/blob/master/docs/featu
- `matrix_synapse_enable_registration` - to enable user-initiated registration in Synapse
- `matrix_synapse_enable_registration_captcha` - to validate registering users using reCAPTCHA, as described in the [enabling reCAPTCHA](configuring_captcha.md) documentation.
- `matrix_synapse_registrations_require_3pid` - to control the types of 3pid (`'email'`, `'msisdn'`) required by the Synapse server for registering
- variables prefixed with `matrix_nginx_proxy_proxy_matrix_3pid_registration_` (e.g. `matrix_nginx_proxy_proxy_matrix_3pid_registration_enabled`) - to configure the integrated nginx webserver to send registration requests to ma1sd (instead of Synapse), so it can apply its additional functionality
- `matrix_ma1sd_configuration_extension_yaml` - to configure ma1sd as required. See the [Registration feature's docs](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) for inspiration. Also see the [Additional features](#additional-features) section below to learn more about how to use `matrix_ma1sd_configuration_extension_yaml`.
**Note**: For this to work, either the homeserver needs to [federate](configuring-playbook-federation.md) or the `openid` APIs need to exposed on the federation port. When federation is disabled and ma1sd is enabled, we automatically expose the `openid` APIs (only!) on the federation port. Make sure the federation port (usually `https://matrix.DOMAIN:8448`) is whitelisted in your firewall (even if you don't actually use/need federation).
## Authentication
[Authentication](https://github.com/ma1uta/ma1sd/blob/master/docs/features/authentication.md) provides the possibility to use your own [Identity Stores](https://github.com/ma1uta/ma1sd/blob/master/docs/stores/README.md) (for example LDAP) to authenticate users on your Homeserver. The following configuration can be used to authenticate against an LDAP server:
@ -88,6 +104,22 @@ matrix_ma1sd_configuration_extension_yaml: |
number: '+<msisdn-number>'
```
## Example: Open Registration for every Domain
If you want to open registration for any domain, you have to setup the allowed domains with ma1sd's `blacklist` and `whitelist`. The default behavior when neither the `blacklist`, nor the `whitelist` match, is to allow registration. Beware: you can't block toplevel domains (aka `.xy`) because the internal architecture of ma1sd doesn't allow that.
```yaml
matrix_ma1sd_configuration_extension_yaml: |
register:
policy:
allowed: true
threepid:
email:
domain:
blacklist: ~
whitelist: ~
```
## Troubleshooting
If email address validation emails sent by ma1sd are not reaching you, you should look into [Adjusting email-sending settings](configuring-playbook-email.md).

View File

@ -1,31 +0,0 @@
# Setting up matrix-sms-bridge (optional)
The playbook can install and configure
[matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you.
See the project page to learn what it does and why it might be useful to you.
First you need to ensure, that the bridge has unix read and write rights to your modem. On debian based distributions there is nothing to do. On others distributions you either add a group `dialout` to your host and assign it to your modem or you give the matrix user or group access to your modem.
To enable the bridge just use the following
playbook configuration:
```yaml
matrix_sms_bridge_enabled: true
matrix_sms_bridge_gammu_modem: "/dev/serial/by-id/myDeviceId"
# generate a secret passwort e.g. with pwgen -s 64 1
matrix_sms_bridge_database_password: ""
# (optional) a room id to a default room
matrix_sms_bridge_default_room: ""
# (optional) gammu reset frequencies (see https://wammu.eu/docs/manual/smsd/config.html#option-ResetFrequency)
matrix_sms_bridge_gammu_reset_frequency: 3600
matrix_sms_bridge_gammu_hard_reset_frequency: 0
# (optional) group with unix read and write rights to modem
matrix_sms_bridge_modem_group: 'dialout'
```
## Usage
Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works.

View File

@ -11,15 +11,33 @@ The playbook can install and configure [matrix-corporal](https://github.com/devt
In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment.
See that project's documentation to learn what it does and why it might be useful to you.
If you decide that you'd like to let this playbook install it for you, you'd need to also [set up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md).
If you decide that you'd like to let this playbook install it for you, you'd need to also:
- (required) [set up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md)
- (optional, but encouraged) [set up the REST authentication password provider module](configuring-playbook-rest-auth.md)
## Playbook configuration
You would then need some configuration like this:
```yaml
# The Shared Secret Auth password provider module is required for Corporal to work.
# See configuring-playbook-shared-secret-auth.md
matrix_synapse_ext_password_provider_shared_secret_auth_enabled: true
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret: YOUR_SHARED_SECRET_GOES_HERE
# When matrix-corporal is acting as the primary authentication provider,
# you need to set up the REST authentication password provider module
# to make Interactive User Authentication work.
# This is necessary for certain user actions (like E2EE, device management, etc).
#
# See configuring-playbook-rest-auth.md
matrix_synapse_ext_password_provider_rest_auth_enabled: true
matrix_synapse_ext_password_provider_rest_auth_endpoint: "http://matrix-corporal:41080/_matrix/corporal"
matrix_corporal_enabled: true
# See below for an example of how to use a locally-stored static policy
matrix_corporal_policy_provider_config: |
{
"Type": "http",
@ -34,9 +52,9 @@ matrix_corporal_policy_provider_config: |
matrix_corporal_http_api_enabled: true
matrix_corporal_http_api_auth_token: "AUTH_TOKEN_HERE"
# If you need to change the reconciliator user's id from the default (matrix-corporal)..
# If you need to change matrix-corporal's user id from the default (matrix-corporal).
# In any case, you need to make sure this Matrix user is created on your server.
matrix_corporal_reconciliation_user_id_local_part: "matrix-corporal"
matrix_corporal_corporal_user_id_local_part: "matrix-corporal"
# Because Corporal peridoically performs lots of user logins from the same IP,
# you may need raise Synapse's ratelimits.
@ -57,10 +75,48 @@ Matrix Corporal operates with a specific Matrix user on your server.
By default, it's `matrix-corporal` (controllable by the `matrix_corporal_reconciliation_user_id_local_part` setting, see above).
No matter what Matrix user id you configure to run it with, make sure that:
- the Matrix Corporal user is created by [registering it](registering-users.md). Use a password you remember, as you'll need to log in from time to time to create or join rooms
- the Matrix Corporal user is created by [registering it](registering-users.md) **with administrator privileges**. Use a password you remember, as you'll need to log in from time to time to create or join rooms
- the Matrix Corporal user is joined and has Admin/Moderator-level access to any rooms you want it to manage
### Using a locally-stored static policy
If you'd like to use a [static policy file](https://github.com/devture/matrix-corporal/blob/master/docs/policy-providers.md#static-file-pull-style-policy-provider), you can use a configuration like this:
```yaml
matrix_corporal_policy_provider_config: |
{
"Type": "static_file",
"Path": "/etc/matrix-corporal/policy.json"
}
# Modify the policy below as you see fit
matrix_aux_file_definitions:
- dest: "{{ matrix_corporal_config_dir_path }}/policy.json"
content: |
{
"schemaVersion": 1,
"identificationStamp": "stamp-1",
"flags": {
"allowCustomUserDisplayNames": false,
"allowCustomUserAvatars": false,
"forbidRoomCreation": false,
"forbidEncryptedRoomCreation": true,
"forbidUnencryptedRoomCreation": false,
"allowCustomPassthroughUserPasswords": true,
"allowUnauthenticatedPasswordResets": false,
"allow3pidLogin": false
},
"managedCommunityIds": [],
"managedRoomIds": [],
"users": []
}
```
To learn more about what the policy configuration, see the matrix-corporal documentation on [policy](https://github.com/devture/matrix-corporal/blob/master/docs/policy.md).
Each time you update the policy in your `vars.yml` file, you'd need to re-run the playbook and restart matrix-corporal (`--tags=setup-all,start` or `--tags=setup-aux-files,setup-corporal,start`).
## Matrix Corporal files
@ -72,4 +128,4 @@ The following local filesystem paths are mounted in the `matrix-corporal` contai
- `/matrix/corporal/cache` is mounted at `/var/cache/matrix-corporal` (read and write)
As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container path `/etc/matrix-corporal`
As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container paths - `/etc/matrix-corporal` (read-only), `/var/matrix-corporal` (read and write), `/var/cache/matrix-corporal` (read and write).

View File

@ -0,0 +1,66 @@
# Setting up matrix-registration (optional)
The playbook can install and configure [matrix-registration](https://github.com/ZerataX/matrix-registration) for you.
> matrix-registration is a simple python application to have a token based matrix registration.
Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows you to **keep your server's registration closed (private)**, but still allow certain people (these having a special link) to register a user account.
**matrix-registration** provides 2 things:
- **an API for creating registration tokens** (unique registration links). This API can be used via `curl` or via the playbook (see [Usage](#usage) below)
- **a user registration page**, where people can use these registration tokens. By default, exposed at `https://matrix.DOMAIN/matrix-registration`
## Installing
Adjust your playbook configuration (your `inventory/host_vars/matrix.DOMAIN/vars.yml` file):
```yaml
matrix_registration_enabled: true
# Generate a strong secret using: `pwgen -s 64 1`.
matrix_registration_admin_secret: "ENTER_SOME_SECRET_HERE"
```
Then, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
**matrix-registration** gets exposed at `https://matrix.DOMAIN/matrix-registration`
It provides various [APIs](https://github.com/ZerataX/matrix-registration/wiki/api) - for creating registration tokens, listing tokens, disabling tokens, etc. To make use of all of its capabilities, consider using `curl`.
We make the most common APIs easy to use via the playbook (see below).
### Creating registration tokens
To **create a new user registration token (link)**, use this command:
```bash
ansible-playbook -i inventory/hosts setup.yml \
--tags=generate-matrix-registration-token \
--extra-vars="one_time=yes ex_date=2021-12-31"
```
The above command creates and returns a **one-time use** token, which **expires** on the 31st of December 2021.
Adjust the `one_time` and `ex_date` variables as you see fit.
Share the unique registration link (generated by the command above) with users to let them register on your Matrix server.
### Listing registration tokens
To **list the existing user registration tokens**, use this command:
```bash
ansible-playbook -i inventory/hosts setup.yml \
--tags=list-matrix-registration-tokens
```

View File

@ -23,3 +23,62 @@ matrix_nginx_proxy_proxy_matrix_nginx_status_allowed_addresses:
- 8.8.8.8
- 1.1.1.1
```
## Adjusting SSL in your server
You can adjust how the SSL is served by the nginx server using the `matrix_nginx_proxy_ssl_preset` variable. We support a few presets, based on the Mozilla Server Side TLS
Recommended configurations. These presets influence the TLS Protocol, the SSL Cipher Suites and the `ssl_prefer_server_ciphers` variable of nginx.
Possible values are:
- `"modern"` - For Modern clients that support TLS 1.3, with no need for backwards compatibility
- `"intermediate"` (**default**) - Recommended configuration for a general-purpose server
- `"old"` - Services accessed by very old clients or libraries, such as Internet Explorer 8 (Windows XP), Java 6, or OpenSSL 0.9.8
**Be really carefull when setting it to `"modern"`**. This could break comunication with other Matrix servers, limiting your federation posibilities.
Besides changing the preset (`matrix_nginx_proxy_ssl_preset`), you can also directly override these 3 variables:
- `matrix_nginx_proxy_ssl_protocols`: for specifying the supported TLS protocols.
- `matrix_nginx_proxy_ssl_prefer_server_ciphers`: for specifying if the server or the client choice when negotiating the cipher. It can set to `on` or `off`.
- `matrix_nginx_proxy_ssl_ciphers`: for specifying the SSL Cipher suites used by nginx.
For more information about these variables, check the `roles/matrix-nginx-proxy/defaults/main.yml` file.
## Synapse + OpenID Connect for Single-Sign-On
If you want to use OpenID Connect as an SSO provider (as per the [Synapse OpenID docs](https://github.com/matrix-org/synapse/blob/develop/docs/openid.md)), you need to use the following configuration (in your `vars.yml` file) to instruct nginx to forward `/_synapse/oidc` to Synapse:
```yaml
matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_oidc_api_enabled: true
```
## Disable Nginx access logs
This will disable the access logging for nginx.
```yaml
matrix_nginx_proxy_access_log_enabled: false
```
## Additional configuration
This playbook also allows for additional configuration to be applied to the nginx server.
If you want this playbook to obtain and renew certificates for other domains, then you can set the `matrix_ssl_additional_domains_to_obtain_certificates_for` variable (as mentioned in the [Obtaining SSL certificates for additional domains](configuring-playbook-ssl-certificates.md#obtaining-ssl-certificates-for-additional-domains) documentation as well). Make sure that you have set the DNS configuration for the domains you want to include to point at your server.
```yaml
matrix_ssl_additional_domains_to_obtain_certificates_for:
- domain.one.example
- domain.two.example
```
You can include additional nginx configuration by setting the `matrix_nginx_proxy_proxy_http_additional_server_configuration_blocks` variable.
```yaml
matrix_nginx_proxy_proxy_http_additional_server_configuration_blocks:
- |
# These lines will be included in the nginx configuration.
# This is at the top level of the file, so you will need to define all of the `server { ... }` blocks.
- |
# For advanced use, have a look at the template files in `roles/matrix-nginx-proxy/templates/nginx/conf.d`
```

View File

@ -55,6 +55,8 @@ Note that if your nginx version is old, it might not like our default choice of
matrix_nginx_proxy_ssl_protocols: "TLSv1.2"
```
If you are experiencing issues, try updating to a newer version of Nginx. As a data point in May 2021 a user reported that Nginx 1.14.2 was not working for them. They were getting errors about socket leaks. Updating to Nginx 1.19 fixed their issue.
### Using your own external Apache webserver
@ -62,14 +64,14 @@ Once you've followed the [Preparation](#preparation) guide above, you can take a
### Using your own external caddy webserver
After following the [Preparation](#preparation) guide above, you can take a look at the [examples/caddy](../examples/caddy) directory for a sample configuration.
After following the [Preparation](#preparation) guide above, you can take a look at the [examples/caddy](../examples/caddy) directory and [examples/caddy2](../examples/caddy2) directory for a sample configuration for Caddy v1 and v2, respectively.
### Using your own HAproxy reverse proxy
After following the [Preparation](#preparation) guide above, you can take a look at the [examples/haproxy](../examples/haproxy) directory for a sample configuration. In this case HAproxy is used as a reverse proxy and a simple Nginx container is used to serve statically `.well-known` files.
### Using another external webserver
Feel free to look at the [examples/apache](../examples/apache) directory, or the [template files in the matrix-nginx-proxy role](../roles/matrix-nginx-proxy/templates/conf.d/).
Feel free to look at the [examples/apache](../examples/apache) directory, or the [template files in the matrix-nginx-proxy role](../roles/matrix-nginx-proxy/templates/nginx/conf.d/).
## Method 2: Fronting the integrated nginx reverse-proxy webserver with another reverse-proxy
@ -106,6 +108,12 @@ matrix_nginx_proxy_container_federation_host_bind_port: '127.0.0.1:8449'
# Since we don't obtain any certificates (`matrix_ssl_retrieval_method: none` above), it won't work by default.
# An alternative is to tweak some of: `matrix_coturn_tls_enabled`, `matrix_coturn_tls_cert_path` and `matrix_coturn_tls_key_path`.
matrix_coturn_enabled: false
# Trust the reverse proxy to send the correct `X-Forwarded-Proto` header as it is handling the SSL connection.
matrix_nginx_proxy_trust_forwarded_proto: true
# Trust and use the other reverse proxy's `X-Forwarded-For` header.
matrix_nginx_proxy_x_forwarded_for: '$proxy_add_x_forwarded_for'
```
With this, nginx would still be in use, but it would not bother with anything SSL related or with taking up public ports.
@ -113,7 +121,7 @@ With this, nginx would still be in use, but it would not bother with anything SS
All services would be served locally on `127.0.0.1:81` and `127.0.0.1:8449` (as per the example configuration above).
You can then set up another reverse-proxy server on ports 80/443/8448 for all of the expected domains and make traffic go to these local ports.
The expected domains vary depending on the services you have enabled (`matrix.DOMAIN` for sure; `riot.DOMAIN` and `dimension.DOMAIN` are optional).
The expected domains vary depending on the services you have enabled (`matrix.DOMAIN` for sure; `element.DOMAIN`, `dimension.DOMAIN` and `jitsi.DOMAIN` are optional).
### Sample configuration for running behind Traefik 2.0
@ -131,6 +139,12 @@ matrix_nginx_proxy_https_enabled: false
matrix_nginx_proxy_container_http_host_bind_port: ''
matrix_nginx_proxy_container_federation_host_bind_port: ''
# Trust the reverse proxy to send the correct `X-Forwarded-Proto` header as it is handling the SSL connection.
matrix_nginx_proxy_trust_forwarded_proto: true
# Trust and use the other reverse proxy's `X-Forwarded-For` header.
matrix_nginx_proxy_x_forwarded_for: '$proxy_add_x_forwarded_for'
# Disable Coturn because it needs SSL certs
# (Clients can, though exposing IP address, use Matrix.org TURN)
matrix_coturn_enabled: false
@ -144,8 +158,7 @@ matrix_nginx_proxy_container_extra_arguments:
- '--label "traefik.enable=true"'
# The Nginx proxy container will receive traffic from these subdomains
# (Replace DOMAIN with your domain, e.g. example.com)
- '--label "traefik.http.routers.matrix-nginx-proxy.rule=Host(`matrix.DOMAIN`,`riot.DOMAIN`,`dimension.DOMAIN`)"'
- '--label "traefik.http.routers.matrix-nginx-proxy.rule=Host(`{{ matrix_server_fqn_matrix }}`,`{{ matrix_server_fqn_element }}`,`{{ matrix_server_fqn_dimension }}`,`{{ matrix_server_fqn_jitsi }}`)"'
# (The 'web-secure' entrypoint must bind to port 443 in Traefik config)
- '--label "traefik.http.routers.matrix-nginx-proxy.entrypoints=web-secure"'
@ -161,8 +174,7 @@ matrix_synapse_container_extra_arguments:
- '--label "traefik.enable=true"'
# The Synapse container will receive traffic from this subdomain
# (Replace DOMAIN with your domain, e.g. example.com)
- '--label "traefik.http.routers.matrix-synapse.rule=Host(`matrix.DOMAIN`)"'
- '--label "traefik.http.routers.matrix-synapse.rule=Host(`{{ matrix_server_fqn_matrix }}`)"'
# (The 'synapse' entrypoint must bind to port 8448 in Traefik config)
- '--label "traefik.http.routers.matrix-synapse.entrypoints=synapse"'
@ -174,7 +186,7 @@ matrix_synapse_container_extra_arguments:
- '--label "traefik.http.services.matrix-synapse.loadbalancer.server.port=8048"'
```
This method uses labels attached to the Nginx and Synapse containers to provide the Traefik Docker provider with the information it needs to proxy `matrix.DOMAIN`, `riot.DOMAIN`, and `dimension.DOMAIN`. Some [static configuration](https://docs.traefik.io/v2.0/reference/static-configuration/file/) is required in Traefik; namely, having endpoints on ports 443 and 8448 and having a certificate resolver.
This method uses labels attached to the Nginx and Synapse containers to provide the Traefik Docker provider with the information it needs to proxy `matrix.DOMAIN`, `element.DOMAIN`, `dimension.DOMAIN` and `jitsi.DOMAIN`. Some [static configuration](https://docs.traefik.io/v2.0/reference/static-configuration/file/) is required in Traefik; namely, having endpoints on ports 443 and 8448 and having a certificate resolver.
Note that this configuration on its own does **not** redirect traffic on port 80 (plain HTTP) to port 443 for HTTPS, which may cause some issues, since the built-in Nginx proxy usually does this. If you are not already doing this in Traefik, it can be added to Traefik in a [file provider](https://docs.traefik.io/v2.0/providers/file/) as follows:
@ -195,3 +207,38 @@ Note that this configuration on its own does **not** redirect traffic on port 80
scheme = "https"
permanent = true
```
You can use the following `docker-compose.yml` as example to launch Traefik.
```yaml
version: "3.3"
services:
traefik:
image: "traefik:v2.3"
restart: always
container_name: "traefik"
networks:
- traefik
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.network=traefik"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web-secure.address=:443"
- "--entrypoints.synapse.address=:8448"
- "--certificatesresolvers.default.acme.tlschallenge=true"
- "--certificatesresolvers.default.acme.email=YOUR EMAIL"
- "--certificatesresolvers.default.acme.storage=/letsencrypt/acme.json"
ports:
- "443:443"
- "8448:8448"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
traefik:
external: true
```

View File

@ -0,0 +1,35 @@
# Setting up postgres backup (optional)
The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you.
For a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [borg backup](configuring-playbook-backup-borg.md) instead.
## Adjusting the playbook configuration
Minimal working configuration (`inventory/host_vars/matrix.DOMAIN/vars.yml`) to enable Postgres backup:
```yaml
matrix_postgres_backup_enabled: true
```
Refer to the table below for additional configuration variables and their default values.
| Name | Default value | Description |
| :-------------------------------- | :--------------------------- | :--------------------------------------------------------------- |
|`matrix_postgres_backup_enabled`|`false`|Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups|
|`matrix_postgres_backup_schedule`| `'@daily'` |Cron-schedule specifying the interval between postgres backups.|
|`matrix_postgres_backup_keep_days`|`7`|Number of daily backups to keep|
|`matrix_postgres_backup_keep_weeks`|`4`|Number of weekly backups to keep|
|`matrix_postgres_backup_keep_months`|`12`|Number of monthly backups to keep|
|`matrix_postgres_backup_path` | `"{{ matrix_base_data_path }}/postgres-backup"` | Storagepath for the database backups|
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```

View File

@ -0,0 +1,134 @@
# Enabling metrics and graphs for your Matrix server (optional)
It can be useful to have some (visual) insight into the performance of your homeserver.
You can enable this with the following settings in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
Remember to add `stats.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
```yaml
matrix_prometheus_enabled: true
matrix_prometheus_node_exporter_enabled: true
matrix_grafana_enabled: true
matrix_grafana_anonymous_access: false
# This has no relation to your Matrix user id. It can be any username you'd like.
# Changing the username subsequently won't work.
matrix_grafana_default_admin_user: "some_username_chosen_by_you"
# Changing the password subsequently won't work.
matrix_grafana_default_admin_password: "some_strong_password_chosen_by_you"
```
By default, a [Grafana](https://grafana.com/) web user-interface will be available at `https://stats.<your-domain>`.
The retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically.
## What does it do?
Name | Description
-----|----------
`matrix_prometheus_enabled`|[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about.
`matrix_prometheus_node_exporter_enabled`|[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures
`matrix_grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.<your-domain>` subdomain) the dashboards with the graphs that we're interested in
`matrix_grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option.
`matrix_grafana_default_admin_user`<br>`matrix_grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here
## Security and privacy
Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling anonymous access. And you should really not forget to change your Grafana password.
Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `matrix_prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source.
## Collecting metrics to an external Prometheus server
If you wish, you could expose homeserver metrics without enabling (installing) Prometheus and Grafana via the playbook. This may be useful for hooking Matrix services to an external Prometheus/Grafana installation.
To do this, you may be interested in the following variables:
Name | Description
-----|----------
`matrix_synapse_metrics_enabled`|Set this to `true` to make Synapse expose metrics (locally, on the container network)
`matrix_nginx_proxy_proxy_synapse_metrics`|Set this to `true` to make matrix-nginx-proxy expose the Synapse metrics at `https://matrix.DOMAIN/_synapse/metrics`
`matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled`|Set this to `true` to password-protect (using HTTP Basic Auth) `https://matrix.DOMAIN/_synapse/metrics` (the username is always `prometheus`, the password is defined in `matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_key`)
`matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_key`|Set this to a password to use for HTTP Basic Auth for protecting `https://matrix.DOMAIN/_synapse/metrics` (the username is always `prometheus` - it's not configurable). Do not write the password in plain text. See `man 1 htpasswd` or use `htpasswd -c mypass.htpasswd prometheus` to generate the expected hash for nginx.
`matrix_server_fqn_grafana`|Use this variable to override the domain at which the Grafana web user-interface is at (defaults to `stats.DOMAIN`)
### Collecting worker metrics to an external Prometheus server
If you are using workers (`matrix_synapse_workers_enabled`) and have enabled `matrix_nginx_proxy_proxy_synapse_metrics` as described above, the playbook will also automatically proxy the all worker threads's metrics to `https://matrix.DOMAIN/_synapse-worker-TYPE-ID/metrics`, where `TYPE` corresponds to the type and `ID` to the instanceId of a worker as exemplified in `matrix_synapse_workers_enabled_list`.
The playbook also generates an exemplary prometheus.yml config file (`matrix_base_data_path/external_prometheus.yml.template`) with all the correct paths which you can copy to your Prometheus server and adapt to your needs, especially edit the specified `password_file` path and contents and path to your `synapse-v2.rules`.
It will look a bit like this:
```yaml
scrape_configs:
- job_name: 'synapse'
metrics_path: /_synapse/metrics
scheme: https
basic_auth:
username: prometheus
password_file: /etc/prometheus/password.pwd
static_configs:
- targets: ['matrix.DOMAIN:443']
labels:
job: "master"
index: 1
- job_name: 'synapse-generic_worker-1'
metrics_path: /_synapse-worker-generic_worker-18111/metrics
scheme: https
basic_auth:
username: prometheus
password_file: /etc/prometheus/password.pwd
static_configs:
- targets: ['matrix.DOMAIN:443']
labels:
job: "generic_worker"
index: 18111
```
### Collecting system and Postgres metrics to an external Prometheus server (advanced)
When you normally enable the Prometheus and Grafana via the playbook, it will also show general system (via node-exporter) and Postgres (via postgres-exporter) stats. If you are instead collecting your metrics to an external Prometheus server, you can follow this advanced configuration example to also export these stats.
It would be possible to use `matrix_prometheus_node_exporter_container_http_host_bind_port` etc., but that is not always the best choice, for example because your server is on a public network.
Use the following variables in addition to the ones mentioned above:
Name | Description
-----|----------
`matrix_nginx_proxy_proxy_grafana_enabled`|Set this to `true` to make the stats subdomain (`matrix_server_fqn_grafana`) available via the Nginx proxy
`matrix_ssl_additional_domains_to_obtain_certificates_for`|Add `"{{ matrix_server_fqn_grafana }}"` to this list to have letsencrypt fetch a certificate for the stats subdomain
`matrix_prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter
`matrix_prometheus_postgres_exporter_enabled`|Set this to `true` to enable the Postgres exporter
`matrix_nginx_proxy_proxy_grafana_additional_server_configuration_blocks`|Add locations to this list depending on which of the above exporters you enabled (see below)
```nginx
matrix_nginx_proxy_proxy_grafana_additional_server_configuration_blocks:
- 'location /node-exporter/ {
resolver 127.0.0.11 valid=5s;
proxy_pass http://matrix-prometheus-node-exporter:9100/;
auth_basic "protected";
auth_basic_user_file /nginx-data/matrix-synapse-metrics-htpasswd;
}'
- 'location /postgres-exporter/ {
resolver 127.0.0.11 valid=5s;
proxy_pass http://matrix-prometheus-postgres-exporter:9187/;
auth_basic "protected";
auth_basic_user_file /nginx-data/matrix-synapse-metrics-htpasswd;
}'
```
You can customize the `location`s to your liking, just point your Prometheus to there later (e.g. `stats.DOMAIN/node-exporter/metrics`). Nginx is very picky about the `proxy_pass`syntax: take care to follow the example closely and note the trailing slash as well as absent use of variables. postgres-exporter uses the nonstandard port 9187.
## More information
- [Understanding Synapse Performance Issues Through Grafana Graphs](https://github.com/matrix-org/synapse/wiki/Understanding-Synapse-Performance-Issues-Through-Grafana-Graphs) at the Synapse Github Wiki
- [The Prometheus scraping rules](https://github.com/matrix-org/synapse/tree/master/contrib/prometheus) (we use v2)
- [The Synapse Grafana dashboard](https://github.com/matrix-org/synapse/tree/master/contrib/grafana)
- [The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs)

View File

@ -0,0 +1,29 @@
# Enabling metrics and graphs for Postgres (optional)
Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database.
You can enable this with the following settings in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_prometheus_postgres_exporter_enabled: true
# the role creates a postgres user as credential. You can configure these if required:
matrix_prometheus_postgres_exporter_database_username: 'matrix_prometheus_postgres_exporter'
matrix_prometheus_postgres_exporter_database_password: 'some-password'
```
## What does it do?
Name | Description
-----|----------
`matrix_prometheus_postgres_exporter_enabled`|Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false'
`matrix_prometheus_postgres_exporter_database_username`| The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter'
`matrix_prometheus_postgres_exporter_database_password`| The 'password' for the user that the exporter uses to connect to the database.
## More information
- [The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard)

View File

@ -1,40 +1,39 @@
# Configuring Riot-web (optional)
By default, this playbook installs the [Riot-web](https://github.com/vector-im/riot-web) Matrix client web application.
If that's okay, you can skip this document.
By default, this playbook **used to install** the [Riot-web](https://github.com/vector-im/riot-web) Matrix client web application.
Riot has since been [renamed to Element](https://element.io/blog/welcome-to-element/).
- to learn more about Element and its configuration, see our dedicated [Configuring Element](configuring-playbook-client-element.md) documentation page
- to learn how to migrate from Riot to Element, see [Migrating to Element](#migrating-to-element) below
## Disabling riot-web
## Migrating to Element
If you'd like for the playbook to not install (or to uninstall the previously installed riot-web), you can disable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
### Migrating your custom settings
If you have custom `matrix_riot_web_` variables in your `inventory/host_vars/matrix.DOMAIN/vars.yml` file, you'll need to rename them (`matrix_riot_web_` -> `matrix_client_element_`).
Some other playbook variables (but not all) with `riot` in their name are also renamed. The playbook checks and warns if you are using the old name for some commonly used ones.
### Domain migration
We used to set up Riot at the `riot.DOMAIN` domain. The playbook now sets up Element at `element.DOMAIN` by default.
There are a few options for handling this:
- (**avoiding changes** - using the old `riot.DOMAIN` domain and avoiding DNS changes) -- to keep using `riot.DOMAIN` instead of `element.DOMAIN`, override the domain at which the playbook serves Element: `matrix_server_fqn_element: "riot.{{ matrix_domain }}"`
- (**embracing changes** - using only `element.DOMAIN`) - set up the `element.DOMAIN` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.DOMAIN` in this case. If so, you may also wish to remove old SSL certificates (`rm -rf /matrix/ssl/config/live/riot.DOMAIN`) and renewal configuration (`rm -f /matrix/ssl/config/renewal/riot.DOMAIN.conf`), so that `certbot` would stop trying to renew them.
- (**embracing changes and transitioning smoothly** - using both `element.DOMAIN` and `riot.DOMAIN`) - to serve Element at the new domain (`element.DOMAIN`) and to also have `riot.DOMAIN` redirect there - set up the `element.DOMAIN` DNS record (see [Configuring DNS](configuring-dns.md)) and enable Riot to Element redirection (`matrix_nginx_proxy_proxy_riot_compat_redirect_enabled: true`).
### Re-running the playbook
As always, after making the necessary DNS and configuration adjustments, re-run the playbook to apply the changes:
```yaml
matrix_riot_web_enabled: false
```
## Configuring riot-web settings
The playbook provides some customization variables you could use to change riot-web's settings.
Their defaults are defined in [`roles/matrix-riot-web/defaults/main.yml`](../roles/matrix-riot-web/defaults/main.yml) and they ultimately end up in the generated `/matrix/riot-web/config.json` file (on the server). This file is generated from the [`roles/matrix-riot-web/templates/config.json.j2`](../roles/matrix-riot-web/templates/config.json.j2) template.
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
Alternatively, **if there is no pre-defined variable** for a riot-web setting you wish to change:
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of riot-web's various settings that rarely get used.
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/matrix-riot-web/templates/config.json.j2)) by making use of the `matrix_riot_web_configuration_extension_json_` variable. You can find information about this in [`roles/matrix-riot-web/defaults/main.yml`](../roles/matrix-riot-web/defaults/main.yml).
- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_riot_web_configuration_default` (or `matrix_riot_web_configuration`). You can find information about this in [`roles/matrix-riot-web/defaults/main.yml`](../roles/matrix-riot-web/defaults/main.yml).
## Themes
To change the look of riot-web, you can define your own themes manually by using the `matrix_riot_web_settingDefaults_custom_themes` setting.
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/riot-web-themes](https://github.com/aaronraimist/riot-web-themes) project by simply flipping a flag (`matrix_riot_web_themes_enabled: true`).
If you make your own theme, we encourage you to submit it to the **aaronraimist/riot-web-themes** project, so that the whole community could easily enjoy it.
Note that for a custom theme to work well, all riot-web/riot-desktop instances that you use must have the same theme installed.
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```

View File

@ -6,6 +6,11 @@ If that's alright, you can skip this.
If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service),
you can let this playbook configure [Goofys](https://github.com/kahing/goofys) for you.
Using a Goofys-backed media store works, but performance may not be ideal. If possible, try to use a region which is close to your Matrix server.
If you'd like to move your locally-stored media store data to Amazon S3 (or another S3-compatible object store), we also provide some migration instructions below.
## Amazon S3
You'll need an Amazon S3 bucket and some IAM user credentials (access key + secret key) with full write access to the bucket. Example security policy:
@ -47,5 +52,136 @@ You can use any S3-compatible object store by **additionally** configuring these
```yaml
matrix_s3_media_store_custom_endpoint_enabled: true
# Example: "https://storage.googleapis.com"
matrix_s3_media_store_custom_endpoint: "your-custom-endpoint"
```
### Backblaze B2
To use [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html):
- create a new **private** bucket through its user interface (you can call it something like `matrix-DOMAIN-media-store`)
- note the **Endpoint** for your bucket (something like `s3.us-west-002.backblazeb2.com`)
- adjust its lifecycle rules to use the following **custom** rules:
- File Path: *empty value*
- Days Till Hide: *empty value*
- Days Till Delete: `1`
- go to [App Keys](https://secure.backblaze.com/app_keys.htm) and use the **Add a New Application Key** to create a new one
- restrict it to the previously created bucket (e.g. `matrix-DOMAIN-media-store`)
- give it *Read & Write* access
Copy the `keyID` and `applicationKey`.
You need the following *additional* playbook configuration (on top of what you see above):
```yaml
matrix_s3_media_store_bucket_name: "YOUR_BUCKET_NAME_GOES_HERE"
matrix_s3_media_store_aws_access_key: "YOUR_keyID_GOES_HERE"
matrix_s3_media_store_aws_secret_key: "YOUR_applicationKey_GOES_HERE"
matrix_s3_media_store_custom_endpoint_enabled: true
matrix_s3_media_store_custom_endpoint: "https://s3.us-west-002.backblazeb2.com" # this may be different for your bucket
```
If you have local media store files and wish to migrate to Backblaze B2 subsequently, follow our [migration guide to Backblaze B2](#migrating-to-backblaze-b2) below instead of applying this configuration as-is.
## Migrating from local filesystem storage to S3
It's a good idea to [make a complete server backup](faq.md#how-do-i-backup-the-data-on-my-server) before migrating your local media store to an S3-backed one.
Follow one of the guides below for a migration path from a locally-stored media store to one stored on S3-compatible storage:
- [Migrating to any S3-compatible storage (universal, but likely slow)](#migrating-to-any-s3-compatible-storage-universal-but-likely-slow)
- [Migrating to Backblaze B2](#migrating-to-backblaze-b2)
### Migrating to any S3-compatible storage (universal, but likely slow)
It's a good idea to [make a complete server backup](faq.md#how-do-i-backup-the-data-on-my-server) before doing this.
1. Proceed with the steps below without stopping Matrix services
2. Start by adding the base S3 configuration in your `vars.yml` file (seen above, may be different depending on the S3 provider of your choice)
3. In addition to the base configuration you see above, add this to your `vars.yml` file:
```yaml
matrix_s3_media_store_path: /matrix/s3-media-store
```
This enables S3 support, but mounts the S3 storage bucket to `/matrix/s3-media-store` without hooking it to your homeserver yet. Your homeserver will still continue using your local filesystem for its media store.
5. Run the playbook to apply the changes: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`
6. Do an **initial sync of your files** by running this **on the server** (it may take a very long time):
```sh
sudo -u matrix -- rsync --size-only --ignore-existing -avr /matrix/synapse/storage/media-store/. /matrix/s3-media-store/.
```
You may need to install `rsync` manually.
7. Stop all Matrix services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)
8. Start the S3 service by running this **on the server**: `systemctl start matrix-goofys`
9. Sync the files again by re-running the `rsync` command you see in step #6
10. Stop the S3 service by running this **on the server**: `systemctl stop matrix-goofys`
11. Get the old media store out of the way by running this command on the server:
```sh
mv /matrix/synapse/storage/media-store /matrix/synapse/storage/media-store-local-backup
```
12. Remove the `matrix_s3_media_store_path` configuration from your `vars.yml` file (undoing step #3 above)
13. Run the playbook: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`
14. You're done! Verify that loading existing (old) media files works and that you can upload new ones.
15. When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup`
### Migrating to Backblaze B2
It's a good idea to [make a complete server backup](faq.md#how-do-i-backup-the-data-on-my-server) before doing this.
1. While all Matrix services are running, run the following command on the server:
(you need to adjust the 3 `--env` line below with your own data)
```sh
docker run -it --rm -w /work \
--env='B2_KEY_ID=YOUR_KEY_GOES_HERE' \
--env='B2_KEY_SECRET=YOUR_SECRET_GOES_HERE' \
--env='B2_BUCKET_NAME=YOUR_BUCKET_NAME_GOES_HERE' \
-v /matrix/synapse/storage/media-store/:/work \
--entrypoint=/bin/sh \
docker.io/tianon/backblaze-b2:2.1.0 \
-c 'b2 authorize-account $B2_KEY_ID $B2_KEY_SECRET > /dev/null && b2 sync /work/ b2://$B2_BUCKET_NAME'
```
This is some initial file sync, which may take a very long time.
2. Stop all Matrix services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)
3. Run the command from step #1 again.
Doing this will sync any new files that may have been created locally in the meantime.
Now that Matrix services aren't running, we're sure to get Backblaze B2 and your local media store fully in sync.
4. Get the old media store out of the way by running this command on the server:
```sh
mv /matrix/synapse/storage/media-store /matrix/synapse/storage/media-store-local-backup
```
5. Put the [Backblaze B2 settings seen above](#backblaze-b2) in your `vars.yml` file
6. Run the playbook: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`
7. You're done! Verify that loading existing (old) media files works and that you can upload new ones.
8. When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup`

View File

@ -1,9 +1,9 @@
# Adjusting SSL certificate retrieval (optional, advanced)
By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (`matrix.<your-domain>` and possibly `riot.<your-domain>`)
By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (`matrix.<your-domain>` and possibly `element.<your-domain>`)
Those certificates are used when configuring the nginx reverse proxy installed by this playbook.
They can also be used for configuring [your own webserver](docs/configuring-playbook-own-webserver.md), in case you're not using the integrated nginx server provided by the playbook.
They can also be used for configuring [your own webserver](configuring-playbook-own-webserver.md), in case you're not using the integrated nginx server provided by the playbook.
If you need to retrieve certificates for other domains (e.g. your base domain) or more control over certificate retrieval, read below.
@ -13,7 +13,7 @@ Things discussed in this document:
- [Using your own SSL certificates](#using-your-own-ssl-certificates), if you don't want to or can't use Let's Encrypt certificates, but are still interested in using the integrated nginx reverse proxy server
- [Not bothering with SSL certificates](#not-bothering-with-ssl-certificates), if you're using [your own webserver](docs/configuring-playbook-own-webserver.md) and would rather this playbook leaves SSL certificate management to you
- [Not bothering with SSL certificates](#not-bothering-with-ssl-certificates), if you're using [your own webserver](configuring-playbook-own-webserver.md) and would rather this playbook leaves SSL certificate management to you
- [Obtaining SSL certificates for additional domains](#obtaining-ssl-certificates-for-additional-domains), if you'd like to host additional domains on the Matrix server and would like the playbook to help you obtain and renew certificates for those domains automatically
@ -28,6 +28,8 @@ If self-signed certificates are alright with you, you can ask the playbook to ge
matrix_ssl_retrieval_method: self-signed
```
If you get a `Cannot reach homeserver` error in Element, you will have to visit `https://matrix.<your-domain>` in your browser and agree to the certificate exception before you can login.
## Using your own SSL certificates
@ -41,8 +43,9 @@ With such a configuration, the playbook would expect you to drop the SSL certifi
- `<matrix_ssl_config_dir_path>/live/<domain>/fullchain.pem`
- `<matrix_ssl_config_dir_path>/live/<domain>/privkey.pem`
- `<matrix_ssl_config_dir_path>/live/<domain>/chain.pem`
where `<domain>` refers to the domains that you need (usually `matrix.<your-domain>` and `riot.<your-domain>`).
where `<domain>` refers to the domains that you need (usually `matrix.<your-domain>` and `element.<your-domain>`).
## Not bothering with SSL certificates
@ -62,22 +65,27 @@ The playbook tries to be smart about the certificates it will obtain for you.
By default, it obtains certificates for:
- `matrix.<your-domain>` (`matrix_server_fqn_matrix`)
- possibly for `riot.<your-domain>`, unless you have disabled the Riot component using `matrix_riot_web_enabled: false`
- possibly for `element.<your-domain>`, unless you have disabled the [Element client component](configuring-playbook-client-element.md) using `matrix_client_element_enabled: false`
- possibly for `riot.<your-domain>`, if you have explicitly enabled Riot to Element redirection (for background compatibility) using `matrix_nginx_proxy_proxy_riot_compat_redirect_enabled: true`
- possibly for `hydrogen.<your-domain>`, if you have explicitly [set up Hydrogen client](configuring-playbook-client-hydrogen.md).
- possibly for `cinny.<your-domain>`, if you have explicitly [set up Cinny client](configuring-playbook-client-cinny.md).
- possibly for `dimension.<your-domain>`, if you have explicitly [set up Dimension](configuring-playbook-dimension.md).
- possibly for `goneb.<your-domain>`, if you have explicitly [set up Go-NEB bot](configuring-playbook-bot-go-neb.md).
- possibly for `jitsi.<your-domain>`, if you have explicitly [set up Jitsi](configuring-playbook-jitsi.md).
- possibly for `stats.<your-domain>`, if you have explicitly [set up Grafana](configuring-playbook-prometheus-grafana.md).
- possibly for `sygnal.<your-domain>`, if you have explicitly [set up Sygnal](configuring-playbook-sygnal.md).
- possibly for your base domain (`<your-domain>`), if you have explicitly configured [Serving the base domain](configuring-playbook-base-domain-serving.md)
If you are hosting other domains on the Matrix machine, you can make the playbook obtain and renew certificates for those other domains too.
To do that, simply define your own custom configuration like this:
```yaml
# Note: we need to explicitly list the aforementioned Matrix domains that you use (Matrix, Riot, Dimension).
# In this example, we retrieve an extra certificate - one for the base domain (in the `matrix_domain` variable).
# In this example, we retrieve 2 extra certificates,
# one for the base domain (in the `matrix_domain` variable) and one for a hardcoded domain.
# Adding any other additional domains (hosted on the same machine) is possible.
matrix_ssl_domains_to_obtain_certificates_for:
- '{{ matrix_server_fqn_matrix }}'
- '{{ matrix_server_fqn_riot }}'
- '{{ matrix_server_fqn_dimension }}'
matrix_ssl_additional_domains_to_obtain_certificates_for:
- '{{ matrix_domain }}'
- 'another.domain.example.com'
```
After redefining `matrix_ssl_domains_to_obtain_certificates_for`, to actually obtain certificates you should:
@ -86,9 +94,18 @@ After redefining `matrix_ssl_domains_to_obtain_certificates_for`, to actually ob
- re-run the SSL part of the playbook and restart all services: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-ssl,start`
The certificate files would be available in `/matrix/ssl/config/live/<your-other-domain>/...`.
The certificate files would be made available in `/matrix/ssl/config/live/<your-other-domain>/...`.
For automated certificate renewal to work, each port `80` vhost for each domain you are obtaining certificates for needs to forward requests for `/.well-known/acme-challenge` to the certbot container we use for renewal.
See how this is configured for the `matrix.` subdomain in `/matrix/nginx-proxy/conf.d/matrix-synapse.conf`
Don't be alarmed if the above configuraiton file says port `8080`, instead of port `80`. It's due to port mapping due to our use of containers.
Don't be alarmed if the above configuration file says port `8080`, instead of port `80`. It's due to port mapping due to our use of containers.
## Specify the SSL private key algorithm
If you'd like to [specify the private key type](https://eff-certbot.readthedocs.io/en/stable/using.html#using-ecdsa-keys) used with Let's Encrypt, define your own custom configuration like this:
```yaml
matrix_ssl_lets_encrypt_key_type: ecdsa
```

View File

@ -0,0 +1,71 @@
# Setting up Sygnal (optional)
The playbook can install and configure the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you.
See the project's [documentation](https://github.com/matrix-org/sygnal) to learn what it does and why it might be useful to you.
**Note**: most people don't need to install their own gateway. As Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) documentation says:
> It is not feasible to allow end-users to configure their own Sygnal instance, because the Sygnal instance needs the appropriate FCM or APNs secrets that belong to the application.
This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
```yaml
matrix_sygnal_enabled: true
# You need at least 1 app defined.
# The configuration below is incomplete. Read more below.
matrix_sygnal_apps:
com.example.myapp.ios:
type: apns
keyfile: /data/my_key.p8
# .. more configuration ..
com.example.myapp.android:
type: gcm
api_key: your_api_key_for_gcm
# .. more configuration ..
matrix_aux_file_definitions:
- dest: "{{ matrix_sygnal_data_path }}/my_key.p8"
content: |
some
content
here
mode: '0600'
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
```
For a more complete example of available fields and values they can take, see `roles/matrix-sygnal/templates/sygnal.yaml.j2` (or the [upstream `sygnal.yaml.sample` configuration file](https://github.com/matrix-org/sygnal/blob/master/sygnal.yaml.sample)).
Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values.
To configure [APNS](https://developer.apple.com/notifications/) (Apple Push Notification Service), you'd need to provide one or more certificate files.
To do that, the above example configuration:
- makes use of the `matrix-aux` role (and its `matrix_aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See `roles/matrix-aux/defaults/main.yml` for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `matrix-aux`.
- references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/..` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container)
## Installing
Don't forget to add `sygnal.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
To make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is also pointed to `https://sygnal.DOMAIN` as the configured push server.
Refer to Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) document.

View File

@ -0,0 +1,64 @@
# Setting up Synapse Admin (optional)
The playbook can install and configure [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) for you.
It's a web UI tool you can use to **administrate users and rooms on your Matrix server**.
See the project's [documentation](https://github.com/Awesome-Technologies/synapse-admin) to learn what it does and why it might be useful to you.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_synapse_admin_enabled: true
```
**Note**: Synapse Admin requires Synapse's [Admin APIs](https://github.com/matrix-org/synapse/tree/master/docs/admin_api) to function. Access to them is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, for additional security, we normally leave them unexposed, following [official Synapse reverse-proxying recommendations](https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, we **automatically** exposes them publicly for you (equivalent to `matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true`).
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
After installation, Synapse Admin will be accessible at: `https://matrix.DOMAIN/synapse-admin/`
To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server.
The Homeserver URL to use on Synapse Admin's login page is: `https://matrix.DOMAIN`
### Sample configuration for running behind Traefik 2.0
Below is a sample configuration for using this playbook with a [Traefik](https://traefik.io/) 2.0 reverse proxy.
This an extension to Traefik config sample in [own-webserver-documentation](./configuring-playbook-own-webserver.md).
```yaml
# Don't bind any HTTP or federation port to the host
# (Traefik will proxy directly into the containers)
matrix_synapse_admin_container_http_host_bind_port: ""
matrix_synapse_admin_container_extra_arguments:
# May be unnecessary depending on Traefik config, but can't hurt
- '--label "traefik.enable=true"'
# The Synapse Admin container will only receive traffic from this subdomain and path
- '--label "traefik.http.routers.matrix-synapse-admin.rule=(Host(`{{ matrix_server_fqn_matrix }}`) && Path(`{{matrix_synapse_admin_public_endpoint}}`))"'
# (Define your entrypoint)
- '--label "traefik.http.routers.matrix-synapse-admin.entrypoints=web-secure"'
# (The 'default' certificate resolver must be defined in Traefik config)
- '--label "traefik.http.routers.matrix-synapse-admin.tls.certResolver=default"'
# The Synapse Admin container uses port 80 by default
- '--label "traefik.http.services.matrix-synapse-admin.loadbalancer.server.port=80"'
```

View File

@ -16,3 +16,61 @@ Alternatively, **if there is no pre-defined variable** for a Synapse setting you
- or, you can **extend and override the default configuration** ([`homeserver.yaml.j2`](../roles/matrix-synapse/templates/synapse/homeserver.yaml.j2)) by making use of the `matrix_synapse_configuration_extension_yaml` variable. You can find information about this in [`roles/matrix-synapse/defaults/main.yml`](../roles/matrix-synapse/defaults/main.yml).
- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_synapse_configuration` (or `matrix_synapse_configuration_yaml`). You can find information about this in [`roles/matrix-synapse/defaults/main.yml`](../roles/matrix-synapse/defaults/main.yml).
## Load balancing with workers
To have Synapse gracefully handle thousands of users, worker support should be enabled. It factors out some homeserver tasks and spreads the load of incoming client and server-to-server traffic between multiple processes. More information can be found in the [official Synapse workers documentation](https://github.com/matrix-org/synapse/blob/master/docs/workers.md).
To enable Synapse worker support, update your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_synapse_workers_enabled: true
```
We support a few configuration presets (`matrix_synapse_workers_preset: one-of-each` being the default configuration):
- `little-federation-helper` - a very minimal worker configuration to improve federation performance
- `one-of-each` - one worker of each supported type
If you'd like more customization power, you can start with one of the presets and tweak various `matrix_synapse_workers_*_count` variables manually.
If you increase worker counts too much, you may need to increase the maximum number of Postgres connections too (example):
```yaml
matrix_postgres_process_extra_arguments: [
"-c 'max_connections=200'"
]
```
If you're using the default setup (the `matrix-nginx-proxy` webserver being enabled) or you're using your own `nginx` server (which imports the configuration files generated by the playbook), you're good to go. If you use some other webserver, you may need to tweak your reverse-proxy setup manually to forward traffic to the various workers.
In case any problems occur, make sure to have a look at the [list of synapse issues about workers](https://github.com/matrix-org/synapse/issues?q=workers+in%3Atitle) and your `journalctl --unit 'matrix-*'`.
## Synapse Admin
Certain Synapse administration tasks (managing users and rooms, etc.) can be performed via a web user-interace, if you install [Synapse Admin](configuring-playbook-synapse-admin.md).
## Synapse + OpenID Connect for Single-Sign-On
If you'd like to use OpenID Connect authentication with Synapse, you'll need some additional reverse-proxy configuration (see [our nginx reverse-proxy doc page](configuring-playbook-nginx.md#synapse-openid-connect-for-single-sign-on)).
In case you encounter errors regarding the parsing of the variables, you can try to add `{% raw %}` and `{% endraw %}` blocks around them. For example ;
```
- idp_id: keycloak
idp_name: "Keycloak"
issuer: "https://url.ix/auth/realms/x"
client_id: "matrix"
client_secret: "{{ vault_synapse_keycloak }}"
scopes: ["openid", "profile"]
authorization_endpoint: "https://url.ix/auth/realms/x/protocol/openid-connect/auth"
token_endpoint: "https://url.ix/auth/realms/x/protocol/openid-connect/token"
userinfo_endpoint: "https://url.ix/auth/realms/x/protocol/openid-connect/userinfo"
user_mapping_provider:
config:
display_name_template: "{% raw %}{{ user.given_name }}{% endraw %} {% raw %}{{ user.family_name }}{% endraw %}"
email_template: "{% raw %}{{ user.email }}{% endraw %}"
```

View File

@ -10,7 +10,7 @@ growth of the Matrix community, and helps to make Matrix a success.
## Enabling Telemetry
If you'd like to **help by enabling submission of anonymized usage statistics** for your homeserver, add this to your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
If you'd like to **help by enabling submission of general usage statistics** for your homeserver, add this to your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_synapse_report_stats: true

View File

@ -8,15 +8,15 @@ To configure the playbook, you need to have done the following things:
You can then follow these steps inside the playbook directory:
- create a directory to hold your configuration (`mkdir inventory/host_vars/matrix.<your-domain>`)
1. create a directory to hold your configuration (`mkdir inventory/host_vars/matrix.<your-domain>`)
- copy the sample configuration file (`cp examples/host-vars.yml inventory/host_vars/matrix.<your-domain>/vars.yml`)
1. copy the sample configuration file (`cp examples/vars.yml inventory/host_vars/matrix.<your-domain>/vars.yml`)
- edit the configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) to your liking. You may also take a look at the various `roles/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file.
1. edit the configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) to your liking. You may also take a look at the various `roles/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file.
- copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`)
1. copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`)
- edit the inventory hosts file (`inventory/hosts`) to your liking
1. edit the inventory hosts file (`inventory/hosts`) to your liking
For a basic Matrix installation, that's all you need.
@ -33,19 +33,20 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md) (optional)
- [Setting up Dynamic DNS](configuring-playbook-dynamic-dns.md) (optional)
- [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md) (optional)
### Core service adjustments
- [Configuring Synapse](configuring-playbook-synapse.md) (optional)
- [Configuring Riot-web](configuring-playbook-riot-web.md) (optional)
- [Configuring Element](configuring-playbook-client-element.md) (optional)
- [Storing Matrix media files on Amazon S3](configuring-playbook-s3.md) (optional)
- [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) (optional)
- [Adjusting ma1sd Identity Server configuration](configuring-playbook-ma1sd.md) (optional)
- [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) (optional, advanced)
- [Serving your base domain using this playbook's nginx server](configuring-playbook-base-domain-serving.md) (optional)
@ -65,9 +66,19 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Adjusting email-sending settings](configuring-playbook-email.md) (optional)
- [Setting up Hydrogen](configuring-playbook-client-hydrogen.md) - a new lightweight matrix client with legacy and mobile browser support (optional)
- [Setting up Cinny](configuring-playbook-client-cinny.md) - a web client focusing primarily on simple, elegant and secure interface (optional)
### Authentication and user-related
- [Setting up an ma1sd Identity Server](configuring-playbook-ma1sd.md) (optional)
- [Setting up Synapse Admin](configuring-playbook-synapse-admin.md) (optional)
- [Setting up matrix-registration](configuring-playbook-matrix-registration.md) (optional)
- [Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (optional, advanced)
- [Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (optional, advanced)
@ -89,18 +100,69 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Mautrix Hangouts bridging](configuring-playbook-bridge-mautrix-hangouts.md) (optional)
- [Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md) (optional)
- [Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (optional)
- [Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md) (optional)
- [Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md) (optional)
- [Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md) (optional)
- [Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md) (optional)
- [Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md) (optional)
- [Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (optional)
- [Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (optional)
- [Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) - a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira). (optional)
- [Setting up MX Puppet Skype bridging](configuring-playbook-bridge-mx-puppet-skype.md) (optional)
- [Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md) (optional)
- [Setting up MX Puppet Instagram bridging](configuring-playbook-bridge-mx-puppet-instagram.md) (optional)
- [Setting up MX Puppet Twitter bridging](configuring-playbook-bridge-mx-puppet-twitter.md) (optional)
- [Setting up MX Puppet Discord bridging](configuring-playbook-bridge-mx-puppet-discord.md) (optional)
- [Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md) (optional)
- [Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md) (optional)
- [Setting up Email2Matrix](configuring-playbook-email2matrix.md) (optional)
- [Setting up Matrix SMS bridging](configuring-playbook-matrix-bridge-sms.md) (optional)
- [Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md) (optional)
- [Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md) (optional)
### Bots
- [Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) - a bot to remind you about stuff (optional)
- [Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) - a bot to create and manage registration tokens to invite users (optional)
- [Setting up honoroit](configuring-playbook-bot-honoroit.md) - a helpdesk bot (optional)
- [Setting up Go-NEB](configuring-playbook-bot-go-neb.md) - an extensible multifunctional bot (optional)
- [Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) - a moderation tool/bot (optional)
- [Setting up Buscarron](configuring-playbook-bot-buscarron.md) - a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room (optional)
### Backups
- [Setting up borg backup](configuring-playbook-backup-borg.md) - a full Matrix server backup solution, including the Postgres database (optional)
- [Setting up postgres backup](configuring-playbook-postgres-backup.md) - a Postgres-database backup solution (note: does not include other files) (optional)
### Other specialized services
- [Setting up the Sygnal push gateway](configuring-playbook-sygnal.md) (optional)

View File

@ -6,7 +6,7 @@ There are 2 types of well-known service discovery that Matrix makes use of:
- (important) **Federation Server discovery** (`/.well-known/matrix/server`) -- assists other servers in the Matrix network with finding your server. Without a proper configuration, your server will effectively not be part of the Matrix network. Learn more in [Introduction to Federation Server Discovery](#introduction-to-federation-server-discovery)
- (not that important) **Client Server discovery** (`/.well-known/matrix/client`) -- assists programs that you use to connect to your server (e.g. Riot), so that they can make it more convenient for you by automatically configuring the "Homeserver URL" and "Identity Server URL" addresses. Learn more in [Introduction to Client Server Discovery](#introduction-to-client-server-discovery)
- (not that important) **Client Server discovery** (`/.well-known/matrix/client`) -- assists programs that you use to connect to your server (e.g. Element), so that they can make it more convenient for you by automatically configuring the "Homeserver URL" and "Identity Server URL" addresses. Learn more in [Introduction to Client Server Discovery](#introduction-to-client-server-discovery)
## Introduction to Federation Server Discovery
@ -46,7 +46,7 @@ If you decide to go this route, you don't need to read ahead in this document. W
If you're managing the base domain by yourself somehow, you'll need to set up serving of some `/.well-known/matrix/*` files from it via HTTPS.
To make things easy for you to set up, this playbook generates and hosts 2 well-known files on the Matrix domain's server (e.g. `https://matrix.example.com/.well-known/matrix/server` and `https://matrix.example.com/.well-known/matrix/client`), even though this is the wrong place to host them.
To make things easy for you to set up, this playbook generates and hosts 2 well-known files on the Matrix domain's server. The files are generated at `/matrix/static-files/.well-known/matrix/` and hosted at `https://matrix.example.com/.well-known/matrix/server` and `https://matrix.example.com/.well-known/matrix/client`, even though this is the wrong place to host them.
You have 3 options when it comes to installing the files on the base domain's server:
@ -59,7 +59,7 @@ All you need to do is:
- copy `/.well-known/matrix/server` and `/.well-known/matrix/client` from the Matrix server (e.g. `matrix.example.com`) to your base domain's server (`example.com`). You can find these files in the `/matrix/static-files/.well-known/matrix` directory on the Matrix server. They are also accessible on URLs like this: `https://matrix.example.com/.well-known/matrix/server` (same for `client`).
- set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Riot) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS.
- set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Element) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS.
This is relatively easy to do and possibly your only choice if you can only host static files from the base domain's server.
It is, however, **a little fragile**, as future updates performed by this playbook may regenerate the well-known files and you may need to notice that and copy them over again.
@ -69,7 +69,7 @@ It is, however, **a little fragile**, as future updates performed by this playbo
If you don't need the base domain (e.g. `example.com`) for anything else (hosting a website, etc.), you can point it to the Matrix server's IP address and tell the playbook to configure it.
This is the easiest way to set up well-known serving -- letting the playbook handle the whole base domain for you (including SSL certificates, etc.). However, if you need to use the base domain for other things (such as hosting some website, etc.), going with Option 1 or Option 2 might be more suitable.
This is the easiest way to set up well-known serving -- letting the playbook handle the whole base domain for you (including SSL certificates, etc.). However, if you need to use the base domain for other things (such as hosting some website, etc.), going with Option 1 or Option 3 might be more suitable.
See [Serving the base domain](configuring-playbook-base-domain-serving.md) to learn how the playbook can help you set it up.
@ -98,16 +98,15 @@ server {
}
```
**For Apache**, it would be something like this:
**For Apache2**, it would be something like this:
```apache
<VirtualHost *:443>
ServerName DOMAIN
SSLProxyEngine on
<Location /.well-known/matrix>
ProxyPass "https://matrix.DOMAIN/.well-known/matrix"
</Location>
ProxyPass /.well-known/matrix https://matrix.DOMAIN/.well-known/matrix nocanon
ProxyPassReverse /.well-known/matrix https://matrix.DOMAIN/.well-known/matrix nocanon
# other configuration
</VirtualHost>
@ -116,8 +115,22 @@ server {
**For Caddy 2**, it would be something like this:
```caddy
reverse_proxy /.well-known/matrix/* https://matrix.DOMAIN {
header_up Host {http.reverse_proxy.upstream.hostport}
DOMAIN.com {
@wellknown {
path /.well-known/matrix/*:x
}
handle @wellknown {
reverse_proxy https://matrix.DOMAIN.com {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
# Configration for the base domain goes here
# handle {
# header -Server
# encode zstd gzip
# reverse_proxy localhost:4020
# }
}
```
@ -148,6 +161,13 @@ backend matrix-backend
rsprep ^Location:\ (http|https)://matrix.example.com\/(.*) Location:\ \1://matrix.example.com/.well-known/matrix/\2 if response-is-redirect
```
**For Netlify**, it would be something like this:
```
# In the _redirects file in the website's root
/.well-known/matrix/* https://matrix.DOMAIN/.well-known/matrix/:splat 200!
```
Make sure to:
- **replace `DOMAIN`** in the server configuration with your actual domain name

111
docs/container-images.md Normal file
View File

@ -0,0 +1,111 @@
# Container Images used by the playbook
This page summarizes the container ([Docker](https://www.docker.com/)) images used by the playbook when setting up your server.
We try to stick to official images (provided by their respective projects) as much as possible.
## Container images used by default
These services are enabled and used by default, but you can turn them off, if you wish.
- [matrixdotorg/synapse](https://hub.docker.com/r/matrixdotorg/synapse/) - the official [Synapse](https://github.com/matrix-org/synapse) Matrix homeserver (optional)
- [coturn/coturn](https://hub.docker.com/r/coturn/coturn/) - the [Coturn](https://github.com/coturn/coturn) STUN/TURN server (optional)
- [vectorim/element-web](https://hub.docker.com/r/vectorim/element-web/) - the [Element](https://element.io/) web client (optional)
- [postgres](https://hub.docker.com/_/postgres/) - the [Postgres](https://www.postgresql.org/) database server (optional)
- [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/) - the [Exim](https://www.exim.org/) email server (optional)
- [nginx](https://hub.docker.com/_/nginx/) - the [nginx](http://nginx.org/) web server (optional)
- [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) - the [certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/) (optional)
## Optional other container images we may use
These services are not part of our default installation, but can be enabled by [configuring the playbook](configuring-playbook.md) (either before the initial installation or any time later):
- [ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/) - the [ma1sd](https://github.com/ma1uta/ma1sd) Matrix Identity server (optional)
- [matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/) - the official [Dendrite](https://github.com/matrix-org/dendrite) Matrix homeserver (optional)
- [ewoutp/goofys](https://hub.docker.com/r/ewoutp/goofys/) - the [Goofys](https://github.com/kahing/goofys) Amazon [S3](https://aws.amazon.com/s3/) file-system-mounting program (optional)
- [etherpad/etherpad](https://hub.docker.com/r/etherpad/etherpad/) - the [Etherpad](https://etherpad.org) realtime collaborative text editor that can be used in a Jitsi audio/video call or integrated as a widget into Matrix chat rooms via the Dimension integration manager (optional)
- [devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/) - the [Email2Matrix](https://github.com/devture/email2matrix) email server, which can relay email messages to Matrix rooms (optional)
- [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal/) - [Matrix Corporal](https://github.com/devture/matrix-corporal): reconciliator and gateway for a managed Matrix server (optional)
- [zeratax/matrix-registration](https://hub.docker.com/r/devture/zeratax-matrix-registration/) - [matrix-registration](https://github.com/ZerataX/matrix-registration): a simple python application to have a token based matrix registration (optional)
- [mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry) - the [mautrix-telegram](https://github.com/mautrix/telegram) bridge to [Telegram](https://telegram.org/) (optional)
- [mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry) - the [mautrix-whatsapp](https://github.com/mautrix/whatsapp) bridge to [Whatsapp](https://www.whatsapp.com/) (optional)
- [mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry) - the [mautrix-facebook](https://github.com/mautrix/facebook) bridge to [Facebook](https://facebook.com/) (optional)
- [mautrix/twitter](https://mau.dev/mautrix/twitter/container_registry) - the [mautrix-twitter](https://github.com/mautrix/twitter) bridge to [Twitter](https://twitter.com/) (optional)
- [mautrix/hangouts](https://mau.dev/mautrix/hangouts/container_registry) - the [mautrix-hangouts](https://github.com/mautrix/hangouts) bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts) (optional)
- [mautrix/googlechat](https://mau.dev/mautrix/googlechat/container_registry) - the [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat) (optional)
- [mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry) - the [mautrix-instagram](https://github.com/mautrix/instagram) bridge to [Instagram](https://instagram.com/) (optional)
- [mautrix/signal](https://mau.dev/mautrix/signal/container_registry) - the [mautrix-signal](https://github.com/mautrix/signal) bridge to [Signal](https://www.signal.org/) (optional)
- [matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc) - the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) (optional)
- [halfshot/matrix-appservice-discord](https://hub.docker.com/r/halfshot/matrix-appservice-discord) - the [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) bridge to [Discord](https://discordapp.com/) (optional)
- [cadair/matrix-appservice-slack](https://hub.docker.com/r/cadair/matrix-appservice-slack) - the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge to [Slack](https://slack.com/) (optional)
- [turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks) - the [Appservice Webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge (optional)
- [folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge) - the [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) (optional)
- [sorunome/mx-puppet-skype](https://hub.docker.com/r/sorunome/mx-puppet-skype) - the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge to [Skype](https://www.skype.com) (optional)
- [sorunome/mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) - the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge to [Slack](https://slack.com) (optional)
- [sorunome/mx-puppet-instagram](https://hub.docker.com/r/sorunome/mx-puppet-instagram) - the [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) bridge to [Instagram](https://www.instagram.com) (optional)
- [sorunome/mx-puppet-twitter](https://hub.docker.com/r/sorunome/mx-puppet-twitter) - the [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) bridge to [Twitter](https://twitter.com) (optional)
- [sorunome/mx-puppet-discord](https://hub.docker.com/r/sorunome/mx-puppet-discord) - the [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord) bridge to [Discord](https://discordapp.com) (optional)
- [xangelix/mx-puppet-groupme](https://hub.docker.com/r/xangelix/mx-puppet-groupme) - the [mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) bridge to [GroupMe](https://groupme.com/) (optional)
- [icewind1991/mx-puppet-steam](https://hub.docker.com/r/icewind1991/mx-puppet-steam) - the [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) bridge to [Steam](https://steampowered.com) (optional)
- [turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension) - the [Dimension](https://dimension.t2bot.io/) integrations manager (optional)
- [jitsi/web](https://hub.docker.com/r/jitsi/web) - the [Jitsi](https://jitsi.org/) web UI (optional)
- [jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo) - the [Jitsi](https://jitsi.org/) Focus component (optional)
- [jitsi/prosody](https://hub.docker.com/r/jitsi/prosody) - the [Jitsi](https://jitsi.org/) Prosody XMPP server component (optional)
- [jitsi/jvb](https://hub.docker.com/r/jitsi/jvb) - the [Jitsi](https://jitsi.org/) Video Bridge component (optional)
- [anoa/matrix-reminder-bot](https://hub.docker.com/r/anoa/matrix-reminder-bot) - the [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) bot for one-off & recurring reminders and alarms (optional)
- [etke.cc/honoroit](https://gitlab.com/etke.cc/honoroit/container_registry) - the [honoroit](https://gitlab.com/etke.cc/honoroit) helpdesk bot (optional)
- [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) - the [Go-NEB](https://github.com/matrix-org/go-neb) bot (optional)
- [matrixdotorg/mjolnir](https://hub.docker.com/r/matrixdotorg/mjolnir) - the [mjolnir](https://github.com/matrix-org/mjolnir) moderation bot (optional)
- [awesometechnologies/synapse-admin](https://hub.docker.com/r/awesometechnologies/synapse-admin) - the [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) web UI tool for administrating users and rooms on your Matrix server (optional)
- [prom/prometheus](https://hub.docker.com/r/prom/prometheus/) - [Prometheus](https://github.com/prometheus/prometheus/) is a systems and service monitoring system
- [prom/node-exporter](https://hub.docker.com/r/prom/node-exporter/) - [Prometheus Node Exporter](https://github.com/prometheus/node_exporter/) is an addon for Prometheus that gathers standard system metrics
- [grafana/grafana](https://hub.docker.com/r/grafana/grafana/) - [Grafana](https://github.com/grafana/grafana/) is a graphing tool that works well with the above two images. Our playbook also adds two dashboards for [Synapse](https://github.com/matrix-org/synapse/tree/master/contrib/grafana) and [Node Exporter](https://github.com/rfrail3/grafana-dashboards)
- [matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/) - [Sygnal](https://github.com/matrix-org/sygnal) is a reference Push Gateway for Matrix

475
docs/faq.md Normal file
View File

@ -0,0 +1,475 @@
# Frequently Asked Questions
This documentation page tries to answer various Frequently Asked Questions about all things [Matrix](https://matrix.org/), with a focus on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work)).
This FAQ page does not intend to replace the [matrix.org FAQ](https://matrix.org/faq/) (please see that one too).
We've only started this FAQ recently, so it's still somewhat empty.
Also, we encourage you to not dig yourself into a hole by reading way too much. When you've heard enough, proceed to [Prerequisites](prerequisites.md) to get guided into installing Matrix.
## Introductory
## Where do I find more questions and answers about Matrix?
This is a Frequently Asked Questions page focused on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work)) for deploying a [Matrix](https://matrix.org/) server.
For a lot more generic questions and answers, see the [matrix.org FAQ](https://matrix.org/faq/).
## What is Matrix? What is Element? What is Synapse? Why are you confusing me with so many terms?
[Matrix](https://matrix.org/) is a new type of realtime communication (chat) network, the closest analogy to which is probably "email".
You don't just use the "email" protocols (SMTP, POP3, IMAP) directly though. There's a *server* somewhere which stores your data (`@gmail.com`, `@yahoo.com`, `@hotmail.com`, `@your-company.com`) and you access it by using these "email" protocols via some *client* program (Outlook, Thunderbird, some website, etc).
In the world of the Matrix chat protocol, there are various client programs. The first and currently most full-featured one is called [Element](https://element.io/) (used to be called Riot.im and Vector.im in the past). There are [many other clients](https://matrix.org/clients/). You can switch clients as much as you want until you find the one that is right for you on a given platform (you may use Element on your desktop, but Fluffychat on your phone, etc).
Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:his-domain.com` can talk to `@alice:her-domain.org`).
If someone else is hosting your Matrix server (you being `@user:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element.
If you'd like to host your own server (you being `@user:your-own-domain.com`), you'd need to set up a Matrix server program, like Synapse.
In short:
- Matrix is the protocol - a set of rules about how the chat network operates
- Element is a client program you can use to participate on the Matrix chat network via some server (yours or someone else's). There are also [many other client programs](https://matrix.org/clients/).
- Synapse is a server program you can use to host your very own Matrix server.
This FAQ here mostly focuses on installing various Matrix services using the Ansible automation tool. You can learn much more about Matrix in the [matrix.org FAQ](https://matrix.org/faq/).
## People I wish to talk to are not on Matrix. Can I talk to them?
You most likely can. Besides Matrix-native chats, Matrix also supports the concept of "bridging", which allows you to plug other networks into it.
This Ansible playbook can help you install [tens of bridges for various networks](configuring-playbook.md#bridging-other-networks).
Besides setting up your own bridges (preferable), you can also use some [public bridges hosted by others](https://publiclist.anchel.nl/#bridges).
## How do I get started with Matrix?
One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to other chat networks) is its decentralized nature. There's not just one entity (company, organization) controlling the servers. Rather there's thousands of servers operated by different people - one server being insecure, slow or disrespective toward its users does not affect the rest of the network. To participate in that decentralization in its fullest, consider hosting your own server or using some public server other than the largest/default one (`matrix.org`).
There are 3 ways to get into Martix, depending on your technical ability and needs:
- **using the existing default server** - the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element](https://element.io) and many others. Just use Element on the browser via that link (or download the Element app on a smartphone), create an account and start chatting.
- **using some other server** - instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Again, you download [Element](https://element.io) or [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login.
- **using your own server** - running your own server puts you in ultimate control of your data. It also lets you have your own user identifiers (e.g. `@bob:your-domain.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server).
### How do I set up my own Matrix server?
Normally, you'd first choose the [Matrix](https://matrix.org/) server software you'd like to run. At the time of this writing (January/2021), there's only one fully-featured server program, so there's only one reasonable choice. That's [Synapse](https://github.com/matrix-org/synapse).
There are [many guides about installing Synapse](https://matrix.org/docs/guides/#installing-synapse). Using this Ansible playbook is just one way of doing it.
Naturally, we're biased, so our usual recommendation is to go with this [Ansible](https://www.ansible.com/) playbook, instead of installing Synapse (and many many other things around it) manually.
To get started with the playbook, start at the [Prerequisites](prerequisites.md) page.
### What is Ansible? How does it work?
[Ansible](https://www.ansible.com/) is an automation program. This "playbook" is a collection of tasks/scripts that will set up a [Matrix](https://matrix.org/) server for you, so you don't have to perform these tasks manually.
We have written these automated tasks for you and all you need to do is execute them using the Ansible program.
You can install Ansible and this playbook code repository on your own computer and tell it to install Matrix services at the server living at `matrix.DOMAIN`. We recommend installing Ansible on your own computer.
Alternatively, you can download Ansible and the playbook itself directly on the `matrix.DOMAIN` server.
To learn more, see our [dedicated Ansible documentation page](ansible.md).
### Why use this playbook and not install Synapse and other things manually?
There are various guides telling you how easy it is to install [Synapse](https://github.com/matrix-org/synapse).
Reading the documentation of this Ansible playbook, you may also be thinking:
> I don't know what [Ansible](https://www.ansible.com/) is. I don't know what [Docker](https://www.docker.com/) is. This looks more complicated.
.. so you may be leaning toward [installing Synapse manually](https://github.com/matrix-org/synapse/blob/master/INSTALL.md).
The problem with a manual installation is:
- Synapse is written in Python. If not packaged for your distribution, you'd need to install various Python modules, etc., and keep them updated.
- Synapse requires a [Postgres](https://www.postgresql.org/) database (it can run on SQLite, but that's very much discouraged). So you'd need to install Postgres as well.
- you may also need a reverse-proxy server in front of it (nginx, Apache), so you'd need to be familiar with that
- SSL is required, so you'd need to obtain Let's Encrypt (or other free or non-free) certificates for one or more domain names. You'd need to be familiar with [certbot](https://certbot.eff.org/) (when using Let's Encrypt) or similar software.
- for each additional component you'd like to add (client like [Element](https://element.io), bridge to some other chat network, Integration Manager (sitckers, other services), Identity Manager, etc.), you'll need to spend extra time installing and wiring it with the rest of the system in a way that works.
- you'll likely get slower updates for all of these components, depending on your distro packaging or your own time and ability
The playbook, on the other hand, installs a bunch of components for you by default, obtains SSL certificates for you, etc. If you'd like, you can enable various bridges and other services with very little effort. All the components are wired to work together.
All services run in Docker containers (most being officially provided by each component's developers), so we're not at the mercy of distro packaging.
### Why use this playbook and not just use the Docker image directly?
Reasons are similar to the reasons for not installing manually.
Besides Synapse, you'd need other things - a Postgres database, likely the [Element](https://element.io) client, etc., etc.
Using the playbook, you get all these components in a way that works well together out of the box.
### What's different about this Ansible playbook compared to [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy)?
This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy) Ansible deployment, but:
- this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** - especially for folks not familiar with Ansible
- this one installs and hooks together **a lot more Matrix-related services** for you (see above)
- this one **can be executed more than once** without causing trouble
- works on various distros: **CentOS** (7.0+), Debian-based distributions (**Debian** 10/Buster+, **Ubuntu** 18.04+), **Archlinux**
- this one installs everything in a single directory (`/matrix` by default) and **doesn't "contaminate" your server** with files all over the place
- this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up nginx for you there, but you can also [use your own webserver](configuring-playbook-own-webserver.md)
- this one **runs everything in Docker containers**, so it's likely more predictable and less fragile (see [Docker images used by this playbook](container-images.md))
- this one retrieves and automatically renews free [Let's Encrypt](https://letsencrypt.org/) **SSL certificates** for you
- this one optionally can store the `media_store` content repository files on [Amazon S3](https://aws.amazon.com/s3/) (but defaults to storing files on the server's filesystem)
- this one optionally **allows you to use an external PostgreSQL server** for Synapse's database (but defaults to running one in a container)
- helps you **import data from a previous installation** (so you can migrate your manual virtualenv/Docker setup to a more managed one)
- this one is actually **maintained**
## Server-related
### What kind of server do I need to install Matrix using this Ansible playbook?
We list our server requirements in [Prerequisites](prerequisites.md).
### Why not run Matrix on Kubernetes?
There's no reason not to run Matrix on [Kubernetes](https://kubernetes.io/).
However, that's overly complicated for thousands of us who just want to run a single small (and sometimes not so small) Matrix server, either using "cloud" servers or even a [Raspberry Pi](https://www.raspberrypi.org/) at home.
For us, a Kubernetes-based setup which requires a cluster of multiple computers and is more technically-involved is a no-go.
There are others working on automating a Matrix-on-Kubernetes setup, such as this [Helm](https://helm.sh/) chart: https://github.com/dacruz21/matrix-chart.
### Why don't you use Podman instead of Docker?
We like the philosophy of a daemonless container runtime, but [Podman](https://podman.io) is just not ready for our use case yet.
Learn more about our past experiences/attempts to give Podman a chance, by reading [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/520).
In short, `alias podman=docker` is a lie (for us).
### Why use Docker?
[Docker](https://www.docker.com/) is one of our 2 hard dependencies (the other one being [systemd](https://systemd.io/)).
It lets us run services in an isolated manner and independently of the (usually old) packages available for distributions.
It also lets us have a unified setup which runs the same across various supported distros (see them on [Prerequisites](prerequisites.md)).
### Is Docker a hard requirement?
Yes. See [Why don't you use Podman instead of Docker?](#why-dont-you-use-podman-instead-of-docker) for why we're not using another container runtime.
All of our services run in containers. It's how we achieve predictability and also how we support tens of different services across lots of distros.
The only thing we need on the distro is systemd and Python (we install Docker ourselves, unless you ask us not to).
### Why don't you use docker-compose?
Instead of using [docker-compose](https://docs.docker.com/compose/), we prefer installing systemd services and scheduling those independently.
There are people who have worked on turning this setup into a docker-compose-based one. See these experiments [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/64#issuecomment-603164625).
### Can I run this on a distro without systemd?
No. [systemd](https://systemd.io/) is one of our 2 hard dependencies (the other one being [Docker](https://www.docker.com/)).
### Can I install this on a Raspberry Pi?
Yes, you can. See our [Alternative Architectures](alternative-architectures.md) documentation page.
Whether a Raspberry Pi has enough power to give you a good experience is another question. It depends on your use case.
Also see: [What kind of server specs do I need?](#what-kind-of-server-specs-do-i-need).
### What kind of server specs do I need?
This largely depends on your use case. It's not so much the number of users that you plan to host, but rather the number of large rooms they will join.
Federated rooms with lots of history and containing hundreds of other servers are very heavy CPU-wise and memory-wise.
You can probably use a 1 CPU + 1GB memory server to host hundreds of local users just fine, but as soon as one of them joins a federated room like `#matrix:matrix.org` (Matrix HQ) or some IRC-bridged room (say `##linux`), your server will get the need for a lot more power (at least 2GB RAM, etc).
Running Matrix on a server with 1GB of memory is possible (especially if you disable some not-so-important services). See [How do I optimize this setup for a low-power server?](#how-do-i-optimize-this-setup-for-a-low-power-server).
**We recommend starting with a server having at least 2GB of memory** and even then using it sparingly. If you know for sure you'll be joining various large rooms, etc., then going for 4GB of memory or more is a good idea.
Besides the regular Matrix stuff, we also support things like video-conferencing using [Jitsi](configuring-playbook-jitsi.md) and other additional services which (when installed) may use up a lot of memory. Things do add up. Besides the Synapse Matrix server, Jitsi is especially notorious for consuming a lot of resources. If you plan on running Jitsi, we recommend a server with at least 2GB of memory (preferrably more). See our [Jitsi documentation page](configuring-playbook-jitsi.md) to learn how to optimize its memory/CPU usage.
### Can I run this in an LXC container?
If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container.
## Configuration
### Why install my server at matrix.DOMAIN and not at the base DOMAIN?
It's the same with email servers. Your email address is likely `name@company.com`, not `name@mail.company.com`, even though it's `mail.company.com` that is really handling your data for `@company.com` email to work.
Using a separate domain name is easier to manage (although it's a little hard to get right at first) and keeps your Matrix server isolated from your website (if you have one), from your email server (if you have one), etc.
We allow `matrix.DOMAIN` to be the Matrix server handling Matrix stuff for `DOMAIN` by [Server Delegation](howto-server-delegation.md). During the installation procedure, we recommend that you set up server delegation using the [.well-known](configuring-well-known.md) method.
If you'd really like to install Matrix services directly on the base domain, see [How do I install on matrix.DOMAIN without involving the base DOMAIN?](#how-do-i-install-on-matrixdomain-without-involving-the-base-domain)
### I don't control anything on the base domain and can't set up delegation to matrix.DOMAIN. What do I do?
If you're not in control of your base domain (or the server handling it) at all, you can take a look at [How do I install on matrix.DOMAIN without involving the base DOMAIN?](#how-do-i-install-on-matrixdomain-without-involving-the-base-domain)
### I can't set up HTTPS on the base domain. How will I get Matrix federating?
If you really can't obtain an HTTPS certificate for your base domain, you can take a look at [How do I install on matrix.DOMAIN without involving the base DOMAIN?](#how-do-i-install-on-matrixdomain-without-involving-the-base-domain)
### How do I install on matrix.DOMAIN without involving the base DOMAIN?
This Ansible playbook guides you into installing a server for `DOMAIN` (user identifiers are like this: `@user:DOMAIN`), while the server is at `matrix.DOMAIN`.
We allow `matrix.DOMAIN` to be the Matrix server handling Matrix stuff for `DOMAIN` by [Server Delegation](howto-server-delegation.md). During the installation procedure, we recommend that you set up server delegation using the [.well-known](configuring-well-known.md) method.
If you're fine with uglier identifiers (`@user:matrix.DOMAIN`, which is the equivalent of having an email address like `bob@mail.company.com`, instead of just `bob@company.com`), you can do that as well using the following configuration in your `vars.yml` file:
```yaml
# This is what your identifiers are like (e.g. `@bob:matrix.YOUR_BASE_DOMAIN`).
matrix_domain: "matrix.YOUR_BASE_DOMAIN"
# This is where Matrix services
matrix_server_fqn_matrix: "matrix.YOUR_BASE_DOMAIN"
# This is where you access the Element web UI from (if enabled via `matrix_client_element_enabled: true`; enabled by default).
# This and the Matrix FQN (see above) are expected to be on the same server.
#
# Feel free to use `element.matrix.YOUR_BASE_DOMAIN`, if you'd prefer that.
matrix_server_fqn_element: "element.YOUR_BASE_DOMAIN"
# This is where you access Dimension (if enabled via `matrix_dimension_enabled: true`; NOT enabled by default).
#
# Feel free to use `dimension.matrix.YOUR_BASE_DOMAIN`, if you'd prefer that.
matrix_server_fqn_dimension: "dimension.YOUR_BASE_DOMAIN"
# This is where you access Jitsi (if enabled via `matrix_jitsi_enabled: true`; NOT enabled by default).
#
# Feel free to use `jitsi.matrix.YOUR_BASE_DOMAIN`, if you'd prefer that.
matrix_server_fqn_jitsi: "jitsi.YOUR_BASE_DOMAIN"
```
### I don't use the base domain for anything. How am I supposed to set up Server Delegation for Matrix services?
If you don't use your base domain for anything, then it's hard for you to "serve files over HTTPS" on it -- something we ask you to do for the [.well-known](configuring-well-known.md) setup (needed for [Server Delegation](howto-server-delegation.md)).
Luckily, the playbook can set up your Matrix server (at `matrix.DOMAIN`) to also handle traffic for the base domain (`DOMAIN`).
See [Serving the base domain](configuring-playbook-base-domain-serving.md).
### How do I optimize this setup for a low-power server?
You can disable some not-so-important services to save on memory.
```yaml
# An identity server is not a must.
matrix_ma1sd_enabled: false
# Disabling this will prevent email-notifications and other such things from working.
matrix_mailer_enabled: false
# You can also disable this to save more RAM,
# at the expense of audio/video calls being unreliable.
matrix_coturn_enabled: false
# This makes Synapse not keep track of who is online/offline.
#
# Keeping track of this and announcing such online-status in federated rooms with
# hundreds of servers inside is insanely heavy (https://github.com/matrix-org/synapse/issues/3971).
#
# If your server does not federate with hundreds of others, enabling this doesn't hurt much.
matrix_synapse_presence_enabled: false
```
You can also consider implementing a restriction on room complexity, in order to prevent users from joining very heavy rooms:
```yaml
matrix_synapse_configuration_extension_yaml: |
limit_remote_rooms:
enabled: true
complexity: 1.0 # this limits joining complex (~large) rooms, can be
# increased, but larger values can require more RAM
```
If you've installed [Jitsi](configuring-playbook-jitsi.md) (not installed by default), there are additional optimizations listed on its documentation page that you can perform.
### I already have Docker on my server. Can you stop installing Docker via the playbook?
Yes, we can stop installing Docker ourselves. Just use this in your `vars.yml` file:
```yaml
matrix_docker_installation_enabled: true
```
### I run another webserver on the same server where I wish to install Matrix. What now?
By default, we install a webserver for you (nginx), but you can also use [your own webserver](configuring-playbook-own-webserver.md).
### How is the effective configuration determined?
Configuration variables are defined in multiple places in this playbook and are considered in this order:
- there are defaults coming from each role's defaults file (`role/matrix*/defaults/main.yml`). These variable values aim to be good defaults for when the role is used standalone (outside of this collection of roles, also called playbook).
- then, there are overrides in `group_vars/matrix_servers`, which aim to adjust these "standalone role defaults" to something which better fits the playbook in its entirety.
- finally, there's your `inventory/host_vars/matrix.DOMAIN/vars.yml` file, which is the ultimate override
### What configuration variables are available?
You can discover the variables you can override in each role (`role/matrix*/defaults/main.yml`).
As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overriden by values defined in `group_vars/matrix_servers`.
Refer to both of these for inspiration. Still, as mentioned in [Configuring the playbook](configuring-playbook.md), you're only ever supposed to edit your own `inventory/host_vars/matrix.DOMAIN/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features).
### I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it?
The playbook doesn't aim to expose all configuration settings for all services using variables.
Doing so would amount to hundreds of variables that we have to create and maintain.
Instead, we only try to make some important basics configurable using dedicated variables you can see in each role.
See [What configuration variables are available?](#what-configuration-variables-are-available).
Besides that, each role (component) aims to provide a `matrix_SOME_COMPONENT_configuration_extension_yaml` (or `matrix_SOME_COMPONENT_configuration_extension_json`) variable, which can be used to override the configuration.
Check each role's `role/matrix*/defaults/main.yml` for the corresponding variable and an example for how use it.
## Installation
### How do I run the installation?
See [Installing](installing.md) to learn how to use Ansible to install Matrix services.
Of course, don't just jump straight to Installing. Rather, start at [Prerequisites](prerequisites.md) and get guided from there (into [setting up DNS](configuring-dns.md), [configuring the playbook](configuring-playbook.md), etc).
### I installed Synapse some other way. Can I migrate such a setup to the playbook?
Yes, you can.
You generally need to do a playbook installation (start at the [Prerequisites](prerequisites.md) page), followed by importing your existing data into it.
This Ansible playbook guides you into installing a server for `DOMAIN` (user identifiers are like this: `@user:DOMAIN`), while the server is at `matrix.DOMAIN`. If your existing setup has a server name (`server_name` configuration setting in Synapse's `homeserver.yaml` file) other than the base `DOMAIN`, you may need to tweak some additional variables. This FAQ entry may be of use if you're dealing with a more complicated setup - [How do I install on matrix.DOMAIN without involving the base DOMAIN?](#how-do-i-install-on-matrixdomain-without-involving-the-base-domain)
After configuring the playbook and installing and **before starting** services (done with `ansible-playbook ... --tags=start`) you'd import [your SQLite](importing-synapse-sqlite.md) (or [Postgres](importing-postgres.md)) database and also [import your media store](importing-synapse-media-store.md).
### I've downloaded Ansible and the playbook on the server. It can't connect using SSH.
If you're using the playbook directly on the server, then Ansible doesn't need to connect using SSH.
It can perform a local connection instead. Just set `ansible_connection=local` at the end of the server line in `inventory/hosts` and re-run the playbook.
If you're running Ansible from within a container (one of the possibilities we list on our [dedicated Ansible documentation page](ansible.md)), then using `ansible_connection=local` is not possible.
## Troubleshooting
### I get "Error response from daemon: configured logging driver does not support reading" when I do `docker logs matrix-synapse`.
See [How can I see the logs?](#how-can-i-see-the-logs).
### How can I see the logs?
We utilize [systemd/journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#Description) for logging.
To see logs for Synapse, run `journalctl -fu matrix-synapse.service`. You may wish to see the [manual page for journalctl](https://www.commandlinux.com/man-page/man1/journalctl.1.html).
Available service names can be seen by doing `ls /etc/systemd/system/matrix*.service` on the server.
Some services also log to files in `/matrix/*/data/..`, but we're slowly moving away from that.
We also disable Docker logging, so you can't use `docker logs matrix-*` either. We do this to prevent useless double (or even triple) logging and to avoid having to rotate log files.
We just simply delegate logging to journald and it takes care of persistence and expiring old data.
Also see: [How long do systemd/journald logs persist for?](#how-long-do-systemdjournald-logs-persist-for)
### How long do systemd/journald logs persist for?
On some distros, the journald logs are just in-memory and not persisted to disk.
Consult (and feel free to adjust) your distro's journald logging configuration in `/etc/systemd/journald.conf`.
To enable persistence and put some limits on how large the journal log files can become, adjust your configuration like this:
```ini
[Journal]
RuntimeMaxUse=200M
SystemMaxUse=1G
RateLimitInterval=0
RateLimitBurst=0
Storage=persistent
```
## Maintenance
### Do I need to do anything to keep my Matrix server updated?
Yes. We don't update anything for you automatically.
See our [documentation page about upgrading services](maintenance-upgrading-services.md).
### How do I move my existing installation to another (VM) server?
If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server using [our dedicated server migration guide](maintenance-migrating.md).
If your previous installation is done in some other way (not using this Ansible playbook), see [I installed Synapse some other way. Can I migrate such a setup to the playbook?](#i-installed-synapse-some-other-way-can-i-migrate-such-a-setup-to-the-playbook).
### How do I back up the data on my server?
We haven't documented this properly yet, but the general advice is to:
- back up Postgres by making a database dump. See [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql)
- back up all `/matrix` files, except for `/matrix/postgres/data` (you already have a dump) and `/matrix/postgres/data-auto-upgrade-backup` (this directory may exist and contain your old data if you've [performed a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql)).
You can later restore these roughly like this:
- restore the `/matrix` directory and files on the new server manually
- run the playbook again (see [Installing](installing.md)), but **don't** start services yet (**don't run** `... --tags=start`). This step will fix any file permission mismatches and will also set up additional software (Docker, etc.) and files on the server (systemd service, etc.).
- perform a Postgres database import (see [Importing Postgres](importing-postgres.md)) to restore your database backup
- start services (see [Starting the services](installing.md#starting-the-services))
If your server's IP address has changed, you may need to [set up DNS](configuring-dns.md) again.
### What is this `/matrix/postgres/data-auto-upgrade-backup` directory that is taking up so much space?
When you [perform a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql), we save the the old data files in `/matrix/postgres/data-auto-upgrade-backup`, just so you could easily restore them should something have gone wrong.
After verifying that everything still works after the Postgres upgrade, you can safely delete `/matrix/postgres/data-auto-upgrade-backup`
### How do I debug or force SSL certificate renewal?
SSL certificate renewal normally happens automatically via [systemd timers](https://wiki.archlinux.org/index.php/Systemd/Timers).
If you're having trouble with SSL certificate renewal, you can inspect the renewal logs using:
- `journalctl -fu matrix-ssl-lets-encrypt-certificates-renew.service`
- *or* by looking at the log files in `/matrix/ssl/log/`
To trigger renewal, run: `systemctl start matrix-ssl-lets-encrypt-certificates-renew.service`. You can then take a look at the logs again.
If you're using the integrated webserver (`matrix-nginx-proxy`), you can reload it manually like this: `systemctl reload matrix-nginx-proxy`. Reloading also happens periodically via a systemd timer.
If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (`matrix-nginx-proxy`) you may also need to reload/restart it, to make it pick up the renewed SSL certificate files.

View File

@ -22,20 +22,20 @@ If this is okay with you, feel free to not read ahead.
Server Delegation by means of a `/.well-known/matrix/server` file is the most straightforward, but suffers from the following downsides:
- you need to have a working HTTPS server for the base domain (`<your-domain>`)
- you need to have a working HTTPS server for the base domain (`<your-domain>`). If you don't have any server for the base domain at all, you can easily solve it by making the playbook [serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md).
- any downtime on the base domain (`<your-domain>`) or network trouble between the matrix subdomain (`matrix.<your-domain>`) and the base `<domain>` may cause Matrix Federation outages. As the [Server-Server spec says](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery):
> Errors are recommended to be cached for up to an hour, and servers are encouraged to exponentially back off for repeated failures.
If this is not a concern for you, feel free to not read ahead.
**For most people, this is a reasonable tradeoff** given that it's easy and straightforward to set up. We recommend you stay on this path.
Otherwise, you can decide to go against the default for this playbook, and instead set up [Server Delegation via a DNS SRV record (advanced)](#server-delegation-via-a-dns-srv-record-advanced).
Otherwise, you can decide to go against the default for this playbook, and instead set up [Server Delegation via a DNS SRV record (advanced)](#server-delegation-via-a-dns-srv-record-advanced) (much more complicated).
## Server Delegation via a DNS SRV record (advanced)
**NOTE**: doing Server Delegation via a DNS SRV record is a more advanced way to do it and is not the default for this playbook.
**NOTE**: doing Server Delegation via a DNS SRV record is a more **advanced** way to do it and is not the default for this playbook. This is usually **much more complicated** to set up, so **we don't recommend it**. If you're not an experience sysadmin, you'd better stay away from this.
As per the [Server-Server spec](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), it's possible to do Server Delegation using only a SRV record (without a `/.well-known/matrix/server` file).
@ -47,7 +47,7 @@ To use DNS SRV record validation, you need to:
- ensure that you have a `_matrix._tcp` DNS SRV record for your base domain (`<your-domain>`) with a value of `10 0 8448 matrix.<your-domain>`
- ensure that you are serving the Matrix Federation API (tcp/8448) with a certificate for `<your-domain>` (not `matrix.<your-domain>`!). See below.
- ensure that you are serving the Matrix Federation API (tcp/8448) with a certificate for `<your-domain>` (not `matrix.<your-domain>`!). Getting this certificate to the `matrix.<your-domain>` server may be complicated. The playbook's automatic SSL obtaining/renewal flow will likely not work and you'll need to copy certificates around manually. See below.
### Obtaining certificates
@ -89,7 +89,7 @@ matrix_nginx_proxy_proxy_matrix_federation_api_ssl_certificate_key: /matrix/ssl/
If your files are not in `/matrix/ssl` but in some other location, you would need to mount them into the container:
```yaml
matrix_synapse_container_extra_arguments:
matrix_nginx_proxy_container_extra_arguments:
- "--mount type=bind,src=/some/path/on/the/host,dst=/some/path/inside/the/container,ro"
```

View File

@ -1,18 +1,19 @@
# Importing an existing Postgres database from another installation (optional)
Run this if you'd like to import your database from a previous installation of Synapse.
(don't forget to import your `media_store` files as well - see [the importing-media-store guide](importing-media-store.md)).
Run this if you'd like to import your database from a previous installation.
(don't forget to import your Synapse `media_store` files as well - see [the importing-synape-media-store guide](importing-synapse-media-store.md)).
## Prerequisites
For this to work, **the database name in Postgres must match** what this playbook uses.
This playbook uses a Postgres database name of `homeserver` by default (controlled by the `matrix_postgres_db_name` variable).
If your database name differs, be sure to change `matrix_postgres_db_name` to your desired name and to re-run the playbook before proceeding.
This playbook uses a Postgres database name of `synapse` by default (controlled by the `matrix_synapse_database_database` variable).
If your database name differs, be sure to change `matrix_synapse_database_database` to your desired name and to re-run the playbook before proceeding.
The playbook supports importing Postgres dump files in **text** (e.g. `pg_dump > dump.sql`) or **gzipped** formats (e.g. `pg_dump | gzip -c > dump.sql.gz`).
Importing multiple databases (as dumped by `pg_dumpall`) is also supported.
Importing multiple databases (as dumped by `pg_dumpall`) is also supported.
But the migration might be a good moment, to "reset" a not properly working bridge. Be aware, that it might affect all users (new link to bridge, new roomes, ...)
Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay).
@ -21,6 +22,81 @@ Before doing the actual import, **you need to upload your Postgres dump file to
To import, run this command (make sure to replace `<server-path-to-postgres-dump.sql>` with a file path on your server):
ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_postgres_dump=<server-path-to-postgres-dump.sql>' --tags=import-postgres
```sh
ansible-playbook -i inventory/hosts setup.yml \
--extra-vars='server_path_postgres_dump=<server-path-to-postgres-dump.sql>' \
--tags=import-postgres
```
**Note**: `<server-path-to-postgres-dump.sql>` must be a file path to a Postgres dump file on the server (not on your local machine!).
## Troubleshooting
### Table Ownership
A table ownership issue can occur if you are importing from a Synapse installation which was both:
- migrated from SQLite to Postgres, and
- used a username other than 'synapse'
In this case you may run into the following error during the import task:
```
"ERROR: role \"synapse_user\" does not exist"
```
where `synapse_user` is the database username from the previous Synapse installation.
This can be verified by examining the dump for ALTER TABLE statements which set OWNER TO that username:
```Shell
$ grep "ALTER TABLE" homeserver.sql
ALTER TABLE public.access_tokens OWNER TO synapse_user;
ALTER TABLE public.account_data OWNER TO synapse_user;
ALTER TABLE public.account_data_max_stream_id OWNER TO synapse_user;
ALTER TABLE public.account_validity OWNER TO synapse_user;
ALTER TABLE public.application_services_state OWNER TO synapse_user;
...
```
It can be worked around by changing the username to `synapse`, for example by using `sed`:
```Shell
$ sed -i "s/OWNER TO synapse_user;/OWNER TO synapse;/g" homeserver.sql
```
This uses sed to perform an 'in-place' (`-i`) replacement globally (`/g`), searching for `synapse_user` and replacing with `synapse` (`s/synapse_user/synapse`). If your database username was different, change `synapse_user` to that username instead. Expand search/replace statement as shown in example above, in case of old user name like `matrix` - replacing `matrix` only would... well - you can imagine.
Note that if the previous import failed with an error it may have made changes which are incompatible with re-running the import task right away; if you do so it may fail with an error such as:
```
ERROR: relation \"access_tokens\" already exists
```
### Repeat import
In this case you can use the command suggested in the import task to clear the database before retrying the import:
```Shell
# systemctl stop matrix-postgres
# rm -rf /matrix/postgres/data/*
# systemctl start matrix-postgres
```
Now on your local machine run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-postgres` to prepare the database roles etc.
If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database.
```
"ERROR: role synapse does not exist"
```
Once the database is clear and the ownership of the tables has been fixed in the SQL file, the import task should succeed.
Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)
```
/usr/bin/env docker run --rm --name matrix-postgres-import --log-driver=none --user=998:1001 --cap-drop=ALL --network=matrix --env-file=/matrix/postgres/env-postgres-psql --mount type=bind,src=/migration/synapse_dump.sql,dst=/synapse_dump.sql,ro --entrypoint=/bin/sh docker.io/postgres:14.1-alpine -c "cat /synapse_dump.sql | grep -vE '^(CREATE|ALTER) ROLE (matrix)(;| WITH)' | grep -vE '^CREATE DATABASE (matrix)\s' | psql -v ON_ERROR_STOP=1 -h matrix-postgres --dbname=synapse"
```
### Hints
To open psql terminal run `/usr/local/bin/matrix-postgres-cli`

View File

@ -1,4 +1,4 @@
# Importing `media_store` data files from an existing installation (optional)
# Importing `media_store` data files from an existing Synapse installation (optional)
Run this if you'd like to import your `media_store` files from a previous installation of Synapse.
@ -17,6 +17,6 @@ As an alternative, you can perform a manual restore using the [AWS CLI tool](htt
Run this command (make sure to replace `<server-path-to-media_store>` with a path on your server):
ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_media_store=<server-path-to-media_store>' --tags=import-media-store
ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_media_store=<server-path-to-media_store>' --tags=import-synapse-media-store
**Note**: `<server-path-to-media_store>` must be a file path to a `media_store` directory on the server (not on your local machine!).

View File

@ -1,7 +1,7 @@
# Importing an existing SQLite database from another installation (optional)
# Importing an existing SQLite database from another Synapse installation (optional)
Run this if you'd like to import your database from a previous default installation of Synapse.
(don't forget to import your `media_store` files as well - see [the importing-media-store guide](importing-media-store.md)).
(don't forget to import your `media_store` files as well - see [the importing-synapse-media-store guide](importing-synapse-media-store.md)).
While this playbook always sets up PostgreSQL, by default a Synapse installation would run
using an SQLite database.
@ -18,6 +18,9 @@ Before doing the actual import, **you need to upload your SQLite database file t
Run this command (make sure to replace `<server-path-to-homeserver.db>` with a file path on your server):
ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_homeserver_db=<server-path-to-homeserver.db>' --tags=import-sqlite-db
ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_homeserver_db=<server-path-to-homeserver.db>' --tags=import-synapse-sqlite-db
**Note**: `<server-path-to-homeserver.db>` must be a file path to a `homeserver.db` file on the server (not on your local machine!).
**Notes**:
- `<server-path-to-homeserver.db>` must be a file path to a `homeserver.db` **file on the server** (not on your local machine!).
- if the SQLite database is from an older version of Synapse, the **importing procedure may run migrations on it to bring it up to date**. That is, your SQLite database file may get modified and become unusable with your older Synapse version. Keeping a copy of the original is probably wise.

View File

@ -1,46 +1,56 @@
# Installing
## 1. Installing the Matrix services
If you've [configured your DNS](configuring-dns.md) and have [configured the playbook](configuring-playbook.md), you can start the installation procedure.
Run this as-is to set up a server:
Run this command to install the Matrix services:
```bash
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all
```
**Note**: if you don't use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the above (and all other) Ansible commands.
The above command **doesn't start any services just yet** (another step does this later - below). Feel free to **re-run this setup command any time** you think something is off with the server configuration.
**Note**: if you **do** use SSH keys for authentication, **and** use a non-root user to *become* root (sudo), you may need to add `-K` (`--ask-become-pass`) to the above (and all other) Ansible commands.
The above command **doesn't start any services just yet** (another step does this later - below).
Feel free to **re-run this setup command any time** you think something is off with the server configuration.
**Notes**:
- if you **don't** use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the above (and all other) Ansible commands.
- if you **do** use SSH keys for authentication, **and** use a non-root user to *become* root (sudo), you may need to add `-K` (`--ask-become-pass`) to the above (and all other) Ansible commands.
## Things you might want to do after installing
## 2. Things you might want to do after installing
After installing, but before starting the services, you may want to do additional things like:
**Before starting the services**, you may want to do additional things like:
- [Importing an existing SQLite database (from another installation)](importing-sqlite.md) (optional)
- [Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)
- [Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)
- [Importing `media_store` data files from an existing installation](importing-media-store.md) (optional)
- [Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)
## Starting the services
## 3. Starting the services
When you're ready to start the Matrix services (and set them up to auto-start in the future):
When you're ready to start the Matrix services (and set them up to auto-start in the future), run this command:
```bash
ansible-playbook -i inventory/hosts setup.yml --tags=start
```
Now that the services are running, you might want to:
## 4. Finalize the installation
- **finalize the installation process** (required for federation to work!) by [Configuring Service Discovery via .well-known](configuring-well-known.md)
- or [create your first user account](registering-users.md)
- or [set up the Dimension Integrations Manager](configuring-playbook-dimension.md)
- or [check if services work](maintenance-checking-services.md)
- or learn how to [upgrade your services when new versions are released](maintenance-upgrading-services.md)
- or learn how to [migrate to another server](maintenance-migrating.md)
Now that services are running, you need to **finalize the installation process** (required for federation to work!) by [Configuring Service Discovery via .well-known](configuring-well-known.md).
## 5. Things to do next
After you have started the services and **finalized the installation process** (required for federation to work!) by [Configuring Service Discovery via .well-known](configuring-well-known.md), you can:
- [check if services work](maintenance-checking-services.md)
- or [create your first Matrix user account](registering-users.md)
- or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.)
- or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)
- or learn how to [maintain your server](faq.md#maintenance)
- or join some Matrix rooms:
* via the *Explore rooms* feature in Element or some other client, or by discovering them using this [matrix-static list](https://view.matrix.org). Note: joining large rooms may overload small servers.
* or come say Hi in our support room - [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting.
- or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))

View File

@ -33,6 +33,12 @@ matrix_synapse_root_log_level: "INFO"
Re-run the playbook after making these configuration changes.
## Remove unused Docker data
You can free some disk space from Docker, see [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) for more information.
```bash
ansible-playbook -i inventory/hosts setup.yml --tags=run-docker-prune
```
## Postgres

View File

@ -1,6 +1,10 @@
> **Note**: This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`).
>
> If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is not possible as it would move the raw PostgreSQL data between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore.
# Migrating to new server
1. Prepare by lowering DNS TTL for your domains (`matrix.DOMAIN`, etc.), so that DNS record changes (step 4 below) would happen faster, leading ot less downtime
1. Prepare by lowering DNS TTL for your domains (`matrix.DOMAIN`, etc.), so that DNS record changes (step 4 below) would happen faster, leading to less downtime
2. Stop all services on the old server and make sure they won't be starting again. Execute this on the old server: `systemctl disable --now matrix*`
3. Copy directory `/matrix` from the old server to the new server. Make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)!
4. Make sure your DNS records are adjusted to point to the new server's IP address

View File

@ -12,6 +12,7 @@ Table of contents:
- [Upgrading PostgreSQL](#upgrading-postgresql), for upgrading to new major versions of PostgreSQL. Such **manual upgrades are sometimes required**.
- [Tuning PostgreSQL](#tuning-postgresql) to make it run faster
## Getting a database terminal
@ -19,9 +20,22 @@ You can use the `/usr/local/bin/matrix-postgres-cli` tool to get interactive ter
If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above tool will not be available.
By default, this tool puts you in the `matrix` database, which contains nothing.
To see the available databases, run `\list` (or just `\l`).
To change to another database (for example `synapse`), run `\connect synapse` (or just `\c synapse`).
You can then proceed to write queries. Example: `SELECT COUNT(*) FROM users;`
**Be careful**. Modifying the database directly (especially as services are running) is dangerous and may lead to irreversible database corruption.
When in doubt, consider [making a backup](#backing-up-postgresql).
## Vacuuming PostgreSQL
Deleting lots data from Postgres does not make it release disk space, until you perform a `VACUUM` operation.
To perform a `FULL` Postgres [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html), run the playbook with `--tags=run-postgres-vacuum`.
Example:
@ -35,20 +49,20 @@ ansible-playbook -i inventory/hosts setup.yml --tags=run-postgres-vacuum,start
## Backing up PostgreSQL
To make a back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:
To automatically make Postgres database backups on a fixed schedule, see [Setting up postgres backup](configuring-playbook-postgres-backup.md).
To make a one off back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:
```bash
docker run \
--rm \
--network=matrix \
/usr/bin/docker exec \
--env-file=/matrix/postgres/env-postgres-psql \
postgres:12.1-alpine \
pg_dumpall -h matrix-postgres \
matrix-postgres \
/usr/local/bin/pg_dumpall -h matrix-postgres \
| gzip -c \
> /postgres.sql.gz
> /matrix/postgres.sql.gz
```
If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because the credentials file (`/matrix/postgres/env-postgres-psql`) is not available.
If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because neither the credentials file (`/matrix/postgres/env-postgres-psql`), nor the `matrix-postgres` container is available.
Restoring a backup made this way can be done by [importing it](importing-postgres.md).
@ -66,7 +80,7 @@ This playbook can upgrade your existing Postgres setup with the following comman
ansible-playbook -i inventory/hosts setup.yml --tags=upgrade-postgres
**The old Postgres data directory is backed up** automatically, by renaming it to `/matrix/postgres-auto-upgrade-backup`.
**The old Postgres data directory is backed up** automatically, by renaming it to `/matrix/postgres/data-auto-upgrade-backup`.
To rename to a different path, pass some extra flags to the command above, like this: `--extra-vars="postgres_auto_upgrade_backup_data_path=/another/disk/matrix-postgres-before-upgrade"`
The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**.
@ -79,3 +93,67 @@ If you have plenty of space in `/tmp` and would rather avoid gzipping, you can e
Example: `--extra-vars="postgres_dump_name=matrix-postgres-dump.sql"`
**All databases, roles, etc. on the Postgres server are migrated**.
## Tuning PostgreSQL
PostgreSQL can be tuned to make it run faster. This is done by passing extra arguments to Postgres with the `matrix_postgres_process_extra_arguments` variable. You should use a website like https://pgtune.leopard.in.ua/ or information from https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server to determine what Postgres settings you should change.
**Note**: the configuration generator at https://pgtune.leopard.in.ua/ adds spaces around the `=` sign, which is invalid. You'll need to remove it manually (`max_connections = 300` -> `max_connections=300`)
### Here are some examples:
These are not recommended values and they may not work well for you. This is just to give you an idea of some of the options that can be set. If you are an experienced PostgreSQL admin feel free to update this documentation with better examples.
Here is an example config for a small 2 core server with 4GB of RAM and SSD storage:
```
matrix_postgres_process_extra_arguments: [
"-c shared_buffers=128MB",
"-c effective_cache_size=2304MB",
"-c effective_io_concurrency=100",
"-c random_page_cost=2.0",
"-c min_wal_size=500MB",
]
```
Here is an example config for a 4 core server with 8GB of RAM on a Virtual Private Server (VPS); the paramters have been configured using https://pgtune.leopard.in.ua with the following setup: PostgreSQL version 12, OS Type: Linux, DB Type: Mixed type of application, Data Storage: SSD storage:
```
matrix_postgres_process_extra_arguments: [
"-c max_connections=100",
"-c shared_buffers=2GB",
"-c effective_cache_size=6GB",
"-c maintenance_work_mem=512MB",
"-c checkpoint_completion_target=0.9",
"-c wal_buffers=16MB",
"-c default_statistics_target=100",
"-c random_page_cost=1.1",
"-c effective_io_concurrency=200",
"-c work_mem=5242kB",
"-c min_wal_size=1GB",
"-c max_wal_size=4GB",
"-c max_worker_processes=4",
"-c max_parallel_workers_per_gather=2",
"-c max_parallel_workers=4",
"-c max_parallel_maintenance_workers=2",
]
```
Here is an example config for a large 6 core server with 24GB of RAM:
```
matrix_postgres_process_extra_arguments: [
"-c max_connections=40",
"-c shared_buffers=1536MB",
"-c checkpoint_completion_target=0.7",
"-c wal_buffers=16MB",
"-c default_statistics_target=100",
"-c random_page_cost=1.1",
"-c effective_io_concurrency=100",
"-c work_mem=2621kB",
"-c min_wal_size=1GB",
"-c max_wal_size=4GB",
"-c max_worker_processes=6",
"-c max_parallel_workers_per_gather=3",
"-c max_parallel_workers=6",
"-c max_parallel_maintenance_workers=3",
]
```

View File

@ -4,59 +4,19 @@ This document shows you how to perform various maintenance tasks related to the
Table of contents:
- [Purging unused data with synapse-janitor](#purging-unused-data-with-synapse-janitor), for when you wish to delete unused data from the Synapse database
- [Purging old data with the Purge History API](#purging-old-data-with-the-purge-history-api), for when you wish to delete in-use (but old) data from the Synapse database
- [Synapse maintenance](#synapse-maintenance)
- [Purging unused data with synapse-janitor](#purging-unused-data-with-synapse-janitor)
- [Vacuuming Postgres](#vacuuming-postgres)
- [Purging old data with the Purge History API](#purging-old-data-with-the-purge-history-api)
- [Compressing state with rust-synapse-compress-state](#compressing-state-with-rust-synapse-compress-state)
- [Compressing state with rust-synapse-compress-state](#compressing-state-with-rust-synapse-compress-state)
- [Browse and manipulate the database](#browse-and-manipulate-the-database), for when you really need to take matters into your own hands
## Purging unused data with synapse-janitor
**NOTE**: There are [reports](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/465) that **synapse-janitor is dangerous to use and causes database corruption**. You may wish to refrain from using it.
When you **leave** and **forget** a room, Synapse can clean up its data, but currently doesn't.
This **unused and unreachable data** remains in your database forever.
There are external tools (like [synapse-janitor](https://github.com/xwiki-labs/synapse_scripts)), which are meant to solve this problem.
To ask the playbook to run synapse-janitor, execute:
```bash
ansible-playbook -i inventory/hosts setup.yml --tags=run-postgres-synapse-janitor,start
```
**Note**: this will automatically stop Synapse temporarily and restart it later.
### Vacuuming Postgres
Running synapse-janitor potentially deletes a lot of data from the Postgres database.
However, disk space only ever gets released after a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql).
It's easiest if you ask the playbook to run both synapse-janitor and a `VACUUM FULL` in one call:
```bash
ansible-playbook -i inventory/hosts setup.yml --tags=run-postgres-synapse-janitor,run-postgres-vacuum,start
```
**Note**: this will automatically stop Synapse temporarily and restart it later. You'll also need plenty of available disk space in your Postgres data directory (usually `/matrix/postgres/data`).
- [Make Synapse faster](#make-synapse-faster)
## Purging old data with the Purge History API
If [purging unused and unreachable data](#purging-unused-data-with-synapse-janitor) is not enough for you, you can start deleting in-use (but old) data.
You can use the **[Purge History API](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/purge_history_api.md)** to delete old messages on a per-room basis. **This is destructive** (especially for non-federated rooms), because it means **people will no longer have access to history past a certain point**.
**This is destructive** (especially for non-federated rooms), because it means **people will no longer have access to history past a certain point**.
Synapse provides a [Purge History API](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/purge_history_api.rst) that you can use to purge on a per-room basis.
To make use of this API, **you'll need an admin access token** first. You can find your access token in the setting of some clients (like riot-web).
To make use of this API, **you'll need an admin access token** first. You can find your access token in the setting of some clients (like Element).
Alternatively, you can log in and obtain a new access token like this:
```
@ -65,22 +25,37 @@ curl \
https://matrix.DOMAIN/_matrix/client/r0/login
```
Follow the [Purge History API](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/purge_history_api.rst) documentation page for the actual purging instructions.
Synapse's Admin API is not exposed to the internet by default. To expose it you will need to add `matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true` to your `vars.yml` file.
Don't forget that disk space only ever gets released after a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql) - something the playbook can help you with.
Follow the [Purge History API](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/purge_history_api.md) documentation page for the actual purging instructions.
After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql).
## Compressing state with rust-synapse-compress-state
[rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse.
[rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse. If your server participates in large rooms this is the most effective way to reduce the size of your database.
Unfortunately, at this time the playbook can't help you run this **experimental tool**.
This tool should be safe to use (even when Synapse is running), but it's always a good idea to [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first.
To ask the playbook to run rust-synapse-compress-state, execute:
```
ansible-playbook -i inventory/hosts setup.yml --tags=rust-synapse-compress-state
```
By default, all rooms with more than `100000` state group rows will be compressed.
If you need to adjust this, pass: `--extra-vars='matrix_synapse_rust_synapse_compress_state_min_state_groups_required=SOME_NUMBER_HERE'` to the command above.
After state compression, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql).
Since it's also experimental, you may wish to stay away from it, or at least [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first.
## Browse and manipulate the database
When the [matrix admin API](https://github.com/matrix-org/synapse/tree/master/docs/admin_api) and the other tools do not provide a more convenient way, having a look at synapse's postgresql database can satisfy a lot of admins' needs.
When the [Synapse Admin API](https://github.com/matrix-org/synapse/tree/master/docs/admin_api) and the other tools do not provide a more convenient way, having a look at synapse's postgresql database can satisfy a lot of admins' needs.
Editing the database manually is not recommended or supported by the Synapse developers. If you are going to do so you should [make a database backup](./maintenance-postgres.md#backing-up-postgresql).
First, set up an SSH tunnel to your matrix server (skip if it is your local machine):
```
@ -97,3 +72,13 @@ docker run --rm --publish 1799:8080 --link matrix-postgres --net matrix adminer
You should then be able to browse the adminer database administration GUI at http://localhost:1799/ after entering your DB credentials (found in the `host_vars` or on the server in `{{matrix_synapse_config_dir_path}}/homeserver.yaml` under `database.args`)
⚠️ Be **very careful** with this, there is **no undo** for impromptu DB operations.
## Make Synapse faster
Synapse's presence feature which tracks which users are online and which are offline can use a lot of processing power. You can disable presence by adding `matrix_synapse_presence_enabled: false` to your `vars.yml` file.
Tuning Synapse's cache factor can help reduce RAM usage. [See the upstream documentation](https://github.com/matrix-org/synapse#help-synapse-is-slow-and-eats-all-my-ram-cpu) for more information on what value to set the cache factor to. Use the variable `matrix_synapse_caches_global_factor` to set the cache factor.
Tuning your PostgreSQL database will also make Synapse run significantly faster. See [maintenance-postgres.md##tuning-postgresql](maintenance-postgres.md##tuning-postgresql).
See also [How do I optimize this setup for a low-power server?](faq.md#how-do-i-optimize-this-setup-for-a-low-power-server).

View File

@ -1,21 +1,41 @@
# Prerequisites
- An x86 server running **CentOS** (7 only for now; [8 is not yet supported](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/300)), **Debian** (9/Stretch+), **Ubuntu** (16.04+), or **Archlinux**. This playbook doesn't support running on ARM ([see](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/299)), however a minimal subset of the tools can be built on the host, which may result in a working configuration, even on a Raspberry pi (see [Alternative Architectures](alternative-architectures.md)). We only strive to support released stable versions of distributions, not betas or pre-releases. This playbook can take over your whole server or co-exist with other services that you have there.
To install Matrix services using this Ansible playbook, you need:
- (Recommended) An **x86** server ([What kind of server specs do I need?](faq.md#what-kind-of-server-specs-do-i-need)) running one of these operating systems:
- **CentOS** (7 only for now; [8 is not yet supported](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/300))
- **Debian** (10/Buster or newer)
- **Ubuntu** (18.04 or newer, although [20.04 may be problematic](ansible.md#supported-ansible-versions))
- **Archlinux**
Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. This playbook can take over your whole server or co-exist with other services that you have there.
This playbook somewhat supports running on non-`amd64` architectures like ARM. See [Alternative Architectures](alternative-architectures.md).
If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container.
- `root` access to your server (or a user capable of elevating to `root` via `sudo`).
- [Python](https://www.python.org/) being installed on the server. Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python`).
- A `cron`-like tool installed on the server such as `cron` or `anacron` to automatically schedule the Let's Encrypt SSL certificates's renewal. *This can be ignored if you use your own SSL certificates.*
- [Python](https://www.python.org/) being installed on the server. Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python3`). On some distros, Ansible may incorrectly [detect the Python version](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) (2 vs 3) and you may need to explicitly specify the interpreter path in `inventory/hosts` during installation (e.g. `ansible_python_interpreter=/usr/bin/python3`)
- The [Ansible](http://ansible.com/) program being installed on your own computer. It's used to run this playbook and configures your server for you. Take a look at [our guide about Ansible](ansible.md) for more information, as well as [version requirements](ansible.md#supported-ansible-versions) and alternative ways to run Ansible.
- Either the `dig` tool or `python-dns` installed on your own computer. Used later on, by the playbook's [services check](maintenance-checking-services.md) feature.
- [`git`](https://git-scm.com/) is the recommended way to download the playbook to your computer. `git` may also be required on the server if you will be [self-building](self-building.md) components.
- An HTTPS-capable web server at the base domain name (`<your-domain>`) which is capable of serving static files. Unless you decide to [Serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md) or alternatively, to use DNS SRV records for [Server Delegation](howto-server-delegation.md).
- Properly configured DNS records for `<your-domain>` (details in [Configuring DNS](configuring-dns.md)).
- Some TCP/UDP ports open. This playbook configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports: `80/tcp` (HTTP webserver), `443/tcp` (HTTPS webserver), `3478/tcp` (TURN over TCP), `3478/udp` (TURN over UDP), `5349/tcp` (TURN over TCP), `5349/udp` (TURN over UDP), `8448/tcp` (Matrix Federation API HTTPS webserver), the range `49152-49172/udp` (TURN over UDP), `4443/tcp` (Jitsi Harvester fallback), `10000/udp` (Jitsi video RTP). Depending on your firewall/NAT setup, incoming RTP packets on port 10000 may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`matrix_jitsi_jvb_stun_servers`](../roles/matrix-jitsi/defaults/main.yml)).
- Some TCP/UDP ports open. This playbook configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports:
- `80/tcp`: HTTP webserver
- `443/tcp`: HTTPS webserver
- `3478/tcp`: TURN over TCP (used by Coturn)
- `3478/udp`: TURN over UDP (used by Coturn)
- `5349/tcp`: TURN over TCP (used by Coturn)
- `5349/udp`: TURN over UDP (used by Coturn)
- `8448/tcp`: Matrix Federation API HTTPS webserver. In some cases, this **may necessary even with federation disabled**. Integration Servers (like Dimension) and Identity Servers (like ma1sd) may need to access `openid` APIs on the federation port.
- the range `49152-49172/udp`: TURN over UDP
- potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that.
When ready to proceed, continue with [Configuring DNS](configuring-dns.md).

View File

@ -1,6 +1,18 @@
# Registering users
Run this to create a new user account on your Matrix server.
This documentation page tells you how to create user account on your Matrix server.
Table of contents:
- [Registering users](#registering-users)
- [Registering users manually](#registering-users-manually)
- [Managing users via a Web UI](#managing-users-via-a-web-ui)
- [Letting certain users register on your private server](#letting-certain-users-register-on-your-private-server)
- [Enabling public user registration](#enabling-public-user-registration)
- [Adding/Removing Administrator privileges to an existing user](#addingremoving-administrator-privileges-to-an-existing-user)
## Registering users manually
You can do it via this Ansible playbook (make sure to edit the `<your-username>` and `<your-password>` part below):
@ -16,16 +28,37 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=<your-usern
**Note**: `<your-username>` is just a plain username (like `john`), not your full `@<username>:<your-domain>` identifier.
**You can then log in with that user** via the riot-web service that this playbook has created for you at a URL like this: `https://riot.<domain>/`.
**You can then log in with that user** via the Element service that this playbook has created for you at a URL like this: `https://element.<domain>/`.
-----
If you've just installed Matrix, **to finalize the installation process**, it's best if you proceed to [Configuring service discovery via .well-known](configuring-well-known.md)
-----
## Managing users via a Web UI
To manage users more easily (via a web user-interace), you can install [Synapse Admin](configuring-playbook-synapse-admin.md).
## Adding/Removing Administrator privileges to an existing user.
## Letting certain users register on your private server
If you'd rather **keep your server private** (public registration closed, as is the default), and **let certain people create accounts by themselves** (instead of creating user accounts manually like this), consider installing and making use of [matrix-registration](configuring-playbook-matrix-registration.md).
## Enabling public user registration
To **open up user registration publicly** (usually **not recommended**), consider using the following configuration:
```yaml
matrix_synapse_enable_registration: true
```
and running the [installation](installing.md) procedure once again.
If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md).
## Adding/Removing Administrator privileges to an existing user
The script `/usr/local/bin/matrix-change-user-admin-status` may be used to change a user's admin privileges.

View File

@ -2,22 +2,44 @@
**Caution: self-building does not have to be used on its own. See the [Alternative Architectures](alternative-architectures.md) page.**
The playbook supports the self-building of some of its components. This may be useful for architectures besides x86_64, which have no Docker images right now (e g. the armv7 for the Raspberry Pi). Some playbook roles have been updated, so they build the necessary image on the host. It needs more space, as some build tools need to be present (like Java, for ma1sd).
The playbook supports self-building of various components, which don't have a container image for your architecture (see the [container images we use](container-images.md)). For `amd64`, self-building is not required.
To use these modification there is a variable that needs to be switched to enable this functionality. Add this to your `vars.yaml` file:
```yaml
matrix_container_images_self_build: true
```
Setting that variable will self-build every role which supports self-building. Self-building can be set on a per-role basis as well.
For other architectures (e.g. `arm32`, `arm64`), ready-made container images are used when available. If there's no ready-made image for a specific component and said component supports self-building, an image will be built on the host. Building images like this takes more time and resources (some build tools need to get installed by the playbook to assist building).
To make use of self-building, you don't need to do anything besides change your architecture variable (e.g. `matrix_architecture: arm64`). If a component has an image for the specified architecture, the playbook will use it directly. If not, it will build the image on the server itself.
Note that **not all components support self-building yet**.
List of roles where self-building the Docker image is currently possible:
- `matrix-synapse`
- `matrix-riot-web`
- `matrix-synapse-admin`
- `matrix-client-element`
- `matrix-client-hydrogen`
- `matrix-client-cinny`
- `matrix-registration`
- `matrix-coturn`
- `matrix-corporal`
- `matrix-dimension`
- `matrix-ma1sd`
- `matrix-mailer`
- `matrix-mautrix-facebook`
- `matrix-mautrix-hangouts`
- `matrix-mx-puppet-skype`
- `matrix-bridge-hookshot`
- `matrix-bridge-appservice-irc`
- `matrix-bridge-appservice-slack`
- `matrix-bridge-appservice-webhooks`
- `matrix-bridge-beeper-linkedin`
- `matrix-bridge-mautrix-facebook`
- `matrix-bridge-mautrix-hangouts`
- `matrix-bridge-mautrix-googlechat`
- `matrix-bridge-mautrix-telegram`
- `matrix-bridge-mautrix-signal`
- `matrix-bridge-mautrix-whatsapp`
- `matrix-bridge-mx-puppet-skype`
- `matrix-bridge-mx-puppet-steam`
- `matrix-bot-mjolnir`
- `matrix-bot-honoroit`
- `matrix-bot-matrix-reminder-bot`
- `matrix-email2matrix`
Adding self-building support to other roles is welcome. Feel free to contribute!
If you'd like **to force self-building** even if an image is available for your architecture, look into the `matrix_*_self_build` variables provided by individual roles.

View File

@ -1,24 +1,38 @@
# Uninstalling
**Note**: If you have some trouble with your installation configuration, you can just [re-run the playbook](installing.md) and it will try to set things up again. You don't need to uninstall and install fresh.
**Warnings**:
However, if you've installed this on some server where you have other stuff you wish to preserve, and now want get rid of Matrix, it's enough to do these:
- If your server federates with others, make sure to **leave any federated rooms before nuking your Matrix server's data**. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating.
- ensure all Matrix services are stopped (`systemctl stop 'matrix*'`)
- If you have some trouble with your installation, you can just [re-run the playbook](installing.md) and it will try to set things up again. **Uninstalling and then installing anew rarely solves anything**.
- delete the Matrix-related systemd .service files (`rm -f /etc/systemd/system/matrix*`) and reload systemd (`systemctl daemon-reload`)
- delete all Matrix-related cronjobs (`rm -f /etc/cron.d/matrix*`)
-----------------
## Uninstalling using a script
Installing places a `/usr/local/bin/matrix-remove-all` script on the server.
You can run it to to have it uninstall things for you automatically (see below). **Use with caution!**
## Uninstalling manually
If you prefer to uninstall manually, run these commands (most are meant to be executed on the Matrix server itself):
- ensure all Matrix services are stopped: `ansible-playbook -i inventory/hosts setup.yml --tags=stop` (if you can't get Ansible working to run this command, you can run `systemctl stop 'matrix*'` manually on the server)
- delete the Matrix-related systemd `.service` and `.timer` files (`rm -f /etc/systemd/system/matrix*.{service,timer}`) and reload systemd (`systemctl daemon-reload`)
- delete some helper scripts (`rm -f /usr/local/bin/matrix*`)
- delete some cached Docker images (or just delete them all: `docker rmi $(docker images -aq)`)
- delete some cached Docker images (`docker system prune -a`) or just delete them all (`docker rmi $(docker images -aq)`)
- delete the Docker network: `docker network rm matrix`
- delete the Docker networks: `docker network rm matrix matrix-coturn` (might have been deleted already if you ran the `docker system prune` command)
- uninstall Docker itself, if necessary
- delete the `/matrix` directory (`rm -rf /matrix`)
The script `/usr/local/bin/matrix-remove-all` performs all these steps (**use with caution!**).

View File

@ -10,7 +10,7 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=<your-usern
**Note**: `<your-username>` is just a plain username (like `john`), not your full `@<username>:<your-domain>` identifier.
**You can then log in with that user** via the riot-web service that this playbook has created for you at a URL like this: `https://riot.<domain>/`.
**You can then log in with that user** via the Element service that this playbook has created for you at a URL like this: `https://element.<domain>/`.
## Option 2 (if you are using an external Postgres server):
@ -26,7 +26,7 @@ and then connecting to the postgres server and executing:
```
UPDATE users SET password_hash = '<password-hash>' WHERE name = '@someone:server.com'
```
`
where `<password-hash>` is the hash returned by the docker command above.
@ -34,9 +34,9 @@ where `<password-hash>` is the hash returned by the docker command above.
Use the Synapse User Admin API as described here: https://github.com/matrix-org/synapse/blob/master/docs/admin_api/user_admin_api.rst#reset-password
This requires an access token from a server admin account. *This method will also log the user out of all of their clients while the other options do not.*
This requires an access token from a server admin account. *This method will also log the user out of all of their clients while the other options do not.*
If you didn't make your account a server admin when you created it, you can use the `/usr/local/bin/matrix-change-user-admin-status` script as described in [registering-users.md](registering-users.md).
If you didn't make your account a server admin when you created it, you can use the `/usr/local/bin/matrix-change-user-admin-status` script as described in [registering-users.md](registering-users.md).
### Example:
To set @user:domain.com's password to `correct_horse_battery_staple` you could use this curl command:

View File

@ -1,8 +1,8 @@
# This is a sample file demonstrating how to set up reverse-proxy for riot.DOMAIN.
# If you're not using Riot (`matrix_riot_web_enabled: false`), you won't need this.
# This is a sample file demonstrating how to set up reverse-proxy for element.DOMAIN.
# If you're not using Element (`matrix_client_element_enabled: false`), you won't need this.
<VirtualHost *:80>
ServerName riot.DOMAIN
ServerName element.DOMAIN
ProxyVia On
@ -13,17 +13,17 @@
ProxyPass http://127.0.0.1:2402/.well-known/acme-challenge
</Location>
Redirect permanent / https://riot.DOMAIN/
Redirect permanent / https://element.DOMAIN/
</VirtualHost>
<VirtualHost *:443>
ServerName riot.DOMAIN
ServerName element.DOMAIN
SSLEngine On
# If you manage SSL certificates by yourself, these paths will differ.
SSLCertificateFile /matrix/ssl/config/live/riot.DOMAIN/fullchain.pem
SSLCertificateKeyFile /matrix/ssl/config/live/riot.DOMAIN/privkey.pem
SSLCertificateFile /matrix/ssl/config/live/element.DOMAIN/fullchain.pem
SSLCertificateKeyFile /matrix/ssl/config/live/element.DOMAIN/privkey.pem
SSLProxyEngine on
SSLProxyProtocol +TLSv1.2 +TLSv1.3
@ -36,6 +36,6 @@
ProxyPass / http://127.0.0.1:8765/
ProxyPassReverse / http://127.0.0.1:8765/
ErrorLog ${APACHE_LOG_DIR}/riot.DOMAIN-error.log
CustomLog ${APACHE_LOG_DIR}/riot.DOMAIN-access.log combined
ErrorLog ${APACHE_LOG_DIR}/element.DOMAIN-error.log
CustomLog ${APACHE_LOG_DIR}/element.DOMAIN-access.log combined
</VirtualHost>

View File

@ -32,6 +32,7 @@
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
# Keep some URIs free for different proxy/location
ProxyPassMatch ^/.well-known/matrix/client !
@ -43,6 +44,16 @@
AllowEncodedSlashes NoDecode
ProxyPass /_matrix http://127.0.0.1:8008/_matrix retry=0 nocanon
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
ProxyPass /_synapse/client http://127.0.0.1:8008/_synapse/client retry=0 nocanon
ProxyPassReverse /_synapse/client http://127.0.0.1:8008/_synapse/client
# Proxy Admin API (necessary for Synapse-Admin)
# ProxyPass /_synapse/admin http://127.0.0.1:8008/_synapse/admin retry=0 nocanon
# ProxyPassReverse /_synapse/admin http://127.0.0.1:8008/_synapse/admin
# Proxy Synapse-Admin
# ProxyPass /synapse-admin http://127.0.0.1:8766 retry=0 nocanon
# ProxyPassReverse /synapse-admin http://127.0.0.1:8766
# Map /.well-known/matrix/client for client discovery
Alias /.well-known/matrix/client /matrix/static-files/.well-known/matrix/client
@ -109,6 +120,7 @@ Listen 8448
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
# Proxy all remaining traffic to the Synapse port
# Beware: In this example the local traffic goes to the local synapse server at 127.0.0.1

View File

@ -0,0 +1,8 @@
https://element.DOMAIN {
# These might differ if you are supplying your own certificates
tls /matrix/ssl/config/live/element.DOMAIN/fullchain.pem /matrix/ssl/config/live/element.DOMAIN/privkey.pem
proxy / http://127.0.0.1:8765 {
transparent
}
}

View File

@ -1,8 +0,0 @@
https://riot.DOMAIN {
# These might differ if you are supplying your own certificates
tls /matrix/ssl/config/live/riot.DOMAIN/fullchain.pem /matrix/ssl/config/live/riot.DOMAIN/privkey.pem
proxy / http://127.0.0.1:8765 {
transparent
}
}

View File

@ -5,7 +5,7 @@ https://matrix.DOMAIN {
root /matrix/static-files
header {
header / {
Access-Control-Allow-Origin *
Strict-Transport-Security "mag=age=31536000;"
X-Frame-Options "DENY"
@ -13,17 +13,19 @@ https://matrix.DOMAIN {
}
# Identity server traffic
proxy /_matrix/identity matrix-msisd:8090 {
proxy /_matrix/identity matrix-ma1sd:8090 {
transparent
}
proxy /_matrix/client/r0/user_directory/search matrix-msisd:8090 {
proxy /_matrix/client/r0/user_directory/search matrix-ma1sd:8090 {
transparent
}
# Synapse Client<>Server API
proxy / matrix-synapse:8008 {
proxy /_matrix matrix-synapse:8008 {
transparent
except /_matrix/identity/ /_matrix/client/r0/user_directory/search
}
proxy /_synapse/client matrix-synapse:8008 {
transparent
except /.well-known/ /_matrix/identity/ /_matrix/client/r0/user_directory/search
}
}

234
examples/caddy2/Caddyfile Normal file
View File

@ -0,0 +1,234 @@
matrix.DOMAIN.tld {
# creates letsencrypt certificate
# tls your@email.com
@identity {
path /_matrix/identity/*
}
@noidentity {
not path /_matrix/identity/*
}
@search {
path /_matrix/client/r0/user_directory/search/*
}
@nosearch {
not path /_matrix/client/r0/user_directory/search/*
}
@static {
path /matrix/static-files/*
}
@nostatic {
not path /matrix/static-files/*
}
@wellknown {
path /.well-known/matrix/*
}
header {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection "1; mode=block"
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options "nosniff"
# Disallow the site to be rendered within a frame (clickjacking protection)
X-Frame-Options "DENY"
# X-Robots-Tag
X-Robots-Tag "noindex, noarchive, nofollow"
}
# Cache
header @static {
# Cache
Cache-Control "public, max-age=31536000"
defer
}
# identity
handle @identity {
reverse_proxy localhost:8090 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
# search
handle @search {
reverse_proxy localhost:8090 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
handle @wellknown {
encode zstd gzip
root * /matrix/static-files
header Cache-Control max-age=14400
header Content-Type application/json
header Access-Control-Allow-Origin *
file_server
}
handle {
encode zstd gzip
reverse_proxy localhost:8008 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
}
matrix.DOMAIN.tld:8448 {
handle {
encode zstd gzip
reverse_proxy 127.0.0.1:8048 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
}
element.DOMAIN.tld {
# creates letsencrypt certificate
# tls your@email.com
header {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection "1; mode=block"
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options "nosniff"
# Disallow the site to be rendered within a frame (clickjacking protection)
X-Frame-Options "DENY"
# X-Robots-Tag
X-Robots-Tag "noindex, noarchive, nofollow"
}
handle {
encode zstd gzip
reverse_proxy localhost:8765 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
#dimension.DOMAIN.tld {
#
# # creates letsencrypt certificate
# # tls your@email.com
#
# header {
# # Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
# Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# # Enable cross-site filter (XSS) and tell browser to block detected attacks
# X-XSS-Protection "1; mode=block"
# # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
# X-Content-Type-Options "nosniff"
# # Disallow the site to be rendered within a frame (clickjacking protection)
# X-Frame-Options "DENY"
# # X-Robots-Tag
# X-Robots-Tag "noindex, noarchive, nofollow"
# }
#
# handle {
# encode zstd gzip
#
# reverse_proxy localhost:8184 {
# header_up X-Forwarded-Port {http.request.port}
# header_up X-Forwarded-Proto {http.request.scheme}
# header_up X-Forwarded-TlsProto {tls_protocol}
# header_up X-Forwarded-TlsCipher {tls_cipher}
# header_up X-Forwarded-HttpsProto {proto}
# }
# }
#}
#jitsi.DOMAIN.tld {
#
# creates letsencrypt certificate
# tls your@email.com
#
# header {
# # Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
# Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
#
# # Enable cross-site filter (XSS) and tell browser to block detected attacks
# X-XSS-Protection "1; mode=block"
#
# # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
# X-Content-Type-Options "nosniff"
#
# # Disallow the site to be rendered within a frame (clickjacking protection)
# X-Frame-Options "SAMEORIGIN"
#
# # Disable some features
# Feature-Policy "accelerometer 'none';ambient-light-sensor 'none'; autoplay 'none';camera 'none';encrypted-media 'none';focus-without-user-activation 'none'; geolocation 'none';gyroscope #'none';magnetometer 'none';microphone 'none';midi 'none';payment 'none';picture-in-picture 'none'; speaker 'none';sync-xhr 'none';usb 'none';vr 'none'"
#
# # Referer
# Referrer-Policy "no-referrer"
#
# # X-Robots-Tag
# X-Robots-Tag "none"
#
# # Remove Server header
# -Server
# }
#
# handle {
# encode zstd gzip
#
# reverse_proxy 127.0.0.1:13080 {
# header_up X-Forwarded-Port {http.request.port}
# header_up X-Forwarded-Proto {http.request.scheme}
# header_up X-Forwarded-TlsProto {tls_protocol}
# header_up X-Forwarded-TlsCipher {tls_cipher}
# header_up X-Forwarded-HttpsProto {proto}
# }
# }
#}
#DOMAIN.com {
# Uncomment this if you are following "(Option 3): Setting up reverse-proxying of the well-known files from the base domain's server to the Matrix server" of https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-well-known.md#option-3-setting-up-reverse-proxying-of-the-well-known-files-from-the-base-domains-server-to-the-matrix-server
# @wellknown {
# path /.well-known/matrix/*
# }
#
# handle @wellknown {
# reverse_proxy https://matrix.DOMAIN.com {
# header_up Host {http.reverse_proxy.upstream.hostport}
# }
# }
# # Configration for the base domain goes here
# # handle {
# # header -Server
# # encode zstd gzip
# # reverse_proxy localhost:4020
# # }
#}

12
examples/caddy2/README.md Normal file
View File

@ -0,0 +1,12 @@
# Caddyfile
This directory contains sample files that show you how to do reverse-proxying using Caddy2.
## Config
| Variable | Function |
| ------------------ | -------- |
| tls your@email.com | Specify an email address for your [ACME account](https://caddyserver.com/docs/caddyfile/directives/tls) (but if only one email is used for all sites, we recommend the email [global option](https://caddyserver.com/docs/caddyfile/options) instead) |
| tls | To enable [tls](https://caddyserver.com/docs/caddyfile/directives/tls) support uncomment the lines for tls |
| Dimension | To enable Dimension support uncomment the lines for Dimension and set your data |
| Jitsi | To enable Jitsi support uncomment the lines for Jitsi and set your data |

View File

@ -1,7 +1,8 @@
---
version: '3'
services:
nginx:
image: local/nginx
image: local/nginx
ports:
- 40888:80
volumes:

View File

@ -39,7 +39,7 @@ frontend https-frontend
# HAproxy wants the full chain and the private key in one file. For Letsencrypt manually generated certs (e.g., wildcard certs) you can use
# cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/haproxy/certs/star-example.com.pem
bind *:443 ssl crt /etc/haproxy/certs/star-example.com.pem
#bind *:443 ssl crt /etc/haproxy/certs/riot.example.com.pem /etc/haproxy/certs/matrix.example.com.pem
#bind *:443 ssl crt /etc/haproxy/certs/element.example.com.pem /etc/haproxy/certs/matrix.example.com.pem
reqadd X-Forwarded-Proto:\ https
option httplog
option http-server-close
@ -60,10 +60,10 @@ frontend https-frontend
acl synapse_admin path -i -m beg /_synapse/admin
# Send to :8008
use_backend matrix-main if matrix_path or synapse_admin
# riot.example.com
acl riot_domain hdr_dom(host) -i riot.example.com
# element.example.com
acl element_domain hdr_dom(host) -i element.example.com
# Send to 8765
use_backend riot if riot_domain
use_backend element if element_domain
# If nothing else match, just send to default matrix backend
use_backend matrix-main if matrix_domain
#default_backend matrix-main
@ -86,12 +86,12 @@ backend synapse
backend nginx-static
capture request header origin len 128
http-response add-header Access-Control-Allow-Origin *
http-response add-header Access-Control-Allow-Origin *
rspadd Access-Control-Allow-Methods:\ GET,\ HEAD,\ OPTIONS,\ POST,\ PUT if { capture.req.hdr(0) -m found }
rspadd Access-Control-Allow-Credentials:\ true if { capture.req.hdr(0) -m found }
rspadd Access-Control-Allow-Headers:\ Origin,\ Accept,\ X-Requested-With,\ Content-Type,\ Access-Control-Request-Method,\ Access-Control-Request-Headers,\ Authorization if { capture.req.hdr(0) -m found }
server nginx 127.0.0.1:40888 check
backend riot
server riot 127.0.0.1:8765 check
backend element
server element 127.0.0.1:8765 check

Some files were not shown because too many files have changed in this diff Show More