version: "3.8" services: web: image: node:20-bullseye working_dir: /app command: > bash -lc "corepack enable \ && corepack prepare pnpm@9 --activate \ && pnpm install --frozen-lockfile --prod=false \ && pnpm prisma:generate \ && pnpm exec prisma migrate deploy \ && pnpm build \ && pnpm start -p 3000" volumes: - /srv/apps/sistema:/app - sistema_db:/app/data environment: NODE_ENV: "production" # Garante instalação de devDependencies para o build (prisma CLI) NPM_CONFIG_PRODUCTION: "false" # Mantém o SQLite fora do repositório DATABASE_URL: "file:/app/data/db.sqlite" deploy: mode: replicated replicas: 1 placement: constraints: - node.role == manager labels: - traefik.enable=true - traefik.docker.network=traefik_public - traefik.http.routers.sistema_web.rule=Host(`tickets.esdrasrenan.com.br`) - traefik.http.routers.sistema_web.entrypoints=websecure - traefik.http.routers.sistema_web.tls=true - traefik.http.routers.sistema_web.tls.certresolver=le - traefik.http.services.sistema_web.loadbalancer.server.port=3000 networks: - traefik_public convex_backend: image: ghcr.io/get-convex/convex-backend:latest stop_grace_period: 10s stop_signal: SIGINT volumes: - convex_data:/convex/data environment: - RUST_LOG=info - CONVEX_CLOUD_ORIGIN=https://convex.esdrasrenan.com.br - CONVEX_SITE_ORIGIN=https://convex.esdrasrenan.com.br deploy: mode: replicated replicas: 1 placement: constraints: - node.role == manager labels: - traefik.enable=true - traefik.docker.network=traefik_public - traefik.http.routers.sistema_convex.rule=Host(`convex.esdrasrenan.com.br`) - traefik.http.routers.sistema_convex.entrypoints=websecure - traefik.http.routers.sistema_convex.tls=true - traefik.http.routers.sistema_convex.tls.certresolver=le - traefik.http.services.sistema_convex.loadbalancer.server.port=3210 networks: - traefik_public volumes: sistema_db: convex_data: networks: traefik_public: external: true