Dans cet article, je te présente une procédure à suivre pour réussir le déménagement de ton serveur en autohébergement Yunohost avec succès, sans ne rien oublier. J’ai plusieurs déménagement à mon actif et j’ai appris qu’il ne faut pas simplement suivre les instructions de base, surtout si notre serveur date de quelques années.
🌘 Déménagement de serveur Yunohost : Le guide pour une migration en douceur
Qu’est-ce qu’un déménagement de serveur Yunohost ?
Le déménagement (ou migration) d’un serveur Yunohost consiste à transférer l’intégralité de ton système (applications, données, utilisateurs, configurations) d’un serveur (l’ancien) vers un nouveau. La méthode la plus fiable utilise l’outil de sauvegarde complète de Yunohost pour restaurer l’archive sur une installation fraîche.
Déménager un serveur Yunohost, ça peut faire peur. On a peur de perdre des données, de casser une application, ou tout simplement de passer des heures à dépanner des erreurs obscures. Bref, on redoute le plantage complet, les erreurs 500 et l’archéologie dans les logs.
Pourtant, que tu manques d’espace disque, de RAM, ou que tu veuilles simplement changer de fournisseur (VPS), la migration est souvent inévitable.
La bonne nouvelle ? J’ai documenté comment je fais depuis plusieurs années, et je réalise que c’est une opération très gérable même si tu n’as pas la bosse de Linux !
Dans ce guide, je te partage ma méthode (celle que j’utilise pour mes propres serveurs et ceux de mes client·es), étape par étape.
Nous allons couvrir :
- Le dimensionnement de ton nouveau serveur.
- Le ménage indispensable à faire avant la sauvegarde (l’étape que beaucoup oublient).
- La procédure de sauvegarde et de restauration sécurisée.
- Les vérifications (PHP, crontab, DNS) pour finaliser la migration sans stress.
Prêt pour un déménagement en douceur ? Allons-y.
🌘 Étape 1 : Bien dimensionner ton nouveau serveur
Pour choisir la bonne taille de serveur, je te conseille d’estimer les besoins par application, puis de faire la somme. Ensuite, tu pourras appliquer un pourcentage de réduction sur le nombre de processeurs selon l’achalandage de ton serveur.
Ce tableau va t’aider à faire le calcul.
| Type d’application | Exemples | Mémoire | Processeur (coeurs) | Stockage |
|---|---|---|---|---|
| Site web, wiki et petits utilitaires | WordPress, Ghost, Dokuwiki | 0,5 Go | 0,5 | 1 Go |
| Stockage de fichiers | Nextcloud, Seafile, Jirafeau | 1 Go | 0,5 | 1 Go |
| Bureautique et collaboration | Collabora, OnlyOffice | 2 Go | 2 | 5 Go |
| Automatisation | NodeRed, n8n, Mautic | 0,5 Go | 1 | 1 Go |
| Logiciels en Java | Metabase | 2 Go | 1 | 1 Go |
| Vidéoconférence | BigBlueButton, Jitsi Meet | 16 Go | 4 | 5 Go |
| Logiciels pour grandes entreprises | GitLab, Mattermost | 8 Go | 4 | 10 Go |
- Ajoute le stockage nécessaire pour les fichiers utilisateur en plus.
- On arrondit ensuite les mesures de mémoire et de processeur à la puissance de 2 supérieure (1,2,4,8,16 …). Il y a
parfois des VPS avec d’autres formats, mais c’est rare. - Le stockage lui est généralement disponible en multiple de 40 Go. Une fois le calcul du stockage fait, on le double pour tenir
compte de la génération des sauvegardes
Par exemple, un serveur pour WordPress, Nextcloud et Mattermost avec 50 Go de fichiers utilisateur nécessite au
minimum :
- Mémoire : 0,5+1+8 = 9,5 Go, arrondi à 16 Go
- Processeur : 0,5+0,5+4 = 5 cœurs, arrondi à 8 cœurs
- Stockage : 1+1+10+10 (Linux)+50 (Fichiers) = 72 Go, arrondi à 80 Go. On double pour les sauvegardes, donc 160 Go.
Nous allons donc chercher un serveur avec 16 Go de mémoire vive, 8 cœurs et 160 Go de stockage. Bien entendu, si ton fournisseur permet d’avoir un serveur avec 12 Go de RAM et 6 coeurs, avec 150 Go de stockage, ça va faire aussi ! Mais c’est juste beaucoup moins fréquent.
🌘 Étape 2 : Préparer l’ancien serveur et faire le ménage
🌘 Faire les mises à jour du serveur et de Yunohost
Il faut s’assurer d’avoir les version les plus à jour de Yunohost et des logiciels de la distribution Debian. Ce n’est par contre pas nécessaire d’avoir les versions les plus à jour des logiciels installés depuis Yunohost, même si c’est souvent un bon moyen d’éviter des problèmes de restauration.
Voici les commandes pour faire la mise à jour
# Ancien serveur
sudo yunohost tools upgrade system
# Pour les logiciels (optionnel)
sudo yunohost tools upgrade apps
🌘 Installer la bonne version de Debian sur le nouveau serveur
Yunohost n’utilise pas nécessairement la version la plus récente de Debian. Il faut donc installer la même que celle que tu trouves sur ton serveur actuel. Voici la commande pour savoir quelle version tu utilises. N’utilise pas la version affichée chez ton fournisseur d’hébergement, parce que c’est celle que tu as installée au début. Elle va avoir changé au fil du temps.
# Ancien serveur
lsb_release -a
La sortie va ressembler à ceci:
# Ceci est une sortie, ce n'est pas du code !
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
Dans ce cas-ci, nous avons Debian 12 (bookworm). Il faudra donc installer la même chose sur le nouveau serveur
🌘 Valider les versions de PHP installées
Cette commande va lister toutes les versions de PHP installées sur le serveur
# Ancien serveur
sudo update-alternatives --list php
Prend en note la sortie dans ton application de prise de notes.
C’est possible qu’elles ne soient plus toutes utilisées, mais pour le confirmer, il faut aller voir la configuration de chacune des applications une par une. PHP ne prend pas beaucoup de place sur le disque, alors c’est mieux d’en avoir plus que pas assez !
🌘 Faire du ménage dans les logiciels installés et dans le cache
Avant de faire la sauvegarde, nous allons faire du ménage sur notre serveur. On va commencer par faire du ménage dans les applications de stockage de fichiers. Cette section peut être utile aussi à des fins de maintenance de ton serveur, sans nécessairement vouloir déménager.
Par exemple, Nextcloud a souvent des fichiers en cache ou dans la corbeille. Je vais t’inviter à les vider. Tu trouveras les instructions sur ce blog: Entretien de Nextcloud - Corbeille, PHP et cache
Supprime ensuite toutes les applications Yunohost qui ne servent plus. Elles vont prendre de la place dans les archives pour rien !
L’utilitaire APT, qui permet d’installer les logiciels de la distribution Debian, a tendance à accumuler beaucoup de fichiers. Il permet aussi de se débarasser des dépendances orphelines, qui ont été installées pour un logiciel qui a depuis été déinstallé.
sudo apt-get -y autoremove && sudo apt-get -y autoclean && sudo apt-get clean && sudo apt-get autoremove -y --purge
Supprimer Docker, à moins que tu l’aies installé manuellement pour une raison précise. Il est souvent installé par défaut sur les serveurs dans le cloud, même si on n’en a pas besoin
# Ancien serveur
docker system prune
apt-get autoremove docker-*
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/apparmor.d/docker
sudo rm -rf /var/run/docker.sock
sudo rm -rf /var/run/containerd
sudo rm -rf ~/.docker
Enfin, fait un ménage des répertoires de cache et de journalisation du serveur
rm /var/log/php*.gz
rm /var/log/backup*.gz
rm /var/log/backup_borg.err
find /var/log/yunohost/categories/operation -name "*.yml" -type f -delete
find /var/log/yunohost/categories/operation -name "*.log" -type f -delete
sudo journalctl --rotate
sudo journalctl --vacuum-time=2w
rm /var/log/borg *.log *.err
🌘 Étape 3 : La sauvegarde complète
En utilisant la ligne de commande, lance une sauvegarde complète sur l’ancien serveur:
# Ancien serveur
yunohost backup create
Pendant que la sauvegarde se fait, tu peux démarrer l’installation de Yunohost sur le nouveau serveur. Nous allons faire seulement la première partie, sans faire la post-installation, puisque ce sera la restauration de la sauvegarde qui va faire cette partie.
# Nouveau serveur
sudo -i
curl https://install.yunohost.org | bash
🌘 Sauvegarder les tâches planifiées de la crontab
Ensuite, nous allons récupérer la crontab de l’ancien serveur. Ce sont les tâches planifiées. C’est possible que tu en aies ajouté au fil du temps et que tu ne t’en souviennes pas !
# Ancien serveur
sudo crontab -e
Par exemple, ici, j’ai deux tâches, dont une qui est un script personnalisé
# Ceci est une sortie, ce n'est pas du code !
0 0 * * * /bin/bash /root/borg_manual_backup.sh
*/15 * * * * /usr/bin/php8.1 -f /var/www/nextcloud/cron.php
Conserve ce contenu quelque part dans une application de notes, car elle ne sera pas inclus dans la sauvegarde
🌘 Faire un diagnostic du serveur
Effectuer un diagnostic sur l’ancien serveur
# Ancien serveur
sudo yunohost diagnosis run
Ensuite, affiche le résumé. C’est assez long comme sortie, mais ça inclus plein d’informations qui peuvent être utiles plus tard pour dépanner.
# Ancien serveur
sudo yunohost diagnosis show
Prends en note la sortie dans ton application de notes !
🌘 Étape 4 : Configurer et restaurer sur le nouveau serveur
Nous n’allons pas télécharger la sauvegarde localement, nous allons l’envoyer directement sur le nouveau serveur.
🌘 Configurer une paire de clés SSH
Nous allons commencer par créer une paire de clés SSH sur l’ancien serveur
# Ancien serveur
sudo ssh-keygen -t rsa -f /root/.ssh/nouveau -N '' <<< $'y\n'
Nous allons copier la clé publique dans les clés autorisées sur le nouveau serveur.
- Remplace ici l’utilisateur et l’adresse du nouveau serveur.
- La commande va te demander le mot de passe de l’utilisateur sur le nouveau serveur.
# Nouveau serveur
ssh-copy-id -i /root/.ssh/nouveau.pub debian@nouveau.serveur
Nous allons maintenant identifier le nom du fichier de la sauvegarde ainsi que son fichier de métadonnées json.
ls -lh1t /home/yunohost.backup/archives/
L’archive qui nous intéresse est la paire de fichiers la plus récente.
Nous pouvons maintenant faire la copie
# Ancien serveur
scp -i /root/.ssh/nouveau /home/yunohost.backup/archives/NOM_DE_L_ARCHIVE.tar debian@nouveau.serveur:/home/yunohost.backup/archives/
scp -i /root/.ssh/nouveau /home/yunohost.backup/archives/NOM_DE_L_ARCHIVE.info.json debian@nouveau.serveur:/home/yunohost.backup/archives/
🌘 Restaurer la sauvegarde sur le nouveau serveur
Une fois que Yunohost est installé, au lieu de faire la post-installation, on restaure l’archive de sauvegarde
# Nouveau serveur
yunohost backup restore /home/yunohost.backup/archives/NOM_DE_L_ARCHIVE.tar
🌘 Installer les versions de PHP manquantes
# Nouveau serveur
sudo update-alternatives --list php
Compare avec la liste que tu avais pris en note. S’il manque des versions et qu’elle sont utilisées par au moins une application, tu peux les installer avec APT. Voici un exemple pour la version 8.2 avec un ensemble courant de librairies.
sudo apt-get -y install php8.2-common php8.2-curl php8.2-mysql php8.2-readline php8.2-mbstring php8.2-intl php8.2-ldap php8.2-opcache php8.2-gd php8.2-xml php8.2-cli php8.2-fpm
🌘 Effectuer un diagnostic sur le nouveau serveur
Une fois que la sauvegarde est restaurée, on va faire un diagnostic pour identifier les problèmes potentiels à corriger
# Nouveau serveur
sudo yunohost diagnosis run
C’est normal que le diagnostic présente beaucoup d’erreurs parce qu’on n’a pas encore transféré les enregistrements DNS
🌘 Appliquer les règles manquantes du crontab
Tu peux maintenant restaurer les règles manquantes du crontab, si tu le souhaites (c’est toujours optionnel, ce sont des règles que tu as ajoutées manuellement)
Exécute la commande suivante et compare avec ce que tu as conservé dans tes notes
# Nouveau serveur
sudo crontab -e
🌘 Étape 5: Transférer les enregistrements DNS et fermer l’ancien serveur
Une fois que la sauvegarde est restaurée et que tu peux accéder au panneau de contrôle de Yunohost via l’adresse IPv4 du serveur dans ton navigateur, tu peux faire le transfert des enregistrements DNS.
Chez ton registraire, repère les enregistrements pour chacun des domaines que tu as sur ton Yunohost, et ajuste les enregistrements A et AAAA avec les valeurs d’adresse IPv4 et IPv6 qui sont présentées dans le diagnostic de Yunohost. Ensuite, attend quelques heures et refais un diagnostic.
Normalement, tout devrait être rentré en ordre. Pour t’en assurer, je te conseille de désactiver nginx sur l’ancien serveur. C’est une action non-destructrice qui va te permettre de valider, durant les prochains jours, que tout est bien fonctionnel.
🌘 Conserver une sauvegarde de l’ancien et du nouveau serveur
Une fois que tu as validé que tout fonctionne sur ton nouveau serveur, tu peux télécharger la copie de sauvegarde de l’ancien serveur, la supprimer et générer un nouvelle copie de sauvegarde du nouveau serveur. Comme ça, tu as tout ce qu’il faut pour corriger si on a oublié quelque chose.
Tu peux maintenant supprimer ton ancien serveur.
🌘 Tu as envie d’aller plus loin
J’ai monté une formation pour que tu aies tout l’information en main pour administrer ton propre serveur Yunohost.
Héberger ton entreprise ou ton OBNL avec Yunohost

Dans cet atelier, tu auras l’occasion d’expérimenter l’autohébergement sur un vrai serveur. Nous utiliserons la plateforme Yunohost qui dispose de centaines d’applications disponibles.
Prix: 69$
🌘 La migration te stresse ?
J’offre aussi un service de Consultation Express pour t’aider avec tes serveurs en auto-hébergement, sans engagement à long terme.
Même avec le meilleur guide du monde, une migration serveur reste un moment technique. Si tu préfères avoir un filet de sécurité, si tu bloques sur une erreur de diagnostic, un problème de DNS ou de version PHP, sache que je suis là pour t’aider.
La Consultation Express est conçue pour ça : on débloque la situation ensemble, rapidement et sans stress.