Passer au contenu principal

Installation Sous Docker

Voici la traduction et la réécriture en français du texte :

Prérequis

  • Un serveur fonctionnel (Linux) avec Nginx (ou Apache2 ; ce dernier n'est pas officiellement supporté).
  • Une version stable récente de Docker.
  • Une version stable récente de Docker-compose.

Mise en place

  1. Serveur avec Docker et Docker Compose installés :

  2. Nom de domaine : Vous avez besoin d’un domaine configuré pour pointer vers l’adresse IP de votre serveur.

  3. Certificat SSL : Utilisez Let's Encrypt pour obtenir un certificat SSL (géré automatiquement si vous configurez un proxy inverse comme Caddy ou Traefik).


TéléchargerClonez le dépôt de Mastodon

Clonez le dépôt officiel de Mastodon :

git clone https://github.com/mastodon/mastodon.gittootsuite/mastodon
cd mastodon
  • Vérifiez les paramètres dans le fichier docker-compose.yml.
    Par défaut, les bases de données PostgreSQL et Redis ne sont pas configurées pour être stockées de manière persistante. Si vous prévoyez d’exploiter votre instance en production, vous devez décommenter la directive volumes dans docker-compose.yml.


  • ConfigurerObtention lesde fichiersl'image Mastodon

    Utilisation d'une image précompilée

    Si vous n'apportez aucune modification au code ou personnalisation locale, vous pouvez utiliser une image Docker précompilée disponible sur Docker Hub :
    https://hub.docker.com/r/tootsuite/mastodon/.

    Pour utiliser ces images :

    1. CopierModifiez le fichier docker-compose.yml :

      • Commentez les fichierslignes d'exemplebuild: . pour toutes les images (web, streaming, sidekiq).
      • Modifiez les lignes image: tootsuite/mastodon pour inclure la version souhaitée. Par défaut, latest pointe vers la version stable la plus récente. Par exemple, pour utiliser la version v2.2.0, remplacez par :
        image: tootsuite/mastodon:v2.2.0
        
    2. Sauvegardez le fichier et quittez l'éditeur.

    3. Exécutez :

      cp .env.production.sample .env.production
      

      Vous devrez modifier ce fichier ultérieurement.

    4. Exécutez :

      docker-compose build
      

      Cela téléchargera l'image correcte depuis Docker Hub.

    5. Attribuez les bons droits d'accès avec :

      chown -R 991:991 public
      

    Création de votre propre image

    Si vous avez modifié le code, vous devez construire votre propre image :

    1. ModifierModifiez le fichier .env.productiondocker-compose.yml :

      • Configurez les variables suivantes :
        • Décommentez les lignes LOCAL_DOMAINbuild: . :pour votretoutes domaineles images (ex. example.com).
        • SMTP_SERVERweb, SMTP_PORTstreaming, SMTP_LOGINsidekiq), etc.si : paramètres SMTP pour l’envoi des emails.nécessaire.
        • DB_HOST,Sauvegardez REDIS_HOSTle :fichier restentet àquittez leur valeur par défaut (db, redis).
        l'éditeur.
    2. Exécutez

      Ajouter:

      cp .env.production.sample .env.production
      
    3. Construisez l'image avec :
      docker-compose build
      
    4. Attribuez les variablesbons droits d'accès :
      chown -R 991:991 public
      

    Configuration de chiffrement : Les nouvelles versions de Mastodon nécessitent la configuration des variables suivantes :

    • SECRET_KEY_BASE
    • ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
    • ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
    • ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY
    l'application

    Pour générer lesune clésconfiguration, :

    Exécutez cette commande quatre fois pour obtenir les clés requisesutilisez :

    docker-compose run --rm web bin/railsrake secretmastodon:setup
    

    AjouterCette commande lance un assistant interactif pour configurer les clésoptions essentielles et générer de nouveaux secrets d’application. Une fois terminé, copiez la configuration générée dans le fichier .env.production :.

    SECRET_KEY_BASE=la_clé_générée_1

    L’assistant ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=cle_generee_2configure ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=cle_generee_3également ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=cle_generee_4le

    schéma de

    Construire et lancer les conteneurs Docker

    1. Configurer Docker Compose : Vérifiez ou modifiez docker-compose.yml pour inclure les services nécessaires :

      • Basebase de données (PostgreSQL)
      • Redis
      • Mastodon Web, Streaming, et Sidekiq (gestionnaire de jobs)
    2. Construireprécompile les conteneursressources. Après cela, vous pouvez démarrer Mastodon avec :

      docker-compose buildup -d
      

    3. Configuration supplémentaire

      InitialiserAssurez-vous l'installationde lire le guide de production, en commençant par la section expliquant comment configurer Nginx pour pointer vers Mastodon.

      Le conteneur utilise deux volumes pour les ressources statiques et les fichiers téléchargés par les utilisateurs, ainsi que deux autres volumes facultatifs pour PostgreSQL et Redis.
      Par défaut, le fichier docker-compose.yml mappe ces volumes dans les répertoires public/assets et public/system du dépôt. Vous pouvez les rediriger vers d'autres emplacements pour faciliter les sauvegardes.


      Tâches

      Pour exécuter une tâche avec docker-compose, utilisez :

      docker-compose run --rm web railsrake mastodon:setupmedia:clear
      

      Mise à jour

      Pour mettre à jour Mastodon vers la dernière version :

      1. Téléchargez les mises à jour :

        git fetch
        
      2. Vérifiez les modifications locales avec :

        git status
        

        Si docker-compose.yml a été modifié, exécutez :

        git stash
        
      3. LancerPassez à la nouvelle version :

        git checkout NOM_DU_TAG
        

        Si vous avez des modifications locales enregistrées, utilisez :

        git merge NOM_DU_TAG
        
      4. Si vous avez utilisé git stash, restaurez vos modifications avec :

        git stash pop
        
      5. Mettez à jour l'image Mastodon :

        • Si vous utilisez une image précompilée, modifiez les conteneurslignes image: tootsuite/mastodon dans docker-compose.yml pour inclure la nouvelle version. Par exemple :
          image: tootsuite/mastodon:v2.3.0
          
        • Construisez ou téléchargez l'image mise à jour :
          docker-compose build
          
      6. (Facultatif) Exécutez :

        docker-compose run --rm web rake db:migrate
        

        Pour appliquer les migrations de base de données, si nécessaire.

      7. Relancez Mastodon :

        docker-compose up -d
        

      Configurer le proxy inverse (HTTPS)

      Vous pouvez utiliser Nginx, Traefik ou Caddy pour gérer les connexions HTTPS. Voici un exemple pour Nginx :

      1. Exemple de configuration Nginx :

        server {
            listen 80;
            server_name example.com;
            location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
        

         

      2. Redémarrez Nginx et installez un certificat SSL (Let's Encrypt ou autre).


      Tester et accéder à Mastodon

      1. Accédez à https://example.com.
      2. Créez un compte administrateur :
        docker-compose run --rm web rails mastodon:make_admin USERNAME=your_admin_username
        
      3. Configurez les paramètres via l'interface web ou la CLI.

      Maintenance et mises à jour

      1. Pour mettre à jour MastodonRemarque :
        L'option git--rm pullde docker-compose buildsupprime docker-composele upconteneur -dcréé 
        pour
      2. exécuter
      3. Sauvegardesune :commande
          ponctuelle
        • Sauvegardezune régulièrementfois lescelle-ci basesterminée. deLes données PostgreSQLétant etstockées Redis.

      En cas de problème ou de doute, consultez les journauxdans des conteneursvolumes, avecelles :ne sont pas affectées par cette suppression.

      docker-compose logs -f