1services:
2 zookeeper:
3 image: confluentinc/cp-zookeeper:7.6.0
4 hostname: zookeeper
5 container_name: zookeeper
6 ports:
7 - "2181:2181"
8 environment:
9 ZOOKEEPER_CLIENT_PORT: 2181
10 ZOOKEEPER_TICK_TIME: 2000
11 volumes:
12 - zookeeper-data:/var/lib/zookeeper/data
13 - zookeeper-logs:/var/lib/zookeeper/log
14
15 kafka:
16 image: confluentinc/cp-kafka:7.6.0
17 hostname: kafka
18 container_name: kafka
19 depends_on:
20 - zookeeper
21 ports:
22 - "9092:9092"
23 - "9101:9101"
24 environment:
25 KAFKA_BROKER_ID: 1
26 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
27 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
28 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
29 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
30 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
31 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
32 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
33 KAFKA_JMX_PORT: 9101
34 KAFKA_JMX_HOSTNAME: localhost
35 KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
36 volumes:
37 - kafka-data:/var/lib/kafka/data
38
39 atkafka:
40 build:
41 context: .
42 dockerfile: Dockerfile
43 container_name: atkafka
44 depends_on:
45 - kafka
46 ports:
47 - "2112:2112"
48 environment:
49 ATKAFKA_RELAY_HOST: "wss://bsky.network"
50 ATKAFKA_BOOTSTRAP_SERVERS: "kafka:29092"
51 ATKAFKA_OUTPUT_TOPIC: "atproto-events"
52 ATKAFKA_OSPREY_COMPATIBLE: "false"
53 ATKAFKA_PLC_HOST: "https://plc.directory"
54
55 ATKAFKA_WATCHED_SERVICES: "*.bsky.network"
56
57 ATKAFKA_IGNORED_COLLECTIONS: "app.bsky.*"
58 restart: unless-stopped
59
60volumes:
61 zookeeper-data:
62 zookeeper-logs:
63 kafka-data: