# check .env file for env vars info and values version: '3.2' services: ratdb: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/ratdb-image:${TAG:-latest} restart: always dns_search: [.] rmq: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/rmq-image:${TAG:-latest} restart: always dns_search: [.] dispatcher: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/dispatcher-image:${TAG:-latest} restart: always ports: - "${EXT_PORT}:80" - "${EXT_PORT_S}:443" volumes: - ${VOL_H_NGNX:-/tmp}:${VOL_C_NGNX:-/dummyngnx} environment: - AFC_SERVER_NAME=${AFC_SERVER_NAME:-_} - AFC_ENFORCE_HTTPS=${AFC_ENFORCE_HTTPS:-TRUE} # set to true if required to enforce mTLS check - AFC_ENFORCE_MTLS=false - AFC_MSGHND_NAME=msghnd - AFC_MSGHND_PORT=8000 - AFC_WEBUI_NAME=rat_server - AFC_WEBUI_PORT=80 # Filestorage params: - AFC_OBJST_HOST=objst - AFC_OBJST_PORT=5000 - AFC_OBJST_SCHEME=HTTP depends_on: - msghnd - rat_server dns_search: [.] rat_server: image: ${PRIV_REPO:-110738915961.dkr.ecr.us-east-1.amazonaws.com}/afc-server:${TAG:-latest} volumes: - ${VOL_H_DB}:${VOL_C_DB} - ./pipe:/pipe depends_on: - ratdb - rmq - objst - als_kafka - als_siphon - bulk_postgres - rcache secrets: - NOTIFIER_MAIL.json - OIDC.json - REGISTRATION.json - REGISTRATION_CAPTCHA.json dns_search: [.] environment: # RabbitMQ server name: - BROKER_TYPE=external - BROKER_FQDN=rmq # Filestorage params: - AFC_OBJST_HOST=objst - AFC_OBJST_PORT=5000 - AFC_OBJST_SCHEME=HTTP # ALS params - ALS_KAFKA_SERVER_ID=rat_server - ALS_KAFKA_CLIENT_BOOTSTRAP_SERVERS=${ALS_KAFKA_SERVER_}:${ALS_KAFKA_CLIENT_PORT_} - ALS_KAFKA_MAX_REQUEST_SIZE=${ALS_KAFKA_MAX_REQUEST_SIZE_} # Rcache parameters - RCACHE_ENABLED=${RCACHE_ENABLED} - RCACHE_POSTGRES_DSN=postgresql://postgres:postgres@bulk_postgres/rcache - RCACHE_SERVICE_URL=http://rcache:${RCACHE_CLIENT_PORT} - RCACHE_RMQ_DSN=amqp://rcache:rcache@rmq:5672/rcache msghnd: image: ${PRIV_REPO:-110738915961.dkr.ecr.us-east-1.amazonaws.com}/afc-msghnd:${TAG:-latest} environment: # RabbitMQ server name: - BROKER_TYPE=external - BROKER_FQDN=rmq # Filestorage params: - AFC_OBJST_HOST=objst - AFC_OBJST_PORT=5000 - AFC_OBJST_SCHEME=HTTP # ALS params - ALS_KAFKA_SERVER_ID=msghnd - ALS_KAFKA_CLIENT_BOOTSTRAP_SERVERS=${ALS_KAFKA_SERVER_}:${ALS_KAFKA_CLIENT_PORT_} - ALS_KAFKA_MAX_REQUEST_SIZE=${ALS_KAFKA_MAX_REQUEST_SIZE_} # Rcache parameters - RCACHE_ENABLED=${RCACHE_ENABLED} - RCACHE_POSTGRES_DSN=postgresql://postgres:postgres@bulk_postgres/rcache - RCACHE_SERVICE_URL=http://rcache:${RCACHE_CLIENT_PORT} - RCACHE_RMQ_DSN=amqp://rcache:rcache@rmq:5672/rcache dns_search: [.] depends_on: - ratdb - rmq - objst - als_kafka - als_siphon - bulk_postgres - rcache objst: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/objstorage-image:${TAG:-latest} environment: - AFC_OBJST_PORT=5000 - AFC_OBJST_HIST_PORT=4999 - AFC_OBJST_LOCAL_DIR=/storage dns_search: [.] worker: image: ${PRIV_REPO:-110738915961.dkr.ecr.us-east-1.amazonaws.com}/afc-worker:${TAG:-latest} volumes: - ${VOL_H_DB}:${VOL_C_DB} - ./pipe:/pipe environment: # Filestorage params: - AFC_OBJST_HOST=objst - AFC_OBJST_PORT=5000 - AFC_OBJST_SCHEME=HTTP # worker params - AFC_WORKER_CELERY_WORKERS=rat_1 rat_2 # RabbitMQ server name: - BROKER_TYPE=external - BROKER_FQDN=rmq # afc-engine preload lib params - AFC_AEP_ENABLE=1 - AFC_AEP_DEBUG=1 - AFC_AEP_REAL_MOUNTPOINT=${VOL_C_DB}/3dep/1_arcsec # Rcache parameters - RCACHE_ENABLED=${RCACHE_ENABLED} - RCACHE_SERVICE_URL=http://rcache:${RCACHE_CLIENT_PORT} - RCACHE_RMQ_DSN=amqp://rcache:rcache@rmq:5672/rcache # ALS params - ALS_KAFKA_SERVER_ID=worker - ALS_KAFKA_CLIENT_BOOTSTRAP_SERVERS=${ALS_KAFKA_SERVER_}:${ALS_KAFKA_CLIENT_PORT_} - ALS_KAFKA_MAX_REQUEST_SIZE=${ALS_KAFKA_MAX_REQUEST_SIZE_} depends_on: - ratdb - rmq - objst - rcache - als_kafka dns_search: [.] als_kafka: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/als-kafka-image:${TAG:-latest} restart: always environment: - KAFKA_ADVERTISED_HOST=${ALS_KAFKA_SERVER_} - KAFKA_CLIENT_PORT=${ALS_KAFKA_CLIENT_PORT_} - KAFKA_MAX_REQUEST_SIZE=${ALS_KAFKA_MAX_REQUEST_SIZE_} dns_search: [.] als_siphon: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/als-siphon-image:${TAG:-latest} restart: always environment: - KAFKA_SERVERS=${ALS_KAFKA_SERVER_}:${ALS_KAFKA_CLIENT_PORT_} - POSTGRES_HOST=bulk_postgres - INIT_IF_EXISTS=skip - KAFKA_MAX_REQUEST_SIZE=${ALS_KAFKA_MAX_REQUEST_SIZE_} depends_on: - als_kafka - bulk_postgres dns_search: [.] bulk_postgres: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/bulk-postgres-image:${TAG:-latest} dns_search: [.] uls_downloader: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/uls-downloader:${TAG:-latest} restart: always environment: - ULS_AFC_URL=http://msghnd:8000/fbrat/ap-afc/availableSpectrumInquiryInternal?nocache=True - ULS_DELAY_HR=1 - ULS_SERVICE_STATE_DB_DSN=postgresql://postgres:postgres@bulk_postgres/fs_state - ULS_PROMETHEUS_PORT=8000 # Rcache parameters - RCACHE_ENABLED=${RCACHE_ENABLED} - RCACHE_SERVICE_URL=http://rcache:${RCACHE_CLIENT_PORT} volumes: - ${VOL_H_DB}:/rat_transfer secrets: - NOTIFIER_MAIL.json depends_on: - bulk_postgres dns_search: [.] cert_db: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/cert_db:${TAG:-latest} depends_on: - ratdb links: - ratdb - als_kafka environment: - ALS_KAFKA_SERVER_ID=cert_db - ALS_KAFKA_CLIENT_BOOTSTRAP_SERVERS=${ALS_KAFKA_SERVER_}:${ALS_KAFKA_CLIENT_PORT_} - ALS_KAFKA_MAX_REQUEST_SIZE=${ALS_KAFKA_MAX_REQUEST_SIZE_} rcache: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/rcache-image:${TAG:-latest} restart: always environment: - RCACHE_ENABLED=${RCACHE_ENABLED} - RCACHE_CLIENT_PORT=${RCACHE_CLIENT_PORT} - RCACHE_POSTGRES_DSN=postgresql://postgres:postgres@bulk_postgres/rcache - RCACHE_AFC_REQ_URL=http://msghnd:8000/fbrat/ap-afc/availableSpectrumInquiry?nocache=True - RCACHE_RULESETS_URL=http://rat_server/fbrat/ratapi/v1/GetRulesetIDs - RCACHE_CONFIG_RETRIEVAL_URL=http://rat_server/fbrat/ratapi/v1/GetAfcConfigByRulesetID depends_on: - bulk_postgres dns_search: [.] grafana: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/grafana-image:${TAG:-latest} restart: always depends_on: - prometheus - bulk_postgres dns_search: [.] prometheus: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/prometheus-image:${TAG:-latest} restart: always depends_on: - cadvisor - nginxexporter dns_search: [.] cadvisor: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/cadvisor-image:${TAG:-latest} restart: always volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro dns_search: [.] nginxexporter: image: ${PUB_REPO:-public.ecr.aws/w9v6y1o0/openafc}/nginxexporter-image:${TAG:-latest} restart: always depends_on: - dispatcher dns_search: [.] secrets: NOTIFIER_MAIL.json: file: ${VOL_H_SECRETS}/NOTIFIER_MAIL.json OIDC.json: file: ${VOL_H_SECRETS}/OIDC.json REGISTRATION.json: file: ${VOL_H_SECRETS}/REGISTRATION.json REGISTRATION_CAPTCHA.json: file: ${VOL_H_SECRETS}/REGISTRATION_CAPTCHA.json