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
-
Serveur avec Docker et Docker Compose installés:Installez Docker :Guide officiel.Installez Docker Compose :Guide officiel.
Nom de domaine: Vous avez besoin d’un domaine configuré pour pointer vers l’adresse IP de votre serveur.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 :
-
CopierModifiez le fichierdocker-compose.yml
:- Commentez les
fichierslignesd'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 versionv2.2.0
, remplacez par :image: tootsuite/mastodon:v2.2.0
- Commentez les
-
Sauvegardez le fichier et quittez l'éditeur.
-
Exécutez :
cp .env.production.sample .env.production
Vous devrez modifier ce fichier ultérieurement.
-
Exécutez :
docker-compose build
Cela téléchargera l'image correcte depuis Docker Hub.
-
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 :
ModifierModifiez le fichier.env.productiondocker-compose.yml:Configurez les variables suivantes:- Décommentez les lignes
LOCAL_DOMAINbuild: .:pourvotretoutesdomaineles images (ex.example.com).
,SMTP_SERVERweb
,SMTP_PORTstreaming
),SMTP_LOGINsidekiqetc.si: paramètres SMTP pour l’envoi des emails.nécessaire.DB_HOST,Sauvegardez
leREDIS_HOST:fichierrestentetàquittezleur valeur par défaut (db,redis).
- Décommentez les lignes
- Exécutez
Ajouter:cp .env.production.sample .env.production
- Construisez l'image avec :
docker-compose build
- 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
SECRET_KEY_BASE
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY
Gé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_1L’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
Configurer Docker Compose: Vérifiez ou modifiezdocker-compose.ymlpour inclure les services nécessaires :Basebase de données(PostgreSQL)RedisMastodon Web, Streaming,etSidekiq (gestionnaire de jobs)
Construireprécompile lesconteneursressources. Après cela, vous pouvez démarrer Mastodon avec :docker-compose
buildup -dConfiguration supplémentaire
InitialiserAssurez-vousl'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 fichierdocker-compose.yml
mappe ces volumes dans les répertoirespublic/assets
etpublic/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 :
-
Téléchargez les mises à jour :
git fetch
-
Vérifiez les modifications locales avec :
git status
Si
docker-compose.yml
a été modifié, exécutez :git stash
-
LancerPassez à la nouvelle version :git checkout NOM_DU_TAG
Si vous avez des modifications locales enregistrées, utilisez :
git merge NOM_DU_TAG
-
Si vous avez utilisé
git stash
, restaurez vos modifications avec :git stash pop
-
Mettez à jour l'image Mastodon :
- Si vous utilisez une image précompilée, modifiez les
conteneurslignesimage: tootsuite/mastodon
dansdocker-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
- Si vous utilisez une image précompilée, modifiez les
-
(Facultatif) Exécutez :
docker-compose run --rm web rake db:migrate
Pour appliquer les migrations de base de données, si nécessaire.
-
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 :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; }Redémarrez Nginx et installez un certificat SSL (Let's Encrypt ou autre).
Tester et accéder à MastodonAccédez àhttps://example.com.Créez un compte administrateur :docker-compose run --rm web rails mastodon:make_admin USERNAME=your_admin_usernameConfigurez les paramètres via l'interface web ou la CLI.
Maintenance et mises à jourPour mettre à jour MastodonRemarque :L'option
pourgit--rmpullde docker-composebuildsupprimedocker-composeleupconteneur-dcréé exécuter Sauvegardesune:commande- ponctuelle
Sauvegardezunerégulièrementfoislescelle-cibasesterminée.deLes donnéesPostgreSQLétantetstockéesRedis.
En cas de problème ou de doute, consultez les journauxdans desconteneursvolumes,avecelles:ne sont pas affectées par cette suppression.docker-compose logs -f-