version: "3.4" x-database-credentials: &database-credentials DB_HOST: "db" DB_PORT: "5432" DB_USER: "${DB_USER:-admin}" DB_PASSWORD: "${DB_PASSWORD}" DB_LOGIN_DB: "${DB_LOGIN_DB:-rasa}" x-rabbitmq-credentials: &rabbitmq-credentials RABBITMQ_HOST: "rabbit" RABBITMQ_USERNAME: "user" RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD} x-redis-credentials: &redis-credentials REDIS_HOST: "redis" REDIS_PORT: "6379" REDIS_PASSWORD: ${REDIS_PASSWORD} REDIS_DB: "1" REDIS_CACHE_DB: "2" ACCEPTABLE_QUERY_COUNT_NUMBER: "50000" x-duckling-credentials: &duckling-credentials RASA_DUCKLING_HTTP_URL: "http://duckling:8000" x-nginx-host-variables: &nginx-host-variables RASA_X_HOST: "rasa-x:5002" RASA_USER_APP: "app:5055" RASA_PRODUCTION_HOST: "rasa-production:5005" x-rasax-credentials: &rasax-credentials RASA_X_HOST: "http://rasa-x:5002" RASA_X_USERNAME: ${RASA_X_USERNAME:-admin} RASA_X_PASSWORD: ${RASA_X_PASSWORD:-} RASA_X_TOKEN: ${RASA_X_TOKEN} JWT_SECRET: ${JWT_SECRET} RASA_USER_APP: "http://app:5055" RASA_PRODUCTION_HOST: "http://rasa-production:5005" RASA_WORKER_HOST: "http://rasa-worker:5005" RASA_TOKEN: ${RASA_TOKEN} x-rasa-credentials: &rasa-credentials <<: *rabbitmq-credentials <<: *rasax-credentials <<: *database-credentials <<: *redis-credentials <<: *duckling-credentials RASA_TOKEN: ${RASA_TOKEN} RASA_MODEL_PULL_INTERVAL: 10 RABBITMQ_QUEUE: "rasa_production_events" RASA_TELEMETRY_ENABLED: ${RASA_TELEMETRY_ENABLED:-true} x-rasa-services: &default-rasa-service restart: always image: "rasa/rasa:${RASA_VERSION}-full" volumes: - ./.config:/.config expose: - "5005" command: > x --no-prompt --production --config-endpoint http://rasa-x:5002/api/config?token=${RASA_X_TOKEN} --port 5005 --jwt-method HS256 --jwt-secret ${JWT_SECRET} --auth-token '${RASA_TOKEN}' --cors "*" depends_on: - rasa-x - rabbit - redis services: rasa: image: rasa/rasa:2.8.15-full ports: - 5005:5005 volumes: - ./:/app environment: AWS_ACCESS_KEY_ID: 'AKIA4UTPEU3JFH26ZMN6' AWS_SECRET_ACCESS_KEY: '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' command: - run -e AWS_ACCESS_KEY_ID=AKIA4UTPEU3JFH26ZMN6 -e AWS_SECRET_ACCESS_KEY=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 -e AWS_DEFAULT_REGION=ap-south-1 rasa-x: restart: always image: "rasa/rasa-x:${RASA_X_VERSION}" expose: - "5002" volumes: - ./models:/app/models - ./environments.yml:/app/environments.yml - ./credentials.yml:/app/credentials.yml - ./endpoints.yml:/app/endpoints.yml - ./logs:/logs - ./auth:/app/auth environment: <<: *database-credentials <<: *rasa-credentials AWS_ACCESS_KEY_ID: 'AKIA4UTPEU3JFH26ZMN6' AWS_SECRET_ACCESS_KEY: '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' SELF_PORT: "5002" DB_DATABASE: "${DB_DATABASE:-rasa}" RASA_MODEL_DIR: "/app/models" PASSWORD_SALT: ${PASSWORD_SALT} RABBITMQ_QUEUE: "rasa_production_events" RASA_X_USER_ANALYTICS: "0" ROOT_URL: ${ROOT_URL} API_ROOT_URL: ${API_ROOT_URL} SANIC_RESPONSE_TIMEOUT: "3600" RUN_DATABASE_MIGRATION_AS_SEPARATE_SERVICE: "true" depends_on: - db db-migration: entrypoint: ["python"] command: ["-m", "rasax.community.services.db_migration_service"] restart: always image: "rasa/rasa-x:${RASA_X_VERSION}" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/health || kill 1"] interval: 5s timeout: 1s retries: 3 start_period: 2s expose: - "8000" environment: <<: *database-credentials RUN_DATABASE_MIGRATION_AS_SEPARATE_SERVICE: "true" MPLCONFIGDIR: "/tmp/.matplotlib" depends_on: - db rasa-production: <<: *default-rasa-service environment: <<: *rasa-credentials RASA_ENVIRONMENT: "production" DB_DATABASE: "tracker" MPLCONFIGDIR: "/tmp/.matplotlib" RASA_MODEL_SERVER: "http://rasa-x:5002/api/models/tags/production" rasa-worker: <<: *default-rasa-service environment: <<: *rasa-credentials RASA_ENVIRONMENT: "worker" DB_DATABASE: "worker_tracker" MPLCONFIGDIR: "/tmp/.matplotlib" RASA_MODEL_SERVER: "http://rasa-x:5002/api/models/tags/production" app: restart: always image: "868890224338.dkr.ecr.ap-south-1.amazonaws.com/alex-live-phoenix:latest" expose: - "5055" depends_on: - rasa-production db: restart: always image: "bitnami/postgresql:11.12.0" expose: - "5432" environment: POSTGRESQL_USERNAME: "${DB_USER:-admin}" POSTGRESQL_PASSWORD: "${DB_PASSWORD}" POSTGRESQL_DATABASE: "${DB_DATABASE:-rasa}" volumes: - ./db:/bitnami/postgresql rabbit: restart: always image: "bitnami/rabbitmq:3.9.9" environment: RABBITMQ_HOST: "rabbit" RABBITMQ_USERNAME: "user" RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD} RABBITMQ_DISK_FREE_RELATIVE_LIMIT: "0.1" expose: - "5672" duckling: restart: always image: "rasa/duckling:0.1.6.5-r3" expose: - "8000" command: ["duckling-example-exe", "--no-access-log", "--no-error-log"] nginx: restart: always image: "nginx:1.20" ports: - "80:8080" - "443:8443" volumes: - ./certs:/etc/certs - ./nginx-config-files/nginx.conf:/etc/nginx/nginx.conf - ./nginx-config-files/ssl.conf.template:/etc/nginx/templates/ssl.conf.template - ./nginx-config-files/rasax.nginx.template:/etc/nginx/templates/rasax.nginx.template environment: <<: *nginx-host-variables depends_on: - rasa-x - rasa-production - app redis: restart: always image: "bitnami/redis:6.2.6" environment: REDIS_PASSWORD: ${REDIS_PASSWORD} expose: - "6379"