Outils pour utilisateurs

Outils du site


my_docker_webserver

Mon serveur web avec docker

Pour m'occuper pendant le confinement, je décide d'enfin avancer sur mes projets perso d’hébergement web de trucs qui servent plus ou moins. Je décide, selon ma philosophie, et mon envie de :

  1. Faciliter un déploiement rapide et partout
  2. Faire en sorte que cela soit réutilisable et évolutif
  3. Disposer d'un environnement de dev
  4. Coder et versionner tout cela

Démo

Visitez le site web mby.fr.

Le dépôt git

La forge git du projet.

Principes de bases

Des services web isolés

Je souhaite exposer sur le web des services isolés. Chaque service est isolé dans son conteneur. Avec la bonne configuration, docker-compose démarre "une grappe" de conteneur configurée pour discuter entre eux. Il inscrit également cette grappe auprès du service "nginx-proxy" ce qui rend la grappe de conteneur accessible via le protocole https sur le net (via letsencrypt). La plupart des éditeurs de logiciels fournissent leur solutions dans des images docker, ce qui rend l'intégration de nouveau service très rapide.

Procédure d'ajout d'un service web

Voici la procédure à dérouler pour fournir un nouveau "service web" prêt à déployer :

  1. J'affecte un nouveau suous domaine au service web (ex: mumble pour mumble.mby.fr).
  2. Je m'arrange pour l'embarquer dans un ou plusieurs conteneurs docker (Soit je prend les images fournient par la communauté, soit je créé mes propres images).
  3. J'écris le fichier docker-compose.yml pour décrire et configurer le déploiement des conteneurs. J'y ajoute la config nginx-proxy.
  4. J'écris un script up.sh et down.sh pour démarrer et arrêter le service proprement (spécifique environnement, firewall, ...).
  5. Je test sur mon environnement de dev sur mon pc perso.

Mes choix

  • Utiliser docker-compose pour sa simplicité et rapidité de mise en œuvre. Je n'ai qu'à configurer les images fournies par la communauté, et boum le tour est joué.
  • Utiliser le firewall ufw pour protéger le serveur. Il set facile à prendre en main, même si son intégration avec docker ne coule pas de source.
  • Utiliser le projet "nginx-proxy" pour servir de Reverse Proxy à tous les conteneurs de mon serveur.
  • Utiliser Vagrant pour déployer rapidement mon serveur web docker sur mon environnement de dev (sur mon ordinateur perso).
  • Versionner le tout avec git.

docker-compose

ufw

Le projet nginx-proxy

Vagrant

Ressources

my_docker_webserver.txt · Dernière modification: 2020/04/26 09:46 par bigMax