Yunohost et sous-domaine

, par  Genma , popularité : 2%

Yunohost permet l’usage de sous-domaine. Il faut avoir un nom de domaine par exemple mon domaine.fr et créer au niveau de la configuration DNS (chez Gandi par exemple) des sous domaines.

Configuration chez Gandi

Dans la configuration de son DNS, on aura donc une entrée A avec l’adresse IPv4, une entrée AAAA avec l’adresse IPv6 et ensuite différents CNAME pour le sous-domaines que l’on souhaite créer.

Nom Type Valeur
@ 	A 	XYZ.XYZ.XYZ.XYZ
@ 	AAAA	1234:1234:1234:FFAA:FFAA:FFAA:FFAA:AAFF
* 	CNAME 	mondomaine.fr.
agenda 	CNAME 	mondomaine.fr.
blog 	CNAME 	mondomaine.fr.
rss 	CNAME 	mondomaine.fr.
...

permet d’avoir un agenda.mondomaine.fr, un blog.mondomaine.fr etc...

Installer une application sur un sous-domaine

Pour installer une application sur un sous domaine, par exemple blog.mondomaine.fr, dans Yunohost, tout ce fait via la partie administration. On ajoute tout d’abord le sous-domaine à la liste des domaines disponibles. La création d’un sous-domaine dans Yunohost créera les fichiers de configuration correspondant pour nginx (le serveur web de Yunohost).

Puis dans la partie installation d’une application, on installe l’application de façon traditionnelle en en choisissant ce sous-domaine comme domaine (par exemple blog.mondomaine.fr) et en indiquant comme chemin "/" (et non /wordpress qui sera le chemin par défaut). On a alors un message d’avertissement indiquant qu’on ne pourra pas mettre d’autres applications sur ce sous-domaine. On valide. Ca s’installe.

L’application est alors accessible via blog.mondomaine.fr (et non via mondomaine.fr/wordpress)

Déplacer une application sur un sous domaine ?

Que ce passe-t-il si on a déjà installer l’application ? On veut par exemple passer de mondomaine.fr/wordpress à blog.mondomaine.fr.

Pour l’instant il n’y a pas de façon simple (via l’interface graphique de l’administration de Yunohost) pour déplacer une application sur un sous-domaine.

Deux solutions :
 la réinstallation de l’application
 le déplacement de l’application

Réinstallation de l’application

On sauvegarde ses données (base de données etc. via un script sql par exemple, les fichiers etc.). On désinstalle l’application via l’interface graphique d’administration de Yunohost. Et on la réinstalle en suivant la procédure ci-dessus.

Attention à la réinstallation Attention toutefois à bien vérifier que l’application a été packagée pour la version 2.4 de Yunohost sinon on ne peut plus la réinstaller. J’ai par exemple rencontré le problème avec SPIP. Installé en 2.2 sur mondomaine.fr/spip, j’ai voulu le réinstaller sur blog.mondomaine.fr Or SPIP n’est actuellement pas packagé pour Yunohost 2.4 (et entre temps j’étais passé de 2.2 en 2.4)

Déplacer l’application déjà installée

Ceci est sans AUCUNE garantie que ça marche bien (même si pour moi ça a marché, ne casse pas le système...

Pour un usage sans risque, la solution reste de supprimer et réinstaller l’application

Là c’est un peu plus technique. Il faut aller en ligne de commande pour déplacer le fichier monappli.conf. Et donc comprendre ces lignes, savoir regarder des logs de nginx (si on a une erreur...)

#On déplace le fichier automatiquement créer pour nginx à l'installation du dossier correspondant au domaine dans le dossier correspondant au sous-domaine
mv /etc/nginx/conf/mondomaine.d/monappli.conf /etc/nginx/conf/blog.mondomaine.d/
#On édite le fichier de configuation déplacé
nano /etc/nginx/conf/blog.mondomaine.d/monappli.conf
# Et on change la ligne location
"location /wordpress" devient juste "location /"
# vu qu'on est à la racine du sous-domaine.
Il faut modifier les settings, que l'on doit trouver dans 
/etc/yunohost/apps/<my_app>/settings.yml

On redémarre nginx

sudo service restart nginx

Si ça marche, on a l’application avec toutes ses données (la base de données et les fichiers dans /var/wwww/wordpress n’ont pas été modifiés).

Let’s encrypt

Si on utilise comme moi let’s encrypt, il faut penser à refaire la procédure de génération des certificats pour ce sous-domaine... Je pars du principe que vous avez suivi la procédure
How to : Install Let’s Encrypt certificates que vous l’avez comprise et connaissez l’administration système (je ne détaille pas)
C’est pareil que pour le domaine mais avec le sous-domaine, à faire pour chaque sous-domaine que l’on veut (il n’y a pas, à ma connaissance de certificat wildcard *.mondomaine.fr avec let’s encrypt)

root@yunohost:~/letsencrypt# ./letsencrypt-auto certonly --config /etc/letsencrypt/conf.ini blog.mondomaine.fr

Ce qui génère les certificats.
Et on fait comme pour le domaine, mais pour le sous-domaine : 

root@yunohost:/etc/yunohost/certs/blog.mondomaine.fr# ln -s /etc/letsencrypt/live/blog.mondomaine.fr/fullchain.pem ./crt.pem
root@yunohost:/etc/yunohost/certs/blog.mondomaine.fr# ln -s /etc/letsencrypt/live/blog.mondomaine.fr/privkey.pem ./key.pem

service nginx restart

Conclusion

Voilà j’espère que ce sera utile. Si vous avez des questions ou besoin de précisions, commentez et j’ajouterai dans l’article avant de mettre tout ça dans la documentation officielle de Yunohost.