Installation Sous Docker
Prérequis
-
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).
Étape 1 : Télécharger le dépôt de Mastodon
Clonez le dépôt officiel de Mastodon :
git clone https://github.com/mastodon/mastodon.git
cd mastodon
Étape 2 : Configurer les fichiers
-
Copier les fichiers d'exemple :
cp .env.production.sample .env.production
-
Modifier le fichier
.env.production
:- Configurez les variables suivantes :
LOCAL_DOMAIN
: votre domaine (ex.example.com
).SMTP_SERVER
,SMTP_PORT
,SMTP_LOGIN
, etc. : paramètres SMTP pour l’envoi des emails.DB_HOST
,REDIS_HOST
: restent à leur valeur par défaut (db
,redis
).
- Configurez les variables suivantes :
-
Ajouter les variables 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
Générer les clés :
Exécutez cette commande quatre fois pour obtenir les clés requises :
docker-compose run --rm web bin/rails secret
Ajouter les clés dans
.env.production
:SECRET_KEY_BASE=la_clé_générée_1 ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=cle_generee_2 ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=cle_generee_3 ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=cle_generee_4
Étape 3 : Construire et lancer les conteneurs Docker
-
Configurer Docker Compose : Vérifiez ou modifiez
docker-compose.yml
pour inclure les services nécessaires :- Base de données (PostgreSQL)
- Redis
- Mastodon Web, Streaming, et Sidekiq (gestionnaire de jobs)
-
Construire les conteneurs :
docker-compose build
-
Initialiser la base de données :
docker-compose run --rm web rails db:setup
-
Lancer les conteneurs :
docker-compose up -d
Étape 4 : 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).
Étape 5 : Tester et accéder à Mastodon
- Accédez à
https://example.com
. - Créez un compte administrateur :
docker-compose run --rm web rails mastodon:make_admin USERNAME=your_admin_username
- Configurez les paramètres via l'interface web ou la CLI.
Étape 6 : Maintenance et mises à jour
- Pour mettre à jour Mastodon :
git pull docker-compose build docker-compose up -d
- Sauvegardes :
- Sauvegardez régulièrement les bases de données PostgreSQL et Redis.
En cas de problème ou de doute, consultez les journaux des conteneurs avec :
docker-compose logs -f