API REST pour DevGaming - plateforme d'apprentissage cybersécurité & gaming.
Le plus simple : tout automatique
# 1. Installer Vercel CLI
npm i -g vercel
# 2. Déployer
cd backend
vercel --prodVercel va :
- ✅ Détecter Node.js automatiquement
- ✅ Builder TypeScript
- ✅ Donner un domaine HTTPS gratuit
- ✅ Proposer PostgreSQL gratuit (Vercel Postgres)
Variables à ajouter (dans Vercel Dashboard) :
DATABASE_URL=postgresql://... (fourni par Vercel Postgres)
JWT_SECRET=$(openssl rand -base64 32)
SESSION_SECRET=$(openssl rand -base64 32)
NODE_ENV=production
Meilleur pour voir les logs
- Push sur GitHub ✅ (déjà fait)
- Aller sur https://dashboard.render.com
- Nouveau Blueprint → Sélectionner
CocoTHM/devgaming-backend - Render détecte
render.yaml→ Tout est auto-configuré ! - Ajouter uniquement :
- GITHUB_CLIENT_ID
- GITHUB_CLIENT_SECRET
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
PostgreSQL est créée automatiquement (gratuit).
Le plus ancien, ultra-stable
# 1. Installer Heroku CLI
brew tap heroku/brew && brew install heroku
# 2. Login
heroku login
# 3. Créer app + PostgreSQL
heroku create devgaming-api
heroku addons:create heroku-postgresql:mini
# 4. Déployer
git push heroku main
# 5. Ajouter variables
heroku config:set JWT_SECRET=$(openssl rand -base64 32)
heroku config:set SESSION_SECRET=$(openssl rand -base64 32)Pour tester avant de déployer
# Créer docker-compose.yml avec PostgreSQL inclus
docker-compose up -d# 1. Installation
npm install
# 2. Configuration
cp .env.example .env
# Éditez .env
# 3. Base de données
npx prisma db push
npm run db:seed
# 4. Lancer
npm run devAPI sur http://localhost:5000
- https://github.com/settings/developers
- New OAuth App
- Homepage URL :
https://votre-frontend.vercel.app - Callback URL :
https://votre-backend.vercel.app/api/auth/github/callback - Copier Client ID et Client Secret
- https://console.cloud.google.com/apis/credentials
- Create Credentials → OAuth 2.0 Client ID
- Authorized redirect URIs :
https://votre-backend.vercel.app/api/auth/google/callback - Copier Client ID et Client Secret
backend/
├── src/
│ ├── config/ # DB, Passport, config
│ ├── middleware/ # Auth
│ ├── routes/ # API endpoints
│ ├── services/ # Logique métier
│ └── server.ts # Serveur Express
├── prisma/
│ ├── schema.prisma # Schéma DB
│ └── seed.ts # Données initiales
├── render.yaml # Config Render
└── vercel.json # Config Vercel
- Node.js 18+ + Express
- TypeScript
- PostgreSQL + Prisma ORM
- Passport.js (OAuth GitHub + Google)
- JWT + Sessions
- Helmet, CORS, Rate limiting