This file gives AI coding agents the minimum context for working on this repository. Human contributors may find it a useful summary too.
An Ansible playbook that installs and manages a Matrix homeserver and dozens of related services, each running as a Docker container wrapped in a systemd service.
setup.yml: the main playbook, listing all roles.roles/custom/: roles maintained in this repository.roles/galaxy/: external roles, downloaded according to requirements.yml via agru (preferred) or ansible-galaxy. Run just roles to install them (or just update to also pull the playbook itself). Editing these roles locally is fine while preparing or testing a fix, but the changes get wiped on the next roles update, so they must be synced back to the role’s upstream repository, followed by a version pin update in requirements.yml.group_vars/matrix_servers: wires roles together (feeding one role’s variables into another). Values a role can construct by itself belong in the role’s defaults/main.yml, not here.docs/: user-facing documentation, one page per component.i18n/: translation infrastructure. Do not edit locale files by hand; they are managed by automation.CHANGELOG.md: user-facing announcements, newest first.Follow the style guide for playbook developers. In particular:
_auto + _custom split; _custom is reserved for users.validate_config.yml; the matrix_playbook_migration role covers eliminated roles and very-early validation, and also gates breaking changes via matrix_playbook_migration_expected_version (see the style guide).setup.yml, group_vars/matrix_servers, docs/README.md, README.md, docs/container-images.md, and get a CHANGELOG.md entry.example.com, @alice:example.com, and the other placeholder values listed in the style guide.ansible.builtin.tempfile for temporary files (removed in an always block), never fixed shared paths.