Migre le domaine vers agora.alxczl.fr et corrige la doc de déploiement
Build and deploy / deploy (push) Successful in 35s
Build and deploy / deploy (push) Successful in 35s
.env.docker.example suit le nouveau domaine. README/CLAUDE.md décrivaient encore un déploiement Vercel jamais réellement utilisé : corrigés pour refléter le vrai pipeline self-hosted (Docker Compose + Traefik + CI Gitea Actions via webhook). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
# Le Tribunal — Docker deployment
|
||||
|
||||
# --- Domain ---
|
||||
APP_DOMAIN=acropole.alxczl.fr
|
||||
APP_DOMAIN=agora.alxczl.fr
|
||||
|
||||
# --- Traefik ---
|
||||
TRAEFIK_NETWORK=proxy
|
||||
|
||||
@@ -28,7 +28,7 @@ Hors périmètre pour l'instant (voir roadmap en fin de doc) : éditions/saisons
|
||||
- **Style** : Tailwind CSS v4 (design tokens en variables CSS, voir `globals.css`)
|
||||
- **Auth + Base + Stockage + Temps réel** : Supabase (Auth, Postgres, Storage, Realtime)
|
||||
- **Recadrage photo** : `react-easy-crop` + canvas natif (resize/compression client, jamais d'upload de l'image brute)
|
||||
- **Déploiement** : Vercel (front) + Supabase (managé) — pas encore déployé, tourne en local pour l'instant
|
||||
- **Déploiement** : self-hosted, Docker Compose + Traefik (reverse proxy), Supabase (managé) — CI via Gitea Actions (`.gitea/workflows/deploy.yml`) qui build le standalone Next.js et le POST à un webhook (`docker/webhook/receive.py`) déclenchant un hot-swap sans downtime (`docker/entrypoint.sh`) ; domaine injecté par `APP_DOMAIN` (`.env.docker`, gitignored — seul `.env.docker.example` est versionné) dans le label Traefik `Host()`. Domaine actuel : `agora.alxczl.fr`.
|
||||
|
||||
Next.js 16 a renommé `middleware.ts` en `proxy.ts` (fichier `src/proxy.ts`, fonction `proxy`). `src/lib/supabase/middleware.ts` est un nom de fichier utilitaire interne, sans rapport avec cette convention.
|
||||
|
||||
@@ -197,4 +197,3 @@ Vocabulaire diégétique (toujours accompagné du terme fonctionnel dans le code
|
||||
|
||||
- **Éditions** : table `editions` (année, mood board) ; les points deviendront rattachables à une édition donnée. Le thème visuel (Grèce antique) reste fixe, ce n'est pas un système de re-thématisation par édition.
|
||||
- **Mode grand écran** : vue leaderboard optimisée pour vidéoprojecteur.
|
||||
- **Déploiement** : pas encore fait (Vercel + Supabase managé prévus, voir README).
|
||||
|
||||
@@ -28,7 +28,7 @@ Application web pour animer et scorer le jeu **« Le Tribunal »** entre amis pe
|
||||
| Auth · Base · Stockage · Temps réel | Supabase (Auth, Postgres, Storage, Realtime) |
|
||||
| Recadrage photo | react-easy-crop + canvas (resize/compression client) |
|
||||
| Email transactionnel | SMTP custom (ex. Resend) branché sur Supabase Auth |
|
||||
| Déploiement | Vercel + Supabase (managé) |
|
||||
| Déploiement | Docker Compose + Traefik (self-hosted) + Supabase (managé) |
|
||||
|
||||
---
|
||||
|
||||
@@ -37,7 +37,7 @@ Application web pour animer et scorer le jeu **« Le Tribunal »** entre amis pe
|
||||
- [Node.js](https://nodejs.org/) 20.19+ (Next.js 16 / React 19)
|
||||
- Un compte [Supabase](https://supabase.com/) (offre gratuite suffisante)
|
||||
- Un fournisseur SMTP gratuit (ex. [Resend](https://resend.com/), 100 emails/jour) — le service email intégré de Supabase a un rate limit trop bas pour un usage réel
|
||||
- Un compte [Vercel](https://vercel.com/) pour le déploiement (optionnel en local)
|
||||
- Pour le déploiement (optionnel en local) : un serveur avec Docker + Traefik déjà en place, voir [Déploiement](#déploiement)
|
||||
|
||||
---
|
||||
|
||||
@@ -95,11 +95,17 @@ L'application tourne sur [http://localhost:3000](http://localhost:3000).
|
||||
|
||||
---
|
||||
|
||||
## Déploiement (Vercel)
|
||||
## Déploiement (Docker + Traefik)
|
||||
|
||||
1. Importez le dépôt dans Vercel.
|
||||
2. Renseignez les variables d'environnement (`NEXT_PUBLIC_SUPABASE_URL`, `NEXT_PUBLIC_SUPABASE_ANON_KEY`).
|
||||
3. Déployez. Vercel rebuild automatiquement à chaque push sur la branche principale.
|
||||
Self-hosted, pas de Vercel. Un serveur avec Docker Compose et un reverse proxy [Traefik](https://traefik.io/) déjà en place (réseau externe partagé, voir `TRAEFIK_NETWORK`), plus un pipeline Gitea Actions qui build et déploie automatiquement à chaque push sur la branche principale.
|
||||
|
||||
1. Sur le serveur, copiez `.env.docker.example` en `.env.docker` et renseignez :
|
||||
- `APP_DOMAIN` : le domaine sur lequel l'app doit répondre (utilisé dans le label Traefik `Host(\`${APP_DOMAIN}\`)`).
|
||||
- `TRAEFIK_NETWORK` : le nom du réseau Docker externe sur lequel Traefik écoute.
|
||||
- `WEBHOOK_SECRET` : secret partagé avec le workflow Gitea Actions (`openssl rand -hex 16`).
|
||||
2. `docker compose up -d` démarre le conteneur `app` (Next.js standalone) et le petit serveur webhook (`docker/webhook/receive.py`) qui reçoit les déploiements.
|
||||
3. Le workflow `.gitea/workflows/deploy.yml` build l'app à chaque push sur `main` et POST le build vers le webhook, qui déclenche un hot-swap (voir `docker/entrypoint.sh`) sans downtime — pas de rebuild manuel nécessaire une fois configuré.
|
||||
4. **Changer de domaine** : mettez à jour `APP_DOMAIN` dans `.env.docker` sur le serveur, puis recréez le conteneur (`docker compose up -d --force-recreate app`) pour que Traefik prenne en compte le nouveau label `Host()`. Pensez aussi à mettre à jour, côté Supabase Dashboard, **Authentication → URL Configuration** (Site URL + Redirect URLs) et le template d'email d'invitation (logo en dur), sans quoi les liens d'invitation et le logo pointeront encore vers l'ancien domaine.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user