# Role : docker_mastodon ## Services fournis Installation d'un serveur mastodon sur serveur docker_host ## Variables ```yaml docker_mastodon_fqdn: mastodon.example.com docker_mastodon_data_dir: /data1 docker_mastodon_service_id: mastodon docker_mastodon_image_version: x.y.z docker_mastodon_local_domain: example.com docker_mastodon_db_name: mastodondb docker_mastodon_db_user: user_proprietaire_bdd docker_mastodon_db_password: mdp_proprietaire_bdd docker_mastodon_secret_key_base: inserer_le_secret_key_base_voir_premiere_installation docker_mastodon_otp_secret: inserer_ici_otp_secret_voir_premiere_installation docker_mastodon_vapid_private_key: inserer_ici_vapid_private_key_voir_premiere_installation docker_mastodon_vapid_public_key: inserer_ici_vapid_public_key_voir_premiere_installation docker_mastodon_mail_smtp_server: smtp.example.com docker_mastodon_mail_smtp_port: 587 docker_mastodon_mail_from: nepasrepondre@example.com docker_mastodon_oidc_enabled: true docker_mastodon_oidc_display_name: "Libretic" docker_mastodon_oidc_issuer: https://login.example.com/auth/realms/example-space docker_mastodon_oidc_discovery: true docker_mastodon_oidc_scopes: "openid,profile" docker_mastodon_oidc_uid_field: uid docker_mastodon_oidc_client_id: masto-oidc docker_mastodon_oidc_redirect_uri: https://mastodon.example.com/auth/auth/openid_connect/callback docker_mastodon_oidc_security_assume_email_is_verified: true docker_mastodon_oidc_client_secret: oidc_client_secret docker_mastodon_rp_cert: LE docker_mastodon_rp_docker_host: machine.domaine.local docker_mastodon_rp_access_policy: OpenAccessPolicy docker_mastodon_rp_indexing: Empty docker_mastodon_rp_waf: "On" ``` | Option | Valeur par défaut | Description | |--------------------------------------------------------|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------| | docker_mastodon_fqdn | | Nom de domaine pour lequel le service mastodon répond | | docker_mastodon_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service | | docker_mastodon_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik | | docker_mastodon_image_version | | Version de mastodon et de l'image docker | | docker_mastodon_local_domain | | Domaine des utilisateurs permettant l'emploi d'adresses mastodon de la forme @user@domain (nécessite la mise en place de webfinger sur le domaine) | | docker_mastodon_db_name | | Nom de la base de données | | docker_mastodon_db_user | | Nom du proprietaire_de la base | | docker_mastodon_db_password | | MDP du proprietaire_de la base | | docker_mastodon_secret_key_base | | Valeur de secret_key_base généré pour la première installation | | docker_mastodon_otp_secret | | Valeur de otp_secret généré pour la première installation | | docker_mastodon_vapid_private_key | | Valeur de vapid_private_key généré pour la première installation | | docker_mastodon_vapid_public_key | | Valeur de vapid_public_key généré pour la première installation | | docker_mastodon_mail_smtp_server | | Serveur smtp par lequel mastodon envoie des emails | | docker_mastodon_mail_smtp_port | 587 | Port d'envoi des emails | | docker_mastodon_mail_smtp_login | vide | | | docker_mastodon_mail_smtp_password | vide | | | docker_mastodon_mail_from | | Adresse d'expéditeur par laquelle mastodon envoie des emails | | docker_mastodon_oidc_enabled | false | Permet d'activer l'authentification par OpenID Connect | | docker_mastodon_oidc_display_name | | Nom affiché pour la connection via OpenID Connect | | docker_mastodon_oidc_issuer | | Url "issuer" de la fédération OpenID Connect | | docker_mastodon_oidc_discovery | true | | | docker_mastodon_oidc_scopes | openid,profile | Scopes récupérés via OpenID Connect | | docker_mastodon_oidc_uid_field | uid | Attribut utilisé pour constituer l'identifiant Mastodon | | docker_mastodon_oidc_client_id | | Identifiant de client OpenID Connect de l'instance | | docker_mastodon_oidc_client_secret | | Secret de client OpenID Connect de l'instance | | docker_mastodon_oidc_redirect_uri | cf. defaults | Url de redirection après une connection via OpenID Connect | | docker_mastodon_oidc_security_assume_email_is_verified | true | Indique à mastodon qu'il n'est pas nécessaire de valilder l'adresse email pour un utilisateur OpenID Connect | | docker_mastodon_rp_docker_host | | Pour configure_reverse_proxy.yml: fqdn de la machine contenant le conteneur docker | | docker_mastodon_rp_cert | LE | Type de certificat pour le reverse proxy (LE = letsencrypt) | | docker_mastodon_rp_access_policy | | Modèle d'autorisation d'accès du reverse proxy | | docker_mastodon_rp_indexing | | Stratégie du reverse proxy vis à vis des robots | | docker_mastodon_rp_waf | | Activation websecurity du reverse proxy | ## Première installation - provisionner l'environnement une première fois en positionnant la variable docker_mastodon_gen_secrets à 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/mastodon setup_mastodon.yml -e "{ docker_mastodon_gen_secrets: true }" ``` - pour le premier démarrage, ainsi que pour chaque montée de version, lancer le playbook avec la variable `docker_mastodon_initialize_data` positionnée à `true` ``` ansible-playbook -i inventory/vms -i inventory/mastodon setup_mastodon.yml -e "{ docker_mastodon_initialize_data: true }" ``` - enregistrer un premier utilisateur (éventuellement via une connexion OpenID Connect) - lui donner le droit administrateur ``` docker exec -it mastodon_streaming_1 /bin/bash mastodon@76beca2b858d:~$ RAILS_ENV=production bin/tootctl accounts modify --role admin ```