Aller au contenu principal

Déploiement

Le déploiement est fait avec Docker et Docker Compose qui empaquettent tout ce dont il y a besoin dans des conteneurs.

Il faut donc ces 2 logiciels sur le serveur de production :

  • Docker Engine v20+
  • Docker Compose v2.12+

Les deux fichiers Docker Compose staging.yml et production.yml couplé à des variables d'environnement correctement configurées donnent la possibilité d'avoir des conteneurs et des volumes Docker complétement séparés, de manière à ce qu'un environnement de production et un autre de pré-production puissent tourner sur la même machine indépendamment.

info

Le chiffrement SSL/TLS n'est pas fait dans une des couches Docker de cette application, vous devrez donc vous en occuper avant que le traffic n'atteigne le point d'entrée du conteneur Traefik.

Pour commencer le déploiement, vous devez cloner le dépôt sur votre serveur :

git clone https://gitlab.com/koena/connect-access/connect-access.git

Variables d'environnement

La majeure partie de la configuration est faite au travers de variables d'environnement qui sont chargées par Docker Compose à partir de fichiers situés dans le répertoire .envs/.

Créer les fichiers

Tout d'abord vous devez copier .envs/production_template/ pour les environnements de production et de pré-production :

cd connect-access
cp -r .envs/production_template .envs/.production
cp -r .envs/production_template .envs/.staging

Renseigner les valeurs

Vous devez renseigner les valeurs pour les 5 fichiers de configuration :

DATA_PLATFORM_NAME
Le nom de la plateforme qui va apparaître publiquement à la place de "Connect Access".
DATA_PLATFORM_DOMAIN_NAME
Le nom de domaine de votre site web.
DATA_COMPANY_NAME, DATA_COMPANY_EMAIL
Le nom et l'adresse email de votre entreprise, utilisés pour l'envoi d'emails.
DATA_ADMIN_NAME, DATA_ADMIN_EMAIL
Le nom et l'adresse email de l'administrateurice, pour lui envoyer des emails quand d'importantes erreurs se produisent.
DATA_LOGO_FILENAME

Le nom du logo principal dans frontend/src/images/, avec une taille recommandée de 178 x 80 pixels. Si c'est votre propre image vous devrez l'ajouter dans le répertoire indiqué. Vous pouvez laisser la valeur par défaut pour cette variable d'environnement et ajouter votre image au chemin frontend/src/images/logo_custom.png.

DATA_LOGO_FILENAME_SMALL

Le nom du petit logo dans frontend/src/images/. Ce logo apparaît dans le panneau d'administration lorsque le menu est contracté, et doit être carré.

Créer des fichiers fusionnés

Vous ne pouvez passer qu'un seule fichier contenant des variables d'environnement à créer à docker compose, donc vous devez fusionner ces fichiers à chaque fois que vous y changez quelque chose. Vous pouvez le faire avec la commande suivante :

python merge_production_dotenvs_in_dotenv.py

Ceci va créer 2 fichiers .env_production et .env_staging qui sont simplement des concaténations des 5 fichiers de configuration que vous avez rempli.

Construire et déployer l'application

À chaque fois que vous souhaitez exécuter une commande, vous devez spécifier le bon fichier YAML de configuration à docker compose, et le bon fichier fusionné de variables d'environnements.

docker compose -f production.yml --env-file .env_production my_command

Pour construire et démarrer l'application, utilisez ces commandes :

docker compose -f production.yml --env-file .env_production build
docker compose -f production.yml --env-file .env_production run django python backend/manage.py migrate
docker compose -f production.yml --env-file .env_production up -d

L'application va démarrer, et écouter sur le port spécifié par la variables d'environnement APPLICATION_PORT.

La commande migrate est exécutée par Django pour créer initialement les tables dans la base de données.

Configuration

Une fois que l'application est en train de tourner, vous pouvez configurer certains éléments depuis le panneau d'administration qui sera disponible à l'adresse votredomaine.com/[DJANGO_ADMIN_URL]/.

Mais d'abord vous devez créer un compte admin avec la commande suivants (vous devrez indiquer certaines informations basiques comme votre nom, adresse email et mot de passe) :

docker compose -f production.yml --env-file .env_production run django python backend/manage.py createsuperuser

Avec le compte ainsi crée vous pouvez vous connecter au panneau d'administration Django et remplir certaines informations :

Informations à propos de l'organisation qui gère le service de médiation

Ici vous pouvez ajouter des informations à propos de votre entreprise ou organisation. Ces informations apparaîtront dans le pied de page de l'application Connect Access dans la section "Nous contacter".

Vous pouvez aussi renseigner vos conditions générales d'utilisation, qui apparaîtront sur la page votredomaine.com/terms-of-service.

Informations à propos du service de médiation

Ici vous pouvez ajouter des liens qui apparaîtront dans le pied de page de l'application, dans la section "À propos". Chaque entrée est un lien.

L'URL du lien doit être soit une URL absolue (commençant par http ou https) qui s'ouvrira dans une nouvelle fenêtre, soit une URL relative qui n'ouvrira pas de nouvelle fenêtre et ne rechargera pas non plus la page. Si vous remplissez le contenu des conditions générales d'utilisation dans la section des informations à propos de l'organisation, l'URL du lien que vous devrez utiliser sera terms-of-service.

Sites
Dans cette section, ajoutez une entrée pour chaque nom de domaine de votre application.