docker-compose.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. version: '3.8'
  2. services:
  3. postgres:
  4. image: postgres:16-alpine
  5. environment:
  6. POSTGRES_DB: gestion_locative
  7. POSTGRES_USER: postgres
  8. POSTGRES_PASSWORD: postgres
  9. volumes:
  10. - postgres_data:/var/lib/postgresql/data
  11. ports:
  12. - "5432:5432"
  13. restart: unless-stopped
  14. backend:
  15. build:
  16. context: ./backend
  17. dockerfile: Dockerfile
  18. ports:
  19. - "3001:3001"
  20. volumes:
  21. - ./backend/uploads:/app/uploads
  22. environment:
  23. - NODE_ENV=production
  24. - JWT_SECRET=change_this_secret_in_production
  25. - PGHOST=postgres
  26. - PGPORT=5432
  27. - PGUSER=postgres
  28. - PGPASSWORD=postgres
  29. - PGDATABASE=gestion_locative
  30. # SSO OIDC (optionnel — laisser vide pour désactiver)
  31. - OIDC_ISSUER=${OIDC_ISSUER:-}
  32. - OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-}
  33. - OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET:-}
  34. - OIDC_REDIRECT_URI=${OIDC_REDIRECT_URI:-http://localhost:3001/api/auth/oidc/callback}
  35. - OIDC_SCOPE=${OIDC_SCOPE:-openid email profile}
  36. - OIDC_BUTTON_LABEL=${OIDC_BUTTON_LABEL:-Se connecter via SSO}
  37. - FRONTEND_URL=${FRONTEND_URL:-http://localhost:3000}
  38. depends_on:
  39. - postgres
  40. restart: unless-stopped
  41. frontend:
  42. build:
  43. context: ./frontend
  44. dockerfile: Dockerfile
  45. args:
  46. VITE_API_URL: http://localhost:3001
  47. ports:
  48. - "3000:80"
  49. depends_on:
  50. - backend
  51. restart: unless-stopped
  52. volumes:
  53. postgres_data: