🚀 Déploiement
🧭 Vue d'ensemble
LIPAIX est hébergé sur Railway, une plateforme cloud qui build et fait tourner les applications à partir de branches Git. Les déploiements sont manuels — rien ne se déploie automatiquement quand vous poussez sur main. Vous déclenchez chaque déploiement explicitement via GitHub Actions.
🚆 Infrastructure sur Railway
Le projet dispose de quatre services sur Railway :
| Service | Ce qu'il fait tourner | Branche de déploiement |
|---|---|---|
| Web | Application Next.js (site public + MyLipaix + API) | deploy/web / deploy/staging/web |
| Discord Bot | Bot Discord.js | deploy/discord-bot / deploy/staging/discord-bot |
| Documentation | Docs VitePress | deploy/documentation / deploy/staging/documentation |
| PostgreSQL | Base de données managée | (géré par Railway, pas de branche de déploiement) |
Railway surveille la branche de déploiement de chaque service. Quand la branche change, Railway build et redéploie automatiquement.
🚀 Comment déployer
Les déploiements sont déclenchés via GitHub Actions en utilisant le workflow "Deploy to Staging/Production".
Étapes
- Allez sur le dépôt GitHub
- Cliquez sur Actions dans la navigation principale
- Trouvez "Deploy to Staging/Production" dans la barre latérale gauche
- Cliquez sur Run workflow
- Remplissez le formulaire :
- App : choisissez
Web,Discord BotouDocumentation - Environment : choisissez
stagingouproduction - Branch : la branche à déployer (défaut :
main) - Auto-merge : laissez coché sauf si vous voulez relire avant de déployer
- App : choisissez
- Cliquez sur le bouton vert Run workflow
Ce qui se passe
Le workflow fait ce qui suit :
- Récupère la branche de déploiement (ex. :
deploy/web) - Fusionne la branche choisie (ex. :
main) dedans - Pousse la branche de déploiement mise à jour sur GitHub
- Railway détecte le push et commence à builder
Si tout fusionne proprement et que l'auto-merge est activé, la branche de déploiement est mise à jour immédiatement. Railway a généralement la nouvelle version en production en 2 à 5 minutes.
Conflits
Si la branche source ne peut pas être fusionnée automatiquement (conflits de fusion), le workflow crée une pull request au lieu de pousser directement. Vous devrez relire et fusionner cette PR manuellement — une fois fusionnée, Railway déploie.
C'est rare si tout le monde travaille directement sur main, mais peut arriver quand on déploie une branche de fonctionnalité.
🔀 Staging vs production
Le projet dispose de deux environnements dans Railway :
| Environnement | URL | Branche de déploiement |
|---|---|---|
| Production | lipaix.com / admin.lipaix.com | deploy/web |
| Staging | staging.lipaix.com / staging-admin.lipaix.com | deploy/staging/web |
Le staging utilise la même structure de base de données que la production mais est un environnement Railway séparé avec sa propre base de données et ses propres variables d'environnement.
Déployez toujours sur staging en premier pour vérifier vos changements avant de déployer en production.
🔐 Variables d'environnement
Les variables d'environnement sont gérées dans le tableau de bord Railway — pas dans le code. Chaque service a son propre ensemble de variables, et staging/production ont des valeurs séparées.
Pour ajouter ou modifier une variable :
- Ouvrez le tableau de bord Railway
- Naviguez vers le projet → le service concerné → Variables
- Ajoutez ou modifiez la variable
- Le service redémarrera automatiquement
Ne committez jamais de secrets ou de clés API dans le dépôt.
🛠️ Workflow de développement
Le projet utilise le développement trunk-based : tout le travail se fait sur main. Il n'y a pas de branches de fonctionnalités à longue durée de vie.
Pour les petits changements : commitez directement sur main.
Pour les changements plus importants : créez une branche courte, faites vos changements, puis fusionnez sur main quand vous êtes prêt. Supprimez la branche après la fusion.
Convention des messages de commit
Suivez le format Conventional Commits :
type: description courte
Exemples :
feat: ajouter les prix des billets aux cartes événement
fix: corriger l'adresse du lieu dans la collection Venue
docs: mettre à jour le guide de déploiement
chore: mettre à jour Next.js vers 15.1Types courants : feat, fix, docs, chore, refactor, style.
🌿 Nommage des branches de déploiement
| Cible de déploiement | Branche |
|---|---|
| Production Web | deploy/web |
| Production Discord Bot | deploy/discord-bot |
| Production Documentation | deploy/documentation |
| Staging Web | deploy/staging/web |
| Staging Discord Bot | deploy/staging/discord-bot |
| Staging Documentation | deploy/staging/documentation |
Ne poussez jamais directement sur une branche de déploiement. Utilisez toujours le workflow GitHub Actions — il gère la fusion correctement et crée une PR en cas de conflits.
