Sans --env-file, l'interpolation ${POSTGRES_PASSWORD:?} echoue et fait sortir
deploy.sh en non-zero (set -e) -> le job CI serait marque en echec a tort.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sépare le type-check (script 'typecheck') du build de prod ('vite build').
Le build Docker ne doit pas échouer sur des erreurs TS strictes (TS6133/TS2307)
alors que le bundle est sain.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- docker-compose.prod.yml: postgres + redis + backend (bun) + web (nginx single-origin)
- backend/Dockerfile + entrypoint: prisma migrate deploy + seed idempotent au boot
- frontend/Dockerfile: build Vite (VITE_API_URL=https://xip.kerboul.me) servi par nginx
- deploy/nginx.conf: proxy /api + /ws vers le backend, SPA fallback
- .gitea/workflows/deploy.yml: auto-deploy SSH sur push main (runner CT121 -> CT502)
- scripts/deploy.sh: pull + rebuild de la stack
- mode open-bar (XIP_OPEN_BAR): paywall off pour tous en prod, via isFree() centralise
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- backend: SSE endpoint /api/messages/stream backed by Redis pub/sub
- backend: read real client IP via getConnInfo (fallback for x-forwarded-for)
- backend: CORS allow any origin (dev: LAN access from phone)
- frontend: useMessages subscribes via EventSource, auto-reconnect, merges new messages/replies live
- frontend: vite host:true to expose dev server on LAN
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Added docker-compose.yml for PostgreSQL and Redis services with health checks.
- Created frontend directory with initial Vue.js setup including package.json, vite.config.ts, and TypeScript configuration.
- Implemented main application structure with App.vue and HomePage.vue components.
- Added message fetching and posting functionality in HomePage.vue.
- Included necessary styles and scripts for Ionic framework integration.
- Developed a dev-stack script to manage Docker containers and run backend/frontend servers.
- Created shop3.svg featuring a subscription model with monthly and annual options, including a comparison of features.
- Developed shop4.svg focusing on cosmetic options, showcasing pets and styles with a bundle offer.