Skip to content

🚀 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 :

ServiceCe qu'il fait tournerBranche de déploiement
WebApplication Next.js (site public + MyLipaix + API)deploy/web / deploy/staging/web
Discord BotBot Discord.jsdeploy/discord-bot / deploy/staging/discord-bot
DocumentationDocs VitePressdeploy/documentation / deploy/staging/documentation
PostgreSQLBase 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

  1. Allez sur le dépôt GitHub
  2. Cliquez sur Actions dans la navigation principale
  3. Trouvez "Deploy to Staging/Production" dans la barre latérale gauche
  4. Cliquez sur Run workflow
  5. Remplissez le formulaire :
    • App : choisissez Web, Discord Bot ou Documentation
    • Environment : choisissez staging ou production
    • Branch : la branche à déployer (défaut : main)
    • Auto-merge : laissez coché sauf si vous voulez relire avant de déployer
  6. Cliquez sur le bouton vert Run workflow

Ce qui se passe

Le workflow fait ce qui suit :

  1. Récupère la branche de déploiement (ex. : deploy/web)
  2. Fusionne la branche choisie (ex. : main) dedans
  3. Pousse la branche de déploiement mise à jour sur GitHub
  4. 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 :

EnvironnementURLBranche de déploiement
Productionlipaix.com / admin.lipaix.comdeploy/web
Stagingstaging.lipaix.com / staging-admin.lipaix.comdeploy/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 :

  1. Ouvrez le tableau de bord Railway
  2. Naviguez vers le projet → le service concerné → Variables
  3. Ajoutez ou modifiez la variable
  4. 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.1

Types courants : feat, fix, docs, chore, refactor, style.

🌿 Nommage des branches de déploiement

Cible de déploiementBranche
Production Webdeploy/web
Production Discord Botdeploy/discord-bot
Production Documentationdeploy/documentation
Staging Webdeploy/staging/web
Staging Discord Botdeploy/staging/discord-bot
Staging Documentationdeploy/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.

Publié sous licence MIT.