1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
version: '3.8'
services:
anya-core:
image: anya-enterprise:latest # Consider changing to a more specific local build tag if not pushing to a registry with this name
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8000" # Host port 8080 maps to container port 8000 (as per Dockerfile EXPOSE)
environment:
- BITCOIN_RPC_URL=http://bitcoin:8332
- WEB5_DWN_URL=http://dwn:3000
- WEB5_STORAGE_PATH=/data/web5
volumes:
- web5-data:/data/web5
depends_on:
- bitcoin
- dwn
# Add other services anya-core directly depends on for startup order
# - db # Example if you add a database service for anya-core
dwn:
image: web5/dwn:latest
ports:
- "3000:3000"
volumes:
- web5-data:/data
environment:
- NODE_ENV=production
- DWN_STORAGE_PATH=/data
bitcoin:
image: ruimarinho/bitcoin-core:24.0
command: bitcoind -printtoconsole -server -rpcallowip=::/0 -rpcbind=0.0.0.0
ports:
- "8332:8332"
- "18443:18443" # Testnet
volumes:
- bitcoin-data:/bitcoin
bitcoin-exporter:
image: metalmatze/bitcoin-prometheus-exporter:latest
ports:
- "9332:9332"
command:
- "--bitcoin.rpc.host=bitcoin"
- "--bitcoin.rpc.port=8332"
# If your Bitcoin Core RPC requires authentication, uncomment and set these:
# - "--bitcoin.rpc.user=your_rpc_user"
# - "--bitcoin.rpc.password=your_rpc_password"
depends_on:
- bitcoin
# Example of a database service if anya-core needs one
# db:
# image: postgres:15
# volumes:
# - postgres_data:/var/lib/postgresql/data
# environment:
# POSTGRES_DB: anya_core
# POSTGRES_USER: postgres
# POSTGRES_PASSWORD: anya_core_password # Ensure this matches DATABASE_URL in Dockerfile
# ports:
# - "5432:5432"
volumes:
web5-data:
bitcoin-data:
# postgres_data: # Uncomment if db service is added