services: web: volumes: - ./apps/web/src:/app/apps/web/src command: ["pnpm", "--filter", "@tessera/web", "dev"] api: volumes: - ./apps/api/src:/app/apps/api/src - ./apps/api/prisma:/app/apps/api/prisma environment: JWT_SECRET: ${JWT_SECRET:-tessera-dev-jwt-secret-change-in-production} TESSERA_ADMIN_USER: ${TESSERA_ADMIN_USER:-admin} TESSERA_ADMIN_EMAIL: ${TESSERA_ADMIN_EMAIL:-admin@tessera.local} TESSERA_ADMIN_PASSWORD: ${TESSERA_ADMIN_PASSWORD:-admin123} TESSERA_FORCE_CHANGE: ${TESSERA_FORCE_CHANGE:-false} TESSERA_SMTP_HOST: mailhog TESSERA_SMTP_PORT: 1025 TESSERA_SMTP_SECURE: "false" TESSERA_SMTP_USER: "" TESSERA_SMTP_PASSWORD: "" TESSERA_SMTP_FROM: "Tessera " TESSERA_APP_URL: http://localhost:3000 command: ["pnpm", "--filter", "@tessera/api", "start:dev"] mailhog: image: mailhog/mailhog ports: - "1025:1025" - "8025:8025" networks: - backend-net