28 Comment fonctionne ce site ?
mario edited this page 2 weeks ago

Introduction

Pars-que nous souhaitons une total transparence sur les services (web) que nous proposons, voici un listing des applications/logiciels utilisés par Devosi. Nous utilisons une infrastructure de serveurs basés sur des conteneurs avec Docker.

NPMD-docker

NPMD-docker est la nomination de notre “stack” Docker, il construit un ensemble d’images pour le fonctionnement des serveurs Devosi :

  • Nginx : Serveur Web - Conteneur Nginx (build)
  • PHP : Serveur PHP - Conteneur PHP-7.3 (build)
  • Mariadb : Serveur SQL - Conteneur Mariadb (build)
  • Redis : Serveur de dictionnaire distant - Conteneur Redis (image)
  • Gitea : Service Git - Conteneur Git (image)
  • MailServer : Serveur mail - Conteneur Postfix/Dovecot (image) - Voir (README.md)
  • Postfixadmin : Gestion du serveur d’email - Conteneur Postfixadmin (image) - Voir (README.md)
  • Ejabberd : Serveur XMPP - Conteneur Ejabberd (image)
  • Peertube : Plate-forme vidéo - Conteneur Peertube (build)
  • Nextcloud : Service Cloud - Conteneur Nextcloud (image)
  • Rainloop : Webmail - Installé à partir des sources
  • Wordpress : Site Internet - Installé à partir des sources
  • phpMyAdmin : Gestion des bases de données - Conteneur phpMyAdmin (image)
  • Matomo : Analytique Web - Conteneur Matomo (image) - Voir (README.md)
  • PureFTP : Serveur FTP - Conteneur PureFTP (image) - Voir (README.md)
  • OpenVPN : Serveur VPN - Conteneur OpenVPN (image) - Voir (README.md)

Fichiers et dossiers persistants

Ceci est un exemple de mise en place du template de fichiers et dossiers persistants :

/mnt/docker/NPMD-docker
│
├──README.md /*information du slack docker pour les développeurs*/
│
├──docker-compose.yml /*fichier executé avec docker-compose*/
│
├──config /*dossier persistant*/
│      │
│      ├──letsencrypt /*lien symbolique vers le répertoire Letsencrypt*/
│      │   │
│      │   ├──/*/etc/letsencrypt/*/
│      │
│      ├──mysql /*dossier persistant*/
│      │   │
│      │   ├──my.cf /*configuration personalisé de mariadb*/
│      │
│      ├──nginx /*dossier persistant*/
│      │   │
│      │   ├──conf.d/ /*vhost nginx*/
│      │   │
│      │   ├──nginx.conf /*conf nginx*/
│      │
│      ├──php /*dossier persistant*/
│      │   │
│      │   ├──php.ini /*configuration pésonalisé php*/
│      │
│      ├──gitea /*dossier persistant*/
│      │   │
│      │   ├──conf/ /*configuration personalisé de gitea*/
│      │
│      ├──nextcloud /*dossier persistant*/
│      │   │
│      │   ├──config/ /*vhost nginx*/
│      │
│      ├──ejabberd /*dossier persistant*/
│          │
│          ├──config/ /*configuration pésonalisé php*/
│
│
├──containers /*dossier persistant*/
│      │
│      ├──container-mysql /*dossier build de mariadb*/
│      │   │
│      │   ├──Dockerfile /*fichier contenant les instructions du build*/
│      │   │
│      │   ├──init.user.sql /*fichier contenant les instructions pour creer les bases de données et leurs utilisateurs*/
│      │   │
│      │   ├──db /*dossier contenant les bases de données à sauvegardé/restauré*/
│      │       ├──db_base /*dossier contenant les bases de donnée d'installation*/
│      │       ├──db_prod /*dossier contenant les sauvegardes de bases de données en production*/
│      │
│      │
│      ├──container-nginx /*dossier build de nginx*/
│      │   │
│      │   ├──Dockerfile /*fichier contenant les instructions du build*/
│      │   
│      │
│      ├──container-php /*dossier build de nginx*/
│          │
│          ├──Dockerfile /*fichier contenant les instructions du build*/
│      
│
├──data /*dossier persistant*/
│      │
│      ├gitea
│      │   ├ /*données de gitea (volume)*/ 
│      │ 
│      ├mysql
│      │   ├ /*données de mariadb (volume)*/ 
│      │ 
│      ├nextcloud
│      │   ├ /*données de nextcloud (volume)*/
│      │ 
│      ├nginx
│      │   ├ /*données de nginx (volume)*/
│      │ 
│      ├ejabberd
│      │    ├ /*données de ejabberd (volume)*/
│      │ 
│      ├redis
│          ├ /*données de redis (volume)*/
│
│
├──scripts /*dossier persistant*/
│      │
│      ├certbot-dns-01-authenticators
│      │   ├*.sh /*scripts*/
│      │ 
│      ├letsencrypt
│      │   ├*.sh /*scripts*/
│      │ 
│      ├logs
│      │   ├*.log /*logs*/
│      │ 
│      ├mysql
│          ├*.sh /*scripts*/
│
│
├──www /*lien symbolique vers le dossier contenant les sites web*/
       │
       ├/*/var/www/html*/

Devosi Docker Git Projet

Docker nous permet de réinstaller le serveur Devosi en quelques minutes, Git permet de synchroniser le projet sur différent postes informatiques et de travailler entre collaborateurs de manière transparente.