From 128d29d13901607fa849e2e4a733c50044475dc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Pelletier?= Date: Wed, 15 Jan 2025 21:54:58 -0500 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20scripts=20adapt=C3=A9s=20pour=20ro?= =?UTF-8?q?uler=20en=20local=20sans=20impacter=20le=20d=C3=A9ploiement=20d?= =?UTF-8?q?ans=20Coolify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 176 ++++++++++++++------------------------- docker-compose-local.yml | 29 +++++++ run_docker_compose.ps1 | 13 ++- run_docker_compose.sh | 10 ++- 4 files changed, 111 insertions(+), 117 deletions(-) create mode 100644 docker-compose-local.yml diff --git a/README.md b/README.md index 5674180..45c8b94 100644 --- a/README.md +++ b/README.md @@ -10,144 +10,94 @@ Comment j'ai construit l'application et comment la personnaliser: https://videos ## Utilisation avec Docker Desktop -### (Windows seulement) Installer Windows Subsystem for Linux +### Prérequis -- Ouvrir un invite de commandes en tant qu'administrateur +#### Windows +- Windows Subsystem for Linux (WSL) +- Docker Desktop +- Visual Studio Code +- Git for Windows -![invite-commandes-administrateur.jpg](doc/invite-commandes-administrateur.jpg) +#### macOS +- Docker Desktop +- Visual Studio Code +- Homebrew (pour installer Git) -Exécute cette commandes avec l'invite de commandes +### Installation des prérequis -- `wsl.exe --update` +#### Windows -### Installer Docker Desktop +1. Installer Windows Subsystem for Linux (WSL): + - Ouvrir un invite de commandes en tant qu'administrateur + - Exécuter: `wsl.exe --update` -- Télécharger depuis le site web officiel: https://www.docker.com/products/docker-desktop/ -- Installer avec le fichier téléchargé -- Redémarrer l'ordinateur +2. Installer Docker Desktop: + - Télécharger depuis: https://www.docker.com/products/docker-desktop/ + - Installer et redémarrer l'ordinateur -### Installer Visual Studio +3. Installer Visual Studio Code: + - Télécharger depuis: https://code.visualstudio.com/ + - Installer et ouvrir l'application + - Installer l'extension Docker -- Télécharger depuis le site officiel: https://code.visualstudio.com/ -- Installer avec le fichier téléchargé -- Ouvrir l'application -- Installer l'extension docker +4. Installer Git for Windows: + - Suivre les instructions d'installation par défaut + - Choisir Visual Studio Code comme éditeur par défaut + - Choisir "Override the default branch for new repositories" -![installation de docker dans vscode.jpg](doc/installation%20de%20docker%20dans%20vscode.jpg) +#### macOS -### (Windows seulement) Installer Git for Windows +1. Installer Docker Desktop: + - Télécharger depuis: https://www.docker.com/products/docker-desktop/ + - Installer et redémarrer l'ordinateur -Clique sur l'icone de gestion de code dans Visual Studio Code. +2. Installer Visual Studio Code: + - Télécharger depuis: https://code.visualstudio.com/ + - Installer et ouvrir l'application + - Installer l'extension Docker -Ça ressemble à trois cercles qui forment un embranchement +3. Installer Homebrew et Git: + - Ouvrir Terminal + - Installer Homebrew en suivant les instructions sur https://brew.sh + - Installer Git: `brew install git` -Clique ensuite sur Download Git for Windows +### Configuration du projet -![installer git pour windows.jpg](doc/installer%20git%20pour%20windows.jpg) +1. Cloner le dépôt: + - Ouvrir Visual Studio Code + - Utiliser la commande "Clone Repository" + - Entrer l'URL: https://git.jevalide.ca/gitlab/partage/fabriquedoc.git -Clique sur Click here to download +2. Configuration: + - Copier le fichier `.env.example` et le renommer en `.env` + - Modifier les variables dans `.env` selon vos besoins -![installer git pour windows -2.jpg](doc/installer%20git%20pour%20windows%20-2.jpg) +3. Lancer l'application: + - Ouvrir un terminal dans Visual Studio Code + - Exécuter: `docker-compose --env-file .env up --build` -Choisis les options par défaut, sauf pour ces captures: +L'application sera disponible à l'adresse: http://localhost:8051/ -- Select components: Coche (New!) Add a Git Bash Profile to Windows Terminal +### Utilisation de scripts -![installer git pour windows -3.jpg](doc/installer%20git%20pour%20windows%20-3.jpg) +Pour simplifier le lancement et l'arrêt de l'application, vous pouvez utiliser les scripts fournis: -Comme éditeur par défaut, choisis Visual Studio Code +#### Windows (PowerShell) -![installer git pour windows -4.jpg](doc/installer%20git%20pour%20windows%20-4.jpg) +- Pour lancer: `.\run_docker_compose.ps1` +- Pour arrêter: `.\stop_docker_compose.ps1` -Choisis l'option Override the default branch for new repositories +#### macOS/Linux (Bash) -![installer git pour windows -5.jpg](doc/installer%20git%20pour%20windows%20-5.jpg) +- Pour lancer: `./run_docker_compose.sh` +- Pour arrêter: `./stop_docker_compose.sh` -Enfin, lorsque l'installation est terminée, reviens dans Visual Studio code et clique sur Reload +Ces scripts vérifient les prérequis, lancent l'application avec la configuration appropriée, et gèrent l'arrêt propre de l'application. -![installer git pour windows -6.jpg](doc/installer%20git%20pour%20windows%20-6.jpg) +## Développement -### (Mac seulement) Installer Homebrew et git +Pour le développement local, assurez-vous d'utiliser le fichier `docker-compose-local.yml` qui expose les ports nécessaires sur localhost. -- Il faudra d’abord installer Homebrew si tu ne l’as pas déjà. C’est un outil en ligne de commande qui permet d’installer une tonne de logiciels facilement. -- Pour voir si tu l'as, Ouvre l’application Terminal depuis Launchpad puis tape `brew` +## Support -#### Installer homebrew - -- Visite le site https://brew.sh et copie la ligne de code affichée au centre de la page. -- Ouvre l’application Terminal depuis Launchpad et colle la ligne de code dedans, puis fais Entrée. Ça va te demander ton mot de passe, car Homebrew a besoin des accès avancés appelés "sudo". -- **Attention**: Si tu n'as jamais utilisé le Terminal, tu vas probablement remarquer de quoi d'étrange. Quand tu vas taper ton mot de passe, tu ne le verras pas. Mais ça écrit pareil. C'est une pratique de sécurité courante sur les systèmes de type Unix, dont mac OS et Linux font partie. Fais juste Entrée une fois que tu as terminé. -- Suis les instructions et Homebrew devrait s’installer sans problème. - -Ensuite, install git avec la ligne suivante dans le terminal: `brew install git` - -### Accéder au GitLab - -Dans chaque projet, tu as le lien pour cloner le projet. Tu dois prendre le lien HTTPS. - -![git-clone-3.jpg](doc/git-clone-3.jpg) - -### Backend - -- Pour cloner dans Visual Studio Code: - - Clone Repository et entrer cette adresse en haut: https://git.jevalide.ca/gitlab/partage/fabriquedoc.git - -![git-clone-1.jpg](doc/git-clone-1.jpg) - -Ensuite crée un nouveau dossier pour faire les tests. Tu vas cloner deux projets dedans. - -![git-clone-2.jpg](doc/git-clone-2.jpg) - -- Ouvrir un terminal (dans le menu de Visual Studio Code) et exécuter cette commande: `docker build -t local/fabriquedoc .` (le point est important) - - cette partie-là est longue à compléter (6-7 minutes sur un bon ordi) - -#### Réseau - -- Créer un réseau virtual dans docker: `docker network create fabriquedoc` - -#### Démarrer le backend - -- Exécuter cette commande dans le même terminal. L'application de génération de documents va être lancée sur ton ordinateur. - -```bash -docker run -p 8080:8000 --name fabriquedoc --network fabriquedoc local/fabriquedoc -``` - -### Frontend - -Ouvre une nouvelle fenêtre de Visual Studio depuis la barre des tâches. - -![ouvrir-second-vscode.jpg](doc/ouvrir-second-vscode.jpg) - -- Pour cloner dans Visual Studio Code: - - Clone Repository et entrer cette adresse en haut: https://git.jevalide.ca/gitlab/partage/fabriquedoc-frontend.git -- Ouvrir un terminal et exécuter `docker build -t local/fabriquedoc-frontend .` (le point est important) - -#### Démarrer le frontend - -- Exécuter cette commande. Elle va lancer un serveur web et l'application va être ensuite disponible sur ton ordinateur comme un site internet. -- Elle va se connecter à l'application de génération avec la variable FABRIQUEDOC_ENDPOINT. - -```bash -docker run -p 8051:8051 --env "FABRIQUEDOC_ENDPOINT=http://fabriquedoc:8000" --name fabriquedoc-frontend --network fabriquedoc local/fabriquedoc-frontend -``` - -![executer-frontend.jpg](doc/executer-frontend.jpg) - -L'application va être disponible à cette adresse: - -### Arrêter les applications - -Si tu n'arrête pas les applications, elles vont continuer de fonctionner sur ton ordinateur et vont prendre de la mémoire et de la batterie. - -Pour arrêter les applications: - -```bash -docker stop fabriquedoc-frontend -docker rm fabriquedoc-frontend -docker stop fabriquedoc -docker rm fabriquedoc -``` - -- Si tu es sur Mac ou Windows, tu peux aussi le faire dans l'interface visuelle avec le bouton "stop" (le carré). -- Ferme ensuite l'application Docker Desktop. +Si vous rencontrez des problèmes ou avez des questions, n'hésitez pas à me contacter via mon formulaire de contact au \ No newline at end of file diff --git a/docker-compose-local.yml b/docker-compose-local.yml new file mode 100644 index 0000000..198305b --- /dev/null +++ b/docker-compose-local.yml @@ -0,0 +1,29 @@ +version: '3.8' + +services: + backend: + build: + context: ./backend + dockerfile: Dockerfile + ports: + - "8080:8080" + expose: + - "8080" + environment: + - SECRET_KEY=${SECRET_KEY} + - USERNAME=${USERNAME} + - PASS_HASH=${PASS_HASH} + - ALGORITHM=${ALGORITHM} + + frontend: + build: + context: ./frontend + dockerfile: Dockerfile + ports: + - "8051:8051" + expose: + - "8051" + depends_on: + - backend + environment: + - FABRIQUEDOC_ENDPOINT=${FABRIQUEDOC_ENDPOINT} diff --git a/run_docker_compose.ps1 b/run_docker_compose.ps1 index acb56c5..e2f25a3 100644 --- a/run_docker_compose.ps1 +++ b/run_docker_compose.ps1 @@ -12,5 +12,14 @@ if (!(Test-Path .env)) { exit 1 } -# Run docker-compose -docker-compose --env-file .env up --build \ No newline at end of file +# Check if docker-compose-local.yml file exists +if (!(Test-Path docker-compose-local.yml)) { + Write-Host "docker-compose-local.yml file not found. Please create it and try again." + exit 1 +} + +# Set a custom project name (which will be used for the network name) +$env:COMPOSE_PROJECT_NAME = "fabriquedoc" + +# Run docker-compose with the local configuration +docker-compose -f docker-compose-local.yml --env-file .env up --build \ No newline at end of file diff --git a/run_docker_compose.sh b/run_docker_compose.sh index 3cacc7b..b1044e4 100644 --- a/run_docker_compose.sh +++ b/run_docker_compose.sh @@ -15,6 +15,12 @@ if [ ! -f .env ]; then exit 1 fi +# Check if docker-compose-local.yml file exists +if [ ! -f docker-compose-local.yml ]; then + echo "docker-compose-local.yml file not found. Please create it and try again." + exit 1 +fi + # Load environment variables from .env file set -a source .env @@ -23,5 +29,5 @@ set +a # Set a custom project name (which will be used for the network name) PROJECT_NAME="fabriquedoc" -# Run docker-compose with the custom project name -docker-compose --project-name $PROJECT_NAME up --build \ No newline at end of file +# Run docker-compose with the custom project name and local configuration +docker-compose -f docker-compose-local.yml --project-name $PROJECT_NAME up --build \ No newline at end of file