Passer au contenu principal

Installation Sous Docker

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. Clonez le dépôt de Mastodon :

    git clone https://github.com/tootsuite/mastodon
    cd mastodon
    
  2. 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.


Obtention de l'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. Modifiez le fichier docker-compose.yml :

    • Commentez les lignes build: . 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. Modifiez le fichier docker-compose.yml :
    • Décommentez les lignes build: . pour toutes les images (web, streaming, sidekiq), si nécessaire.
    • Sauvegardez le fichier et quittez l'éditeur.
  2. Exécutez :
    cp .env.production.sample .env.production
    
  3. Construisez l'image avec :
    docker-compose build
    
  4. Attribuez les bons droits d'accès :
    chown -R 991:991 public
    

Configuration de l'application

Pour générer une configuration, utilisez :

docker-compose run --rm web rake mastodon:setup

Cette commande lance un assistant interactif pour configurer les options 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.

L’assistant configure également le schéma de base de données et précompile les ressources. Après cela, vous pouvez démarrer Mastodon avec :

docker-compose up -d

Configuration supplémentaire

Assurez-vous de 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 rake mastodon:media: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. Passez à 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 lignes 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
    

Remarque : L'option --rm de docker-compose supprime le conteneur créé pour exécuter une commande ponctuelle une fois celle-ci terminée. Les données étant stockées dans des volumes, elles ne sont pas affectées par cette suppression.