-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathengine.docker.toml
More file actions
79 lines (65 loc) · 2.52 KB
/
Copy pathengine.docker.toml
File metadata and controls
79 lines (65 loc) · 2.52 KB
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
71
72
73
74
75
76
77
78
79
# Docker-ready engine config. Pre-wired for the file layout the
# repo's `Dockerfile` bakes:
#
# /opt/shepherd/modules/<name>.wasm - compiled components
# /opt/shepherd/manifests/<name>.toml - per-module manifests
# /var/lib/shepherd/ - redb state (named volume)
#
# Secrets come from env vars (see `.env.example`). The engine
# substitutes `${VAR_NAME}` tokens at load time; a missing variable
# fails fast with the exact name. `docker compose` reads the
# repo-root `.env` automatically and forwards the listed variables
# into the container.
#
# Workflow:
#
# cp .env.example .env
# $EDITOR .env # paste real wss:// RPC URLs
# docker compose up -d
#
# Mount target inside the container is `/etc/shepherd/engine.toml`
# (see docker-compose.yml).
[engine]
state_dir = "/var/lib/shepherd"
log_level = "info"
[engine.metrics]
enabled = true
# Bind to all interfaces inside the container so the compose port
# mapping (127.0.0.1:9100 host -> 9100 container) reaches it. NEVER
# publish `0.0.0.0:9100` on the host without authn - see
# docs/production.md §7.
bind_addr = "0.0.0.0:9100"
# ---- chains ----
#
# Drop any [chains.<id>] entry whose `*_RPC_URL` env var isn't set.
# `wss://` pushes new blocks via `eth_subscribe`; `https://` polls
# `eth_getBlockByNumber` instead. Prefer `wss://` where available.
[chains.1] # Ethereum Mainnet
rpc_url = "${MAINNET_RPC_URL}"
[chains.100] # Gnosis Chain
rpc_url = "${GNOSIS_RPC_URL}"
[chains.11155111] # Sepolia (recommended for soak)
rpc_url = "${SEPOLIA_RPC_URL}"
[chains.42161] # Arbitrum One
rpc_url = "${ARBITRUM_RPC_URL}"
[chains.8453] # Base
rpc_url = "${BASE_RPC_URL}"
# ---- modules ----
#
# The image bakes all five production modules at the paths below.
# Comment out any you don't intend to run on this deployment.
[[modules]]
path = "/opt/shepherd/modules/twap_monitor.wasm"
manifest = "/opt/shepherd/manifests/twap-monitor.toml"
[[modules]]
path = "/opt/shepherd/modules/ethflow_watcher.wasm"
manifest = "/opt/shepherd/manifests/ethflow-watcher.toml"
[[modules]]
path = "/opt/shepherd/modules/price_alert.wasm"
manifest = "/opt/shepherd/manifests/price-alert.toml"
[[modules]]
path = "/opt/shepherd/modules/balance_tracker.wasm"
manifest = "/opt/shepherd/manifests/balance-tracker.toml"
[[modules]]
path = "/opt/shepherd/modules/stop_loss.wasm"
manifest = "/opt/shepherd/manifests/stop-loss.toml"