diff --git a/.env.example b/.env.example index 16b5798..e17a4a5 100644 --- a/.env.example +++ b/.env.example @@ -14,10 +14,6 @@ TYPESENSE_API_KEY= #Mettre à 1 quand vous êtes en développement et à rien en production DEV= -#true ou false -FORCE_CLONE= - -#true ou false FORCE_CLONE= USER_ID=1000 diff --git a/README.md b/README.md index 0365af8..c9cbf09 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,63 @@ -# Gestion des bénévoles d'une association +# Gestion des bénévoles - Comité des fêtes de Beaupont -## Initialisation +## Présentation du projet -Afin d'initialiser le projet il est requis de : -- Créer un fichier ``.env`` à la racine du projet -- Copier coller le contenu du fichier ``.env.example`` dans ce ``.env`` -- Remplir les variables du fichier ``.env`` : - - ``GIT_TOKEN`` : chercher/générer son token sur gitlab dans l'onglet : ``Préférences/User settings/Personal access tokens`` (si vous devez le générer, ne pas oublier de cocher la case ``read_repository``) - - ``BACKEND_GIT_REPO`` et ``FRONTEND_GIT_REPO`` : récupérer l'adresse https des dépôts et enlever au début des liens ``https://`` -- Répéter l'opération pour le ``docker/php/.env`` avec le ``docker/php/.env.example`` -- Faire de même pour le ``docker/frontend/.env`` avec le ``docker/php/.env.example`` +L'association organise régulièrement des événements et projets mobilisant des bénévoles, mais sa coordination interne est rendue difficile par l'usage d'outils dispersés, et non communicants. + +La création d'une plateforme web unique vise donc à centraliser et simplifier la gestion des utilisateurs, des rôles, des événements, des tâches et de la communication. Elle vise à améliorer la collaboration entre tous les bénévoles de l'association. +## Objectifs de l’application + +L’application a pour objectifs principaux de : +- Gérer les utilisateurs et leurs rôles au sein de l’association. +- Organiser et planifier les événements et les tâches associées. +- Permettre aux bénévoles de s’inscrire en ligne aux événements et aux tâches. +- Offrir aux responsables un tableau de bord pour suivre la participation et les besoins en ressources humaines. +- Centraliser les informations et la communication autour des projets associatifs. +## Initialisation du projet + +### 1. Configuration du fichier `.env` principal + +1. Créez un fichier `.env` à la racine du projet. +2. Copiez le contenu du fichier `.env.example` dans le fichier `.env`. +3. Renseignez les variables suivantes : + +| Variable | Description | +| ------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `GIT_TOKEN` | Token GitLab à générer depuis Préférences → User settings → Personal access tokens (cocher la permission `read_repository`). | +| `BACKEND_GIT_REPO` | URL HTTPS du dépôt backend sans le préfixe `https://`. | +| `FRONTEND_GIT_REPO` | URL HTTPS du dépôt frontend sans le préfixe `https://`. | +| `DEV` | Mettre `1` en environnement de développement, laisser vide sinon. | +| `FORCE_CLONE` | Mettre à `true` pour forcer le clonage du dépôt backend même si la branche configurée diffère de la branche actuelle. | + +### 2. Configuration des fichiers `.env` Docker + +Répétez la même opération pour les fichiers suivants : + +- `docker/php/.env` : Copier depuis `docker/php/.env.example` +- `docker/frontend/.env` : Copier depuis `docker/frontend/.env.example` + +## Installation et lancement + +Une fois la configuration terminée : + +1. Ouvrez un terminal. +2. Placez-vous à la racine du projet. +3. Exécutez les commandes suivantes : -## Installation -Il suffit ensuite d'ouvrir un terminal, de ce placer à la racine de ce projet et d'exécuter les commandes suivantes : ```bash docker compose down -v ``` +> Arrête et supprime les conteneurs existants ainsi que les volumes associés. +> Cette étape permet de repartir sur une base propre. + + ```bash docker compose up --build -d ``` +> Reconstruit les images Docker et démarre l’ensemble des services en arrière-plan. -> [!NOTE] -> Si vous êtes sur Windows, changer vos caractères de contrôles de ``CRLF`` à ``LF`` (pour chaque fichier ``.sh`` du projet) +## Note importante +> ⚠️ **Windows** +> Si vous êtes sous Windows, assurez-vous que tous les fichiers `.sh` utilisent des fins de ligne **LF** et non **CRLF**, sous peine d’erreurs lors de l’exécution des scripts. diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 5e0f98e..6e2d400 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -19,10 +19,12 @@ COPY --from=composer:2 /usr/bin/composer /usr/bin/composer COPY entrypoint.sh /usr/local/bin/entrypoint.sh COPY scripts/init-dev.sh /usr/local/bin/init-dev.sh COPY scripts/init-prod.sh /usr/local/bin/init-prod.sh +COPY scripts/wait-mariadb.sh /usr/local/bin/wait-mariadb.sh RUN chmod +x /usr/local/bin/entrypoint.sh \ /usr/local/bin/init-dev.sh \ - /usr/local/bin/init-prod.sh + /usr/local/bin/init-prod.sh \ + /usr/local/bin/wait-mariadb.sh WORKDIR /var/www/app diff --git a/docker/php/scripts/init-dev.sh b/docker/php/scripts/init-dev.sh index 0cf68d1..c561f12 100644 --- a/docker/php/scripts/init-dev.sh +++ b/docker/php/scripts/init-dev.sh @@ -52,14 +52,7 @@ chown www-data:www-data .env chmod 664 .env -echo "Waiting for MariaDB..." -until nc -z mariadb 3306; do - sleep 2 - echo "MariaDB not ready yet..." -done -echo "MariaDB is ready!" - - +/usr/local/bin/wait-mariadb.sh gosu www-data php artisan key:generate --force diff --git a/docker/php/scripts/init-prod.sh b/docker/php/scripts/init-prod.sh index c171047..2bae045 100644 --- a/docker/php/scripts/init-prod.sh +++ b/docker/php/scripts/init-prod.sh @@ -49,16 +49,7 @@ chown www-data:www-data .env chmod 640 .env - -echo "Waiting for MariaDB..." -until nc -z mariadb 3306; do - sleep 2 - echo "MariaDB not ready yet..." -done -echo "MariaDB is ready!" - - - +/usr/local/bin/wait-mariadb.sh php artisan key:generate --force diff --git a/docker/php/scripts/wait-mariadb.sh b/docker/php/scripts/wait-mariadb.sh new file mode 100644 index 0000000..822cb0c --- /dev/null +++ b/docker/php/scripts/wait-mariadb.sh @@ -0,0 +1,3 @@ +until nc -z mariadb 3306; do + sleep 2 +done \ No newline at end of file