commit eb67ebf9bc54d4318d334cc46ea5e344e7d80e0c Author: manus-admin Date: Sun May 31 21:56:28 2026 +0200 Initial commit - import depuis serveur de recette diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fbc77b6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +.env +*.log +dist/ +build/ +.DS_Store diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f520e43 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,55 @@ +services: + sonum-app: + build: + context: ./src + dockerfile: Dockerfile + container_name: sonum + restart: unless-stopped + environment: + - NODE_ENV=production + - PORT=3000 + - DATABASE_URL=mysql://sonum_user:SonumDB2026Secure!@sonum-db:3306/sonum_db + - JWT_SECRET=sonum-jwt-secret-2026-recette + - VITE_APP_ID=sonum + depends_on: + sonum-db: + condition: service_healthy + networks: + - web + - sonum-internal + labels: + - "traefik.enable=true" + - "traefik.http.routers.sonum-secure.rule=Host(`sonum.recette.santinova-soft.org`)" + - "traefik.http.routers.sonum-secure.entrypoints=websecure" + - "traefik.http.routers.sonum-secure.tls=true" + - "traefik.http.routers.sonum-secure.tls.certresolver=letsencrypt" + - "traefik.http.routers.sonum-secure.service=sonum-svc" + - "traefik.http.services.sonum-svc.loadbalancer.server.port=3000" + + sonum-db: + image: mysql:8.0 + container_name: sonum-db + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=SonumRoot2026! + - MYSQL_DATABASE=sonum_db + - MYSQL_USER=sonum_user + - MYSQL_PASSWORD=SonumDB2026Secure! + volumes: + - sonum-db-data:/var/lib/mysql + networks: + - sonum-internal + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + timeout: 20s + retries: 10 + +networks: + web: + external: true + sonum-internal: + driver: bridge + +volumes: + sonum-db-data: + diff --git a/src b/src new file mode 160000 index 0000000..3bcd814 --- /dev/null +++ b/src @@ -0,0 +1 @@ +Subproject commit 3bcd8141f9831093fbdc18d04488e4dba6e09b6a