# This is an example configuration for Docker Compose. Make sure to atleast update # the cookie secret & postgres database password. # # Some other recommendations: # 1. To persist Postgres data, assign it a volume host location. # 2. Split the worker service to adhoc workers and scheduled queries workers. version: '2' volumes: prometheus_data: {} alertmanager_data: {} services: ingress: image: logiqai/quickstart:nginx container_name: ingress command: ["/nginx_init_container.sh","bash", "/start_nginx.sh"] restart: always ports: - "80:80" logiqs3-minio: image: minio/minio container_name: logiqs3-minio environment: MINIO_ACCESS_KEY: logiq_access MINIO_SECRET_KEY: logiq_secret command: server /data ports: - "9000:9000" restart: always createbucket: image: minio/mc container_name: createbucket restart: "no" depends_on: - logiqs3-minio entrypoint: > /bin/sh -c " sleep 10; /usr/bin/mc config host add logiq http://logiqs3-minio:9000 logiq_access logiq_secret; /usr/bin/mc mb logiq/logiq; exit 0; " upload-dashboard: image: logiqai/quickstart:logiqctl container_name: upload-dashboard restart: "no" depends_on: - coffee entrypoint: > /bin/sh -c " until $$(curl --output /dev/null --silent --fail http://coffee:5000);do echo 'waiting for coffee'; sleep 2; done; /flash/bin/logiqctl config set-cluster coffee:5000; /flash/bin/logiqctl config set-credential flash-admin@foo.com flash-password; /flash/bin/logiqctl create dashboard -f /flash/config/logiq.json; while [ $$? -ne 0 ]; do sleep 5; echo 'Waiting for dashboard to create';/flash/bin/logiqctl create dashboard -f /flash/config/logiq.json; done; exit 0; " flash-test-framework: image: logiqai/flash-test-framework container_name: flash-test-framework restart: "no" depends_on: - coffee entrypoint: > /bin/sh -c " sleep 15; until $$(curl --output /dev/null --silent --insecure --fail https://logiq-flash:9998/metrics); do echo 'waiting for coffee and logiq'; sleep 10; done; /flash/bin/flash-test-framework -host logiq-flash -fp 24224 -mps 100 -idur 10 -ingest -fluent; /flash/bin/flash-test-framework -host logiq-flash -sp 1514 -mps 100 -idur 10 -ingest; /flash/bin/flash-test-framework -host logiq-flash -relp -rp 20514 -mps 100 -idur 10 -ingest; echo done; exit 0; " prometheus: image: logiqai/quickstart:prometheus container_name: prometheus volumes: - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--storage.tsdb.retention.time=200h' - '--web.enable-lifecycle' restart: unless-stopped depends_on: - alertmanager ports: - "9090:9090" labels: org.label-schema.group: "logiq-monitoring" alertmanager: image: logiqai/quickstart:alertmanager container_name: alertmanager volumes: - alertmanager_data:/alertmanager command: - '--config.file=/etc/alertmanager/config.yml' - '--storage.path=/alertmanager' restart: unless-stopped ports: - "9093:9093" labels: org.label-schema.group: "logiq-monitoring" coffee: image: logiqai/quickstart:coffee.2.0.5 container_name: coffee command: [ "/coffee_init_container.sh", "bash", "/app/flash-brew/setup_coffee.sh" ] depends_on: - postgres - redis - logiq-flash ports: - "5000:5000" environment: PYTHONUNBUFFERED: 0 REDIS_URL: "redis://redis:6379/0" DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/postgres" COOKIE_SECRET: "veryverysecret" WEB_WORKERS: "9" CONFIGURE_LOGIQ_DS: "true" CONFIGURE_LOGIQEVENTS_DS: "false" FLASH_SERVER_EVENTS_API: "/v1/events/query" LOG_LEVEL: "WARN" HOST: "localhost" MY_APP_NAME: "coffee-server" MY_NODE_NAME: "localhost" MY_POD_NAME: "coffee-server" MY_POD_NAMESPACE: "logiq" MY_POD_IP: "127.0.0.1" MY_CLUSTER_ID: "logiq" LOGIQ_FLASH_HOST: "logiq-flash" LOGIQ_FLASH_PORT: "9998" REDIS_HOST: "redis" COFFEE_UI_SERVER_URL: "http://coffee:5000" POSTGRES_DB: "postgres" POSTGRES_USER: "postgres" POSTGRES_PASSWORD: "postgres" POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" S3_URL: "http://logiqs3-minio:9000" S3_ACCESS: "logiq_access" S3_SECRET: "logiq_secret" S3_BUCKET: "logiq" ADMIN_NAME: "LOGIQ Administrator" ADMIN_PASSWORD: "flash-password" ADMIN_EMAIL: "flash-admin@foo.com" PROM_ALERT_MGR_URL: "alertmanager:9093" EVENT_REPORTING_WEBHOOKS: "http://logiq-flash:9999/v1/events" LOGIQ_AUDIT_EVENT_GROUP: logiq-audit restart: always coffee-worker: image: logiqai/quickstart:coffee.2.0.5 container_name: coffee-worker command: [ "/coffee_init_container.sh", "bash", "/app/bin/docker-entrypoint", "scheduler" ] depends_on: - coffee - redis - logiq-flash - postgres environment: PYTHONUNBUFFERED: 0 REDIS_URL: "redis://redis:6379/0" DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/postgres" QUEUES: "queries,scheduled_queries,celery" COOKIE_SECRET: "veryverysecret" WORKERS_COUNT: "1" FLASH_SERVER_EVENTS_API: "/v1/events/query" LOG_LEVEL: "WARN" HOST: "localhost" MY_APP_NAME: "coffee-worker" MY_NODE_NAME: "localhost" MY_POD_NAME: "coffee-worker" MY_POD_NAMESPACE: "logiq" MY_POD_IP: "127.0.0.1" MY_CLUSTER_ID: "logiq" LOGIQ_FLASH_HOST: "logiq-flash" LOGIQ_FLASH_PORT: "9998" REDIS_HOST: "redis" COFFEE_UI_SERVER_URL: "http://coffee:5000" POSTGRES_DB: "postgres" POSTGRES_USER: "postgres" POSTGRES_PASSWORD: "postgres" POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" S3_URL: "http://logiqs3-minio:9000" S3_ACCESS: "logiq_access" S3_SECRET: "logiq_secret" S3_BUCKET: "logiq" ADMIN_NAME: "LOGIQ Administrator" ADMIN_PASSWORD: "flash-password" ADMIN_EMAIL: "flash-admin@foo.com" PROM_ALERT_MGR_URL: "alertmanager:9093" EVENT_REPORTING_WEBHOOKS: "http://logiq-flash:9999/v1/events" LOGIQ_AUDIT_EVENT_GROUP: "logiq-audit" restart: always redis: image: redis:5.0-alpine container_name: redis restart: always command: ["redis-server", "--appendonly","yes"] postgres: image: postgres:12.1-alpine container_name: postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres restart: always logiq-flash: image: logiqai/quickstart:flash.2.0.5 container_name: logiq-flash command: [ "/flash_init_container.sh", "sh", "-c", "/start_logiq.sh" ] depends_on: - logiqs3-minio - postgres - redis environment: REDIS_HOST: redis REDIS_PORT: 6379 POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres FLAGS_EXTRA: "--is-kube=false --timeout_inital_logs=2h --load-from-file=true" MY_APP_NAME: "logiq-flash" MY_NODE_NAME: "localhost" MY_POD_NAME: "logiq-flash" MY_POD_NAMESPACE: "logiq" MY_POD_IP: "127.0.0.1" MY_CLUSTER_ID: "logiq" ports: - "7514:7514" - "514:1514" - "2514:2514" - "20514:20514" - "4001:4001" - "4002:4002" - "8080:8080" - "8081:50054" - "9998:9998" - "9999:9999" - "24224:24224" - "24225:24225" ulimits: nproc: 65535 nofile: soft: 65535 hard: 65535 restart: always