ansible-role-docker-synapse/README.md

111 lines
8.6 KiB
Markdown

# Role : docker_synapse
## Services fournis
- main.yml : Installation de synapse sur un serveur docker_host
## Variables
Fournir les variables suivantes. Par exemple :
```yaml
docker_synapse_fqdn: synapse.example.com
docker_synapse_server_name: example.com
docker_synapse_version: v1.64.0
docker_synapse_data_dir: /data1
docker_synapse_service_id: synapse
docker_synapse_db: synapse
docker_synapse_db_user: synapse
docker_synapse_db_password: motdepassebdd
docker_synapse_smtp_host: smtp.example.com
docker_synapse_oidc_enabled: true
docker_synapse_oidc_idp_name: "Libretic"
docker_synapse_oidc_issuer: https://auth.libretic.fr/auth/realms/libretic
docker_synapse_oidc_scopes: ["openid','profile','email"]
docker_synapse_oidc_client_id: client_id
docker_synapse_oidc_client_secret: client_secret
docker_synapse_password_config_enabled: only_for_reauth
docker_synapse_registration_shared_secret: "coller_ici_registration_shared_secret"
docker_synapse_macaroon_secret_key: "coller_ici_macaroon_secret_key"
docker_synapse_form_secret: "coller_ici_form_secret"
docker_synapse_retention_options:
default:
-_min_lifetime: 1d
- max_lifetime: 1y
allowed_lifetime_min: 1d
allowed_lifetime_max: 1y
purge_jobs:
- longest_max_lifetime: 3d
interval: 12h
- shortest_max_lifetime: 3d
longest_max_lifetime: 1w
interval: 1d
- shortest_max_lifetime: 1w
interval: 2d
```
| Option | Valeur par défaut | Description |
|-------------------------------------------|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| docker_synapse_fqdn | | Le fqdn pour accéder à synapse |
| docker_synapse_server_name | | Le domaine matrix (suffixe des id utilisateur) |
| docker_synapse_version | | Version de l'image synapse |
| docker_synapse_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
| docker_synapse_service_id | | Le nom de service souhaité : conditionne le nommage des dossiers et le routage par traefik |
| docker_synapse_db | | Le nom de la base de données |
| docker_synapse_db_user | | Le nom du user propriétaire de la base de données |
| docker_synapse_db_password | | Le mot de passe du user propriétaire de la base de données |
| docker_synapse_smtp_host | | FQDN du serveur smtp pour l'envoi de mails par synapse |
| docker_synapse_oidc_enabled | false | Active la configuration openid connect |
| docker_synapse_oidc_idp_id | | Type de provider openid |
| docker_synapse_oidc_idp_name | | Nom du provider (s'affiche dans les intitulés "Se connecter avec ...") |
| docker_synapse_oidc_issuer | | Url vers le provider |
| docker_synapse_oidc_scopes | | Liste de scopes openid connect |
| docker_synapse_oidc_client_id | | client_id openid connect |
| docker_synapse_oidc_client_secret | | secret associé au client id |
| docker_synapse_password_config_enabled | | si docker_synapse_oidc_enabled, true autorise une connexion par mot de passe tout le temps, only_for_reauth seulement si connexion préalable |
| docker_synapse_registration_shared_secret | | registration_shared_secret obtenu avec docker_synapse_gen_config=true |
| docker_synapse_macaroon_secret_key | | macaroon_secret_key obtenu avec docker_synapse_gen_config=true |
| docker_synapse_form_secret | | form_secret obtenu avec docker_synapse_gen_config=true |
| docker_synapse_smtp_enabled | false | Active la configuration smtp |
| docker_synapse_smtp_host | | Serveur smtp |
| docker_synapse_smtp_from | | Valeur du from pour l'envoi d'un courriel |
| docker_synapse_smtp_app_name | | Valeur qui apparaitra dans les [ ] dans les sujets des courriels |
| docker_synapse_smtp_invite_url | | Url vers laquelle rediriger qui serea présente dans les courriels |
| docker_synapse_gen_config | false | Demande au playbook de générer une configuration à partir de laquelle récupérer les secrets |
| docker_synapse_retention_options | | Si précisé, active la section retention dans la configuration de synapse avec ces options |
| docker_synapse_turn_uris | | Si précisé, liste de serveurs turn à utiliser |
| docker_synapse_turn_shared_secret | | Si docker_synapse_turn_uris précisé, le secret partagé avec les serveurs turn |
## Première installation
- provisionner l'environnement une première fois en positionnant la variable docker_synapse_gen_config à true ; le playbook va générer des valeurs à copier/coller dans les variables de playbook de l'environnement
```
ansible-playbook -i inventory/vms -i inventory/synapse setup_synapse.yml -e "{ docker_synapse_gen_config: true }"
```
- poursuivre la configuration après avoir recopié dans l'inventaire les valeurs générées dans le homeserver.yml
```
ansible-playbook -i inventory/vms -i inventory/synapse setup_synapse.yml"
```
- enregistrer un premier utilisateur administrateur administrateur
```
docker exec -ti synapse_synapse_1 bash
root@d9017ba62b36:/# register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
New user localpart [root]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
root@d9017ba62b36:/#
```