Vitron-Front/docker-compose.yml
2026-04-29 01:44:16 +03:30

57 lines
2.4 KiB
YAML

---
# Production Deployment with Rolling Update
services:
vitron-frontend-prod:
build:
context: .
dockerfile: Dockerfile
target: production
container_name: vitron-frontend-prod
environment:
- NODE_ENV=production
- VITE_API_BASE_URL=${VITE_API_BASE_URL:-https://api.prod.vitrown.com}
- VITE_API_SOCKET_BASE_URL=${VITE_API_SOCKET_BASE_URL:-wss://api.prod.vitrown.com}
- VITE_APP_VERSION_TYPE=${VITE_APP_VERSION_TYPE:-production}
- VITE_API_URL=${VITE_API_URL:-https://api.prod.vitrown.com}
- VITE_SITE_URL=${VITE_SITE_URL:-https://vitrown.com}
- VITE_DOMAIN_URL=${VITE_DOMAIN_URL:-https://vitrown.com}
- VITE_SUPPORT_PHONE=${VITE_SUPPORT_PHONE:-+989223740993}
- REMIX_SECRET=${REMIX_SECRET:-prod-secret-key-please-change-in-production}
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontprod.entrypoints=http"
- "traefik.http.routers.frontprod.rule=Host(`vitrown.com`)"
- "traefik.http.middlewares.frontprod-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.frontprod.middlewares=frontprod-https-redirect"
- "traefik.http.routers.frontprod-secure.entrypoints=https"
- "traefik.http.routers.frontprod-secure.rule=Host(`vitrown.com`)"
- "traefik.http.routers.frontprod-secure.tls=true"
- "traefik.http.routers.frontprod-secure.service=frontprod"
- "traefik.http.services.frontprod.loadbalancer.server.port=3000"
- "traefik.docker.network=proxy"
# Security headers
- "traefik.http.middlewares.frontprod-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
- "traefik.http.middlewares.frontprod-headers.headers.customresponseheaders.X-Robots-Tag=index,follow"
- "traefik.http.middlewares.frontprod-headers.headers.customresponseheaders.X-Frame-Options=SAMEORIGIN"
- "traefik.http.middlewares.frontprod-headers.headers.customresponseheaders.X-Content-Type-Options=nosniff"
- "traefik.http.routers.frontprod-secure.middlewares=frontprod-headers"
restart: unless-stopped
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
proxy:
external: true