No description
Find a file
2022-05-30 19:02:22 +02:00
defaults Commit initial 2022-05-30 19:02:22 +02:00
handlers Commit initial 2022-05-29 12:20:38 +02:00
tasks Commit initial 2022-05-29 12:20:38 +02:00
templates Commit initial 2022-05-30 19:02:22 +02:00
README.md Commit initial 2022-05-29 12:22:43 +02:00

Role : docker_mastodon

Services fournis

Installation d'un serveur mastodon sur serveur docker_host

Variables

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 uniquement, lancer le playbook avec la variable docker_mastodon_docker_mastodon_initialize_data positionnée à true ; attention, cela efface les données et initialise une instance de mastodon vide
ansible-playbook -i inventory/vms -i inventory/mastodon setup_mastodon.yml  -e "docker_mastodon_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 <id_de_l_utilisateur> --role admin