Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
Go to file
Julian-Samuel Gebühr 5825a0c919
Cactus comments (#2089)
* Add construct for cactus comments role

* Adjust config files

* Add docker self build to defaults

* Adjust tasks

* Fix smaller syntax errors

* Fix env argument

* Add tmp path to allow container writing there

Background why I did this: https://docs.gunicorn.org/en/stable/settings.html#worker-tmp-dir

* Change port back to 5000 as not configurable in container

* Try to add appservice config file for synapse to use

* Inject appservice file

* Correct copied variable name

* Comment out unused app service file injection

would need mounting the appservice file to the synapse container i guess

* Move role before synapse to be able to inject during runtime

* Remove unused parts

* Change default user id to mirror official docs

* Add docs

* Update roles/matrix-cactus-comments/tasks/setup_install.yml

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* Update roles/matrix-cactus-comments/templates/cactus_appservice.yaml.j2

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* Generate secrets if necessary, adjust docs

* Rename cactusbot userid

* Shorten salt strings

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* Use tmpfs instead of persistent mount

* Remove proxy option as it is nonsense

* Add download and serving of cc-client files

* Add documentation on client

* Clarify docs a bit

* Add nginx proxy to required services

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Use container address

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Correct comment of user id

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Use releases or local distributed client

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Move homeserver url to defaults

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Correct truth value

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Add documentation of variables

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* Tabs vs. spaces

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* Make nginx root configurable

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Complete ake nginx root configurable

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Fix file permission

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

* Fix lint errors

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>

Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2022-09-09 14:37:52 +03:00
.config Fix (suppress) var-naming ansible-lint errors 2022-07-18 16:43:12 +03:00
.github rename job 2022-07-17 17:10:15 +03:00
collections fix: all praise the allmighty yamllinter 2022-02-05 21:32:54 +01:00
docs Cactus comments (#2089) 2022-09-09 14:37:52 +03:00
examples run the playbook on multiple hosts with different credentials (#1980) 2022-07-26 16:34:55 +03:00
group_vars Cactus comments (#2089) 2022-09-09 14:37:52 +03:00
inventory run the playbook on multiple hosts with different credentials (#1980) 2022-07-26 16:34:55 +03:00
roles Cactus comments (#2089) 2022-09-09 14:37:52 +03:00
.editorconfig Add comment about trailing whitespace in Markdown 2019-02-01 11:00:25 +02:00
.gitignore Adding '.python-version' to .gitignore 2020-10-06 11:42:32 +02:00
.yamllint fix: ignore generated file on yamllint 2022-02-09 15:03:39 +01:00
CHANGELOG.md Announce Postmoogle email bridge bot 2022-08-23 14:16:10 +03:00
LICENSE Add LICENSE file 2018-08-17 09:01:06 +03:00
Makefile Add Makefile and lint target 2022-07-18 16:51:33 +03:00
README.md Cactus comments (#2089) 2022-09-09 14:37:52 +03:00
ansible.cfg Use the yaml callback plugin when running ansible-playbook 2021-02-18 15:57:05 +01:00
setup.yml Cactus comments (#2089) 2022-09-09 14:37:52 +03:00

README.md

Support room on Matrix donate

Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker

Purpose

This Ansible playbook is meant to help you run your own Matrix homeserver, along with the various services related to that.

That is, it lets you join the Matrix network using your own @<username>:<your-domain> identifier, all hosted on your own server (see prerequisites).

We run all services in Docker containers (see the container images we use), which lets us have a predictable and up-to-date setup, across multiple supported distros (see prerequisites) and architectures (x86/amd64 being recommended).

Installation (upgrades) and some maintenance tasks are automated using Ansible (see our Ansible guide).

Supported services

Using this playbook, you can get the following services configured on your server:

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.

Installation

To configure and install Matrix on your own server, follow the README in the docs/ directory.

Changes

This playbook evolves over time, sometimes with backward-incompatible changes.

When updating the playbook, refer to the changelog to catch up with what's new.

Support

Services by the community

  • 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