Compare commits
51 Commits
55e187c9d5
...
4af024e8d2
Author | SHA1 | Date | |
---|---|---|---|
4af024e8d2 | |||
a74d6d3831 | |||
|
5ec468cc78 | ||
|
3622d71d09 | ||
|
1666d1a1ff | ||
|
97cf596683 | ||
|
11e241e30a | ||
|
4bb08d4a53 | ||
|
71abb52d59 | ||
|
482861fce1 | ||
|
9ac29e7055 | ||
|
00910248d2 | ||
|
74cc935ea6 | ||
|
1851973734 | ||
|
c65ddd649e | ||
|
951c9c97a8 | ||
|
b725f52677 | ||
|
9cb3ca2f2d | ||
|
968f305844 | ||
|
73d338d9d1 | ||
|
5778e84925 | ||
|
8e5e923214 | ||
|
716177d5bc | ||
|
c54c5c0076 | ||
|
a482b95149 | ||
|
b9a6426555 | ||
|
15127c6f52 | ||
|
8b56be0fe1 | ||
|
f98caedd98 | ||
|
23301fd5ab | ||
|
165b24bea3 | ||
|
283dd6494f | ||
|
1930984ce2 | ||
|
05b79057aa | ||
|
fe300d3472 | ||
|
e1f06d9ab7 | ||
|
cc356aaee5 | ||
|
d19f93349a | ||
|
4c24e311da | ||
|
8981c62d0d | ||
|
e1ca320cc7 | ||
|
7018fe9afd | ||
|
98ca534ff6 | ||
|
43c78d7fd5 | ||
|
3a304b927c | ||
|
9bdfdb59c2 | ||
|
6b961f1ac7 | ||
|
ced0b05925 | ||
|
d1e40c0c1e | ||
|
88fb2bf179 | ||
|
f94df58e9a |
1
.github/renovate.json
vendored
1
.github/renovate.json
vendored
@ -15,7 +15,6 @@
|
||||
{
|
||||
"matchSourceUrlPrefixes": [
|
||||
"https://github.com/devture/com.devture.ansible.role",
|
||||
"https://gitlab.com/etke.cc/roles",
|
||||
"https://github.com/mother-of-all-self-hosting"
|
||||
],
|
||||
"ignoreUnstable": false
|
||||
|
60
CHANGELOG.md
60
CHANGELOG.md
@ -1,3 +1,37 @@
|
||||
# 2024-09-12
|
||||
|
||||
## Support for baibot
|
||||
|
||||
The playbook now supports installing [baibot](./docs/configuring-playbook-bot-baibot.md) (pronounced bye-bot) - a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖
|
||||
|
||||
It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as well as many other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md).
|
||||
|
||||
It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to the now-unmaintained [matrix-chatgpt-bot](./docs/configuring-playbook-bot-chatgpt.md).
|
||||
|
||||
To get started, see the [Setting up baibot](./docs/configuring-playbook-bot-baibot.md) documentation page.
|
||||
|
||||
|
||||
## Switching synapse-admin to etke.cc's fork
|
||||
|
||||
The playbook now installs [etke.cc](https://etke.cc/)'s [fork](https://github.com/etkecc/synapse-admin) of [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) (originally developed by [Awesome-Technologies](https://github.com/Awesome-Technologies)). This fork is a drop-in replacement for the original software.
|
||||
|
||||
The creation of the fork has been provoked by users frequently encountering issues with the original synapse-admin software, such as unintentionally deleting their one-and-only admin user account (fixed [here](https://github.com/etkecc/synapse-admin/pull/1) and also contributed upstream [here](https://github.com/Awesome-Technologies/synapse-admin/pull/608) - to no avail for now). Since its inception, [a bunch of other quality-of-life improvements](https://github.com/etkecc/synapse-admin?tab=readme-ov-file#changes) have been made to the fork.
|
||||
|
||||
If upstream synapse-admin picks up the pace and improves, the etke.cc fork may disappear and the playbook may switch to the original software again. Until that time comes, we believe that etke.cc's fork is the better software to use right now.
|
||||
|
||||
If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file:
|
||||
|
||||
```yml
|
||||
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}awesometechnologies/synapse-admin:{{ matrix_synapse_admin_version }}"
|
||||
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||
|
||||
matrix_synapse_admin_version: 0.10.3
|
||||
|
||||
# If you need self-building (if running on arm32), uncomment this.
|
||||
# matrix_synapse_admin_container_image_self_build_repo: "https://github.com/Awesome-Technologies/synapse-admin.git"
|
||||
```
|
||||
|
||||
|
||||
# 2024-08-17
|
||||
|
||||
## New appservice-double-puppet service for better double-puppeting
|
||||
@ -656,7 +690,7 @@ The **historical reasoning** behind this change is as follows:
|
||||
|
||||
- In Synapse v1.7.0 (~2019), `allow_public_rooms_over_federation` [got disabled](https://github.com/element-hq/synapse/blob/e9069c9f919685606506f04527332e83fbfa44d9/docs/upgrade.md?plain=1#L1877-L1891) by default in a [security-by-obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity) workaround for misconfigured servers. See the [Avoiding unwelcome visitors on private Matrix servers](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers/) `matrix.org` blog article. We believe that people wishing for a truly private server, should [disable federation](docs/configuring-playbook-federation.md#disabling-federation), instead of having a fully-federating server and trying to hide its public rooms. We also provide other workarounds below. We (and the Synapse team, obviously) believe that Matrix should federate by default, so federating the public room list seems to make sense.
|
||||
|
||||
- [etke.cc](https://etke.cc/) has been developing the free-software [Matrix Rooms Search](https://gitlab.com/etke.cc/mrs) project for a while now. One public (demo) instance of it is hosted at [matrixrooms.info](https://matrixrooms.info/). This search engine tries to go through the Matrix federation and discover & index public rooms to allow people to find them. We believe it's vital for Matrix (and any chat or social network for that matter) to be more discoverable, so that people can find communities and others to talk to. Today (on 23rd of October 2023), `matrixrooms.info` is indexing `23066` Matrix servers. Of these, only `1567` servers (7%) are making their public rooms discoverable. Who knows what wonderful communities and rooms are available on these 93% other Matrix servers that are supposedly federating, but are still gate-keeping their public room list. Indubitably, many of these servers are hosted via matrix-docker-ansible-deploy, so we feel partially responsible for making Matrix federation less useful.
|
||||
- [etke.cc](https://etke.cc/) has been developing the free-software [Matrix Rooms Search](https://github.com/etkecc/mrs) project for a while now. One public (demo) instance of it is hosted at [matrixrooms.info](https://matrixrooms.info/). This search engine tries to go through the Matrix federation and discover & index public rooms to allow people to find them. We believe it's vital for Matrix (and any chat or social network for that matter) to be more discoverable, so that people can find communities and others to talk to. Today (on 23rd of October 2023), `matrixrooms.info` is indexing `23066` Matrix servers. Of these, only `1567` servers (7%) are making their public rooms discoverable. Who knows what wonderful communities and rooms are available on these 93% other Matrix servers that are supposedly federating, but are still gate-keeping their public room list. Indubitably, many of these servers are hosted via matrix-docker-ansible-deploy, so we feel partially responsible for making Matrix federation less useful.
|
||||
|
||||
Here are **actions you may wish to take** as a result of this change:
|
||||
|
||||
@ -820,7 +854,7 @@ To get started, see our [Setting up Sliding Sync Proxy](docs/configuring-playboo
|
||||
|
||||
## The matrix-etherpad role lives independently now
|
||||
|
||||
**TLDR**: the `matrix-etherpad` role is now included from [another repository](https://gitlab.com/etke.cc/roles/etherpad). Some variables have been renamed. All functionality remains intact.
|
||||
**TLDR**: the `matrix-etherpad` role is now included from [another repository](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad). Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Etherpad or not.
|
||||
|
||||
@ -928,7 +962,7 @@ Additional details are available in the [Customizing templates](docs/configuring
|
||||
|
||||
**TLDR**: the `matrix-redis` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
The `matrix-redis` role (which configures [Redis](https://redis.io/)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/redis). This makes it possible to easily use it in other Ansible playbooks.
|
||||
The `matrix-redis` role (which configures [Redis](https://redis.io/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-redis). This makes it possible to easily use it in other Ansible playbooks.
|
||||
|
||||
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_redis_` -> `redis_`).
|
||||
|
||||
@ -936,7 +970,7 @@ You need to **update your roles** (`just roles` or `make roles`) regardless of w
|
||||
|
||||
**TLDR**: the `matrix-ntfy` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
The `matrix-ntfy` role (which configures [Ntfy](https://ntfy.sh/)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/ntfy). This makes it possible to easily use it in other Ansible playbooks.
|
||||
The `matrix-ntfy` role (which configures [Ntfy](https://ntfy.sh/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy). This makes it possible to easily use it in other Ansible playbooks.
|
||||
|
||||
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_ntfy_` -> `ntfy_`).
|
||||
|
||||
@ -947,7 +981,7 @@ You need to **update your roles** (`just roles` or `make roles`) regardless of w
|
||||
|
||||
**TLDR**: the `matrix-grafana` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
The `matrix-grafana` role (which configures [Grafana](docs/configuring-playbook-prometheus-grafana.md)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/grafana). This makes it possible to easily use it in other Ansible playbooks.
|
||||
The `matrix-grafana` role (which configures [Grafana](docs/configuring-playbook-prometheus-grafana.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-grafana). This makes it possible to easily use it in other Ansible playbooks.
|
||||
|
||||
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Grafana or not. If you're making use of Grafana via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_grafana_` -> `grafana_`).
|
||||
|
||||
@ -958,7 +992,7 @@ You need to **update your roles** (`just roles` or `make roles`) regardless of w
|
||||
|
||||
**TLDR**: the `matrix-backup-borg` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
Thanks to [moan0s](https://github.com/moan0s), the `matrix-backup-borg` role (which configures [Borg backups](docs/configuring-playbook-backup-borg.md)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/backup_borg). This makes it possible to easily use it in other Ansible playbooks and will become part of [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) soon.
|
||||
Thanks to [moan0s](https://github.com/moan0s), the `matrix-backup-borg` role (which configures [Borg backups](docs/configuring-playbook-backup-borg.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg). This makes it possible to easily use it in other Ansible playbooks and will become part of [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) soon.
|
||||
|
||||
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Borg backup functionality or not. If you're making use of Borg backups via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_backup_borg_` -> `backup_borg_`).
|
||||
|
||||
@ -1071,7 +1105,7 @@ You can help by:
|
||||
|
||||
- **explicitly switching your server to Traefik** right now (see example configuration in [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now) above), testing, reporting troubles
|
||||
|
||||
- **adding native Traefik support to a role** (requires adding Traefik labels, etc.) - for inspiration, see these roles ([prometheus_node_exporter](https://gitlab.com/etke.cc/roles/prometheus_node_exporter), [prometheus_postgres_exporter](https://gitlab.com/etke.cc/roles/prometheus_postgres_exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers).
|
||||
- **adding native Traefik support to a role** (requires adding Traefik labels, etc.) - for inspiration, see these roles ([prometheus_node_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter), [prometheus_postgres_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers).
|
||||
|
||||
- **adding reverse-proxying examples for nginx users** in `examples/nginx`. People who insist on using their own `nginx` server on the same Matrix host, can run Traefik in local-only mode (`devture_traefik_config_entrypoint_web_secure_enabled: false`) and reverse-proxy to the Traefik server
|
||||
|
||||
@ -1098,7 +1132,7 @@ Additional details are available in [Setting up Draupnir](docs/configuring-playb
|
||||
|
||||
**TLDR**: the `matrix-prometheus-postgres-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
The `matrix-prometheus-postgres-exporter` role (which configures [Prometheus Postgres Exporter](https://github.com/prometheus-community/postgres_exporter)) has been extracted from the playbook and now lives in its own repository at https://gitlab.com/etke.cc/roles/prometheus_postgres_exporter
|
||||
The `matrix-prometheus-postgres-exporter` role (which configures [Prometheus Postgres Exporter](https://github.com/prometheus-community/postgres_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter
|
||||
|
||||
It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact.
|
||||
|
||||
@ -1142,7 +1176,7 @@ We've also added `no-multicast-peers` to the default Coturn configuration, but w
|
||||
|
||||
**TLDR**: the `matrix-prometheus-node-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
|
||||
|
||||
The `matrix-prometheus-node-exporter` role (which configures [Prometheus node exporter](https://github.com/prometheus/node_exporter)) has been extracted from the playbook and now lives in its own repository at https://gitlab.com/etke.cc/roles/prometheus_node_exporter
|
||||
The `matrix-prometheus-node-exporter` role (which configures [Prometheus node exporter](https://github.com/prometheus/node_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter
|
||||
|
||||
It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact.
|
||||
|
||||
@ -1239,7 +1273,7 @@ All scripts installed by the playbook now live in `bin/` directories under `/mat
|
||||
**TLDR**: the playbook is 2x faster for running `--tags=setup-all` (and various other tags). It also has new `--tags=install-*` tags (like `--tags=install-all`), which skip uninstallation tasks and bring an additional 2.5x speedup. In total, the playbook can maintain your server 5 times faster.
|
||||
|
||||
Our [etke.cc managed Matrix hosting service](https://etke.cc) runs maintenance against hundreds of servers, so the playbook being fast means a lot.
|
||||
The [etke.cc Ansible playbook](https://gitlab.com/etke.cc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience.
|
||||
The [etke.cc Ansible playbook](https://github.com/etkecc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience.
|
||||
|
||||
Even when running `ansible-playbook` manually (as most of us here do), it's beneficial not to waste time and CPU resources.
|
||||
|
||||
@ -1508,7 +1542,7 @@ See our [Setting up a Cactus Comments server](docs/configuring-playbook-cactus-c
|
||||
|
||||
## Postmoogle email bridge support
|
||||
|
||||
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://gitlab.com/etke.cc/postmoogle) email bridge/bot. Postmoogle is like the [email2matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving.
|
||||
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://github.com/etkecc/postmoogle) email bridge/bot. Postmoogle is like the [email2matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving.
|
||||
|
||||
See our [Setting up Postmoogle email bridging](docs/configuring-playbook-bot-postmoogle.md) documentation to get started.
|
||||
|
||||
@ -1696,7 +1730,7 @@ You could then restart services: `ansible-playbook -i inventory/hosts setup.yml
|
||||
|
||||
## 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
|
||||
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [the Buscarron bot](https://github.com/etkecc/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.
|
||||
|
||||
@ -1837,7 +1871,7 @@ We're excited to gain support for other homeserver implementations, like [Condui
|
||||
|
||||
## 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.
|
||||
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://github.com/etkecc/honoroit) - a helpdesk bot.
|
||||
|
||||
See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documentation to get started.
|
||||
|
||||
|
@ -133,15 +133,16 @@ Bots provide various additional functionality to your installation.
|
||||
|
||||
| Name | Default? | Description | Documentation |
|
||||
| ---- | -------- | ----------- | ------------- |
|
||||
| [baibot](https://github.com/etkecc/baibot) | x | A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you | [Link](docs/configuring-playbook-bot-baibot.md) |
|
||||
| [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) | x | Bot for scheduling one-off & recurring reminders and alarms | [Link](docs/configuring-playbook-bot-matrix-reminder-bot.md) |
|
||||
| [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) | x | Bot for invitations by creating and managing registration tokens | [Link](docs/configuring-playbook-bot-matrix-registration-bot.md) |
|
||||
| [maubot](https://github.com/maubot/maubot) | x | A plugin-based Matrix bot system | [Link](docs/configuring-playbook-bot-maubot.md) |
|
||||
| [honoroit](https://gitlab.com/etke.cc/honoroit) | x | A helpdesk bot | [Link](docs/configuring-playbook-bot-honoroit.md) |
|
||||
| [Postmoogle](https://gitlab.com/etke.cc/postmoogle) | x | Email to matrix bot | [Link](docs/configuring-playbook-bot-postmoogle.md) |
|
||||
| [honoroit](https://github.com/etkecc/honoroit) | x | A helpdesk bot | [Link](docs/configuring-playbook-bot-honoroit.md) |
|
||||
| [Postmoogle](https://github.com/etkecc/postmoogle) | x | Email to matrix bot | [Link](docs/configuring-playbook-bot-postmoogle.md) |
|
||||
| [Go-NEB](https://github.com/matrix-org/go-neb) | x | A multi functional bot written in Go | [Link](docs/configuring-playbook-bot-go-neb.md) |
|
||||
| [Mjolnir](https://github.com/matrix-org/mjolnir) | x | A moderation tool for Matrix | [Link](docs/configuring-playbook-bot-mjolnir.md) |
|
||||
| [Draupnir](https://github.com/the-draupnir-project/Draupnir) | x | A moderation tool for Matrix (Fork of Mjolnir) | [Link](docs/configuring-playbook-bot-draupnir.md) |
|
||||
| [Buscarron](https://gitlab.com/etke.cc/buscarron) | x | Web forms (HTTP POST) to matrix | [Link](docs/configuring-playbook-bot-buscarron.md) |
|
||||
| [Buscarron](https://github.com/etkecc/buscarron) | x | Web forms (HTTP POST) to matrix | [Link](docs/configuring-playbook-bot-buscarron.md) |
|
||||
| [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) | x | ChatGPT from matrix | [Link](docs/configuring-playbook-bot-chatgpt.md) |
|
||||
|
||||
### Administration
|
||||
|
@ -17,7 +17,7 @@ This large Traefik reverse-proxy change was also accompanied by another internal
|
||||
|
||||
[mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) is a new Ansible playbook that a few of us (matrix-docker-ansible-deploy contributors) have launched in 2023. It has quickly grown to supports [60+ services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md) and aims to do the same for [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) service hosting, as matrix-docker-ansible-deploy has done for Matrix - providing a clean and secure way to run a bunch of services in containers on a regular server (that is to say, without Kubernetes, etc.). Thanks to Traefik and Ansible role reuse, it's easy to host both mash-playbook services and matrix-docker-ansible-deploy services on the same server - see mash-playbook's [interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) documentation page. If you've been looking for a holiday project or your New Year's Resolutions list contains "self-hosting more services", then you're welcome to give this new playbook a try and join its Matrix room ([#mash-playbook:devture.com](https://matrix.to/#/#mash-playbook:devture.com)).
|
||||
|
||||
Because many of the roles are now external to this playbook (defined in the [requirements.yml](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/da27655ef34999fa924bc0a5e641dbd9ba06f133/requirements.yml) file), running `make roles` (or better yet `just roles` via the [just tool](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#support-for-running-commands-via-just)) becomes a necessity each time one pulls playbook updates (`git pull`). Pulling external roles happens via the [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) command-line tool, but if available, the playbook would also use the much faster [agru](https://gitlab.com/etke.cc/tools/agru) tool (developed by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) this year).
|
||||
Because many of the roles are now external to this playbook (defined in the [requirements.yml](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/da27655ef34999fa924bc0a5e641dbd9ba06f133/requirements.yml) file), running `make roles` (or better yet `just roles` via the [just tool](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#support-for-running-commands-via-just)) becomes a necessity each time one pulls playbook updates (`git pull`). Pulling external roles happens via the [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) command-line tool, but if available, the playbook would also use the much faster [agru](https://github.com/etkecc/agru) tool (developed by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) this year).
|
||||
|
||||
With the internal (but important) details out of the way, we can now talk more about **new features that landed in matrix-docker-ansible-deploy in 2023**.
|
||||
|
||||
|
@ -79,7 +79,7 @@ The `cinny.<your-domain>` subdomain may be necessary, because this playbook coul
|
||||
|
||||
The `wsproxy.<your-domain>` subdomain may be necessary, because this playbook could install the [wsproxy](https://github.com/mautrix/wsproxy) web client. The installation of wsproxy is disabled by default, it is not a core required component. To learn how to install it, see our [configuring wsproxy guide](configuring-playbook-bridge-mautrix-wsproxy.md). If you do not wish to set up wsproxy, feel free to skip the `wsproxy.<your-domain>` DNS record.
|
||||
|
||||
The `buscarron.<your-domain>` subdomain may be necessary, because this playbook could install the [buscarron](https://gitlab.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.
|
||||
The `buscarron.<your-domain>` subdomain may be necessary, because this playbook could install the [buscarron](https://github.com/etkecc/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
|
||||
|
||||
|
@ -64,7 +64,7 @@ To backup without encryption, add `backup_borg_encryption: 'none'` to your vars.
|
||||
|
||||
`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 `backup_borg_location_exclude_patterns` variable.
|
||||
|
||||
Check the [backup_borg role](https://gitlab.com/etke.cc/roles/backup_borg)'s [defaults/main.yml](https://gitlab.com/etke.cc/roles/backup_borg/-/blob/main/defaults/main.yml) file for the full list of available options.
|
||||
Check the [backup_borg role](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg)'s [defaults/main.yml](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/-/blob/main/defaults/main.yml) file for the full list of available options.
|
||||
|
||||
## Installing
|
||||
|
||||
|
409
docs/configuring-playbook-bot-baibot.md
Normal file
409
docs/configuring-playbook-bot-baibot.md
Normal file
@ -0,0 +1,409 @@
|
||||
# Setting up baibot (optional)
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github.com/etkecc/baibot/raw/main/etc/assets/baibot.svg" alt="baibot logo" width="150" />
|
||||
<h1 align="center">baibot</h1>
|
||||
</p>
|
||||
|
||||
🤖 [baibot](https://github.com/etkecc/baibot) (pronounced bye-bot) is a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖
|
||||
|
||||
It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as many well as other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md).
|
||||
|
||||
It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to [matrix-chatgpt-bot](./configuring-playbook-bot-chatgpt.md). See the [baibot](https://github.com/etkecc/baibot) project and its documentation for more information.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
API access to one or more LLM [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md).
|
||||
|
||||
|
||||
## Adjusting the playbook configuration
|
||||
|
||||
There are **a lot of configuration options** (some required, some possibly required, some optional), so they're **split into multiple sections below**:
|
||||
|
||||
<!-- no toc -->
|
||||
- [Base configuration](#base-configuration)
|
||||
- [👮♂️ Administrator configuration](#️-administrator-configuration)
|
||||
- [👥 Initial users configuration](#-initial-users-configuration)
|
||||
- [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible)
|
||||
- [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)
|
||||
|
||||
Depending on your current `vars.yml` file and desired configuration, **you may require more than just the [base configuration](#base-configuration)**.
|
||||
|
||||
|
||||
### Base configuration
|
||||
|
||||
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
|
||||
|
||||
```yaml
|
||||
matrix_bot_baibot_enabled: true
|
||||
|
||||
# Uncomment and adjust this part if you'd like to use a username different than the default
|
||||
# matrix_bot_baibot_config_user_mxid_localpart: baibot
|
||||
|
||||
# Generate a strong password here. Consider generating it with `pwgen -s 64 1`.
|
||||
# If you'd like to change this password subsequently, see the details below.
|
||||
matrix_bot_baibot_config_user_password: 'PASSWORD_FOR_THE_BOT'
|
||||
|
||||
# An optional passphrase to use for backing up and recovering the bot's encryption keys.
|
||||
# You can use any string here. Consider generating it with `pwgen -s 64 1`.
|
||||
#
|
||||
# If set to null, the recovery module will not be used and losing your session/database
|
||||
# will mean you lose access to old messages in encrypted room.
|
||||
# It's highly recommended that you configure this to avoid losing access to encrypted messages.
|
||||
#
|
||||
# Changing this subsequently will also cause you to lose access to old messages in encrypted rooms.
|
||||
# For details about changing this subsequently or resetting, see `defaults/main.yml` in the baibot role.
|
||||
matrix_bot_baibot_config_user_encryption_recovery_passphrase: 'ANY_LONG_AND_SECURE_PASSPHRASE_STRING_HERE'
|
||||
|
||||
# An optional secret for encrypting the bot's session data (see `matrix_bot_baibot_data_path`).
|
||||
# This must be 32-bytes (64 characters when HEX-encoded).
|
||||
# Generate it with: `openssl rand -hex 32`
|
||||
# Set to null or empty to avoid using encryption.
|
||||
# Changing this subsequently requires that you also throw away all data (see `matrix_bot_baibot_data_path`)
|
||||
matrix_bot_baibot_config_persistence_session_encryption_key: 'A_HEX_STRING_OF_64_CHARACTERS_HERE'
|
||||
|
||||
# An optional secret for encrypting bot configuration stored in Matrix's account data.
|
||||
# This must be 32-bytes (64 characters when HEX-encoded).
|
||||
# Generate it with: `openssl rand -hex 32`
|
||||
# Set to null or empty to avoid using encryption.
|
||||
# Changing this subsequently will make you lose your configuration.
|
||||
matrix_bot_baibot_config_persistence_config_encryption_key: 'A_HEX_STRING_OF_64_CHARACTERS_HERE'
|
||||
```
|
||||
|
||||
As mentioned above, **this may not be enough**. Continue with the configuration sections below.
|
||||
|
||||
|
||||
### 👮♂️ Administrator configuration
|
||||
|
||||
This is an addition to the [base configuration](#base-configuration).
|
||||
|
||||
To specify who is considered a bot [👮♂️ Administrator](https://github.com/etkecc/baibot/blob/main/docs/access.md#administrators), you either need to specify `matrix_bot_baibot_config_access_admin_patterns` or `matrix_admin`. The latter is a single variable which affects all bridges and bots.
|
||||
|
||||
If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section.
|
||||
|
||||
**If necessary**, add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
|
||||
|
||||
```yml
|
||||
# Uncomment to add one or more admins to this bridge:
|
||||
#
|
||||
# matrix_bot_baibot_config_access_admin_patterns:
|
||||
# - "@*:example.com"
|
||||
# - "@admin:another.com"
|
||||
#
|
||||
# .. unless you've made yourself an admin of all bots/bridges like this:
|
||||
#
|
||||
# matrix_admin: '@yourAdminAccount:domain.com'
|
||||
```
|
||||
|
||||
### 👥 Initial users configuration
|
||||
|
||||
By default, **all users on your homeserver are considered allowed users**. If that's OK, you can skip this section.
|
||||
|
||||
This is an addition to the [base configuration](#base-configuration).
|
||||
|
||||
To specify who is considered a bot [👥 User](https://github.com/etkecc/baibot/blob/main/docs/access.md#user), you may:
|
||||
|
||||
- define an **initial** value for `matrix_bot_baibot_config_initial_global_config_user_patterns` Ansible variable, as shown below
|
||||
- configure the list at runtime via the bot's `!bai access set-users SPACE_SEPARATED_PATTERNS` command
|
||||
|
||||
Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is optional, but it can be useful to pre-configure the bot with a list of users who should have access to the bot's features.
|
||||
|
||||
**Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands.
|
||||
|
||||
**If necessary**, add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
|
||||
|
||||
```yml
|
||||
# Uncomment and adjust the bot users if necessary:
|
||||
#
|
||||
# Subsequent changes to `matrix_bot_baibot_config_initial_global_config_user_patterns` do not affect the bot's behavior.
|
||||
# Once initially configured, the allowed users list is managed via bot commands, not via Ansible.
|
||||
#
|
||||
# matrix_bot_baibot_config_initial_global_config_user_patterns:
|
||||
# - "@*:{{ matrix_bot_baibot_config_homeserver_server_name }}"
|
||||
```
|
||||
|
||||
### 🤖 Configuring agents via Ansible
|
||||
|
||||
You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance).
|
||||
|
||||
Privileged users (like the [👮♂️ Administrator](#️-administrator-configuration), but potentially others too - see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands.
|
||||
|
||||
The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc).
|
||||
|
||||
Besides the presets, the Ansible role also includes support for configuring additional statically-defined agents via the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable.
|
||||
|
||||
Agents defined statically and those created dynamically (via chat) are named differently, so **conflict cannot arise**.
|
||||
|
||||
Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#GitOps), you may prefer to define agents statically via Ansible, or you may wish to do it dynamically via chat.
|
||||
|
||||
Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai).
|
||||
|
||||
|
||||
#### Anthropic
|
||||
|
||||
You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables.
|
||||
|
||||
Here's an example **addition** to your `vars.yml` file:
|
||||
|
||||
```yml
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled: true
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key: "YOUR_API_KEY_HERE"
|
||||
|
||||
# If you'd like to use another text-generation agent, uncomment and adjust:
|
||||
# matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-3-5-sonnet-20240620
|
||||
|
||||
# See `defaults/main.yml` in the baibot role for more configuration options.
|
||||
```
|
||||
|
||||
If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below.
|
||||
|
||||
💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers).
|
||||
|
||||
|
||||
#### Groq
|
||||
|
||||
You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables.
|
||||
|
||||
Here's an example **addition** to your `vars.yml` file:
|
||||
|
||||
```yml
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_enabled: true
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key: "YOUR_API_KEY_HERE"
|
||||
|
||||
# Specify the text-generation agent you'd like to use
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_model_id: "llama3-70b-8192"
|
||||
|
||||
# Uncomment and adjust if you're not happy with these speech-to-text defaults:
|
||||
#
|
||||
# matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_enabled: true
|
||||
# matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_model_id: whisper-large-v3
|
||||
|
||||
# See `defaults/main.yml` in the baibot role for more configuration options.
|
||||
```
|
||||
|
||||
Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`.
|
||||
|
||||
If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below.
|
||||
|
||||
💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers).
|
||||
|
||||
|
||||
#### Mistral
|
||||
|
||||
You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables.
|
||||
|
||||
Here's an example **addition** to your `vars.yml` file:
|
||||
|
||||
```yml
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_enabled: true
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key: "YOUR_API_KEY_HERE"
|
||||
|
||||
# Uncomment and adjust if you're not happy with these defaults:
|
||||
# matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_model_id: mistral-large-latest
|
||||
|
||||
# See `defaults/main.yml` in the baibot role for more configuration options.
|
||||
```
|
||||
|
||||
Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`.
|
||||
|
||||
If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below.
|
||||
|
||||
💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers).
|
||||
|
||||
|
||||
#### OpenAI
|
||||
|
||||
You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables.
|
||||
|
||||
The OpenAI provider is **only meant to be used with OpenAI's official API** and compatibility with other services (which do not fully adhere to the OpenAI API spec completely) is limited. **If you're targeting an OpenAI-compatible service**, use the [OpenAI Compatible](#openai-compatible) provider instead.
|
||||
|
||||
Here's an example **addition** to your `vars.yml` file:
|
||||
|
||||
```yml
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_enabled: true
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: "YOUR_API_KEY_HERE"
|
||||
|
||||
# If you'd like to use another text-generation agent, uncomment and adjust:
|
||||
# matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-4o
|
||||
|
||||
# See `defaults/main.yml` in the baibot role for more configuration options.
|
||||
```
|
||||
|
||||
Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`.
|
||||
|
||||
If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below.
|
||||
|
||||
💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers).
|
||||
|
||||
|
||||
#### OpenAI Compatible
|
||||
|
||||
You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables.
|
||||
|
||||
This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc.
|
||||
|
||||
Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes - this make it easier to get started.
|
||||
|
||||
As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset).
|
||||
|
||||
|
||||
#### Configuring additional agents (without a preset)
|
||||
|
||||
The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration.
|
||||
|
||||
It's possible to inject your own agent configuration using the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable.
|
||||
|
||||
You can also define providers at runtime, by chatting with the bot, so using Ansible is not a requirement.
|
||||
|
||||
Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**:
|
||||
|
||||
```yml
|
||||
matrix_bot_baibot_config_agents_static_definitions_custom:
|
||||
# This agent will use the GPT 3.5 model and will only support text-generation,
|
||||
# even though the `openai` provider could support other features (e.g. image-generation).
|
||||
- id: my-openai-gpt-3.5-turbo-agent
|
||||
provider: openai
|
||||
config:
|
||||
base_url: https://api.openai.com/v1
|
||||
api_key: "YOUR_API_KEY_HERE"
|
||||
text_generation:
|
||||
model_id: gpt-3.5-turbo-0125
|
||||
prompt: You are a brief, but helpful bot.
|
||||
temperature: 1.0
|
||||
max_response_tokens: 4096
|
||||
max_context_tokens: 16385
|
||||
speech_to_text: null
|
||||
text_to_speech: null
|
||||
image_generation: null
|
||||
|
||||
# This agent uses the `openai` provider, but adjusts the base URL, so that it points to some Ollama instance
|
||||
# (which supports an OpenAI-compatible API).
|
||||
- id: my-ollama-agent
|
||||
provider: openai
|
||||
config:
|
||||
base_url: http://ollama-service:1234/v1
|
||||
api_key: ""
|
||||
text_generation:
|
||||
model_id: "llama3.1:8b"
|
||||
prompt: "You are an assistant based on the Llama3.1:8b model. Be brief in your responses."
|
||||
temperature: 1.0
|
||||
max_response_tokens: 4096
|
||||
max_context_tokens: 128000
|
||||
speech_to_text: null
|
||||
text_to_speech: null
|
||||
image_generation: null
|
||||
```
|
||||
|
||||
Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agents, they will be given a `static/` ID prefix and will be named `static/my-openai-gpt-3.5-turbo-agent` and `static/my-ollama-agent`, respectively.
|
||||
|
||||
💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**.
|
||||
|
||||
As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room - see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models).
|
||||
|
||||
💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers).
|
||||
|
||||
|
||||
### 🤝 Configuring initial default handlers
|
||||
|
||||
This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**).
|
||||
|
||||
If you're not configuring agents via Ansible, you can skip this section.
|
||||
|
||||
This section is only useful the first time around. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands.
|
||||
|
||||
baibot supports [various purposes](https://github.com/etkecc/baibot/blob/main/docs/features.md):
|
||||
|
||||
- [💬 text-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-generation): communicating with you via text
|
||||
|
||||
- [🦻 speech-to-text](https://github.com/etkecc/baibot/blob/main/docs/features.md#-speech-to-text): turning your voice messages into text
|
||||
|
||||
- [🗣️ text-to-speech](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-to-speech): turning bot or users text messages into voice messages
|
||||
|
||||
- [🖌️ image-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-image-generation): generating images based on instructions
|
||||
|
||||
- ❓ catch-all: special purposes, indicating use as a fallback (when no specific handler is configured)
|
||||
|
||||
[Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models) is made possible by the bot's ability to have different [🤝 handlers](https://github.com/etkecc/baibot/blob/main/docs/configuration/handlers.md) configured for different purposes.
|
||||
|
||||
This configuration can be done as a global fallback, or per-room. Both of these [🛠️ configurations](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md) are managed at runtime (viat chat), but **the global configuration can have some initial defaults configured via Ansible**.
|
||||
|
||||
You can configure the **initial values** for these via Ansible, via the `matrix_bot_baibot_config_initial_global_config_handler_*` variables.
|
||||
|
||||
Example **additional** `vars.yml` configuration:
|
||||
|
||||
```yml
|
||||
# NOTE: these are initial defaults for the bot's global configuration.
|
||||
# As such, changing any of these values subsequently has no effect on the bot's behavior.
|
||||
# Once initially configured, the global configuration is managed via bot commands, not via Ansible.
|
||||
|
||||
matrix_bot_baibot_config_initial_global_config_handler_catch_all: static/openai
|
||||
|
||||
# In this example, there's no need to define any of these below.
|
||||
# Configuring the catch-all purpose handler is enough.
|
||||
matrix_bot_baibot_config_initial_global_config_handler_text_generation: null
|
||||
matrix_bot_baibot_config_initial_global_config_handler_text_to_speech: null
|
||||
matrix_bot_baibot_config_initial_global_config_handler_speech_to_text: null
|
||||
matrix_bot_baibot_config_initial_global_config_handler_image_generation: null
|
||||
```
|
||||
|
||||
**Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands.
|
||||
|
||||
|
||||
## Installing
|
||||
|
||||
After configuring the playbook, run the [installation](installing.md) command again:
|
||||
|
||||
```sh
|
||||
just run-tags install-all,ensure-matrix-users-created,start
|
||||
```
|
||||
|
||||
**Notes**:
|
||||
|
||||
- the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account
|
||||
|
||||
- if you change the bot password (`matrix_bot_baibot_config_user_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
To use the bot, invite the `@baibot:DOMAIN` bot user into a room.
|
||||
|
||||
If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room.
|
||||
|
||||
After joining, the bot will introduce itself and show information about the [✨ features](https://github.com/etkecc/baibot/blob/main/docs/features.md) that are enabled for it.
|
||||
|
||||
If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands.
|
||||
|
||||
Send `!bai help` to the room at any time to see the bot's help menu for additional commands.
|
||||
|
||||
You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation.
|
||||
|
||||
|
||||
## Debugging
|
||||
|
||||
As with all other services, you can find service logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-baibot`
|
||||
|
||||
The default logging level for this service is `info`, but you can increase it to `debug` (or even `trace`) with the following additional configuration:
|
||||
|
||||
```yaml
|
||||
# Adjust the bot's own logging level.
|
||||
matrix_bot_baibot_config_logging_level_baibot: debug
|
||||
|
||||
# Adjust the logging level for the mxlink bot library used by the bot.
|
||||
matrix_bot_baibot_config_logging_level_mxlink: debug
|
||||
|
||||
# Adjust the logging level for other libraries used by the bot.
|
||||
# Having this set to a value other than "warn" can be very noisy.
|
||||
matrix_bot_baibot_config_logging_level_other_libs: debug
|
||||
```
|
||||
|
||||
**Alternatively**, you can use a single variable to set the logging level for all of the above (bot + all libraries):
|
||||
|
||||
```yaml
|
||||
matrix_bot_baibot_config_logging: debug
|
||||
```
|
@ -1,6 +1,6 @@
|
||||
# Setting up Buscarron (optional)
|
||||
|
||||
The playbook can install and configure [buscarron](https://gitlab.com/etke.cc/buscarron) for you.
|
||||
The playbook can install and configure [buscarron](https://github.com/etkecc/buscarron) for you.
|
||||
|
||||
Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room.
|
||||
|
||||
@ -87,4 +87,4 @@ To use the bot, invite the `@bot.buscarron:DOMAIN` to the room you specified in
|
||||
|
||||
If you get banned, you'd need to restart the process by running the playbook with `--tags=start` or running `systemctl restart matrix-bot-buscarron` on the server.
|
||||
|
||||
You can also refer to the upstream [documentation](https://gitlab.com/etke.cc/buscarron).
|
||||
You can also refer to the upstream [documentation](https://github.com/etkecc/buscarron).
|
||||
|
@ -4,6 +4,8 @@ The playbook can install and configure [matrix-chatgpt-bot](https://github.com/m
|
||||
|
||||
Talk to [ChatGPT](https://openai.com/blog/chatgpt/) via your favourite Matrix client!
|
||||
|
||||
**Note**: [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) is now an archived (**unmaintained**) project. Talking to ChatGPT (and many other LLM providers) can happen via the much more featureful [baibot](./configuring-playbook-bot-baibot.md) bot supported by the playbook.
|
||||
|
||||
|
||||
## 1. Register the bot account
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Setting up Honoroit (optional)
|
||||
|
||||
The playbook can install and configure [Honoroit](https://gitlab.com/etke.cc/honoroit) for you.
|
||||
The playbook can install and configure [Honoroit](https://github.com/etkecc/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.
|
||||
See the project's [documentation](https://github.com/etkecc/honoroit#how-it-looks-like) to learn what it does with screenshots and why it might be useful to you.
|
||||
|
||||
|
||||
## Adjusting the playbook configuration
|
||||
@ -50,4 +50,4 @@ To use the bot, invite the `@honoroit:DOMAIN` to the room you specified in confi
|
||||
|
||||
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).
|
||||
You can also refer to the upstream [documentation](https://github.com/etkecc/honoroit#features).
|
||||
|
@ -52,4 +52,4 @@ and the plugin (how the bot will behave)
|
||||
|
||||
This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`.
|
||||
|
||||
Alternatively, you can follow our generic [obtain an access token](obtaining-access-tokens.md) documentation.
|
||||
Alternatively, you can follow our generic [obtain an access token](obtaining-access-tokens.md) documentation. Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element**) as the latter will give your bot issues in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients).
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
**Note**: email bridging can also happen via the [email2matrix](configuring-playbook-email2matrix.md) bridge supported by the playbook.
|
||||
|
||||
The playbook can install and configure [Postmoogle](https://gitlab.com/etke.cc/postmoogle) for you.
|
||||
The playbook can install and configure [Postmoogle](https://github.com/etkecc/postmoogle) for you.
|
||||
|
||||
It's a bot/bridge you can use to forward emails to Matrix rooms.
|
||||
It's a bot/bridge you can use to forward emails to Matrix rooms.
|
||||
Postmoogle runs an SMTP email server and allows you to assign mailbox addresses to Matrix rooms.
|
||||
|
||||
See the project's [documentation](https://gitlab.com/etke.cc/postmoogle) to learn what it does and why it might be useful to you.
|
||||
See the project's [documentation](https://github.com/etkecc/postmoogle) to learn what it does and why it might be useful to you.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@ -69,19 +69,19 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
|
||||
|
||||
## Usage
|
||||
|
||||
To use the bot, invite the `@postmoogle:DOMAIN` into a room you want to use as a mailbox.
|
||||
To use the bot, invite the `@postmoogle:DOMAIN` bot user into a room you want to use as a mailbox.
|
||||
|
||||
Then send `!pm mailbox NAME` to expose this Matrix room as an inbox with the email address `NAME@matrix.domain`. Emails sent to that email address will be forwarded to the room.
|
||||
|
||||
Send `!pm 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/postmoogle).
|
||||
You can also refer to the upstream [documentation](https://github.com/etkecc/postmoogle).
|
||||
|
||||
### Debug/Logs
|
||||
|
||||
As with all other services, you can find their logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-postmoogle`
|
||||
|
||||
The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration:
|
||||
The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration:
|
||||
|
||||
```yaml
|
||||
matrix_bot_postmoogle_loglevel: 'DEBUG'
|
||||
|
@ -29,7 +29,7 @@ ntfy_enabled: true
|
||||
# log_level: DEBUG
|
||||
```
|
||||
|
||||
For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://gitlab.com/etke.cc/roles/ntfy/-/blob/main/defaults/main.yml) of the ntfy Ansible role.
|
||||
For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/-/blob/main/defaults/main.yml) of the ntfy Ansible role.
|
||||
|
||||
For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options).
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Setting up Synapse Admin (optional)
|
||||
|
||||
The playbook can install and configure [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) for you.
|
||||
The playbook can install and configure [etkecc/synapse-admin](https://github.com/etkecc/synapse-admin) (a [feature-rich](https://github.com/etkecc/synapse-admin#fork-differences) fork of [Awesome-Technologies/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**. It's designed to work with the Synapse homeserver implementation, but to some extent may work with [Dendrite](./configuring-playbook-dendrite.md) as well.
|
||||
synapse-admin is a web UI tool you can use to **administrate users, rooms, media, etc. on your Matrix server**. It's designed to work with the Synapse homeserver implementation, but to some extent may work with [Dendrite](./configuring-playbook-dendrite.md) as well.
|
||||
|
||||
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.
|
||||
See the project's [documentation](https://github.com/etkecc/synapse-admin) to learn what it does and why it might be useful to you.
|
||||
|
||||
|
||||
## Adjusting the playbook configuration
|
||||
@ -15,12 +15,12 @@ Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.
|
||||
matrix_synapse_admin_enabled: true
|
||||
```
|
||||
|
||||
**Note**: Synapse Admin requires Synapse's [Admin APIs](https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/index.html) 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/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, the playbook **automatically** exposes the Synapse Admin API publicly for you. Depending on the homeserver implementation you're using (Synapse, Dendrite), this is equivalent to:
|
||||
**Note**: Synapse Admin requires Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html) 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://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, the playbook **automatically** exposes the Synapse Admin API publicly for you. Depending on the homeserver implementation you're using (Synapse, Dendrite), this is equivalent to:
|
||||
|
||||
- for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true`
|
||||
- for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true`
|
||||
|
||||
By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/Awesome-Technologies/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) - the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable.
|
||||
By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/etkecc/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) - the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable.
|
||||
|
||||
|
||||
## Installing
|
||||
|
@ -187,7 +187,9 @@ When you're done with all the configuration you'd like to do, continue with [Ins
|
||||
|
||||
### Bots
|
||||
|
||||
- [Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) - a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model(optional)
|
||||
- [Setting up baibot](configuring-playbook-bot-baibot.md) - a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md)) (optional)
|
||||
|
||||
- [Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) - a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model (optional)
|
||||
|
||||
- [Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) - a bot to remind you about stuff (optional)
|
||||
|
||||
|
@ -100,9 +100,9 @@ These services are not part of our default installation, but can be enabled by [
|
||||
|
||||
- [dock.mau.dev/maubot/maubot](https://mau.dev/maubot/maubot/container_registry) - the [maubot](https://github.com/maubot/maubot) bot (a plugin-based Matrix bot system) (optional)
|
||||
|
||||
- [etke.cc/honoroit](https://gitlab.com/etke.cc/honoroit/container_registry) - the [honoroit](https://gitlab.com/etke.cc/honoroit) helpdesk bot (optional)
|
||||
- [etke.cc/honoroit](https://github.com/etkecc/honoroit/container_registry) - the [honoroit](https://github.com/etkecc/honoroit) helpdesk bot (optional)
|
||||
|
||||
- [etke.cc/postmoogle](https://gitlab.com/etke.cc/postmoogle/container_registry) - the [Postmoogle](https://gitlab.com/etke.cc/postmoogle) email bridge bot (optional)
|
||||
- [etke.cc/postmoogle](https://github.com/etkecc/postmoogle/container_registry) - the [Postmoogle](https://github.com/etkecc/postmoogle) email bridge 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)
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
If you've [configured your DNS](configuring-dns.md) and have [configured the playbook](configuring-playbook.md), you can start the installation procedure.
|
||||
|
||||
**Before installing** and each time you update the playbook in the future, you will need to update the Ansible roles in this playbook by running `just roles`. `just roles` is a shortcut (a `roles` target defined in [`justfile`](../justfile) and executed by the [`just`](https://github.com/casey/just) utility) which ultimately runs [agru](https://gitlab.com/etke.cc/tools/agru) or [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) (depending on what is available in your system) to download Ansible roles. If you don't have `just`, you can also manually run the `roles` commands seen in the `justfile`.
|
||||
**Before installing** and each time you update the playbook in the future, you will need to update the Ansible roles in this playbook by running `just roles`. `just roles` is a shortcut (a `roles` target defined in [`justfile`](../justfile) and executed by the [`just`](https://github.com/casey/just) utility) which ultimately runs [agru](https://github.com/etkecc/agru) or [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) (depending on what is available in your system) to download Ansible roles. If you don't have `just`, you can also manually run the `roles` commands seen in the `justfile`.
|
||||
|
||||
There's another shortcut (`just update`) which updates the playbook (`git pull`) and updates roles (`just update`) at the same time.
|
||||
|
||||
|
43
examples/reverse-proxies/caddy2-in-container/Caddyfile
Normal file
43
examples/reverse-proxies/caddy2-in-container/Caddyfile
Normal file
@ -0,0 +1,43 @@
|
||||
matrix.example.tld {
|
||||
|
||||
handle {
|
||||
encode zstd gzip
|
||||
|
||||
# Use the docker service name instead of localhost or 127.0.0.1 here
|
||||
matrix-traefik:8080 {
|
||||
header_up X-Forwarded-Port {http.request.port}
|
||||
header_up X-Forwarded-TlsProto {tls_protocol}
|
||||
header_up X-Forwarded-TlsCipher {tls_cipher}
|
||||
header_up X-Forwarded-HttpsProto {proto}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Put `https://` at the beginning to enforce https protocol as 8448 is not the default https port (which is 443)
|
||||
https://matrix.example.tld:8448 {
|
||||
handle {
|
||||
encode zstd gzip
|
||||
|
||||
# Use the docker service name instead of localhost or 127.0.0.1 here
|
||||
reverse_proxy matrix-traefik:8448 {
|
||||
header_up X-Forwarded-Port {http.request.port}
|
||||
header_up X-Forwarded-TlsProto {tls_protocol}
|
||||
header_up X-Forwarded-TlsCipher {tls_cipher}
|
||||
header_up X-Forwarded-HttpsProto {proto}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
example.tld {
|
||||
# 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.example.tld {
|
||||
header_up Host {http.reverse_proxy.upstream.hostport}
|
||||
}
|
||||
}
|
||||
}
|
19
examples/reverse-proxies/caddy2-in-container/README.md
Normal file
19
examples/reverse-proxies/caddy2-in-container/README.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Caddy reverse-proxy fronting the playbook's integrated Traefik reverse-proxy
|
||||
|
||||
This directory contains a sample config that shows you how to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with your own **containerized** [Caddy](https://caddyserver.com/) reverse-proxy. If you have a server with a Caddy container already serving several applications and you want to install Matrix on it (with no changes to existing traffic routing), then this guide is for you.
|
||||
|
||||
Note: if you're running Caddy on the host itself (not in a container), refer to the [caddy2](../caddy2/README.md) example instead.
|
||||
|
||||
|
||||
## Prerequisite configuration
|
||||
|
||||
To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.<your-domain>/vars.yml`).
|
||||
|
||||
Then, adjust your Caddy `docker-compose.yaml` file (if you're using docker-compose for running your Caddy container). See [examples/reverse-proxies/caddy2-in-container/docker-compose.yaml](./docker-compose.yaml).
|
||||
|
||||
## Using the Caddyfile
|
||||
|
||||
You can either just use the [Caddyfile](Caddyfile) directly or append its content to your own Caddyfile.
|
||||
In both cases make sure to replace all the `example.tld` domains with your own domain.
|
||||
|
||||
This example does not include additional services like Element, but you should be able copy the first block and replace the `matrix.` subdomain with the subdomain of the some other service (e.g. `element.`).
|
@ -0,0 +1,23 @@
|
||||
---
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
caddy:
|
||||
image: caddy:2.5.1-alpine
|
||||
networks:
|
||||
# add this, so that caddy can talk to the playbook-managed-traefik
|
||||
- traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "8448:8448"
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile
|
||||
# - ./site:/var/www
|
||||
# Other configurations ...
|
||||
|
||||
networks:
|
||||
# add this as well
|
||||
traefik:
|
||||
name: traefik
|
||||
external: true
|
@ -275,6 +275,8 @@ devture_systemd_service_manager_services_list_auto: |
|
||||
+
|
||||
([{'name': 'matrix-bot-buscarron.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'buscarron', 'bot-buscarron']}] if matrix_bot_buscarron_enabled else [])
|
||||
+
|
||||
([{'name': 'matrix-bot-baibot.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'baibot', 'bot-baibot']}] if matrix_bot_baibot_enabled else [])
|
||||
+
|
||||
([{'name': 'matrix-bot-go-neb.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'go-neb', 'bot-go-neb']}] if matrix_bot_go_neb_enabled else [])
|
||||
+
|
||||
([{'name': 'matrix-bot-honoroit.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'honoroit', 'bot-honoroit']}] if matrix_bot_honoroit_enabled else [])
|
||||
@ -2731,6 +2733,41 @@ matrix_bot_buscarron_database_password: "{{ '%s' | format(matrix_homeserver_gene
|
||||
#
|
||||
######################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# matrix-bot-baibot
|
||||
#
|
||||
######################################################################
|
||||
|
||||
# We don't enable bots by default.
|
||||
matrix_bot_baibot_enabled: false
|
||||
|
||||
matrix_bot_baibot_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}"
|
||||
|
||||
matrix_bot_baibot_systemd_required_services_list_auto: |
|
||||
{{
|
||||
matrix_addons_homeserver_systemd_services_list
|
||||
}}
|
||||
|
||||
matrix_bot_baibot_config_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
|
||||
|
||||
matrix_bot_baibot_container_network: "{{ matrix_addons_container_network }}"
|
||||
|
||||
matrix_bot_baibot_container_additional_networks_auto: |-
|
||||
{{
|
||||
(
|
||||
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
|
||||
) | unique
|
||||
}}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# /matrix-bot-baibot
|
||||
#
|
||||
######################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# matrix-bot-postmoogle
|
||||
@ -3553,8 +3590,8 @@ jitsi_web_framing_enabled: true
|
||||
jitsi_turn_credentials: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}"
|
||||
jitsi_turn_host: "{{ ('turn.' + matrix_server_fqn_matrix) if matrix_coturn_enabled else '' }}"
|
||||
jitsi_turns_host: "{{ ('turn.' + matrix_server_fqn_matrix) if matrix_coturn_enabled else '' }}"
|
||||
jitsi_turn_port: "{{ matrix_coturn_container_stun_plain_host_bind_port if matrix_coturn_enabled else '' }}"
|
||||
jitsi_turns_port: "{{ matrix_coturn_container_stun_tls_host_bind_port if matrix_coturn_enabled else '' }}"
|
||||
jitsi_turn_port: "{{ matrix_coturn_container_stun_plain_host_bind_port.split(':')[-1] if matrix_coturn_enabled else '' }}"
|
||||
jitsi_turns_port: "{{ matrix_coturn_container_stun_tls_host_bind_port.split(':')[-1] if matrix_coturn_enabled else '' }}"
|
||||
|
||||
# If the self-hosted Etherpad instance is available, it will also show up in Jitsi conferences,
|
||||
# unless explicitly disabled by setting `jitsi_etherpad_enabled` to false.
|
||||
@ -5418,6 +5455,12 @@ matrix_user_creator_users_auto: |
|
||||
'initial_type': 'admin',
|
||||
}] if matrix_bot_matrix_registration_bot_enabled else [])
|
||||
+
|
||||
([{
|
||||
'username': matrix_bot_baibot_config_user_mxid_localpart,
|
||||
'initial_password': matrix_bot_baibot_config_user_password,
|
||||
'initial_type': 'bot',
|
||||
}] if matrix_bot_baibot_enabled else [])
|
||||
+
|
||||
([{
|
||||
'username': matrix_bot_chatgpt_matrix_bot_username_localpart,
|
||||
'initial_password': matrix_bot_chatgpt_matrix_bot_password,
|
||||
|
@ -15,6 +15,7 @@ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom:
|
||||
insecure: true
|
||||
|
||||
matrix_synapse_metrics_proxying_enabled: true
|
||||
matrix_sliding_sync_enabled: true
|
||||
|
||||
matrix_base_data_path: "{{ vault_matrix_base_data_path }}"
|
||||
matrix_server_fqn_element: "chat.{{ matrix_domain }}"
|
||||
@ -251,6 +252,12 @@ matrix_mautrix_signal_configuration_extension_yaml: |
|
||||
enabled: true
|
||||
listen_port: {{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}
|
||||
|
||||
matrix_bridges_encryption_enabled: true
|
||||
matrix_bridges_encryption_default: true
|
||||
matrix_appservice_double_puppet_enabled: true
|
||||
|
||||
matrix_mautrix_slack_enabled: true
|
||||
matrix_mautrix_slack_appservice_bot_username: slack
|
||||
|
||||
#
|
||||
# mx-puppet-instagram configuration
|
||||
@ -300,28 +307,28 @@ matrix_mx_puppet_discord_configuration_extension_yaml: |
|
||||
#
|
||||
# mx-puppet-slack configuration
|
||||
#
|
||||
matrix_mx_puppet_slack_enabled: true
|
||||
matrix_mx_puppet_slack_client_id: "{{ vault_matrix_mx_puppet_slack_client_id }}"
|
||||
matrix_mx_puppet_slack_client_secret: "{{ vault_matrix_mx_puppet_slack_client_secret }}"
|
||||
matrix_mx_puppet_slack_oauth_redirect_path: '/bridge/slack/oauth'
|
||||
matrix_mx_puppet_slack_container_http_auth_host_bind_port: 8981
|
||||
matrix_mx_puppet_slack_container_http_monitoring_host_bind_port: 9406
|
||||
matrix_mx_puppet_slack_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}"
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_auth_host_bind_port }}:8008"
|
||||
matrix_mx_puppet_slack_configuration_extension_yaml: |
|
||||
bridge:
|
||||
enableGroupSync: true
|
||||
metrics:
|
||||
enabled: true
|
||||
port: {{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}
|
||||
path: /metrics
|
||||
limits:
|
||||
maxAutojoinUsers: 500
|
||||
roomUserAutojoinDelay: 50
|
||||
presence:
|
||||
enabled: true
|
||||
interval: 3000
|
||||
#matrix_mx_pUppet_slack_enabled: true
|
||||
#matrix_mx_puppet_slack_client_id: "{{ vault_matrix_mx_puppet_slack_client_id }}"
|
||||
#matrix_mx_puppet_slack_client_secret: "{{ vault_matrix_mx_puppet_slack_client_secret }}"
|
||||
#matrix_mx_puppet_slack_oauth_redirect_path: '/bridge/slack/oauth'
|
||||
#matrix_mx_puppet_slack_container_http_auth_host_bind_port: 8981
|
||||
#matrix_mx_puppet_slack_container_http_monitoring_host_bind_port: 9406
|
||||
#matrix_mx_puppet_slack_container_extra_arguments:
|
||||
# - "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}"
|
||||
# - "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_auth_host_bind_port }}:8008"
|
||||
#matrix_mx_puppet_slack_configuration_extension_yaml: |
|
||||
# bridge:
|
||||
# enableGroupSync: true
|
||||
# metrics:
|
||||
# enabled: true
|
||||
# port: {{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}
|
||||
# path: /metrics
|
||||
# limits:
|
||||
# maxAutojoinUsers: 500
|
||||
# roomUserAutojoinDelay: 50
|
||||
# presence:
|
||||
# enabled: true
|
||||
# interval: 3000
|
||||
|
||||
|
||||
#
|
||||
|
@ -1,100 +1,105 @@
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
39366364363633336238333130353832663162393038633665396333343732353964333363666539
|
||||
6562346632343235623835643735386434316666393234360a383634616537393134613631383836
|
||||
61333835363666623033306166376232303930306433343366373463653234623736643633383734
|
||||
3330333665383539650a383132353032386230393031626361343764323034386230363066306331
|
||||
34646236336262623435633566363033613737373064616266336237343233663066396163373034
|
||||
62303765353066653737366539626461636531636438323932333134363136363134646164646531
|
||||
63656638666233313437663261396665653736373164323433306435323336633938313164646264
|
||||
33653661633965363833393031616463633761356234633630643562306366653133366637346166
|
||||
38636433343736343461613731623538633361363934343764326466313261353633646230353065
|
||||
37366134303164356433333961346663313963626165323966656536313532376162326565383539
|
||||
65363333633964323838663461373666353665643236623839646664653661613838353239613137
|
||||
39353061323131306365656261343630313665356165623064616436653566373663343733316237
|
||||
34393666383465323463313838393465643830373632373938633763666636346539666233303265
|
||||
38353337633833373331356663633936326334366337393135653030333531613565643666633038
|
||||
64393862303765366632393137313432376563353335353231323464633637343334346634306534
|
||||
35613330373336633031376263306466306437656635396133613335386130346163663438386136
|
||||
61646437343938663431343736363564376238316666373531616231366132643864346538363866
|
||||
35396433366137356162313963666134383134306462313336613735386639363936326131383939
|
||||
66623833643433663039623837623133303336666233623935313438366136353332313165333936
|
||||
31386632336535383533646639636164313331346630633366383739623261366465656632393062
|
||||
63373332623738303364623437666531396331646666336230353333366261653438363861656466
|
||||
39333762633037383336393164616563396564383232636533363864636230616664303330323932
|
||||
66666234633362346132303932643464366466323535303835363430333737666661373534333934
|
||||
61393362616438626636383564613335363634626231663234616438343464383461303632363033
|
||||
39336362396339316661323662393665383031643931626333646335643335353661653939363538
|
||||
38666561313539613566386132336630643237333432656236356132616230663561343665353938
|
||||
33366663353834356434366335373265373439363430636533303933656264366338623232613435
|
||||
35356662383232386137313064313363303861326635333435393737643663336534363234623430
|
||||
32376432353330613666396337303935376366613564353039396164383361616337656535346166
|
||||
34396635356266326461613135303639643935363261396363636338636564643838313262326266
|
||||
31663139343336376233303637373864363835313839326433656235616332333134306139623239
|
||||
37636639356263646437373362333931613262363363313462666534643765313139386461623731
|
||||
33376635653133353033333733613464396632636634313063326363313030376632643863336237
|
||||
61636638353237313764313435626463633964643665313536326235343639663137373436303564
|
||||
30636232626137376339303238653664346538356430306238633037366332316263623666373062
|
||||
63646533646131303466653637346463613237323161313265613834383634626237323563653733
|
||||
38656435303264346663663465333966376631666530333833353233376263336436613065366362
|
||||
36366263343438393132326661623031316663663231663464383732343064383234616636306530
|
||||
66613634626362316533303034393063666632343262613431613635663866636433623535363238
|
||||
30643933613731363236346234336662613633323831633437613435326465383530653765616262
|
||||
63373538396364316563343365303134373466663639386137663564356532353531343636613135
|
||||
63316463353264316164306566326462333732316431643939626161346530636638636662303037
|
||||
34346461313961613063336332333934383363373335616636363661396362613661383762663866
|
||||
64303834636264376461396266663763336665356561376161333136336638646363313133353161
|
||||
31643061623833623239373432633537663664636334623534326639616633616361333834366131
|
||||
30376361656238353332656666316637643133623433333861653265636266376639666135383638
|
||||
37363337326231656530363536393737383565666266306532626361633633353539363866376534
|
||||
61303737326632303762626666306134343837376566343035386663613336626332383035383035
|
||||
37633462373066373062313862323766316362393832666466396637363562353865303366323062
|
||||
39346332383966313437646138623364656234663066663639663138626163656433363038323166
|
||||
65613862386665643438323061323763306635666162303366323131363436633335356332393366
|
||||
63373966383132303434633835333438333337303664346335643066623839343835643364306561
|
||||
34643336346564363462396330643263653931376664386335313433376332653832323437376135
|
||||
35383231386133363236653334393433306638303131323064343931623538323130343666653061
|
||||
36353536383632333964343730346265626433303131346531303133663832363036333261386237
|
||||
30363361356265356139323761623563396565336137333733656431636531333234323061343862
|
||||
33623935346663333735613661363234646234356331323636386637343661373363363261646231
|
||||
33643233343235323230393933616664623166666266333862323631653835666135303233653635
|
||||
63373061656163353762636531613632366638383366303864343132376162643963366564363563
|
||||
61336338613935613532636165383463633866633036393533313433643562313737383431353163
|
||||
37623165373933376236393931363939633963666636303136373065376635623761346537643530
|
||||
35363464313630376233633863306238616138666464316534363332333937343362343233346431
|
||||
34643032323934353939666364323239653932363735373061633434653062326336353239633261
|
||||
38306237336266663038656534393664646138343038323335633064616431386666613739326630
|
||||
34383963666534313530376331366238343836303036306336343533666332386163643033643138
|
||||
33336333333338353733383165306139623964303035653439623131633566356136386431613135
|
||||
63616462386639303230343866346631346532353531373132613433363239646330653666633532
|
||||
65393766333238383531313132633537633833363335303630376239396565373730646331313633
|
||||
30383861303739343265623934643635633361623262356433323035393062353630346430646262
|
||||
63303434353038646361353661616339313937323336303566303536366163623362356332383862
|
||||
37326333393761633732653264646333653439363039323238383361336233323232613336303464
|
||||
34393635633131313135313665363161306466643364393734346264633030373234306466653862
|
||||
32336163666435636162343465386633653863363533616339636531306130383331376563393533
|
||||
65366136626662343065383164646665613035393636373565346235656439303933343563366339
|
||||
36643838393033353033396535613331303031646162316361613564323163633434633861356135
|
||||
62343461616335323565636633383962316531316362396165366533346166336163623232366261
|
||||
39376230376562626135346333326437373733373266393236383435343562653034313133376236
|
||||
61666138346562613330633630373837653465393233613261353937336666646231366666393335
|
||||
35393463333936323664323831396639333462626238613164616435363664643438653763623431
|
||||
32663237363134353061373563396535653565636431366565386337653863316333343738343432
|
||||
62303132636338303462313439376535363063333833363632613832303436353834376561333330
|
||||
66633632383135646263626333643230343630326539663762633934316261633062663732373932
|
||||
30306438386263626335373838343236643562326135663366353638353163346365396261313133
|
||||
36333634306133353235316237343738623263333732343063356238333162323931346664346539
|
||||
66323733643061386334306130633537353630663336313966663538373963313435666564316539
|
||||
63613030366332363432303036396232306537663765653938353736376135316539613135623632
|
||||
66356639623635663365323635646635383638346539323438336261393332373935383536333831
|
||||
61306639343061333639336162366536366438356166396266666132303932333037613632623666
|
||||
63616662343830303664353931306632323630316162643432653835313962633735626163366332
|
||||
34373637633066333432383533316363613031393963373963386161663430623533383165653561
|
||||
38343439633066366663643138326264653539336530393932386236366533663935353664343966
|
||||
39323161646231353234633961633732613065323039663062313661386565366534623430356632
|
||||
64343732336238393262363338363734643639353830646163343361653761633134303163616562
|
||||
35633436393832393137383534613031303963613339333566343065336530623964636662353065
|
||||
32366630353538383339346465376661323666333234373665613164633866363364613066643034
|
||||
37616630366232353166366535633936366536626462353831643335306337353564316461653564
|
||||
66663133373466333431336366346435623436656230376232613665633466333463636263373464
|
||||
30386434336538303061666566383033616563303564666362346432663130306531613063363537
|
||||
646635613236636563666161666630653836
|
||||
61626165616330663863393762663031623164636666346339343636363035663463636135656533
|
||||
3338383762633130346536613334626164306464333835380a353264386431326437616234393165
|
||||
61323266623432353731373634353339393936643130346434346530336563326533386331646533
|
||||
3030663037666664360a346636343966663733663836633736316630663230613137663166336336
|
||||
62383131343934353635633261323036613231646439626162306238313132316664653237653533
|
||||
34376464633335626133376138343139653561613232333133393535393137653964633561313761
|
||||
62653632663432313936336231613832626362343737383863343562636437646439666638383733
|
||||
63313538616430393536356534303164633332653538643264353834393465373538643963343039
|
||||
31366661636263353936363931343938323563626538303133366263363533393564386466666361
|
||||
38666264643931336563633663663538616431313231336364653631383261326537336162313837
|
||||
32373730343538653862326636303264353737353139663161393762383138393531363264633531
|
||||
32383661396537636635666665316630663032333932393131336235663938623932383230343830
|
||||
31613563656663343830353438396535663864306531333239623738653838633331386465353466
|
||||
37366363643334623165373562363465636161396437333966303864663033636665623564613565
|
||||
39643635333636363132633462386536393634303838343835363633626162363236653839376230
|
||||
34666430363933336335323330386339656339356637653931643565303166303436333562333361
|
||||
38633838636337316137343564613338346239663933356130396562306164376430363233373632
|
||||
66303430303034353262343565373139333535636231623062633537653636376136656138623637
|
||||
34396562376233643234643436323433336436393163363935643033643833386631633762343162
|
||||
33633136316635326532343430383437366139333830373731636265386234356164393066333663
|
||||
37663934633437653364356231383934313132343162323436373339393964656336646164333533
|
||||
37626336616565323237633736653433316238366261303465343466643363303131376665346231
|
||||
62623133336561313732393837323330643138663830353662366139373366383436323530333732
|
||||
38623633666537643038636163303164653866343934616236343733386533663936303637326462
|
||||
63633137626632613736313333643363373963306161353431396261646635383930366166363135
|
||||
66353962643638616635376137346439383339303236323761366439306638623762343966623035
|
||||
30323435396533633238313962306366343362393339616131393839653565666666313833313433
|
||||
66386362353061323465666563616230336565663339646162623634643330646239343934373636
|
||||
33363061316637613266373831376133303337616639643239393835636138323266613134633633
|
||||
65356634636562313961643865353334306131333030373566666535373039343337613964306465
|
||||
32393163666232383266363763336132653765316162663961653933633832626533646537376136
|
||||
64613133373135616531343837616264656461313963646565656465656165303534343834663734
|
||||
62313865366634656265613264623234653165633839323030643333643139323531643637393439
|
||||
61656561303732663834336334643765616234373063306236303538646663316131663933323236
|
||||
63396263663034613832653361383061336132663032646133323931386562653661346264363439
|
||||
35636463613635316239363061363836623564303933373964363365626133373039643264666530
|
||||
30343165366365333339366639353033666634613162363164333433633563613461666532323566
|
||||
63303836353331326439646139653738633866356463303264623166306262393766346338373537
|
||||
62373865303264633663666333323135343530323434383835393763363739636135646538336364
|
||||
33376438636264393635383163353431336463396263333239626566653262373434316532343633
|
||||
61363061623430636462393135316564636536633963393338383334643134366232396564316635
|
||||
31373963633164653235643665653863303831663065383433363036633962633462393839363235
|
||||
36323562323634643639643561636261643136313633656236656566353539343063386162383234
|
||||
38653461633561353639336531353333393262633065386539353031386332343739656261653238
|
||||
31326434386130336465613233663563323035666631303137313665336566363134306638663265
|
||||
62353430353934633965316636643566653235366230323139656539646539626236616138313362
|
||||
31643437366563383164306331303662356562616366366237613633666534623765323034396534
|
||||
38326537376265343065313738316433353266633539313134323735383864623663323662633662
|
||||
65613862623766343736343031636238356161343036363566646635643334373030386434646135
|
||||
64336263356663376564333935623135396231623165326437393563333361356435346634616665
|
||||
66376231666633643936323264323565346637343538366138616631383964376632613437323163
|
||||
30366537326533363939643237376538366230313263623139323662396633343239343066313564
|
||||
63356533373338653030313038653137666434323737323763623136666530313035356634666633
|
||||
35643530333632633664643361633964666432336631636561343739646266653634353963323534
|
||||
35663731616539646332393837633566393734643033623937316661653839663937303666376339
|
||||
65653036373565323435636637373231316265393231333734356462356635346531366530316262
|
||||
37643632346164366561353236373633623464643536373361666263303739356335333934313537
|
||||
31373035633333313065613162346133663736313265376230393135353431343765306539633032
|
||||
63353338656231376666613138353235613362643334653537353237653139396533363630303033
|
||||
36363039613232666266333535343466336263663762623865376532326262666332303361356266
|
||||
65646337323037383564666639363636333135323265633932333264346363326466343234653936
|
||||
65656535343663356562613064323138656338633064633462313864616665653230626638373939
|
||||
61623862386364396335323836396664653731633365623936383435383330643038386665653238
|
||||
62643961626464313666343431303064303338396135643432383730613161336435306262653132
|
||||
38373432393564333562363761386239343366343465386638643737663561633837303734333835
|
||||
66366465633164346365356637313534376136303630666432613664363030323336316639393339
|
||||
61383565316432383633383832363439316366373536336639643961333663303631633464633238
|
||||
31396331386163386261393565346266636436386465326639326363663930666665306637393263
|
||||
65363763336561316566363164626466643637343731666530386432343431653634353336376461
|
||||
33366233366533656334666138346661323463633133303933626163343666623761613961346231
|
||||
35383232306336386665313264393933646631656333613138353532666133366339656564353865
|
||||
35353330393131366137663466333363653866323936353734306361633163626537363561346332
|
||||
65363231623766666638383661323964633034366261633035303861383135383235656465373738
|
||||
66373762626130356633626436366533626633353836346239666333353262656665636330626561
|
||||
66613165313137373766623464646330643662393033396266643662653136393233336265353430
|
||||
38376130663634333133353763383264623133373230323938316638323864643430386633376564
|
||||
65356264623766666637353866326638613435663830623063343439373030663663623432393863
|
||||
33343134626465313230646239646537653938613938633736346235323438393237363639373932
|
||||
61376231386265366132333965333133343737623066383534666633396635356537623432623132
|
||||
62656431323033633265626265613736383435376132613532333037613834313130626361373533
|
||||
39653361323366636335343865343737346264636433386332666332376662343634356630316135
|
||||
30366163333561353338663666363738313732303031333637636266623530623261306335616233
|
||||
31346436346663643464626134313338346439323838343663613135663834666632653866346431
|
||||
64376566343963346664366363353636636231386530363961333131383133323163396265313563
|
||||
35393534343664336237336231313831333739633662306636373338663434613231306538343865
|
||||
61613063306432623932616534363865333639396232383562396161383539363336303463323731
|
||||
63313239666538306239663864653839616132363662336331636262353061663136386331306131
|
||||
66336361396239383638623463663635613364366433343739356331633330633561653038633530
|
||||
38303832363663656432396636613134613965373639353731366138323435326135626339353263
|
||||
39313032333966376135653664623666626233613530646534636362646237303465653931666563
|
||||
65343936623462633162343334643335623834323364646362633232346237306337303430616363
|
||||
61633930343132303962653432636230343331343332616434323035633963623138653737306566
|
||||
34353135623134626237653165663738633435656439393234643432353535646439313638653664
|
||||
39326437393166633937663261336330656266303431383437626163623163303133323139313563
|
||||
39383664633739373664653131326665306533633162373535396464663637653662336237656161
|
||||
39633138383166316437313237303733336365343066366462643165643865653039343037633263
|
||||
61613730393666636530633231396165363033313161663463323861663262383234643236643038
|
||||
61633138323664613061663538383333323566393262303633623136613166636361306562356163
|
||||
66363033373262396461316438643238396633353962616362623363303035353765393164616230
|
||||
35303664616539363639373830623337396239626539613761613839363638326664306465313762
|
||||
34646634326338306430653065343231366430666534306331336532346535663737633639363834
|
||||
34623539616339363535633365306230663264626234363637366436353833663136303032623338
|
||||
32633761333165393231303165393234643363313839373339666433666130313035643836626531
|
||||
63356638666264333163
|
||||
|
@ -10,7 +10,7 @@
|
||||
version: v0.2.0-0
|
||||
name: container_socket_proxy
|
||||
- src: git+https://github.com/geerlingguy/ansible-role-docker
|
||||
version: 7.3.0
|
||||
version: 7.4.1
|
||||
name: docker
|
||||
- src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git
|
||||
version: 129c8590e106b83e6f4c259649a613c6279e937a
|
||||
@ -49,7 +49,7 @@
|
||||
version: 8c3585fb4857dbac026b2974bb6525289240effb
|
||||
name: postgres_backup
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git
|
||||
version: v2.54.0-0
|
||||
version: v2.54.1-0
|
||||
name: prometheus
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
|
||||
version: v1.8.2-0
|
||||
@ -70,7 +70,7 @@
|
||||
version: v1.0.0-0
|
||||
name: timesync
|
||||
- src: git+https://github.com/devture/com.devture.ansible.role.traefik.git
|
||||
version: v3.1.2-0
|
||||
version: v3.1.2-1
|
||||
name: traefik
|
||||
- src: git+https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper.git
|
||||
version: v2.8.3-4
|
||||
|
@ -6,7 +6,7 @@
|
||||
matrix_alertmanager_receiver_enabled: true
|
||||
|
||||
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
|
||||
matrix_alertmanager_receiver_version: 2024.8.21
|
||||
matrix_alertmanager_receiver_version: 2024.8.28
|
||||
|
||||
matrix_alertmanager_receiver_scheme: https
|
||||
|
||||
|
488
roles/custom/matrix-bot-baibot/defaults/main.yml
Normal file
488
roles/custom/matrix-bot-baibot/defaults/main.yml
Normal file
@ -0,0 +1,488 @@
|
||||
---
|
||||
|
||||
# baibot is a bot exposing the power of Large Language Models to you.
|
||||
# Project source code URL: https://github.com/etkecc/baibot
|
||||
|
||||
matrix_bot_baibot_enabled: true
|
||||
|
||||
matrix_bot_baibot_container_image_self_build: false
|
||||
matrix_bot_baibot_container_repo: "https://github.com/etkecc/baibot.git"
|
||||
matrix_bot_baibot_container_repo_version: "{{ 'main' if matrix_bot_baibot_version == 'latest' else matrix_bot_baibot_version }}"
|
||||
matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src"
|
||||
|
||||
# renovate: datasource=docker depName=ghcr.io/etkecc/baibot
|
||||
matrix_bot_baibot_version: latest
|
||||
matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_name_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}"
|
||||
matrix_bot_baibot_container_image_name_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else 'ghcr.io/' }}"
|
||||
matrix_bot_baibot_container_image_force_pull: "{{ matrix_bot_baibot_container_image.endswith(':latest') }}"
|
||||
|
||||
matrix_bot_baibot_base_path: "{{ matrix_base_data_path }}/baibot"
|
||||
matrix_bot_baibot_config_path: "{{ matrix_bot_baibot_base_path }}/config"
|
||||
matrix_bot_baibot_data_path: "{{ matrix_bot_baibot_base_path }}/data"
|
||||
|
||||
matrix_bot_baibot_container_network: ""
|
||||
|
||||
matrix_bot_baibot_container_additional_networks: "{{ matrix_bot_baibot_container_additional_networks_auto + matrix_bot_baibot_container_additional_networks_custom }}"
|
||||
matrix_bot_baibot_container_additional_networks_auto: []
|
||||
matrix_bot_baibot_container_additional_networks_custom: []
|
||||
|
||||
# A list of extra arguments to pass to the container
|
||||
matrix_bot_baibot_container_extra_arguments: []
|
||||
|
||||
# List of systemd services that matrix-bot-baibot.service depends on
|
||||
matrix_bot_baibot_systemd_required_services_list: "{{ matrix_bot_baibot_systemd_required_services_list_default + matrix_bot_baibot_systemd_required_services_list_auto + matrix_bot_baibot_systemd_required_services_list_custom }}"
|
||||
matrix_bot_baibot_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
|
||||
matrix_bot_baibot_systemd_required_services_list_auto: []
|
||||
matrix_bot_baibot_systemd_required_services_list_custom: []
|
||||
|
||||
# List of systemd services that matrix-bot-baibot.service wants
|
||||
matrix_bot_baibot_systemd_wanted_services_list: []
|
||||
|
||||
# Controls the `homeserver.server_name` configuration setting.
|
||||
matrix_bot_baibot_config_homeserver_server_name: "{{ matrix_domain }}"
|
||||
|
||||
# Controls the `homeserver.url` configuration setting.
|
||||
matrix_bot_baibot_config_homeserver_url: ""
|
||||
|
||||
# Controls the `user.mxid_localpart` configuration setting.
|
||||
#
|
||||
# This affects the bot's username.
|
||||
# Changing this subsequently will require you to drop the bot's session/database (see `matrix_bot_baibot_data_path`),
|
||||
# so it can start fresh.
|
||||
matrix_bot_baibot_config_user_mxid_localpart: baibot
|
||||
|
||||
# Controls the `user.password` configuration setting.
|
||||
matrix_bot_baibot_config_user_password: ''
|
||||
|
||||
# Controls the `user.name` configuration setting.
|
||||
#
|
||||
# The name the bot uses as a display name and when it refers to itself.
|
||||
# If you leave this empty, the bot will use the default (baibot).
|
||||
#
|
||||
# Also see: `matrix_bot_baibot_config_user_mxid_localpart`
|
||||
matrix_bot_baibot_config_user_name: baibot
|
||||
|
||||
# Controls the `user.encryption.recovery_passphrase` configuration setting.
|
||||
#
|
||||
# An optional passphrase to use for backing up and recovering the bot's encryption keys.
|
||||
# You can use any string here.
|
||||
#
|
||||
# If left empty, the recovery module will not be used and losing your session/database (see persistence)
|
||||
# will mean you lose access to old messages in encrypted room.
|
||||
#
|
||||
# Changing this subsequently will also cause you to lose access to old messages in encrypted rooms.
|
||||
# If you really need to change this:
|
||||
# - Set `matrix_bot_baibot_config_user_encryption_recovery_reset_allowed` to `true` and adjust the passphrase
|
||||
# - Remove your session file and database (see persistence)
|
||||
# - Restart the bot
|
||||
# - Then restore `matrix_bot_baibot_config_user_encryption_recovery_reset_allowed` to `false` to prevent accidental resets in the future
|
||||
matrix_bot_baibot_config_user_encryption_recovery_passphrase: null
|
||||
|
||||
# Controls the `user.encryption.recovery_passphrase` configuration setting.
|
||||
#
|
||||
# An optional flag to reset the encryption recovery passphrase (see `matrix_bot_baibot_config_user_encryption_recovery_passphrase`).
|
||||
matrix_bot_baibot_config_user_encryption_recovery_reset_allowed: false
|
||||
|
||||
# Controls the `command_prefix` configuration setting.
|
||||
# If you leave this empty, the bot will use the default (!bai).
|
||||
matrix_bot_baibot_config_command_prefix: "!bai"
|
||||
|
||||
# Controls the `access.admin_patterns` configuration setting.
|
||||
# A space-separated list of MXID patterns which specify who is an admin.
|
||||
#
|
||||
# Example:
|
||||
# matrix_bot_baibot_config_access_admin_patterns:
|
||||
# - "@*:example.com"
|
||||
# - "@admin:another.com"
|
||||
matrix_bot_baibot_config_access_admin_patterns: "{{ [matrix_admin] if matrix_admin else [] }}"
|
||||
|
||||
# Controls the `persistence.data_dir_path` configuration setting.
|
||||
#
|
||||
# The bot runs in a container, so this is the in-container path referring to the data directory on the host
|
||||
# (see `matrix_bot_baibot_data_path`).
|
||||
#
|
||||
# You generally don't need to change this.
|
||||
matrix_bot_baibot_config_persistence_data_dir_path: /data
|
||||
|
||||
# Controls the `persistence.session_encryption_key` configuration setting.
|
||||
#
|
||||
# An optional secret for encrypting the bot's session data (see `matrix_bot_baibot_data_path`).
|
||||
# This must be 32-bytes (64 characters when HEX-encoded).
|
||||
# Generate it with: `openssl rand -hex 32`
|
||||
# Leave null or empty to avoid using encryption.
|
||||
# Changing this subsequently requires that you also throw away all data (see `matrix_bot_baibot_data_path`)
|
||||
matrix_bot_baibot_config_persistence_session_encryption_key: null
|
||||
|
||||
# Controls the `persistence.config_encryption_key` configuration setting.
|
||||
#
|
||||
# An optional secret for encrypting bot configuration stored in Matrix's account data.
|
||||
# This must be 32-bytes (64 characters when HEX-encoded).
|
||||
# Generate it with: `openssl rand -hex 32`
|
||||
# Leave null or empty to avoid using encryption.
|
||||
# Changing this subsequently will make you lose your configuration.
|
||||
matrix_bot_baibot_config_persistence_config_encryption_key: null
|
||||
|
||||
# Controls the `agents.static_definitions` configuration setting.
|
||||
#
|
||||
# There are some presets (e.g. `matrix_bot_baibot_config_agents_static_definitions_openai_*`) you can easily use to get started with a given provider.
|
||||
# You can also define your own agents via `matrix_bot_baibot_config_agents_static_definitions_custom`.
|
||||
matrix_bot_baibot_config_agents_static_definitions: "{{ matrix_bot_baibot_config_agents_static_definitions_auto + matrix_bot_baibot_config_agents_static_definitions_custom }}"
|
||||
matrix_bot_baibot_config_agents_static_definitions_auto: |-
|
||||
{{
|
||||
([{
|
||||
'id': matrix_bot_baibot_config_agents_static_definitions_anthropic_id,
|
||||
'provider': matrix_bot_baibot_config_agents_static_definitions_anthropic_provider,
|
||||
'config': matrix_bot_baibot_config_agents_static_definitions_anthropic_config,
|
||||
}] if matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled else [])
|
||||
+
|
||||
([{
|
||||
'id': matrix_bot_baibot_config_agents_static_definitions_groq_id,
|
||||
'provider': matrix_bot_baibot_config_agents_static_definitions_groq_provider,
|
||||
'config': matrix_bot_baibot_config_agents_static_definitions_groq_config,
|
||||
}] if matrix_bot_baibot_config_agents_static_definitions_groq_enabled else [])
|
||||
+
|
||||
([{
|
||||
'id': matrix_bot_baibot_config_agents_static_definitions_mistral_id,
|
||||
'provider': matrix_bot_baibot_config_agents_static_definitions_mistral_provider,
|
||||
'config': matrix_bot_baibot_config_agents_static_definitions_mistral_config,
|
||||
}] if matrix_bot_baibot_config_agents_static_definitions_mistral_enabled else [])
|
||||
+
|
||||
([{
|
||||
'id': matrix_bot_baibot_config_agents_static_definitions_openai_id,
|
||||
'provider': matrix_bot_baibot_config_agents_static_definitions_openai_provider,
|
||||
'config': matrix_bot_baibot_config_agents_static_definitions_openai_config,
|
||||
}] if matrix_bot_baibot_config_agents_static_definitions_openai_enabled else [])
|
||||
}}
|
||||
matrix_bot_baibot_config_agents_static_definitions_custom: []
|
||||
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# Anthropic agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled: false
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_id: anthropic
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_provider: anthropic
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension, recursive=True)}}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml: "{{ lookup('template', 'templates/provider/anthropic-config.yml.j2') }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension_yaml | from_yaml is mapping else {} }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension_yaml: |
|
||||
# Your custom YAML configuration for this provider's configuration goes here.
|
||||
# This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_anthropic_config`).
|
||||
#
|
||||
# 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_baibot_config_agents_static_definitions_anthropic_config_yaml`.
|
||||
#
|
||||
# Example configuration extension follows:
|
||||
#
|
||||
# text_generation:
|
||||
# temperature: 3.5
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_base_url: https://api.anthropic.com/v1
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key: ""
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_enabled: true
|
||||
# For valid model choices, see: https://platform.anthropic.com/docs/models
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-3-5-sonnet-20240620
|
||||
# The prompt text to use (can be null or empty to not use a prompt).
|
||||
# See: https://huggingface.co/docs/transformers/en/tasks/prompting
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt: null
|
||||
# The temperature parameter controls the randomness of the generated text.
|
||||
# See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_temperature: 1.0
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_max_response_tokens: 8192
|
||||
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_max_context_tokens: 204800
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# /Anthropic agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# Groq agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_enabled: false
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_id: groq
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_provider: groq
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_groq_config_extension, recursive=True)}}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml: "{{ lookup('template', 'templates/provider/groq-config.yml.j2') }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_groq_config_extension_yaml | from_yaml is mapping else {} }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_extension_yaml: |
|
||||
# Your custom YAML configuration for this provider's configuration goes here.
|
||||
# This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_groq_config`).
|
||||
#
|
||||
# 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_baibot_config_agents_static_definitions_groq_config_yaml`.
|
||||
#
|
||||
# Example configuration extension follows:
|
||||
#
|
||||
# text_generation:
|
||||
# temperature: 3.5
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_base_url: https://api.groq.com/openai/v1
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key: ""
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_enabled: true
|
||||
# For valid model choices, see: https://platform.groq.com/docs/models
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_model_id: ""
|
||||
# The prompt text to use (can be null or empty to not use a prompt).
|
||||
# See: https://huggingface.co/docs/transformers/en/tasks/prompting
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_prompt: null
|
||||
# The temperature parameter controls the randomness of the generated text.
|
||||
# See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_temperature: 1.0
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_max_response_tokens: 4096
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_max_context_tokens: 131072
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_enabled: true
|
||||
matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_model_id: whisper-large-v3
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# /Groq agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# Mistral agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_enabled: false
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_id: mistral
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_provider: mistral
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension, recursive=True)}}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml: "{{ lookup('template', 'templates/provider/mistral-config.yml.j2') }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension_yaml | from_yaml is mapping else {} }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension_yaml: |
|
||||
# Your custom YAML configuration for this provider's configuration goes here.
|
||||
# This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_mistral_config`).
|
||||
#
|
||||
# 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_baibot_config_agents_static_definitions_mistral_config_yaml`.
|
||||
#
|
||||
# Example configuration extension follows:
|
||||
#
|
||||
# text_generation:
|
||||
# temperature: 3.5
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_base_url: https://api.mistral.ai/v1
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key: ""
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_enabled: true
|
||||
# For valid model choices, see: https://platform.mistral.com/docs/models
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_model_id: mistral-large-latest
|
||||
# The prompt text to use (can be null or empty to not use a prompt).
|
||||
# See: https://huggingface.co/docs/transformers/en/tasks/prompting
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_prompt: null
|
||||
# The temperature parameter controls the randomness of the generated text.
|
||||
# See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_temperature: 1.0
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_max_response_tokens: 4096
|
||||
matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_max_context_tokens: 128000
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# /Mistral agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# OpenAI agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_enabled: false
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_id: openai
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_provider: openai
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_openai_config_extension, recursive=True)}}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml: "{{ lookup('template', 'templates/provider/openai-config.yml.j2') }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_openai_config_extension_yaml | from_yaml is mapping else {} }}"
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_extension_yaml: |
|
||||
# Your custom YAML configuration for this provider's configuration goes here.
|
||||
# This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_openai_config`).
|
||||
#
|
||||
# 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_baibot_config_agents_static_definitions_openai_config_yaml`.
|
||||
#
|
||||
# Example configuration extension follows:
|
||||
#
|
||||
# text_generation:
|
||||
# temperature: 3.5
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_base_url: https://api.openai.com/v1
|
||||
|
||||
# The API key is intentionally not required. Some OpenAI-compatible APIs do not require a key.
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: ""
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_enabled: true
|
||||
# For valid model choices, see: https://platform.openai.com/docs/models
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-4o
|
||||
# The prompt text to use (can be null or empty to not use a prompt).
|
||||
# See: https://huggingface.co/docs/transformers/en/tasks/prompting
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt: null
|
||||
# The temperature parameter controls the randomness of the generated text.
|
||||
# See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_temperature: 1.0
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens: 16384
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens: 128000
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_enabled: true
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_model_id: whisper-1
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_enabled: true
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_model_id: tts-1-hd
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_voice: onyx
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_speed: 1.0
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_response_format: opus
|
||||
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_enabled: true
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_model_id: dall-e-3
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_style: vivid
|
||||
matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_size: 1024x1024
|
||||
|
||||
########################################################################################
|
||||
# #
|
||||
# /OpenAI agent configuration #
|
||||
# #
|
||||
########################################################################################
|
||||
|
||||
|
||||
# Controls the `initial_global_config.handler.catch_all` configuration setting.
|
||||
#
|
||||
# This is an initial global configuration setting.
|
||||
# It only affects the first run of the bot. Configuration is later managed at runtime.
|
||||
matrix_bot_baibot_config_initial_global_config_handler_catch_all: null
|
||||
|
||||
# Controls the `initial_global_config.handler.text_generation` configuration setting.
|
||||
#
|
||||
# This is an initial global configuration setting.
|
||||
# It only affects the first run of the bot. Configuration is later managed at runtime.
|
||||
matrix_bot_baibot_config_initial_global_config_handler_text_generation: null
|
||||
|
||||
# Controls the `initial_global_config.handler.text_to_speech` configuration setting.
|
||||
#
|
||||
# This is an initial global configuration setting.
|
||||
# It only affects the first run of the bot. Configuration is later managed at runtime.
|
||||
matrix_bot_baibot_config_initial_global_config_handler_text_to_speech: null
|
||||
|
||||
# Controls the `initial_global_config.handler.speech_to_text` configuration setting.
|
||||
#
|
||||
# This is an initial global configuration setting.
|
||||
# It only affects the first run of the bot. Configuration is later managed at runtime.
|
||||
matrix_bot_baibot_config_initial_global_config_handler_speech_to_text: null
|
||||
|
||||
# Controls the `initial_global_config.handler.image_generation` configuration setting.
|
||||
#
|
||||
# This is an initial global configuration setting.
|
||||
# It only affects the first run of the bot. Configuration is later managed at runtime.
|
||||
matrix_bot_baibot_config_initial_global_config_handler_image_generation: null
|
||||
|
||||
# Controls the `initial_global_config.user_patterns` configuration setting.
|
||||
#
|
||||
# A space-separated list of MXID patterns which specify who can use the bot.
|
||||
# By default, we let anyone on the homeserver use the bot.
|
||||
#
|
||||
# This is an initial global configuration setting.
|
||||
# It only affects the first run of the bot. Configuration is later managed at runtime.
|
||||
matrix_bot_baibot_config_initial_global_config_user_patterns:
|
||||
- "@*:{{ matrix_bot_baibot_config_homeserver_server_name }}"
|
||||
|
||||
# Controls the `logging` configuration setting.
|
||||
#
|
||||
# This could take a single value (e.g. `warn`) to affect all tracing targets,
|
||||
# or individual libraries (e.g. `mxlink`, `baibot`) can be configured independently of the main level.
|
||||
#
|
||||
# Below, we configure the logging level for:
|
||||
# - the bot (baibot), via `matrix_bot_baibot_config_logging_level_baibot`
|
||||
# - the bot framework that the bot is based on (mxlink), via `matrix_bot_baibot_config_logging_level_mxlink`
|
||||
# - everything else (external libraries), via `matrix_bot_baibot_config_logging_level_other_libs`
|
||||
#
|
||||
# Valid values for each level are: `trace`, `debug`, `info`, `warn`, `error`.
|
||||
# Learn more here: https://stackoverflow.com/a/73735203
|
||||
matrix_bot_baibot_config_logging: "{{ matrix_bot_baibot_config_logging_level_other_libs }},mxlink={{ matrix_bot_baibot_config_logging_level_mxlink }},baibot={{ matrix_bot_baibot_config_logging_level_baibot }}"
|
||||
|
||||
# Adjust the logging level for other libraries used by the bot.
|
||||
matrix_bot_baibot_config_logging_level_other_libs: warn
|
||||
|
||||
# Affects the logging level of the bot framework (mxlink) that the bot is based on.
|
||||
# Related to `matrix_bot_baibot_config_logging`
|
||||
matrix_bot_baibot_config_logging_level_mxlink: info
|
||||
|
||||
# Affects the logging level of the bot itself.
|
||||
# Related to `matrix_bot_baibot_config_logging`
|
||||
matrix_bot_baibot_config_logging_level_baibot: info
|
||||
|
||||
# Holds the final baibot configuration (a combination of the default and its extension).
|
||||
# You most likely don't need to touch this variable. Instead, see `matrix_bot_baibot_configuration_yaml` or `matrix_bot_baibot_configuration_extension_yaml`.
|
||||
matrix_bot_baibot_configuration: "{{ matrix_bot_baibot_configuration_yaml | from_yaml | combine(matrix_bot_baibot_configuration_extension, recursive=True) }}"
|
||||
|
||||
# Default baibot configuration template which covers the generic use case.
|
||||
# You can customize it by controlling the various variables inside it.
|
||||
#
|
||||
# For a more advanced customization, you can extend the default (see `matrix_bot_baibot_configuration_extension_yaml`)
|
||||
# or completely replace this variable with your own template.
|
||||
matrix_bot_baibot_configuration_yaml: "{{ lookup('template', 'templates/config.yml.j2') }}"
|
||||
|
||||
matrix_bot_baibot_configuration_extension_yaml: |
|
||||
# Your custom YAML configuration for baibot goes here.
|
||||
# This configuration extends the default starting configuration (`matrix_bot_baibot_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_baibot_configuration_yaml`.
|
||||
#
|
||||
# Example configuration extension follows:
|
||||
#
|
||||
# user:
|
||||
# password: something
|
||||
|
||||
matrix_bot_baibot_configuration_extension: "{{ matrix_bot_baibot_configuration_extension_yaml | from_yaml if matrix_bot_baibot_configuration_extension_yaml | from_yaml is mapping else {} }}"
|
||||
|
||||
# Additional environment variables to pass to the baibot container.
|
||||
#
|
||||
# Environment variables take priority over settings in the configuration file.
|
||||
#
|
||||
# Example:
|
||||
# matrix_bot_baibot_environment_variables_extension: |
|
||||
# BAIBOT_USER_PASSWORD=password
|
||||
matrix_bot_baibot_environment_variables_extension: ''
|
77
roles/custom/matrix-bot-baibot/tasks/install.yml
Normal file
77
roles/custom/matrix-bot-baibot/tasks/install.yml
Normal file
@ -0,0 +1,77 @@
|
||||
---
|
||||
|
||||
- name: Ensure baibot paths exist
|
||||
ansible.builtin.file:
|
||||
path: "{{ item.path }}"
|
||||
state: directory
|
||||
mode: 0750
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
with_items:
|
||||
- {path: "{{ matrix_bot_baibot_config_path }}", when: true}
|
||||
- {path: "{{ matrix_bot_baibot_data_path }}", when: true}
|
||||
- {path: "{{ matrix_bot_baibot_container_src_files_path }}", when: matrix_bot_baibot_container_image_self_build}
|
||||
when: "item.when | bool"
|
||||
|
||||
- name: Ensure baibot configuration installed
|
||||
ansible.builtin.copy:
|
||||
content: "{{ matrix_bot_baibot_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||
dest: "{{ matrix_bot_baibot_config_path }}/config.yml"
|
||||
mode: 0644
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
- name: Ensure baibot environment variables file created
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/env.j2"
|
||||
dest: "{{ matrix_bot_baibot_config_path }}/env"
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
mode: 0640
|
||||
|
||||
- name: Ensure baibot image is pulled
|
||||
community.docker.docker_image:
|
||||
name: "{{ matrix_bot_baibot_container_image }}"
|
||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||
force_source: "{{ matrix_bot_baibot_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_baibot_container_image_force_pull }}"
|
||||
when: "not matrix_bot_baibot_container_image_self_build | bool"
|
||||
register: result
|
||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||
until: result is not failed
|
||||
|
||||
- name: Ensure baibot repository is present on self-build
|
||||
ansible.builtin.git:
|
||||
repo: "{{ matrix_bot_baibot_container_repo }}"
|
||||
version: "{{ matrix_bot_baibot_container_repo_version }}"
|
||||
dest: "{{ matrix_bot_baibot_container_src_files_path }}"
|
||||
force: "yes"
|
||||
become: true
|
||||
become_user: "{{ matrix_user_username }}"
|
||||
register: matrix_bot_baibot_git_pull_results
|
||||
when: "matrix_bot_baibot_container_image_self_build | bool"
|
||||
|
||||
- name: Ensure baibot image is built
|
||||
community.docker.docker_image:
|
||||
name: "{{ matrix_bot_baibot_container_image }}"
|
||||
source: build
|
||||
force_source: "{{ matrix_bot_baibot_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_baibot_git_pull_results.changed }}"
|
||||
build:
|
||||
dockerfile: Dockerfile
|
||||
path: "{{ matrix_bot_baibot_container_src_files_path }}"
|
||||
pull: true
|
||||
when: "matrix_bot_baibot_container_image_self_build | bool"
|
||||
|
||||
- name: Ensure baibot container network is created
|
||||
community.general.docker_network:
|
||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
||||
name: "{{ matrix_bot_baibot_container_network }}"
|
||||
driver: bridge
|
||||
|
||||
- name: Ensure matrix-bot-baibot.service installed
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/systemd/matrix-bot-baibot.service.j2"
|
||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-bot-baibot.service"
|
||||
mode: 0644
|
20
roles/custom/matrix-bot-baibot/tasks/main.yml
Normal file
20
roles/custom/matrix-bot-baibot/tasks/main.yml
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
|
||||
- tags:
|
||||
- setup-all
|
||||
- setup-bot-baibot
|
||||
- install-all
|
||||
- install-bot-baibot
|
||||
block:
|
||||
- when: matrix_bot_baibot_enabled | bool
|
||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||
|
||||
- when: matrix_bot_baibot_enabled | bool
|
||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/install.yml"
|
||||
|
||||
- tags:
|
||||
- setup-all
|
||||
- setup-bot-baibot
|
||||
block:
|
||||
- when: not matrix_bot_baibot_enabled | bool
|
||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/uninstall.yml"
|
25
roles/custom/matrix-bot-baibot/tasks/uninstall.yml
Normal file
25
roles/custom/matrix-bot-baibot/tasks/uninstall.yml
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
|
||||
- name: Check existence of matrix-baibot service
|
||||
ansible.builtin.stat:
|
||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-bot-baibot.service"
|
||||
register: matrix_bot_baibot_service_stat
|
||||
|
||||
- when: matrix_bot_baibot_service_stat.stat.exists | bool
|
||||
block:
|
||||
- name: Ensure matrix-baibot is stopped
|
||||
ansible.builtin.service:
|
||||
name: matrix-bot-baibot
|
||||
state: stopped
|
||||
enabled: false
|
||||
daemon_reload: true
|
||||
|
||||
- name: Ensure matrix-bot-baibot.service doesn't exist
|
||||
ansible.builtin.file:
|
||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-bot-baibot.service"
|
||||
state: absent
|
||||
|
||||
- name: Ensure Matrix baibot paths don't exist
|
||||
ansible.builtin.file:
|
||||
path: "{{ matrix_bot_baibot_base_path }}"
|
||||
state: absent
|
28
roles/custom/matrix-bot-baibot/tasks/validate_config.yml
Normal file
28
roles/custom/matrix-bot-baibot/tasks/validate_config.yml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
|
||||
- name: Fail if required baibot settings not defined
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
You need to define a required configuration setting (`{{ item.name }}`).
|
||||
when: "item.when | bool and vars[item.name] == ''"
|
||||
with_items:
|
||||
- {'name': 'matrix_bot_baibot_config_user_mxid_localpart', when: true}
|
||||
- {'name': 'matrix_bot_baibot_config_user_password', when: true}
|
||||
- {'name': 'matrix_bot_baibot_container_network', when: true}
|
||||
- {'name': 'matrix_bot_baibot_config_homeserver_url', when: true}
|
||||
|
||||
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key', when: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled }}"}
|
||||
|
||||
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key', when: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_enabled }}"}
|
||||
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_model_id', when: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_enabled and matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_enabled }}"}
|
||||
|
||||
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key', when: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_enabled }}"}
|
||||
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_model_id', when: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_enabled and matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_enabled }}"}
|
||||
|
||||
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key', when: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_enabled }}"}
|
||||
|
||||
- name: Fail if admin patterns list is empty
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
You need to define a required configuration setting (`matrix_bot_baibot_config_access_admin_patterns`) to specify which users are bot administrators.
|
||||
when: "matrix_bot_baibot_config_access_admin_patterns | length == 0"
|
85
roles/custom/matrix-bot-baibot/templates/config.yml.j2
Normal file
85
roles/custom/matrix-bot-baibot/templates/config.yml.j2
Normal file
@ -0,0 +1,85 @@
|
||||
# Default configuration for baibot.
|
||||
# To extend it, use `matrix_bot_baibot_configuration_extension_yaml`.
|
||||
|
||||
homeserver:
|
||||
# The canonical homeserver domain name
|
||||
server_name: {{ matrix_bot_baibot_config_homeserver_server_name | to_json }}
|
||||
url: {{ matrix_bot_baibot_config_homeserver_url | to_json }}
|
||||
|
||||
user:
|
||||
mxid_localpart: {{ matrix_bot_baibot_config_user_mxid_localpart | to_json }}
|
||||
password: {{ matrix_bot_baibot_config_user_password | to_json }}
|
||||
|
||||
# The name the bot uses as a display name and when it refers to itself.
|
||||
# Leave empty to use the default (baibot).
|
||||
name: {{ matrix_bot_baibot_config_user_name | to_json }}
|
||||
|
||||
encryption:
|
||||
# An optional passphrase to use for backing up and recovering the bot's encryption keys.
|
||||
# You can use any string here.
|
||||
#
|
||||
# If left empty, the recovery module will not be used and losing your session/database (see persistence)
|
||||
# will mean you lose access to old messages in encrypted room.
|
||||
#
|
||||
# Changing this subsequently will also cause you to lose access to old messages in encrypted rooms.
|
||||
# If you really need to change this:
|
||||
# - Set `encryption_recovery_reset_allowed` to `true` and adjust the passphrase
|
||||
# - Remove your session file and database (see persistence)
|
||||
# - Restart the bot
|
||||
# - Then restore `encryption_recovery_reset_allowed` to `false` to prevent accidental resets in the future
|
||||
recovery_passphrase: {{ matrix_bot_baibot_config_user_encryption_recovery_passphrase | to_json }}
|
||||
|
||||
# An optional flag to reset the encryption recovery passphrase.
|
||||
recovery_reset_allowed: {{ matrix_bot_baibot_config_user_encryption_recovery_reset_allowed | to_json }}
|
||||
|
||||
# Command prefix. Leave empty to use the default (!bai).
|
||||
command_prefix: {{ matrix_bot_baibot_config_command_prefix | to_json }}
|
||||
|
||||
access:
|
||||
# Space-separated list of MXID patterns which specify who is an admin.
|
||||
admin_patterns: {{ matrix_bot_baibot_config_access_admin_patterns | to_json }}
|
||||
|
||||
persistence:
|
||||
data_dir_path: {{ matrix_bot_baibot_config_persistence_data_dir_path | to_json }}
|
||||
|
||||
# An optional secret for encrypting the bot's session data (stored in data_dir_path).
|
||||
# This must be 32-bytes (64 characters when HEX-encoded).
|
||||
# Generate it with: `openssl rand -hex 32`
|
||||
# Leave null or empty to avoid using encryption.
|
||||
# Changing this subsequently requires that you also throw away all data stored in data_dir_path.
|
||||
session_encryption_key: {{ matrix_bot_baibot_config_persistence_session_encryption_key | to_json }}
|
||||
|
||||
# An optional secret for encrypting bot configuration stored in Matrix's account data.
|
||||
# This must be 32-bytes (64 characters when HEX-encoded).
|
||||
# Generate it with: `openssl rand -hex 32`
|
||||
# Leave null or empty to avoid using encryption.
|
||||
# Changing this subsequently will make you lose your configuration.
|
||||
config_encryption_key: {{ matrix_bot_baibot_config_persistence_config_encryption_key | to_json }}
|
||||
|
||||
agents:
|
||||
# A list of statically-defined agents.
|
||||
static_definitions: {{ matrix_bot_baibot_config_agents_static_definitions | to_json }}
|
||||
|
||||
# Initial global configuration. This only affects the first run of the bot.
|
||||
# Configuration is later managed at runtime.
|
||||
initial_global_config:
|
||||
handler:
|
||||
catch_all: {{ matrix_bot_baibot_config_initial_global_config_handler_catch_all | to_json }}
|
||||
text_generation: {{ matrix_bot_baibot_config_initial_global_config_handler_text_generation | to_json }}
|
||||
text_to_speech: {{ matrix_bot_baibot_config_initial_global_config_handler_text_to_speech | to_json }}
|
||||
speech_to_text: {{ matrix_bot_baibot_config_initial_global_config_handler_speech_to_text | to_json }}
|
||||
image_generation: {{ matrix_bot_baibot_config_initial_global_config_handler_image_generation | to_json }}
|
||||
|
||||
# Space-separated list of MXID patterns which specify who can use the bot.
|
||||
# By default, we let anyone on the homeserver use the bot.
|
||||
user_patterns: {{ matrix_bot_baibot_config_initial_global_config_user_patterns | to_json}}
|
||||
|
||||
# Controls logging.
|
||||
#
|
||||
# Sets all tracing targets (external crates) to warn, and our own logs to debug.
|
||||
# For even more verbose logging, one may also use trace.
|
||||
#
|
||||
# matrix_sdk_crypto may be chatty and could be added with an error level.
|
||||
#
|
||||
# Learn more here: https://stackoverflow.com/a/73735203
|
||||
logging: {{ matrix_bot_baibot_config_logging | to_json }}
|
1
roles/custom/matrix-bot-baibot/templates/env.j2
Normal file
1
roles/custom/matrix-bot-baibot/templates/env.j2
Normal file
@ -0,0 +1 @@
|
||||
{{ matrix_bot_baibot_environment_variables_extension }}
|
@ -0,0 +1,13 @@
|
||||
#jinja2: lstrip_blocks: "True"
|
||||
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_base_url | to_json }}
|
||||
|
||||
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key | to_json }}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_enabled %}
|
||||
text_generation:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id | to_json }}
|
||||
prompt: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt | to_json }}
|
||||
temperature: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_temperature | to_json }}
|
||||
max_response_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_max_response_tokens | int | to_json }}
|
||||
max_context_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_max_context_tokens | int | to_json }}
|
||||
{% endif %}
|
@ -0,0 +1,18 @@
|
||||
#jinja2: lstrip_blocks: "True"
|
||||
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_base_url | to_json }}
|
||||
|
||||
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key | to_json }}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_enabled %}
|
||||
text_generation:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_model_id | to_json }}
|
||||
prompt: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_prompt | to_json }}
|
||||
temperature: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_temperature | to_json }}
|
||||
max_response_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_max_response_tokens | int | to_json }}
|
||||
max_context_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_max_context_tokens | int | to_json }}
|
||||
{% endif %}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_enabled %}
|
||||
speech_to_text:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_model_id | to_json }}
|
||||
{% endif %}
|
@ -0,0 +1,13 @@
|
||||
#jinja2: lstrip_blocks: "True"
|
||||
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_base_url | to_json }}
|
||||
|
||||
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key | to_json }}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_enabled %}
|
||||
text_generation:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_model_id | to_json }}
|
||||
prompt: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_prompt | to_json }}
|
||||
temperature: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_temperature | to_json }}
|
||||
max_response_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_max_response_tokens | int | to_json }}
|
||||
max_context_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_max_context_tokens | int | to_json }}
|
||||
{% endif %}
|
@ -0,0 +1,33 @@
|
||||
#jinja2: lstrip_blocks: "True"
|
||||
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_base_url | to_json }}
|
||||
|
||||
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key | to_json }}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_enabled %}
|
||||
text_generation:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id | to_json }}
|
||||
prompt: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt | to_json }}
|
||||
temperature: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_temperature | to_json }}
|
||||
max_response_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens | int | to_json }}
|
||||
max_context_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens | int | to_json }}
|
||||
{% endif %}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_enabled %}
|
||||
speech_to_text:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_model_id | to_json }}
|
||||
{% endif %}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_enabled %}
|
||||
text_to_speech:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_model_id | to_json }}
|
||||
voice: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_voice | to_json }}
|
||||
speed: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_speed | float }}
|
||||
response_format: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_response_format | to_json }}
|
||||
{% endif %}
|
||||
|
||||
{% if matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_enabled %}
|
||||
image_generation:
|
||||
model_id: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_model_id | to_json }}
|
||||
style: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_style | to_json }}
|
||||
size: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_size | to_json }}
|
||||
{% endif %}
|
@ -0,0 +1,53 @@
|
||||
#jinja2: lstrip_blocks: "True"
|
||||
[Unit]
|
||||
Description=Matrix baibot bot
|
||||
{% for service in matrix_bot_baibot_systemd_required_services_list %}
|
||||
Requires={{ service }}
|
||||
After={{ service }}
|
||||
{% endfor %}
|
||||
{% for service in matrix_bot_baibot_systemd_wanted_services_list %}
|
||||
Wants={{ service }}
|
||||
{% endfor %}
|
||||
DefaultDependencies=no
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}"
|
||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-baibot 2>/dev/null || true'
|
||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-baibot 2>/dev/null || true'
|
||||
|
||||
{#
|
||||
We mount a tmpfs at /tmp, because the bot may write temporary files there
|
||||
(see its `src/agent/provider/openai_compat/controller.rs`).
|
||||
#}
|
||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
|
||||
--rm \
|
||||
--name=matrix-bot-baibot \
|
||||
--log-driver=none \
|
||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
||||
--cap-drop=ALL \
|
||||
--read-only \
|
||||
--network={{ matrix_bot_baibot_container_network }} \
|
||||
--env-file={{ matrix_bot_baibot_config_path }}/env \
|
||||
--mount type=bind,src={{ matrix_bot_baibot_config_path }}/config.yml,dst=/app/config.yml,ro \
|
||||
--mount type=bind,src={{ matrix_bot_baibot_data_path }},dst=/data \
|
||||
--tmpfs=/tmp:rw,noexec,nosuid,size=1024m \
|
||||
{% for arg in matrix_bot_baibot_container_extra_arguments %}
|
||||
{{ arg }} \
|
||||
{% endfor %}
|
||||
{{ matrix_bot_baibot_container_image }}
|
||||
|
||||
{% for network in matrix_bot_baibot_container_additional_networks %}
|
||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-bot-baibot
|
||||
{% endfor %}
|
||||
|
||||
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-baibot
|
||||
|
||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-baibot 2>/dev/null || true'
|
||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-baibot 2>/dev/null || true'
|
||||
Restart=always
|
||||
RestartSec=30
|
||||
SyslogIdentifier=matrix-bot-baibot
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
|
||||
# buscarron is a Web forms (HTTP POST) to Matrix service.
|
||||
# Project source code URL: https://gitlab.com/etke.cc/buscarron
|
||||
# Project source code URL: https://github.com/etkecc/buscarron
|
||||
|
||||
matrix_bot_buscarron_enabled: true
|
||||
|
||||
@ -25,7 +25,7 @@ matrix_bot_buscarron_data_path: "{{ matrix_bot_buscarron_base_path }}/data"
|
||||
matrix_bot_buscarron_data_store_path: "{{ matrix_bot_buscarron_data_path }}/store"
|
||||
|
||||
matrix_bot_buscarron_container_image_self_build: false
|
||||
matrix_bot_buscarron_docker_repo: "https://gitlab.com/etke.cc/buscarron.git"
|
||||
matrix_bot_buscarron_docker_repo: "https://github.com/etkecc/buscarron.git"
|
||||
matrix_bot_buscarron_docker_repo_version: "{{ matrix_bot_buscarron_version }}"
|
||||
matrix_bot_buscarron_docker_src_files_path: "{{ matrix_base_data_path }}/buscarron/docker-src"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
# honoroit is a helpdesk bot
|
||||
# Project source code URL: https://gitlab.com/etke.cc/honoroit
|
||||
# Project source code URL: https://github.com/etkecc/honoroit
|
||||
|
||||
matrix_bot_honoroit_enabled: true
|
||||
|
||||
@ -16,12 +16,12 @@ matrix_bot_honoroit_path_prefix: /
|
||||
matrix_bot_honoroit_metrics_path: /metrics
|
||||
|
||||
matrix_bot_honoroit_container_image_self_build: false
|
||||
matrix_bot_honoroit_docker_repo: "https://gitlab.com/etke.cc/honoroit.git"
|
||||
matrix_bot_honoroit_docker_repo: "https://github.com/etkecc/honoroit.git"
|
||||
matrix_bot_honoroit_docker_repo_version: "{{ matrix_bot_honoroit_version }}"
|
||||
matrix_bot_honoroit_docker_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src"
|
||||
|
||||
# renovate: datasource=docker depName=ghcr.io/etkecc/honoroit
|
||||
matrix_bot_honoroit_version: v0.9.25
|
||||
matrix_bot_honoroit_version: v0.9.26
|
||||
matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_name_prefix }}etkecc/honoroit:{{ matrix_bot_honoroit_version }}"
|
||||
matrix_bot_honoroit_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else 'ghcr.io/' }}"
|
||||
matrix_bot_honoroit_docker_image_force_pull: "{{ matrix_bot_honoroit_docker_image.endswith(':latest') }}"
|
||||
|
@ -21,7 +21,7 @@ matrix_bot_maubot_docker_src_files_path: "{{ matrix_bot_maubot_base_path }}/dock
|
||||
matrix_bot_maubot_docker_repo_version: "{{ 'master' if matrix_bot_maubot_version == 'latest' else matrix_bot_maubot_version }}"
|
||||
|
||||
# renovate: datasource=docker depName=dock.mau.dev/maubot/maubot
|
||||
matrix_bot_maubot_version: v0.4.2
|
||||
matrix_bot_maubot_version: v0.5.0
|
||||
matrix_bot_maubot_docker_image: "{{ matrix_bot_maubot_docker_image_name_prefix }}maubot/maubot:{{ matrix_bot_maubot_version }}"
|
||||
matrix_bot_maubot_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_maubot_container_image_self_build else 'dock.mau.dev/' }}"
|
||||
matrix_bot_maubot_docker_image_force_pull: "{{ matrix_bot_maubot_docker_image.endswith(':latest') }}"
|
||||
|
@ -5,7 +5,7 @@
|
||||
matrix_bot_mjolnir_enabled: true
|
||||
|
||||
# renovate: datasource=docker depName=matrixdotorg/mjolnir
|
||||
matrix_bot_mjolnir_version: "v1.6.5"
|
||||
matrix_bot_mjolnir_version: "v1.7.0"
|
||||
|
||||
matrix_bot_mjolnir_container_image_self_build: false
|
||||
matrix_bot_mjolnir_container_image_self_build_repo: "https://github.com/matrix-org/mjolnir.git"
|
||||
|
@ -46,7 +46,7 @@ matrix_heisenbridge_container_labels_traefik_tls_certResolver: default # noqa v
|
||||
matrix_heisenbridge_container_labels_traefik_media_enabled: true
|
||||
matrix_heisenbridge_container_labels_traefik_media_hostname: "{{ matrix_heisenbridge_container_labels_traefik_hostname }}"
|
||||
# The path prefix must either be `/` or not end with a slash (e.g. `/heisenbridge`).
|
||||
matrix_heisenbridge_container_labels_traefik_media_path_prefix: "{{ '/_heisenbridge/media' if matrix_heisenbridge_container_labels_traefik_path_prefix == '/' else (matrix_heisenbridge_container_labels_traefik_path_prefix + '/_heisenbridge/media') }}"
|
||||
matrix_heisenbridge_container_labels_traefik_media_path_prefix: "{{ '' if matrix_heisenbridge_container_labels_traefik_path_prefix == '/' else (matrix_heisenbridge_container_labels_traefik_path_prefix) }}/_heisenbridge/media"
|
||||
matrix_heisenbridge_container_labels_traefik_media_rule: "Host(`{{ matrix_heisenbridge_container_labels_traefik_media_hostname }}`){% if matrix_heisenbridge_container_labels_traefik_media_path_prefix != '/' %} && PathPrefix(`{{ matrix_heisenbridge_container_labels_traefik_media_path_prefix }}`){% endif %}"
|
||||
matrix_heisenbridge_container_labels_traefik_media_priority: 0
|
||||
matrix_heisenbridge_container_labels_traefik_media_entrypoints: "{{ matrix_heisenbridge_container_labels_traefik_entrypoints }}"
|
||||
@ -79,19 +79,16 @@ matrix_heisenbridge_homeserver_url: ""
|
||||
matrix_heisenbridge_appservice_token: ''
|
||||
matrix_heisenbridge_homeserver_token: ''
|
||||
|
||||
# In light of Synapse sunsetting unauthenticated media, we'd like to move to Heisenbridge's media proxy,
|
||||
# announced here: https://github.com/hifi/heisenbridge/releases/tag/v1.15.0
|
||||
#
|
||||
# It seems like the media proxy is not working as expected, so we're disabling it for now and falling back to our old media URL (pointing Heisenbridge to the homeserver URL).
|
||||
# Right now, Heisenbridge is still generating URLs like `{media_url}/_matrix/media/v3/download/DOMAIN/FILE_ID/FILE_NAME`,
|
||||
# so pointing `media_url` to the homeserver is a good fit.
|
||||
# matrix_heisenbridge_config_media_url: "{{ matrix_heisenbridge_scheme }}://{{ matrix_heisenbridge_hostname }}{{ matrix_heisenbridge_path_prefix }}"
|
||||
matrix_heisenbridge_config_media_url: "{{ matrix_heisenbridge_scheme }}://{{ matrix_heisenbridge_hostname }}"
|
||||
# This matches the hardcoded `DEFAULT_MEDIA_PATH` in Heisenbridge, but uses `matrix_heisenbridge_path_prefix` as the path prefix.
|
||||
# See: https://github.com/hifi/heisenbridge/blob/7e18a5818f4a8c86cc62e474eee1631d16cb2602/heisenbridge/__main__.py#L66
|
||||
matrix_heisenbridge_config_media_path: "{{ matrix_heisenbridge_container_labels_traefik_media_path_prefix }}/{server}/{media_id}/{checksum}{filename}"
|
||||
matrix_heisenbridge_config_media_key: "{{ matrix_heisenbridge_homeserver_token }}"
|
||||
matrix_heisenbridge_config_displayname: "Heisenbridge"
|
||||
|
||||
matrix_heisenbridge_registration_yaml_heisenbridge:
|
||||
media_url: "{{ matrix_heisenbridge_config_media_url }}"
|
||||
media_path: "{{ matrix_heisenbridge_config_media_path }}"
|
||||
media_key: "{{ matrix_heisenbridge_config_media_key }}"
|
||||
displayname: "{{ matrix_heisenbridge_config_displayname }}"
|
||||
|
||||
|
@ -7,7 +7,7 @@ matrix_client_cinny_container_image_self_build: false
|
||||
matrix_client_cinny_container_image_self_build_repo: "https://github.com/ajbura/cinny.git"
|
||||
|
||||
# renovate: datasource=docker depName=ajbura/cinny
|
||||
matrix_client_cinny_version: v4.1.0
|
||||
matrix_client_cinny_version: v4.2.1
|
||||
matrix_client_cinny_docker_image: "{{ matrix_client_cinny_docker_image_name_prefix }}ajbura/cinny:{{ matrix_client_cinny_version }}"
|
||||
matrix_client_cinny_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_cinny_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||
matrix_client_cinny_docker_image_force_pull: "{{ matrix_client_cinny_docker_image.endswith(':latest') }}"
|
||||
|
@ -11,7 +11,7 @@ matrix_client_element_container_image_self_build_repo: "https://github.com/eleme
|
||||
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}"
|
||||
|
||||
# renovate: datasource=docker depName=vectorim/element-web
|
||||
matrix_client_element_version: v1.11.75
|
||||
matrix_client_element_version: v1.11.77
|
||||
|
||||
matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}"
|
||||
matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||
|
@ -5,7 +5,7 @@ matrix_client_schildichat_enabled: true
|
||||
|
||||
matrix_client_schildichat_container_image_self_build: false
|
||||
|
||||
# renovate: datasource=docker depName=registry.gitlab.com/etke.cc/schildichat-web
|
||||
# renovate: datasource=docker depName=ghcr.io/etkecc/schildichat-web
|
||||
matrix_client_schildichat_version: 1.11.36-sc.3
|
||||
matrix_client_schildichat_docker_image: "{{ matrix_client_schildichat_docker_image_name_prefix }}etkecc/schildichat-web:{{ matrix_client_schildichat_version }}"
|
||||
matrix_client_schildichat_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_schildichat_container_image_self_build else 'ghcr.io/' }}"
|
||||
|
@ -13,7 +13,7 @@ matrix_dendrite_docker_image_path: "matrixdotorg/dendrite-monolith"
|
||||
matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_name_prefix }}{{ matrix_dendrite_docker_image_path }}:{{ matrix_dendrite_docker_image_tag }}"
|
||||
matrix_dendrite_docker_image_name_prefix: "{{ 'localhost/' if matrix_dendrite_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||
# renovate: datasource=docker depName=matrixdotorg/dendrite-monolith
|
||||
matrix_dendrite_docker_image_tag: "v0.13.7"
|
||||
matrix_dendrite_docker_image_tag: "v0.13.8"
|
||||
matrix_dendrite_docker_image_force_pull: "{{ matrix_dendrite_docker_image.endswith(':latest') }}"
|
||||
|
||||
matrix_dendrite_base_path: "{{ matrix_base_data_path }}/dendrite"
|
||||
|
@ -74,7 +74,7 @@ matrix_media_repo_container_labels_traefik_entrypoints: web-secure
|
||||
# These are being superseded by `/_matrix/client/VERSION/media` endpoints - see `matrix_media_repo_container_labels_traefik_client_matrix_client_media_*`.
|
||||
matrix_media_repo_container_labels_traefik_media_enabled: true
|
||||
matrix_media_repo_container_labels_traefik_media_path_prefix: "/_matrix/media"
|
||||
matrix_media_repo_container_labels_traefik_media_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_media_path_prefix | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_media_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_media_path_prefix }}`)"
|
||||
matrix_media_repo_container_labels_traefik_media_priority: 0
|
||||
matrix_media_repo_container_labels_traefik_media_entrypoints: "{{ matrix_media_repo_container_labels_traefik_entrypoints }}"
|
||||
matrix_media_repo_container_labels_traefik_media_tls: "{{ matrix_media_repo_container_labels_traefik_media_entrypoints != 'web' }}"
|
||||
@ -84,7 +84,7 @@ matrix_media_repo_container_labels_traefik_media_tls_certResolver: default # no
|
||||
# See: https://github.com/matrix-org/matrix-spec-proposals/pull/3916
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_enabled: true
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_path_regexp: "/_matrix/client/(?P<version>(v1))/media"
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathRegexp(`{{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_path_regexp | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathRegexp(`{{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_path_regexp }}`)"
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_priority: 0
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_entrypoints: "{{ matrix_media_repo_container_labels_traefik_entrypoints }}"
|
||||
matrix_media_repo_container_labels_traefik_client_matrix_client_media_tls: "{{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_entrypoints != 'web' }}"
|
||||
@ -95,7 +95,7 @@ matrix_media_repo_container_labels_traefik_client_matrix_client_media_tls_certRe
|
||||
# These are being superseded by `/_matrix/client/VERSION/media` endpoints - see `matrix_media_repo_container_labels_traefik_internal_matrix_client_media_*`.
|
||||
matrix_media_repo_container_labels_traefik_internal_media_enabled: false
|
||||
matrix_media_repo_container_labels_traefik_internal_media_path_prefix: "{{ matrix_media_repo_container_labels_traefik_media_path_prefix }}"
|
||||
matrix_media_repo_container_labels_traefik_internal_media_rule: "PathPrefix(`{{ matrix_media_repo_container_labels_traefik_internal_media_path_prefix | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_internal_media_rule: "PathPrefix(`{{ matrix_media_repo_container_labels_traefik_internal_media_path_prefix }}`)"
|
||||
matrix_media_repo_container_labels_traefik_internal_media_priority: "{{ matrix_media_repo_container_labels_traefik_media_priority }}"
|
||||
matrix_media_repo_container_labels_traefik_internal_media_entrypoints: ""
|
||||
|
||||
@ -103,7 +103,7 @@ matrix_media_repo_container_labels_traefik_internal_media_entrypoints: ""
|
||||
# See: https://github.com/matrix-org/matrix-spec-proposals/pull/3916
|
||||
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_enabled: false
|
||||
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_path_regexp: "{{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_path_regexp }}"
|
||||
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_rule: "PathRegexp(`{{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_path_regexp | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_rule: "PathRegexp(`{{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_path_regexp }}`)"
|
||||
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_priority: "{{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_priority }}"
|
||||
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_entrypoints: ""
|
||||
|
||||
@ -133,7 +133,7 @@ matrix_media_repo_container_labels_traefik_admin_tls_certResolver: default # no
|
||||
# - /_matrix/client/unstable/io.t2bot.media
|
||||
matrix_media_repo_container_labels_traefik_t2bot_enabled: true
|
||||
matrix_media_repo_container_labels_traefik_t2bot_path_prefix: "/_matrix/client/unstable/io.t2bot.media"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_t2bot_path_prefix | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_t2bot_path_prefix }}`)"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_priority: 0
|
||||
matrix_media_repo_container_labels_traefik_t2bot_entrypoints: "{{ matrix_media_repo_container_labels_traefik_entrypoints }}"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_tls: "{{ matrix_media_repo_container_labels_traefik_t2bot_entrypoints != 'web' }}"
|
||||
@ -155,7 +155,7 @@ matrix_media_repo_container_labels_traefik_metrics_middleware_basic_auth_users:
|
||||
# These are being superseded by `/_matrix/federation/VERSION/media` endpoints - see `matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_*`.
|
||||
matrix_media_repo_container_labels_traefik_media_federation_enabled: true
|
||||
matrix_media_repo_container_labels_traefik_media_federation_path_prefix: "/_matrix/media"
|
||||
matrix_media_repo_container_labels_traefik_media_federation_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_media_path_prefix | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_media_federation_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_media_path_prefix }}`)"
|
||||
matrix_media_repo_container_labels_traefik_media_federation_priority: 0
|
||||
matrix_media_repo_container_labels_traefik_media_federation_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}"
|
||||
matrix_media_repo_container_labels_traefik_media_federation_tls: "{{ matrix_media_repo_container_labels_traefik_media_entrypoints != 'web' }}"
|
||||
@ -165,7 +165,7 @@ matrix_media_repo_container_labels_traefik_media_federation_tls_certResolver: de
|
||||
# See: https://github.com/matrix-org/matrix-spec-proposals/pull/3916
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_enabled: true
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_path_regexp: "/_matrix/federation/(?P<version>(v1))/media"
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathRegexp(`{{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_path_regexp | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathRegexp(`{{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_path_regexp }}`)"
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_priority: 0
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}"
|
||||
matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_tls: "{{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_entrypoints != 'web' }}"
|
||||
@ -197,7 +197,7 @@ matrix_media_repo_container_labels_traefik_admin_federation_tls_certResolver: de
|
||||
# - /_matrix/client/unstable/io.t2bot.media
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_enabled: true
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_path_prefix: "/_matrix/client/unstable/io.t2bot.media"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_t2bot_path_prefix | quote }}`)"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_media_repo_container_labels_traefik_t2bot_path_prefix }}`)"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_priority: 0
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}"
|
||||
matrix_media_repo_container_labels_traefik_t2bot_federation_tls: "{{ matrix_media_repo_container_labels_traefik_t2bot_entrypoints != 'web' }}"
|
||||
|
@ -89,7 +89,7 @@
|
||||
cmd: |
|
||||
{{ devture_systemd_docker_base_host_command_docker }} run
|
||||
--rm
|
||||
--name={{ matrix_media_repo_identifier }}
|
||||
--name={{ matrix_media_repo_identifier }}-temp
|
||||
--user={{ matrix_synapse_uid }}:{{ matrix_synapse_gid }}
|
||||
--cap-drop=ALL
|
||||
--mount type=bind,src={{ matrix_media_repo_config_path }},dst=/config
|
||||
@ -104,7 +104,7 @@
|
||||
cmd: |
|
||||
{{ devture_systemd_docker_base_host_command_docker }} run
|
||||
--rm
|
||||
--name={{ matrix_media_repo_identifier }}
|
||||
--name={{ matrix_media_repo_identifier }}-temp
|
||||
--user={{ matrix_synapse_uid }}:{{ matrix_synapse_gid }}
|
||||
--cap-drop=ALL
|
||||
--mount type=bind,src={{ matrix_media_repo_config_path }},dst=/config
|
||||
|
@ -50,7 +50,7 @@ matrix_prometheus_nginxlog_exporter_container_labels_traefik_docker_network: "{{
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_hostname: "{{ matrix_prometheus_nginxlog_exporter_hostname }}"
|
||||
# The path prefix must either be `/` or not end with a slash (e.g. `/metrics`).
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_path_prefix: "{{ matrix_prometheus_nginxlog_exporter_path_prefix }}"
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_rule: "Host(`{{ matrix_prometheus_nginxlog_exporter_container_labels_traefik_hostname }}`) && PathPrefix(`{{ matrix_prometheus_nginxlog_exporter_container_labels_traefik_path_prefix | quote }}`)"
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_rule: "Host(`{{ matrix_prometheus_nginxlog_exporter_container_labels_traefik_hostname }}`) && PathPrefix(`{{ matrix_prometheus_nginxlog_exporter_container_labels_traefik_path_prefix }}`)"
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_entrypoints: web-secure
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_tls: "{{ matrix_prometheus_nginxlog_exporter_container_labels_traefik_entrypoints != 'web' }}"
|
||||
matrix_prometheus_nginxlog_exporter_container_labels_traefik_tls_certResolver: default # noqa var-naming
|
||||
|
@ -1,6 +1,7 @@
|
||||
---
|
||||
# matrix-synapse-admin is a web UI for mananging the Synapse Matrix server
|
||||
# matrix-synapse-admin is a web UI for managing the Synapse Matrix server
|
||||
# Project source code URL: https://github.com/Awesome-Technologies/synapse-admin
|
||||
# Fork source code URL: https://github.com/etkecc/synapse-admin
|
||||
|
||||
matrix_synapse_admin_enabled: true
|
||||
|
||||
@ -10,12 +11,12 @@ matrix_synapse_admin_config_path: "{{ matrix_synapse_admin_base_path }}/config"
|
||||
matrix_synapse_admin_docker_src_files_path: "{{ matrix_synapse_admin_base_path }}/docker-src"
|
||||
|
||||
matrix_synapse_admin_container_image_self_build: false
|
||||
matrix_synapse_admin_container_image_self_build_repo: "https://github.com/Awesome-Technologies/synapse-admin.git"
|
||||
matrix_synapse_admin_container_image_self_build_repo: "https://github.com/etkecc/synapse-admin.git"
|
||||
|
||||
# renovate: datasource=docker depName=awesometechnologies/synapse-admin
|
||||
matrix_synapse_admin_version: 0.10.3
|
||||
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}awesometechnologies/synapse-admin:{{ matrix_synapse_admin_version }}"
|
||||
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||
# renovate: datasource=docker depName=ghcr.io/etkecc/synapse-admin
|
||||
matrix_synapse_admin_version: v0.10.3-etke13
|
||||
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}etkecc/synapse-admin:{{ matrix_synapse_admin_version }}"
|
||||
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else 'ghcr.io/' }}"
|
||||
matrix_synapse_admin_docker_image_force_pull: "{{ matrix_synapse_admin_docker_image.endswith(':latest') }}"
|
||||
|
||||
# The base container network
|
||||
@ -43,7 +44,7 @@ matrix_synapse_admin_container_labels_traefik_docker_network: "{{ matrix_synapse
|
||||
matrix_synapse_admin_container_labels_traefik_hostname: "{{ matrix_synapse_admin_hostname }}"
|
||||
# The path prefix must either be `/` or not end with a slash (e.g. `/synapse-admin`).
|
||||
matrix_synapse_admin_container_labels_traefik_path_prefix: "{{ matrix_synapse_admin_path_prefix }}"
|
||||
matrix_synapse_admin_container_labels_traefik_rule: "Host(`{{ matrix_synapse_admin_container_labels_traefik_hostname }}`){% if matrix_synapse_admin_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_synapse_admin_container_labels_traefik_path_prefix | quote }}`){% endif %}"
|
||||
matrix_synapse_admin_container_labels_traefik_rule: "Host(`{{ matrix_synapse_admin_container_labels_traefik_hostname }}`){% if matrix_synapse_admin_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_synapse_admin_container_labels_traefik_path_prefix }}`){% endif %}"
|
||||
matrix_synapse_admin_container_labels_traefik_priority: 0
|
||||
matrix_synapse_admin_container_labels_traefik_entrypoints: web-secure
|
||||
matrix_synapse_admin_container_labels_traefik_tls: "{{ matrix_synapse_admin_container_labels_traefik_entrypoints != 'web' }}"
|
||||
|
@ -16,7 +16,7 @@ matrix_synapse_enabled: true
|
||||
matrix_synapse_github_org_and_repo: element-hq/synapse
|
||||
|
||||
# renovate: datasource=docker depName=ghcr.io/element-hq/synapse
|
||||
matrix_synapse_version: v1.113.0
|
||||
matrix_synapse_version: v1.114.0
|
||||
|
||||
matrix_synapse_username: ''
|
||||
matrix_synapse_uid: ''
|
||||
|
@ -2875,16 +2875,6 @@ federation_sender_instances: {{ matrix_synapse_federation_sender_instances | to_
|
||||
pusher_instances: {{ matrix_synapse_federation_pusher_instances | to_json }}
|
||||
{% endif %}
|
||||
|
||||
#{% for i in range(0, matrix_synapse_workers_federation_sender_workers_count|int)|list %}
|
||||
# - federation_sender:{{ i | int }}
|
||||
#{% endfor %}
|
||||
#{% endif %}
|
||||
|
||||
#{% for i in range(0, matrix_synapse_workers_federation_sender_workers_count|int)|list %}
|
||||
# - federation_sender:{{ i | int }}
|
||||
#{% endfor %}
|
||||
#{% endif %}
|
||||
|
||||
# When using workers this should be a map from `worker_name` to the
|
||||
# HTTP replication listener of the worker, if configured.
|
||||
#
|
||||
|
@ -97,7 +97,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_prometheus_node_exporter variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-prometheus-node-exporter role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/prometheus_node_exporter.
|
||||
The matrix-prometheus-node-exporter role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_matrix_prometheus_node_exporter_migration_vars.keys() | join(', ') }}
|
||||
@ -112,7 +112,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_prometheus_postgres_exporter variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-prometheus-postgres-exporter role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/prometheus_postgres_exporter.
|
||||
The matrix-prometheus-postgres-exporter role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_matrix_prometheus_postgres_exporter_migration_vars.keys() | join(', ') }}
|
||||
@ -127,7 +127,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_backup_borg variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-backup-borg role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/backup_borg.
|
||||
The matrix-backup-borg role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_backup_borg_` -> `backup_borg_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_backup_borg_migration_vars.keys() | join(', ') }}
|
||||
@ -142,7 +142,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_grafana variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-grafana role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/grafana.
|
||||
The matrix-grafana role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-grafana.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_grafana_` -> `grafana_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_grafana_migration_vars.keys() | join(', ') }}
|
||||
@ -157,7 +157,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_ntfy variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-ntfy role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/ntfy.
|
||||
The matrix-ntfy role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_ntfy_` -> `ntfy_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_ntfy_migration_vars.keys() | join(', ') }}
|
||||
@ -172,7 +172,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_redis variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-redis role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/redis.
|
||||
The matrix-redis role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-redis.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_redis_` -> `redis_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_redis_migration_vars.keys() | join(', ') }}
|
||||
@ -187,7 +187,7 @@
|
||||
- name: (Deprecation) Catch and report matrix_etherpad variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The matrix-etherpad role that used to be part of this playbook has been replaced by https://gitlab.com/etke.cc/roles/etherpad.
|
||||
The matrix-etherpad role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.
|
||||
The new role is compatible with the old one, but uses different names for its variables.
|
||||
Please change your configuration (vars.yml) to rename all variables (`matrix_etherpad_` -> `etherpad_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_etherpad_migration_vars.keys() | join(', ') }}
|
||||
|
Loading…
Reference in New Issue
Block a user