Restaurer Mastrodon

What app is this about, and its version: Mastodon
What YunoHost version are you running: YunoHost 12.1.39 (stable)
What type of hardware are you using: Old laptop or computer

Describe your issue

Suite à l’achat d’une nouvelle machine, j’ai effectué une restauration de Yunohost. Tout se passe bien, sauf pour Mastodon (et Synapse, mais je ne me suis pas encore penché sur ce problème). Il me fait une erreur 500.
Si j’installe Mastodon, cela fonctionne bien, mais je ne peux plus restaurer mon instance Mastodon.
J’ai tenté à plusieurs reprises de désinstaller Mastodon puis de retenter la restauration de Mastodon seul, sans succès.
J’ai lu ce post : Impossible de restaurer une sauvegarde de Mastodon - #12
¿ Comment peut-on mettre à jour Mastodon si sa restauration a échoué ?

Share relevant logs or error messages

Erreur: “500”
Action: “PUT” /yunohost/api/backups/20251129-082500/restore

Peux-tu partager le lien exact vers la restauration qui échoue ?

https://paste.yunohost.org/raw/wonesaheli

De quand date de backup? Il s’agit d’une erreur qui a dû être réparée il y quelques semaines…

La sauvegarde date du 29 novembre 2025.

Est-ce qu’il y a encore moyen de mettre à jour à la dernière version et de faire un backup sur ton ancienne machine ?

Non puisque le disque dur a été formaté plusieurs fois depuis.

¿ C’est possible de récupérer manuellement les données de l’archive pour les mettre dans un Mastodon nouvellement installé ?

Récupérer les données dans l’archive mastodon–pre-upgrade1, je suppose.

J’ai pris mes précautions en mettant en place ceci : Voici ce que j’ai mis en place pour faire une sauvegarde et restauration des fichiers et base de donnée de Mastodon.
Cela m’a été utile quand j’ai planté complètement l’instance, et la restauration ne fonctionnait plus/pas :sweat_smile:

Tu peux t’en servir, si ça peut t’aider (moi, j’ai fait comme ça).

J’ai créé un dossier pour mettre mes sauvegardes

mkdir /var/www/backups/masto_setup

SAUVEGARDE :

Ensuite, j’ai fait une sauvegarde de la base de données Mastodon

cd /var/www/mastodon/live
pg_dump -U mastodon -W -F t mastodon > /var/www/backups/masto_setup/mastodon_backup.dump

Le mot de passe se trouve dans le fichier .env.production, à la ligne :

PostgreSQL

DB_PASS=”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

J’ai sauvegardé le dossier Redis.

cd /var/lib
cp -R -v redis /var/www/backups/masto_setup

Le Journal de la base de données de sauvegarde Mastodon.

cd /var/log
cp -R -v mastodon /var/www/backups/masto_setup

Le dossier Packs.

cd /var/www/mastodon/live/public
cp -R -v packs /var/www/backups/masto_setup

Les fichiers téléchargés par le(s) utilisateur(s).

cd /var/www/mastodon/live/public
cp -R -v system /var/www/backups/masto_setup

RESTAURATION :

Restaurer la base de données Mastodon.

cd /var/www/mastodon/live
pg_restore -U mastodon -d mastodon < /var/www/backups/masto_setup/mastodon_backup.dump

Restaurer le dossier Redis.

cd /var/www/backups/masto_setup
cp -R -v redis /var/lib

Restaurer le journal de la base de données Mastodon.

cd /var/www/backups/masto_setup
cp -R -v mastodon /var/log

Restaurer le dossier Packs.

cd /var/www/backups/masto_setup
cp -R -v packs /var/www/mastodon/live/public

Restaurer les fichiers téléchargés par le(s) utilisateur(s).

cd /var/www/backups/masto_setup
cp -R -v system /var/www/mastodon/live/public

Redémarrer les services Mastodon…

systemctl restart mastodon-web.service
systemctl restart mastodon-sidekiq.service
systemctl restart mastodon-streaming.service

Ou en une seule commande :

systemctl restart mastodon-web.service mastodon-sidekiq.service

J’espère que cela pourra t’aider.

Je te file aussi ce script, pour nettoyer ton instance, pour éviter qu’elle prenne trop de poids (ça peut aller très vite) :wink:

Avec ce script, je suis passé de +50 GB à -17 GB.

#!/bin/bash
# --- Mastodon Instance Cleanup Script ---
# Créer le script « mastodon-instance-cleanup.sh »
# Création du script peut se faire dans un dossier ex: /home/scripts.
# mkdir /home/scripts# 
# cd /home/scripts
# nano mastodon-instance-cleanup.sh
# Le rendre exécutable :
# chmod +x mastodon-instance-cleanup.sh
# Tester les script :
# ./mastodon-instance-cleanup.sh
# (Crtl+c pour stopper l'exécution du scripts, si nécessaire)
# ╭─────────────────────────| VARIABLES |─────────────────────────╮
   # --- Mastodon Directory /var/www/mastodon/live ---
   APP_PATH='/var/www/mastodon/live';

   BIN="bin/tootctl"

   RBENV="/opt/rbenv/versions/mastodon/bin"
# ╰───────────────────────────────────────────────────────────────╯
# ╭──────────────────────────| MESSAGE |──────────────────────────╮
   echo "---------------------------------------------------------"
   echo "       Cleaning Mastodon instance, please wait...        "
   echo "---------------------------------------------------------"
# ╰───────────────────────────────────────────────────────────────╯

   # --- Access to the Mastodon directory /var/www/mastodon/live.
   cd $APP_PATH;

# Remove remote accounts that no longer exist
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN accounts cull

# Prune remote accounts that never interacted with a local user
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN accounts prune

# Remove remote statuses that local users never interacted with older than x days
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN statuses remove --days 7

# Remove media attachments older than x days
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN media remove --days 7

#Remove all headers and avatars older than x days
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN media remove --prune-profiles --days 7

# Remove link previews older than x days
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN preview_cards remove --days 7

# Remove files not linked to any post
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN media remove-orphans

# Removes small cached thumbnails (from other servers).
LD_PRELOAD=libjemalloc.so RAILS_ENV=production PATH=$RBENV $BIN cache clear

# --- Allows time to read the information after the process ---
    printf "%s." "Press « Enter » to exit."
            read ans

Tu peux faire en sorte que le script s’exécute automatiquement la nuit avec crontab.

Voici ce que j’ai mis, avec la commande :
crontab -e

# INSTANCE MASTODON
# Nettoyage de l'instance Mastodon
# Envoyer les résultats à l'Admin du serveur (facultatif)
#MAILTO=""
# À 2:30, tous les jours
30 23 * * * $HOME/scripts/mastodon-instance-cleanup.sh

Ctrl+O pour enregistrer et Ctrl+X pour quitter.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.