2022-04-23 15:19:24 +02:00
# Setting up Buscarron (optional)
2024-10-26 18:28:37 +02:00
The playbook can install and configure [Buscarron ](https://github.com/etkecc/buscarron ) for you.
2022-04-23 15:19:24 +02:00
2023-02-25 14:06:29 +01:00
Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room.
2022-04-23 15:19:24 +02:00
## Adjusting the playbook configuration
2024-10-20 22:07:51 +02:00
To enable Buscarron, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
2022-04-23 15:19:24 +02:00
```yaml
matrix_bot_buscarron_enabled: true
2022-11-01 16:03:53 +01:00
# Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_bot_buscarron_login: bot.buscarron
# Generate a strong password here. Consider generating it with `pwgen -s 64 1`
2022-04-23 15:19:24 +02:00
matrix_bot_buscarron_password: PASSWORD_FOR_THE_BOT
# Adjust accepted forms
matrix_bot_buscarron_forms:
2024-10-17 15:17:56 +02:00
- name: contact # (mandatory) Your form name, will be used as endpoint, eg: buscarron.example.com/contact
2024-10-18 18:23:37 +02:00
room: "!qporfwt:{{ matrix_domain }}" # (mandatory) Room ID where form submission will be posted
2024-10-17 15:17:56 +02:00
redirect: https://example.com # (mandatory) To what page user will be redirected after the form submission
2022-04-25 08:40:49 +02:00
ratelimit: 1r/m # (optional) rate limit of the form, format: < max requests > r/< interval:s , m > , eg: 1r/s or 54r/m
2022-10-25 17:39:39 +02:00
hasemail: 1 # (optional) form has "email" field that should be validated
2022-04-25 08:40:49 +02:00
extensions: [] # (optional) list of form extensions (not used yet)
2022-04-23 15:19:24 +02:00
2022-10-25 17:39:39 +02:00
matrix_bot_buscarron_spamlist: [] # (optional) list of emails/domains/hosts (with wildcards support) that should be rejected automatically
2022-04-23 15:19:24 +02:00
```
2024-10-20 22:07:51 +02:00
### Adjusting the Buscarron URL
By default, this playbook installs Buscarron on the `buscarron.` subdomain (`buscarron.example.com`) and requires you to [adjust your DNS records ](#adjusting-dns-records ).
By tweaking the `matrix_bot_buscarron_hostname` and `matrix_bot_buscarron_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one.
Example additional configuration for your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
# Switch to the domain used for Matrix services (`matrix.example.com`),
# so we won't need to add additional DNS records for Buscarron.
matrix_bot_buscarron_hostname: "{{ matrix_server_fqn_matrix }}"
# Expose under the /buscarron subpath
matrix_bot_buscarron_path_prefix: /buscarron
```
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server.
By default, you will need to create a CNAME record for `buscarron` . See [Configuring DNS ](configuring-dns.md ) for details about DNS changes.
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
2022-04-23 15:19:24 +02:00
## Installing
2024-12-01 08:42:30 +01:00
After configuring the playbook and potentially [adjusting your DNS records ](#adjusting-dns-records ), run the playbook with [playbook tags ](playbook-tags.md ) as below:
2022-04-23 15:19:24 +02:00
2024-12-01 08:42:30 +01:00
<!-- NOTE: let this conservative command run (instead of install - all) to make it clear that failure of the command means something is clearly broken. -->
2022-11-01 16:03:53 +01:00
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
2022-04-23 15:19:24 +02:00
```
2022-11-01 16:03:53 +01:00
**Notes**:
2024-12-01 08:42:30 +01:00
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account.
2022-11-01 16:03:53 +01:00
Edit installing instructions (#3844)
* Replace "just run-tags install-all/setup-all,start" with "just install-all/setup-all"
Thanks to the tip by Slavi that the overhead of ensure-matrix-users-created is negligible.
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
* Edit installing instructions
- Move the anchor links to docs/just.md
- Add note about running "ensure-matrix-users-created" tags, if ansible-playbook's tags not "setup-all,ensure-matrix-users-created,start", ie. either "setup-all,start", "setup-email2matrix,start", "setup-aux-files,setup-corporal,start", or "setup-matrix-user-verification-service,start"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
* Update descriptions about installation
- Introduce the most conservative and stable raw ansible-playbook command.
- Introduce the just commands on installing.md and maintenance-upgrading-services.md, not on quick-start.md, since it is too early for quick start guide readers who are just starting to climb learning curve to use the shortcuts.
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
* Update docs/configuring-playbook-etherpad.md: remove the note about ensure-matrix-users-created
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
---------
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-12-01 16:04:54 +01:00
- The shortcut commands with the [`just` program ](just.md ) are also available: `just install-all` or `just setup-all`
2022-04-23 15:19:24 +02:00
Edit installing instructions (#3844)
* Replace "just run-tags install-all/setup-all,start" with "just install-all/setup-all"
Thanks to the tip by Slavi that the overhead of ensure-matrix-users-created is negligible.
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
* Edit installing instructions
- Move the anchor links to docs/just.md
- Add note about running "ensure-matrix-users-created" tags, if ansible-playbook's tags not "setup-all,ensure-matrix-users-created,start", ie. either "setup-all,start", "setup-email2matrix,start", "setup-aux-files,setup-corporal,start", or "setup-matrix-user-verification-service,start"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
* Update descriptions about installation
- Introduce the most conservative and stable raw ansible-playbook command.
- Introduce the just commands on installing.md and maintenance-upgrading-services.md, not on quick-start.md, since it is too early for quick start guide readers who are just starting to climb learning curve to use the shortcuts.
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
* Update docs/configuring-playbook-etherpad.md: remove the note about ensure-matrix-users-created
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
---------
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-12-01 16:04:54 +01:00
`just install-all` is useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all` , or these components will still remain installed.
2024-12-01 08:42:30 +01:00
- If you change the bot password (`matrix_bot_buscarron_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_buscarron_password` to let the bot know its new password.
2022-04-23 15:19:24 +02:00
## Usage
2024-10-17 15:17:56 +02:00
To use the bot, invite the `@bot.buscarron:example.com` to the room you specified in a config, after that any point your form to the form url, example for the `contact` form:
2022-04-23 15:19:24 +02:00
```html
2024-10-17 15:17:56 +02:00
< form method = "POST" action = "https://buscarron.example.com/contact" >
2022-04-23 15:19:24 +02:00
<!-- your fields -->
< / form >
```
2024-10-14 19:47:38 +02:00
**Note**: to fight against spam, Buscarron is **very aggressive when it comes to banning** and will ban you if:
2023-02-25 14:50:35 +01:00
- if you hit the homepage (HTTP `GET` request to `/` )
- if you submit a form to the wrong URL (`POST` request to `/non-existing-form` )
- if `hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field
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.
2024-09-07 01:43:00 +02:00
You can also refer to the upstream [documentation ](https://github.com/etkecc/buscarron ).