version: '3' services: op-db: image: postgres:14-alpine restart: always volumes: - ./docker/data/op-db-data:/var/lib/postgresql/data ports: - 5432:5432 environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres op-kv: image: redis:7.2.5-alpine restart: always volumes: - ./docker/data/op-kv-data:/data command: [ 'redis-server', '--maxmemory-policy', 'noeviction' ] ports: - 6379:6379 op-geo: image: observabilitystack/geoip-api:latest restart: always ports: - 8080:8080 op-ch: image: clickhouse/clickhouse-server:24.3.2-alpine restart: always volumes: - ./docker/data/op-ch-data:/var/lib/clickhouse - ./docker/data/op-ch-logs:/var/log/clickhouse-server - ./self-hosting/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/op-config.xml - ./self-hosting/clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/op-user-config.xml ulimits: nofile: soft: 262144 hard: 262144 ports: - "8123:8123" # HTTP interface - "9000:9000" # Native/TCP interface - "9009:9009" # Inter-server communication op-zk: image: clickhouse/clickhouse-server:24.3.2-alpine volumes: - ./docker/data/op-zk-data:/var/lib/clickhouse - ./self-hosting/clickhouse/clickhouse-keeper-config.xml:/etc/clickhouse-server/config.xml command: [ 'clickhouse-keeper', '--config-file', '/etc/clickhouse-server/config.xml' ] restart: always ulimits: nofile: soft: 262144 hard: 262144 ports: - "9181:9181" # Keeper port - "9234:9234" # Keeper Raft port