11services :
2+ # Docker registry for local image hosting
3+ registry :
4+ image : registry:2
5+ container_name : weaver-registry
6+ ports :
7+ - " 5000:5000"
8+ volumes :
9+ - registry_data:/var/lib/registry
10+ restart : unless-stopped
11+
212 # Tap - AT Protocol sync utility
3- # Build from local indigo checkout, or use pre-built image
413 tap :
514 container_name : weaver-tap
615 image : ghcr.io/bluesky-social/indigo/tap:latest
@@ -13,49 +22,62 @@ services:
1322 TAP_BIND : " :2480"
1423 TAP_DISABLE_ACKS : " false"
1524 TAP_LOG_LEVEL : info
16- # Filter to weaver collections only
17- # TAP_SIGNAL_COLLECTION: sh.weaver.edit.root
1825 TAP_SIGNAL_COLLECTION : sh.tangled.actor.profile
1926 TAP_COLLECTION_FILTERS : " sh.weaver.*,app.bsky.actor.profile,sh.tangled.*,pub.leaflet.*"
2027 healthcheck :
2128 test : ["CMD", "wget", "-q", "--spider", "http://localhost:2480/health"]
2229 interval : 20s
2330 timeout : 5s
2431 retries : 3
32+ restart : unless-stopped
2533
26- # Weaver indexer - consumes from tap or direct firehose
34+ # Weaver indexer - consumes from tap
2735 indexer :
2836 container_name : weaver-indexer
29- build :
30- context : .
31- dockerfile : crates/weaver-index/Dockerfile
32- command : ["run"]
37+ image : ${REGISTRY_HOST:-localhost}:5000/weaver-index:latest
3338 ports :
3439 - " 3000:3000"
3540 environment :
36- RUST_LOG : debug,weaver_index=debug,hyper_util::client::legacy::pool=info
37- # ClickHouse connection (set these for your cloud/homelab instance)
41+ RUST_LOG : info,weaver_index=debug,hyper_util::client::legacy::pool=info
3842 CLICKHOUSE_URL : ${CLICKHOUSE_URL}
3943 CLICKHOUSE_DATABASE : ${CLICKHOUSE_DATABASE:-weaver}
4044 CLICKHOUSE_USER : ${CLICKHOUSE_USER}
4145 CLICKHOUSE_PASSWORD : ${CLICKHOUSE_PASSWORD}
42- # Source mode: "firehose" or "tap"
4346 INDEXER_SOURCE : tap
44- # Tap connection (when INDEXER_SOURCE=tap)
4547 TAP_URL : ws://tap:2480/channel
4648 TAP_SEND_ACKS : " true"
47- # Firehose connection (when INDEXER_SOURCE=firehose)
4849 FIREHOSE_RELAY_URL : wss://bsky.network
49- # Collection filters
5050 INDEXER_COLLECTIONS : " sh.weaver.*,app.bsky.actor.profile,sh.tangled.*,pub.leaflet.*"
5151 depends_on :
5252 tap :
5353 condition : service_healthy
5454 healthcheck :
55- test : ["CMD", "wget", "-q", "--spider", "http://localhost:2480/xrpc/_health"]
55+ test : ["CMD", "wget", "-q", "--spider", "http://localhost:3000/xrpc/_health"]
56+ interval : 20s
57+ timeout : 5s
58+ retries : 3
59+ restart : unless-stopped
60+
61+ # Weaver app - web frontend
62+ weaver-app :
63+ container_name : weaver-app
64+ image : ${REGISTRY_HOST:-localhost}:5000/weaver-app:latest
65+ ports :
66+ - " 8080:8080"
67+ environment :
68+ PORT : 8080
69+ IP : 0.0.0.0
70+ RUST_LOG : info
71+ depends_on :
72+ indexer :
73+ condition : service_healthy
74+ healthcheck :
75+ test : ["CMD", "wget", "-q", "--spider", "http://localhost:8080/"]
5676 interval : 20s
5777 timeout : 5s
5878 retries : 3
79+ restart : unless-stopped
5980
6081volumes :
82+ registry_data :
6183 tap_data :
0 commit comments