API pour l'application CESIZen.
Ce guide explique comment déployer l'application en utilisant Docker et Traefik comme reverse proxy.
Avant de commencer, assurez-vous d'avoir les éléments suivants :
- Un serveur distant (VPS, dédié, etc.) avec un accès
sudoouroot. - Docker et Docker Compose installés sur le serveur. Vous pouvez suivre la documentation officielle pour l'installation.
- Noms de domaine configurés pour pointer vers l'adresse IP de votre serveur. Pour ce projet, vous aurez besoin de :
- Pour la production :
cesizen.qalpuch.cc(pour le front-end)cesizen-api.qalpuch.cc(pour l'API)
- Pour le développement distant :
cesizen-dev.qalpuch.cc(pour le front-end)cesizen-api-dev.qalpuch.cc(pour l'API)
- Pour la production :
- Un compte Cloudflare pour gérer vos domaines et un token d'API DNS. Traefik l'utilisera pour générer automatiquement les certificats SSL/TLS avec Let's Encrypt.
Connectez-vous à votre serveur et clonez ce dépôt :
git clone <URL_DU_DEPOT>
cd CESIZen_APIVous devez créer trois fichiers d'environnement distincts à la racine du projet.
1. Fichier .env (pour Traefik)
Ce fichier contient les informations pour que Traefik puisse communiquer avec l'API de Cloudflare.
# .env
CF_API_EMAIL[email protected]
CF_DNS_API_TOKEN=votre_token_api_cloudflare2. Fichier .env.prod (pour la production)
Ce fichier contient les variables pour la stack de production.
# .env.prod
DB_USER=user_prod
DB_PASSWORD=un_mot_de_passe_solide
DB_HOST=cz-db-prod
DB_PORT=5432
DB_NAME=cesizen
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?schema=public"
APP_HOST=0.0.0.0
APP_PORT=8080
JWT_SECRET=un_secret_jwt_tres_long_et_aleatoire_pour_la_prod
GIN_MODE=release
VERSION=latest3. Fichier .env.dev (pour le développement distant)
Ce fichier est similaire au fichier de production, mais pour l'environnement de développement.
# .env.dev
DB_USER=user_dev
DB_PASSWORD=un_autre_mot_de_passe_solide
DB_HOST=cz-db-dev
DB_PORT=5432
DB_NAME=cesizen
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?schema=public"
APP_HOST=0.0.0.0
APP_PORT=8080
JWT_SECRET=un_secret_jwt_different_pour_le_dev
GIN_MODE=release
VERSION=devLes commandes doivent être lancées depuis la racine du projet sur votre serveur.
Cette commande n'a besoin d'être lancée qu'une seule fois. Traefik gérera le routage et Watchtower mettra à jour vos applications automatiquement.
docker-compose -f docker-compose.global.yml up -dPour déployer ou mettre à jour l'environnement de production :
docker-compose -f docker-compose.prod.yml up -dPour déployer ou mettre à jour l'environnement de développement :
docker-compose -f docker-compose.dev.yml -dVos applications sont maintenant déployées et accessibles via les noms de domaine que vous avez configurés.
Pour le développement sur votre machine locale, suivez ces étapes :
- Créez un fichier
.envà la racine du projet en vous basant sur.env.example. - Assurez-vous que Docker est en cours d'exécution.
- Lancez la stack avec la commande suivante :
docker-compose up --buildL'application sera accessible sur :
- API :
http://localhost:8080 - Front-end :
http://localhost:3000