Changement de domaine d'une instance

C’est décidé, nous voulons passer notre instance de « www.keskonfai.fr » à « keskonfai.fr ».

Les adresses fédérés avec « www » sont trop inesthétiques.

Nous le faisons tant que nous n’avons pas trop d’utilisateurs actifs, en particulier sur la fédération.

J’ai fait le tour du schéma de base de données, il y a pas mal de données à mettre à jour.

Est-ce que vous avez des conseils pour faire ce changement sans se prendre trop les pieds dans le tapis ?

Ça me semble effectivement une bonne idée.

Il y avait des demandes pour essayer de mettre une instance derrière un sous-domaine différent (webfinger sur domaine.net, application sur sous.domaine.net, de telle sorte que les acteurs sont quand même sous la forme profil@domaine.net et ça redirige correctement vers sous.domaine.net), mais Mobilizon n’a pas été conçu depuis le départ avec ça en tête donc ça risque de casser des choses.

En premier lieu il convient de cesser la fédération avec les instances que vous suivez ou qui vous suivent.

La partie frustrante est en effet de réécrire les URL sur beaucoup de tables et dans de multiples colonnes (acteurs, événements, commentaires, posts, resources, etc). J’en avais parlé il y a quelques mois ici: How to change domain name?

En dehors de ça, vérifier que ça fonctionne bien tout seul après l’opération et le changement dans la config, puis relancer la fédération.

2 Likes

Le changement de domaine a été opéré hier. Voici un petit retour d’expérience pour ceux qui auraient à se lancer.

Ce qui s’est bien passé:

  • la migration des données pour 100’000 événements a pris moins de deux minutes.
  • jusqu’ici, le site est pleinement fonctionnel
  • grâce à une régression en cours sur la 1.0.6, la fédération que nous avons coupé avant le changement de domaine est revenu sans avoir à attendre l’acceptation des instances que l’on suit :slight_smile:

Ce qui s’est moins bien passé:

  • la configuration DNS d’un domaine racine est beaucoup plus capricieuse que la configuration d’un sous-domaine (www)
    • le domaine racine ne peut pas avoir d’enregistrement CNAME
    • Let’s Encrypt ne permet d’obtenir un certificat sur un domaine racine avec un challenge HTTP ou TLS, il faut passer par un challenge DNS, plus difficile à configurer.
  • nous n’avons pas encore tout testé et aurons peut être des mauvaises surprises…

Je joints mon script SQL de migration, à utiliser avec précaution. Je n’ai pas modifié les URL des media car elles sont dans des champs en JSON, plus compliqué à modifier et peut être aussi plus long à exécuter. J’ai configuré une redirection HTTP à la place.