User Tools

Site Tools


notes:formation_webperso

Introduction

Le but de cette formation est de faciliter la mise en place, la gestion et la maintenance d'un site web perso en auto-hébergement et des services qui peuvent être associés.

Matériel requis

Services en option

Dans mon cas j'ai choisi d'avoir un serveur de nom de domaine faisant autorité, mais ça n'est pas obligatoire.
le reverse proxy SNI n'est nécessaire que dans le cas ou vous souhaitez avoir plusieurs machines virtuelle (ou des conteneurs) partageant la même ipv4 publique.

Comme on peut le voir sur le schéma, l'ipv6 est plus simple à configurer que l'orsqu'on n'a qu'une ipv4 publique.

Installations

Je recommande l'installation d'un hyperviseur (Proxmox) pour y héberger les machines virtuelles ou conteneurs du site web et des services associés. Il est possible d'utiliser un autre hyperviseur que proxmox, par exemple virt-manager, virtualbox etc.
Dans tous les cas il sera préférable de parametrer le réseau en mode pont (bridge) pour ne pas avoir à gérer les redirection NAT.
Proxmox utilise les bridges par defaut, ce qui nous convient.

Proxmox

Yunohost

Yunohost peut s'installer de deux façon dans proxmox, en machine virtuelle ou en conteneur, celà va dépendre de votre besoin en isolation des processus.

je recommande l'installation de Yunohost en conteneur, mais si vous tenez à l'installer en machine virtuelle c'est documenté ici: yunohost en machine virtuelle

installation Yunohost (en conteneur)

l'installation de Yunohost en conteneur se fait dans un conteneur déjà existant:

Yunohost est basé sur Debian, donc j'installe un conteneur Debian:

(documentation: https://pve.proxmox.com/wiki/Linux_Container#pct_container_images)

voici quelque commandes à executer en tant que root dans le terminal proxmox pour ajouter les images de conteneurs:

pveam update

(met à jour la liste des images de conteneurs disponibles)

pveam available --section system | grep debian

(affiche la liste des conteneurs Debian seulement)

pveam download local debian-12-standard_12.7-1_amd64.tar.zst

(telecharge la dernière image debian disponible)

  • lorsque le télechargement est terminé, on peut créer un conteneur depuis cette image, 20Go d'espace disque devrait suffire.
  • on démarre le conteneur…
  • un fois dans le conteneur en tant que root on va récupérer le script d'installation de yunohost et l'executer:
cd /root
apt update
wget install.yunohost.org -O install.yunohost.sh
chmod +x install.yunohost.sh
/root/install.yunohost.sh

une fois l'installation de base terminée il suffira d'aller dans le navigateur web pour la continuer. ou de taper yunohost tools postinstall en ligne de commande

Prendre un nom de domaine

  • soit avec yunohost
  • soit chez un registrar

une fois le nom de domaine enregistré, il suffira de générer le certificat du coté de Yunohost/admin

Serveur de nom de domaine faisant autorité (en option)

si vous avez envie d'avoir des sous-domaines et de les gérer vous-même (ce qui évitera de devoir passer par le registrar pour chaque changement).
vous devez alors déclarer votre nom de domaine principal comme SOA c'est à dire mettre en place et déclarer un serveur de nom de domaine faisant autorité.
par exemple avec nsd (que j'ai choisi) ou knot (que je n'ai pas encore testé).

Ajout d'une application

au choix:

dokuwiki nextcloud calibre galene jirafeau lufi ... etc.

il est possible d'avoir plusieurs machines virtuelles avec chacune un Yunohost, plutôt que toutes les applications dans la même machine virtuelle yunohost.
cela va surtout dépendre de l'usage et dans le cas ou vous choisirez d'avoir plusieurs machines (virtuelles ou pas) il faudra mettre en place un reverse proxy SNI (parce que vous n'aurez surement qu'une seule ipv4 publique et qu'il faudra la partager entre les machines, en ipv6 on n'a pas ce genre de problèmes)

ipv4 seulement: Ouverture des ports (et redirections NAT)

  • identifier les ports à ouvrir
  • ouvrir du coté de la box Internet et indiquer la redirection.
  • si vous avez mis en place un serveur proxy sni, alors il faudra rediriger les ports 80 et 443 vers le serveur proxy sni

Dites-vous bien que les problèmes de NAT n'existent pas en ipv6 (à moins d'avoir du CGNAT mais dans ce cas je recommande de changer de fournisseur d'accès à Internet)
en ipv6 la machine est directement connectée à Internet, avec tous les ports exposés sur l'ip publique (qui commence par 2)

Sauvegardes (très important)

Yunohost est capable de faire les sauvegardes des applications, mais il ne fait pas les sauvegardes de lui même. c'est pour cette raison que j'utilise Yunohost dans une machine virtuelle (ou un conteneur) et que je fais faire la sauvegarde par proxmox.
mais une sauvegarde se doit de ne pas rester sur le même disque dur que sa source et devrait être stockée dans un lieu géographique différent.

en ce qui nous concerne, utiliser une deuxieme disque dur sera déjà pas mal

Lire les logs (important)

Problèmes rencontrés lors de l'autohébergement

  1. certains fournisseurs d'accès ne font pas bien le routage vers les plages d'ip des autres fournisseurs d'accès
  2. l'ip publique peut changer sans préavis, il faudra alors mettre à jour les entrées DNS et regénérer les certificats
  3. il peut aussi arriver que la box ne délivre pas d'ipv6 publique mais seulement une ipv6 localement unique, dans ce cas il suffira de forcer une ipv6 publique
  4. certains fournisseurs d'accès ne donnent pas d'ipv6 à leurs clients, ou dans certaines zones seulement.
  5. en général on n'a qu'une seule ipv4 publique, donc si on souhaite héberger plusieurs services qui ont besoin des mêmes ports il faudra mettre en place un reverse proxy SNI
notes/formation_webperso.txt · Last modified: 2025/04/17 12:53 by err404

Page Tools