It's a wrapper around awesome spantaleev/matrix-docker-ansible-deploy playbook with additional roles and playbooks, like system maintenance (check the list below).
This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy. Still, running any service smoothly requires knowledge, time and effort.
If you like the FOSS spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also get a managed Matrix server from etke.cc - a service built on top of this Ansible playbook, which can help you run a Matrix server with ease.
If you like learning and experimentation, but would rather reduce future maintenance effort, you can even go for a hybrid approach - self-hosting manually using this Ansible playbook at first and then transferring server maintenance to etke.cc at a later time.
This repository contains different stability branches (git branches and docker tags)
- git branch:
fresh
- docker tag:
fresh
Testing branch, with latest updates from the upstream and unstable changes, including new roles
- git branch:
main
- docker tag:
latest
"Stable" branch, deployed and tested at least on 1 homeserver.
Used components' version automatically added to the VERSIONS.md file on each commit.
How? bin/versions.py
The original playbook's focus is on matrix components only, while we at etke.cc focusing on wider list of goals:
- system security
- maintenance of the operating system
- diversity of the components, including both matrix and non-matrix components
- git - it's a git repo, you know
- agru - to update roles
- just - to automate routine
- docker - to build containers
- skopeo - to sync containers
- python - to run the playbook, build opml, etc.
- ansible - to run the playbook
Quick Start
- Decide what the domain name will be used for your matrix server ("pretty" domain, like "gitlab.com" or "issuperstar.com" so your mxid will be like "@john:issuperstar.com"), replace
DOMAIN
below with that domain name - Run the following commands and read instructions
# clone that repo
git clone https://github.com/etkecc/ansible.git
cd ansible
# create directory for your server config
mkdir inventory/host_vars/DOMAIN
# copy the example configs
cp .config/examples/hosts inventory/hosts
cp .config/examples/vars.yml inventory/host_vars/DOMAIN/
# edit inventory file and put your server connection details (vim is optional, aye).
# note: replace DOMAIN with your actual base/apex domain name
vim inventory/hosts
# edit your server configuration file
vim inventory/host_vars/DOMAIN/vars.yml
and now, follow the spantaleev/matrix-docker-ansible-deploy documentation
NOTE: For initial server setup use playbook play/all.yml
(yep, with tags as described in parent project's documentation),
after that you can use playbook play/matrix.yml
, here is the list of commands to finish initial setup
# Moving to the grand finale
# Run server setup
just setup-all
Parent project prerequisites have a list of supported distributives and versions.