Passer au contenu principal

Installation Sous Docker

Prérequis

  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é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

Configurer les fichiers

  1. Copier les fichiers d'exemple :

    cp .env.production.sample .env.production
    
  2. 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).
  3. 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
    

Construire et lancer les conteneurs Docker

  1. 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)
  2. Construire les conteneurs :

    docker-compose build
    
  3. Initialiser la base de données :

    docker-compose run --rm web rails db:setup
    
  4. Lancer les conteneurs :

    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 Mastodon :
    git pull
    docker-compose build
    docker-compose up -d
    
  2. 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