version: '3' services: db: image: postgres:12-alpine environment: POSTGRES_USER: posthog POSTGRES_DB: posthog POSTGRES_PASSWORD: posthog ports: - '5432:5432' redis: image: 'redis:alpine' ports: - '6379:6379' clickhouse: # # Custom ClickHouse image for ARM64 architecture. # See the `docker/clickhouse-builder` folder for more info. # # Note: please keep the default version in sync across # `posthog` and the `charts-clickhouse` repos # # Note2: we are temporary keeping `v21.9.2.17` on ARM64 due to some # CI issue happening only on this architecture. As we want to # move forward with the upgrade everywhere else. # See: https://github.com/PostHog/posthog/issues/8940 image: posthog/clickhouse:${CLICKHOUSE_SERVER_IMAGE_VERSION:-v21.9.2.17-stable} depends_on: - kafka - zookeeper ports: - '8123:8123' - '9000:9000' - '9440:9440' - '9009:9009' volumes: - ./ee/idl:/idl - ./docker/clickhouse/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./docker/clickhouse/config.xml:/etc/clickhouse-server/config.xml - ./docker/clickhouse/users.xml:/etc/clickhouse-server/users.xml zookeeper: image: zookeeper restart: always kafka: image: bitnami/kafka:2.8.1-debian-10-r99 depends_on: - zookeeper ports: - '9092:9092' environment: KAFKA_BROKER_ID: 1001 KAFKA_CFG_RESERVED_BROKER_MAX_ID: 1001 KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 ALLOW_PLAINTEXT_LISTENER: 'true' worker: &worker build: context: . dockerfile: dev.Dockerfile command: ./bin/docker-worker-celery --with-scheduler volumes: - .:/code environment: DATABASE_URL: 'postgres://posthog:posthog@db:5432/posthog' CLICKHOUSE_HOST: 'clickhouse' CLICKHOUSE_DATABASE: 'posthog' CLICKHOUSE_SECURE: 'false' CLICKHOUSE_VERIFY: 'false' KAFKA_URL: 'kafka://kafka' REDIS_URL: 'redis://redis:6379/' SECRET_KEY: 'alsdfjiosdajfklalsdjkf' DEBUG: 'true' PGHOST: db PGUSER: posthog PGPASSWORD: posthog depends_on: - db - redis - clickhouse - kafka links: - db:db - redis:redis - clickhouse:clickhouse - kafka:kafka web: <<: *worker command: '${CH_WEB_SCRIPT:-./ee/bin/docker-ch-dev-web}' ports: - '8000:8000' - '8234:8234' plugins: build: context: . dockerfile: dev.Dockerfile command: ./bin/plugin-server --no-restart-loop volumes: - .:/code restart: on-failure environment: DATABASE_URL: 'postgres://posthog:posthog@db:5432/posthog' KAFKA_ENABLED: 'true' KAFKA_HOSTS: 'kafka:9092' REDIS_URL: 'redis://redis:6379/' CLICKHOUSE_HOST: 'clickhouse' depends_on: - db - redis - clickhouse - kafka links: - db:db - redis:redis - clickhouse:clickhouse - kafka:kafka