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).


É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

  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
    

Étape 3 : 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
    

É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 :

  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).


Étape 5 : 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.

Étape 6 : 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