this repo has no description
1volumes:
2 clickhouse_data: {}
3 zookeeper-data:
4 zookeeper-logs:
5 kafka-data:
6 tap-data:
7
8services:
9 clickhouse:
10 image: clickhouse/clickhouse-server:24.1
11 hostname: clickhouse
12 container_name: clickhouse
13 ports:
14 - "127.0.0.1:8123:8123"
15 - "127.0.0.1:9000:9000"
16 volumes:
17 - clickhouse_data:/var/lib/clickhouse
18 environment:
19 CLICKHOUSE_DB: default
20 CLICKHOUSE_USER: default
21 CLICKHOUSE_PASSWORD: clickhouse
22 healthcheck:
23 test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
24 interval: 5s
25 timeout: 3s
26 retries: 5
27
28 zookeeper:
29 image: confluentinc/cp-zookeeper:7.6.0
30 hostname: zookeeper
31 container_name: zookeeper
32 ports:
33 - "127.0.0.1:2181:2181"
34 environment:
35 ZOOKEEPER_CLIENT_PORT: 2181
36 ZOOKEEPER_TICK_TIME: 2000
37 volumes:
38 - zookeeper-data:/var/lib/zookeeper/data
39 - zookeeper-logs:/var/lib/zookeeper/log
40
41 kafka:
42 image: confluentinc/cp-kafka:7.6.0
43 hostname: kafka
44 container_name: kafka
45 depends_on:
46 - zookeeper
47 ports:
48 - "127.0.0.1:9092:9092"
49 - "127.0.0.1:9101:9101"
50 environment:
51 KAFKA_BROKER_ID: 1
52 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
53 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
54 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
55 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
56 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
57 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
58 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
59 KAFKA_JMX_PORT: 9101
60 KAFKA_JMX_HOSTNAME: localhost
61 KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
62 healthcheck:
63 test:
64 [
65 "CMD",
66 "bash",
67 "-c",
68 "kafka-topics --bootstrap-server kafka:29092 --list",
69 ]
70 volumes:
71 - kafka-data:/var/lib/kafka/data
72
73 tap:
74 image: ghcr.io/bluesky-social/indigo/tap:latest
75 hostname: tap
76 container_name: tap
77 depends_on:
78 kafka:
79 condition: service_healthy
80 ports:
81 - "127.0.0.1:2480:2480"
82 - "127.0.0.1:6010:6010"
83 environment:
84 TAP_BIND: ":2480"
85 TAP_FULL_NETWORK: true
86 TAP_DISABLE_ACKS: false
87 TAP_COLLECTION_FILTERS: "app.bsky.graph.follow"
88 TAP_METRICS_LISTEN: ":6010"
89 TAP_RESYNC_PARALLELISM: 50
90 volumes:
91 - tap-data:/data
92 restart: unless-stopped
93
94 atkafka:
95 image: ghcr.io/haileyok/at-kafka:main-6f15f22
96 hostname: atkafka
97 container_name: atkafka
98 depends_on:
99 kafka:
100 condition: service_healthy
101 ports:
102 # metrics port
103 - "127.0.0.1:6011:6009"
104 command: ["tap-mode"]
105 environment:
106 ATKAFKA_TAP_HOST: "ws://tap:2480"
107 ATKAFKA_DISABLE_ACKS: false
108 ATKAFKA_BOOTSTRAP_SERVERS: "kafka:29092"
109 ATKAFKA_OUTPUT_TOPIC: "tap-events"
110 restart: unless-stopped
111
112 indexer:
113 build: .
114 ports:
115 - "127.0.0.1:8050:8050"
116 depends_on:
117 clickhouse:
118 condition: service_healthy
119 kafka:
120 condition: service_healthy
121 command: ["uv", "run", "indexer.py"]
122 environment:
123 KAFKA_BOOTSTRAP_SERVERS: '["kafka:29092"]'
124 KAFKA_INPUT_TOPIC: "tap-events"
125 CLICKHOUSE_HOST: "clickhouse"
126 restart: unless-stopped