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
-
Clonez le dépôt de Mastodon :
git clone https://github.com/tootsuite/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 directivevolumes
dansdocker-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 :
-
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 versionv2.2.0
, remplacez par :image: tootsuite/mastodon:v2.2.0
- Commentez les lignes
-
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 :
- 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.
- Décommentez les lignes
- Exécutez :
cp .env.production.sample .env.production
- Construisez l'image avec :
docker-compose build
- 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 :
-
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
-
Passez à 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 lignes
image: 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 lignes
-
(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
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.
Pas de commentaires