mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2025-07-09 01:15:10 +02:00
optional role for matrix-fluffygate
This commit is contained in:
147
docs/configuring-playbook-fluffygate.md
Normal file
147
docs/configuring-playbook-fluffygate.md
Normal file
@ -0,0 +1,147 @@
|
||||
# Setting up Fluffygate (optional)
|
||||
|
||||
The playbook can install and configure [Fluffygate](https://github.com/krille-chan/fluffygate), a simple Push Gateway for Fluffychat.
|
||||
|
||||
See the project's documentation to learn what it does and why it might be useful to you.
|
||||
|
||||
**Note**: most people don't need to install their own gateway. This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves, as you'll need access to your own Firebase/FCM and APNS credentials.
|
||||
|
||||
## Adjusting the playbook configuration
|
||||
|
||||
To enable Fluffygate, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
||||
|
||||
```yaml
|
||||
matrix_fluffygate_enabled: true
|
||||
|
||||
# Basic app information
|
||||
matrix_fluffygate_app_name: "Your App Name"
|
||||
matrix_fluffygate_app_website: "https://example.com"
|
||||
|
||||
# Firebase/FCM configuration (for Android / IOS)
|
||||
matrix_fluffygate_firebase_project: "your-firebase-project-id"
|
||||
matrix_fluffygate_firebase_key: |
|
||||
{
|
||||
# Your Firebase service account key JSON content
|
||||
}
|
||||
|
||||
# Notification settings
|
||||
matrix_fluffygate_notification_title: "{count} new messages"
|
||||
matrix_fluffygate_notification_body: "{body}"
|
||||
|
||||
# Android specific notification options
|
||||
matrix_fluffygate_android_notification_options:
|
||||
priority: high
|
||||
notification:
|
||||
sound: "default"
|
||||
icon: "notifications_icon"
|
||||
tag: "default_notification"
|
||||
|
||||
# APNS specific notification options (for iOS)
|
||||
matrix_fluffygate_apns_notification_options:
|
||||
headers:
|
||||
apns-priority: "10"
|
||||
payload:
|
||||
aps:
|
||||
sound: "default"
|
||||
badge: "{count}"
|
||||
mutable-content: 1
|
||||
```
|
||||
|
||||
For a complete list of available configuration options, see the `defaults/main.yml` file in the role.
|
||||
|
||||
### Required Configuration
|
||||
|
||||
The following settings are required and must be defined:
|
||||
- `matrix_fluffygate_hostname`
|
||||
- `matrix_fluffygate_path_prefix`
|
||||
- `matrix_fluffygate_container_network`
|
||||
- `matrix_fluffygate_app_name`
|
||||
- `matrix_fluffygate_app_website`
|
||||
|
||||
### Adjusting the Fluffygate URL
|
||||
|
||||
By default, this playbook installs Fluffygate at the root path (`/`) of the configured hostname. You can customize both the hostname and path prefix using these variables:
|
||||
|
||||
```yaml
|
||||
# Configure the hostname where Fluffygate will be served
|
||||
matrix_fluffygate_hostname: "push.example.com"
|
||||
|
||||
# Configure a custom path prefix (must either be '/' or not end with a slash)
|
||||
matrix_fluffygate_path_prefix: /push
|
||||
```
|
||||
|
||||
### Traefik Integration
|
||||
|
||||
Fluffygate includes built-in support for Traefik as a reverse proxy. The following settings control this integration:
|
||||
|
||||
```yaml
|
||||
# Enable/disable Traefik labels
|
||||
matrix_fluffygate_container_labels_traefik_enabled: true
|
||||
|
||||
# Configure the Traefik network
|
||||
matrix_fluffygate_container_labels_traefik_docker_network: "{{ matrix_fluffygate_container_network }}"
|
||||
|
||||
# Additional Traefik configuration
|
||||
matrix_fluffygate_container_labels_traefik_rule: "Host(`{{ matrix_fluffygate_container_labels_traefik_hostname }}`)"
|
||||
matrix_fluffygate_container_labels_traefik_priority: 0
|
||||
matrix_fluffygate_container_labels_traefik_entrypoints: web-secure
|
||||
```
|
||||
|
||||
## Adjusting DNS records
|
||||
|
||||
You will need to configure your DNS records to point the Fluffygate hostname to your server. This typically involves creating either:
|
||||
- an A record pointing to your server's IPv4 address
|
||||
- a CNAME record pointing to your server's hostname
|
||||
|
||||
## Installing
|
||||
|
||||
After configuring the playbook and adjusting your DNS records, run the installation command:
|
||||
|
||||
```bash
|
||||
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
|
||||
```
|
||||
|
||||
To install only Fluffygate, you can use:
|
||||
|
||||
```bash
|
||||
ansible-playbook -i inventory/hosts setup.yml --tags=setup-fluffygate,start
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
To make use of your Fluffygate installation:
|
||||
|
||||
1. Configure your Matrix client application to use your Fluffygate URL as the push gateway
|
||||
2. Ensure your app uses the same Firebase/FCM credentials for Android notifications
|
||||
3. Ensure your app uses the same APNS certificates/credentials for iOS notifications
|
||||
4. Configure the notification templates and options as needed through the playbook variables
|
||||
|
||||
### Debugging
|
||||
|
||||
If you need to troubleshoot issues:
|
||||
|
||||
1. Enable debug logs by setting:
|
||||
```yaml
|
||||
matrix_fluffygate_debug_logs: true
|
||||
```
|
||||
|
||||
2. Check the container logs:
|
||||
```bash
|
||||
docker logs matrix-fluffygate
|
||||
```
|
||||
|
||||
## Uninstalling
|
||||
|
||||
To remove Fluffygate, first disable it in your `inventory/host_vars/matrix.example.com/vars.yml`:
|
||||
|
||||
```yaml
|
||||
matrix_fluffygate_enabled: false
|
||||
```
|
||||
|
||||
Then run the playbook:
|
||||
|
||||
```bash
|
||||
ansible-playbook -i inventory/hosts setup.yml --tags=setup-fluffygate,start
|
||||
```
|
||||
|
||||
This will stop the service and remove all associated files.
|
Reference in New Issue
Block a user