Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
Go to file
2018-08-17 09:35:52 +03:00
docs Fix typo 2018-08-17 09:04:20 +03:00
examples Set up Synapse configuration using a template (not line/regexp replacements) 2018-06-26 21:05:59 +03:00
inventory Fix README instructions typo about Ansible host_vars 2018-01-17 15:57:01 +02:00
roles/matrix-server Default to INFO logging for matrix-synapse-rest-auth, not DEBUG 2018-08-17 09:35:52 +03:00
.gitignore Initial commit 2017-07-31 23:08:20 +03:00
ansible.cfg Initial commit 2017-07-31 23:08:20 +03:00
CHANGELOG.md Add matrix-synapse-rest-auth support 2018-08-17 09:02:17 +03:00
LICENSE Add LICENSE file 2018-08-17 09:01:06 +03:00
README.md Add matrix-synapse-rest-auth support 2018-08-17 09:02:17 +03:00
setup.yml Switch from playbook vars to role defaults 2017-08-30 12:05:13 +03:00

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 homeserver.

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

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

  • a Matrix Synapse homeserver - storing your data and managing your presence in the Matrix network

  • (optional) Amazon S3 storage for your Matrix Synapse's content repository (media_store) files using Goofys

  • (optional default) PostgreSQL database for Matrix Synapse. Using an external PostgreSQL server is also possible.

  • a coturn STUN/TURN server for WebRTC audio/video calls

  • free Let's Encrypt SSL certificate, which secures the connection to the Synapse server and the Riot web UI

  • (optional default) a Riot web UI, which is configured to connect to your own Matrix Synapse server by default

  • (optional default) an mxisd Matrix Identity server

  • (optional default) a Postfix mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)

  • (optional default) an nginx web server, listening on ports 80 and 443 - standing in front of all the other services. Using your own webserver is possible

  • (optional) the matrix-synapse-rest-auth REST authentication password provider module

Basically, this playbook aims to get you up-and-running with all the basic necessities around Matrix, without you having to do anything else.

What's different about this Ansible playbook?

This is similar to the 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 both CentOS (7.0+) and Debian-based distributions (Debian 9/Stretch+, Ubuntu 16.04+)

  • 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

  • this one runs everything in Docker containers, so it's likely more predictable and less fragile (see Docker images used by this playbook)

  • this one retrieves and automatically renews free Let's Encrypt SSL certificates for you

  • this one optionally can store the media_store content repository files on Amazon S3 (but defaults to storing files on the server's filesystem)

  • this one optionally allows you to use an external PostgreSQL server for Matrix 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.

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.

Docker images used by this playbook

This playbook sets up your server using the following Docker images:

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

Github issues: spantaleev/matrix-docker-ansible-deploy/issues