123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- networks:
- traefik-public:
- external: true
- services:
- backend:
- build:
- args:
- INSTALL_DEV: "true"
- INSTALL_JUPYTER: "false"
- context: /root/video-maker/backend
- dockerfile: backend.dockerfile
- command: /start-reload.sh
- deploy:
- labels:
- traefik.constraint-label-stack: cloud.choozmo.com
- traefik.enable: "true"
- traefik.http.routers.ai-anchor-com-backend-http.rule: PathPrefix(`/api`) ||
- PathPrefix(`/docs`) || PathPrefix(`/redoc`)
- traefik.http.services.ai-anchor-com-backend.loadbalancer.server.port: '80'
- environment:
- BACKEND_CORS_ORIGINS: '["https://payment.ecpay.com.tw", "https://vendor-stage.ecpay.com.tw","http://dev.cloud.choozmo.com:5173",
- "http://dev.cloud.choozmo.com:8080", "http://cloud.choozmo.com:8080", "https://cloud.choozmo.com",
- "http://cloud.choozmo.com","http://172.105.219.42", "http://local.ai-anchor.com:5173",
- "http://local.ai-anchor.com:8080", "http://localhost", "http://localhost:4200",
- "http://localhost:3000", "http://localhost:5173", "http://localhost:8080",
- "https://localhost", "https://localhost:4200", "https://localhost:3000", "https://localhost:8080",
- "http://dev.ai-anchor.com:3000", "http://dev.ai-anchor.com:5173", "http://dev.ai-anchor.com:8080",
- "https://stag.ai-anchor.com", "https://ai-anchor.com"]'
- BACKEND_VIDEO_STORAGE: backend_storage/videos
- BACKEND_ZIP_STORAGE: backend_storage/zips
- CELERY_VIDEO_STORAGE: celery_storage/videos
- CELERY_ZIP_STORAGE: celery_storage/zips
- DOCKER_IMAGE_BACKEND: backend
- DOCKER_IMAGE_CELERYWORKER: gpuceleryworker
- DOCKER_IMAGE_FRONTEND: frontend
- DOMAIN: cloud.choozmo.com
- EMAILS_FROM_EMAIL: info@ai-anchor.com
- FIRST_SUPERUSER: admin@ai-anchor.com
- FIRST_SUPERUSER_PASSWORD: password
- FLOWER_BASIC_AUTH: admin:password
- LOCAL_VIDEO_STORAGE: local_storage/videos
- LOCAL_ZIP_STORAGE: local_storage/zips
- MEMBERSHIP_STATUS: '["normal", "infinite"]'
- PGADMIN_DEFAULT_EMAIL: admin@ai-anchor.com
- PGADMIN_DEFAULT_PASSWORD: password
- PGADMIN_LISTEN_PORT: '5050'
- POSTGRES_DB: app
- POSTGRES_PASSWORD: password
- POSTGRES_SERVER: db
- POSTGRES_USER: postgres
- PROGRESS_STATE: '["waiting", "processing", "completed", "failed"]'
- PROJECT_NAME: AI anchor
- SECRET_KEY: 1df1f2180c7b2550e76a8ccf5e67a76e5321d8c2d3fee4a725f8b80baf9a0c91
- SENTRY_DSN: ''
- SERVER_ADDRESS: http://localhost
- SERVER_HOST: http://cloud.choozmo.com
- SERVER_NAME: cloud.choozmo.com
- SMTP_HOST: smtp.gmail.com
- SMTP_PASSWORD: hlmaxzjnvpeaulhw
- SMTP_PORT: '587'
- SMTP_TLS: "True"
- SMTP_USER: verify@choozmo.com
- STACK_NAME: ai-anchor-com
- TRAEFIK_PUBLIC_NETWORK: traefik-public
- TRAEFIK_PUBLIC_TAG: traefik-public
- TRAEFIK_TAG: ai-anchor.com
- USERS_OPEN_REGISTRATION: "True"
- image: backend:cloud
- labels:
- traefik.constraint-label-stack: cloud.choozmo.com
- traefik.enable: "true"
- traefik.http.routers.ai-anchor-com-backend-http.rule: PathPrefix(`/api`) ||
- PathPrefix(`/docs`) || PathPrefix(`/redoc`)
- traefik.http.services.ai-anchor-com-backend.loadbalancer.server.port: '80'
- volumes:
- - /root/video-maker/backend/app:/app:rw
- - /backend_storage/videos:/app/backend_storage/videos:rw
- - /backend_storage/zips:/app/backend_storage/zips:rw
- frontend:
- build:
- args:
- FRONTEND_ENV: dev
- context: /root/video-maker/frontend
- deploy:
- labels:
- traefik.constraint-label-stack: cloud.choozmo.com
- traefik.enable: "true"
- traefik.http.routers.ai-anchor-com-frontend-http.rule: PathPrefix(`/`)
- traefik.http.services.ai-anchor-com-frontend.loadbalancer.server.port: '80'
- image: frontend:cloud
- labels:
- traefik.constraint-label-stack: cloud.choozmo.com
- traefik.enable: "true"
- traefik.http.routers.ai-anchor-com-frontend-http.rule: PathPrefix(`/`)
- traefik.http.services.ai-anchor-com-frontend.loadbalancer.server.port: '80'
- proxy:
- command:
- - --providers.docker
- - --providers.docker.constraints=Label(`traefik.constraint-label-stack`, `cloud.choozmo.com`)
- - --providers.docker.exposedbydefault=false
- - --accesslog
- - --log
- - --api
- - --api.insecure=true
- deploy:
- labels:
- traefik.constraint-label: traefik-public
- traefik.docker.network: traefik-public
- traefik.enable: "true"
- traefik.http.middlewares.ai-anchor-com-https-redirect.redirectscheme.permanent: "true"
- traefik.http.middlewares.ai-anchor-com-https-redirect.redirectscheme.scheme: https
- traefik.http.middlewares.ai-anchor-com-www-redirect.redirectregex.regex: ^https?://(www.)?(cloud.choozmo.com)/(.*)
- traefik.http.middlewares.ai-anchor-com-www-redirect.redirectregex.replacement: https://cloud.choozmo.com/$${3}
- traefik.http.routers.ai-anchor-com-proxy-http.entrypoints: http
- traefik.http.routers.ai-anchor-com-proxy-http.middlewares: ai-anchor-com-www-redirect,ai-anchor-com-https-redirect
- traefik.http.routers.ai-anchor-com-proxy-http.rule: Host(`cloud.choozmo.com`)
- || Host(`www.cloud.choozmo.com`)
- traefik.http.routers.ai-anchor-com-proxy-https.entrypoints: https
- traefik.http.routers.ai-anchor-com-proxy-https.middlewares: ai-anchor-com-www-redirect
- traefik.http.routers.ai-anchor-com-proxy-https.rule: Host(`cloud.choozmo.com`)
- || Host(`www.cloud.choozmo.com`)
- traefik.http.routers.ai-anchor-com-proxy-https.tls: "true"
- traefik.http.routers.ai-anchor-com-proxy-https.tls.certresolver: le
- traefik.http.services.ai-anchor-com-proxy.loadbalancer.server.port: '80'
- placement:
- constraints:
- - node.role == manager
- image: traefik:v2.9
- labels:
- traefik.enable: "true"
- traefik.http.routers.ai-anchor-com-traefik-public-http.rule: Host(`cloud.choozmo.com`)
- traefik.http.services.ai-anchor-com-traefik-public.loadbalancer.server.port: '80'
- networks:
- default: {}
- traefik-public: {}
- ports:
- - published: 80
- target: 80
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:rw
- version: '3.3'
|