services: tenant-service: image: ${REGISTRY}/tenant-service:${IMAGE_TAG} profiles: ["base"] env_file: - ./config/xuqm.env - ./config/secrets.env - ./config/tenant/bootstrap.env restart: unless-stopped file-service: image: ${REGISTRY}/file-service:${IMAGE_TAG} profiles: ["base"] env_file: - ./config/xuqm.env - ./config/secrets.env volumes: - ./data/uploads:/data/uploads restart: unless-stopped tenant-web: image: ${REGISTRY}/tenant-web:${IMAGE_TAG} profiles: ["base"] restart: unless-stopped ops-web: image: ${REGISTRY}/ops-web:${IMAGE_TAG} profiles: ["base"] restart: unless-stopped docs-site: image: ${REGISTRY}/docs-site:${IMAGE_TAG} profiles: ["base"] volumes: - ./config/docs/docs-runtime.json:/app/config/docs-runtime.json:ro - ./config/sdk/xuqm-private-sdk.json:/app/config/xuqm-private-sdk.json:ro restart: unless-stopped nginx: image: nginx:1.27-alpine profiles: ["base"] ports: - "80:80" - "443:443" volumes: - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./config/nginx/conf.d:/etc/nginx/conf.d:ro depends_on: - tenant-service - tenant-web - ops-web - docs-site restart: unless-stopped im-service: image: ${REGISTRY}/im-service:${IMAGE_TAG} profiles: ["im"] env_file: - ./config/xuqm.env - ./config/secrets.env restart: unless-stopped push-service: image: ${REGISTRY}/push-service:${IMAGE_TAG} profiles: ["push"] env_file: - ./config/xuqm.env - ./config/secrets.env - ./config/vendors/push.env restart: unless-stopped update-service: image: ${REGISTRY}/update-service:${IMAGE_TAG} profiles: ["update"] env_file: - ./config/xuqm.env - ./config/secrets.env - ./config/vendors/store-submit.env volumes: - ./data/update:/data/update restart: unless-stopped license-service: image: ${REGISTRY}/license-service:${IMAGE_TAG} profiles: ["license"] env_file: - ./config/xuqm.env - ./config/secrets.env restart: unless-stopped