Skip to content

Commit 2e5e964

Browse files
committed
add optional watchtower to docker compose
1 parent 31875a2 commit 2e5e964

1 file changed

Lines changed: 44 additions & 2 deletions

File tree

deploy/docker-compose.yml

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ services:
2323
<<: *common
2424
image: "mintlayer/node-daemon:latest"
2525
command: "node-daemon ${NETWORK:-mainnet}"
26+
labels:
27+
com.centurylinklabs.watchtower.enable: "true"
2628
environment:
2729
<<: [*common-env, *node-rpc-env]
2830
RUST_LOG: "${RUST_LOG:-info}"
@@ -43,6 +45,8 @@ services:
4345
<<: *common
4446
image: "mintlayer/wallet-rpc-daemon:latest"
4547
command: "${WALLET_RPC_CMD:-wallet-rpc-daemon mainnet}"
48+
labels:
49+
com.centurylinklabs.watchtower.enable: "true"
4650
depends_on:
4751
- node-daemon
4852
environment:
@@ -70,11 +74,21 @@ services:
7074
# Web GUI (Astro SSR app)
7175
# ─────────────────────────────────────────
7276
web-gui:
73-
image: "mintlayer/gui-x:latest"
77+
build:
78+
context: ./app
79+
dockerfile: Dockerfile
7480
depends_on:
7581
- wallet-rpc-daemon
82+
volumes:
83+
# Read-only access to wallet data for file backup download
84+
- "./mintlayer-data:/app/mintlayer-data:ro"
85+
# Shared with wallet-rpc-daemon's /home/mintlayer/ so uploaded wallet files
86+
# are accessible to the daemon at /home/mintlayer/uploads/<filename>
87+
- "./mintlayer-data/uploads:/app/uploads"
88+
# Server-side preferences (SQLite) — persists across browsers and restarts
89+
- "./mintlayer-data/prefs:/app/prefs"
7690
ports:
77-
- "127.0.0.1:4321:4321"
91+
- "${WEB_GUI_PORT:-4321}:4321"
7892
environment:
7993
WALLET_RPC_URL: "http://wallet-rpc-daemon:3034"
8094
WALLET_RPC_USERNAME: "${WALLET_RPC_USERNAME}"
@@ -90,11 +104,33 @@ services:
90104
UI_PASSWORD_HASH: "${UI_PASSWORD_HASH}"
91105
UI_TOTP_SECRET: "${UI_TOTP_SECRET}"
92106
SESSION_SECRET: "${SESSION_SECRET}"
107+
WALLET_RPC_CMD: "${WALLET_RPC_CMD:-}"
93108
INDEXER_ENABLED: "${INDEXER_ENABLED:-false}"
94109
HOST: "0.0.0.0"
95110
PORT: "4321"
96111
restart: unless-stopped
97112

113+
# ─────────────────────────────────────────
114+
# Optional: Watchtower — auto-update Mintlayer images (profile: watchtower)
115+
# Checks Docker Hub daily at 04:00 and restarts any container whose image
116+
# has changed. The web-gui (locally built) is intentionally excluded.
117+
# Start with: docker compose --profile watchtower up -d
118+
# ─────────────────────────────────────────
119+
watchtower:
120+
image: containrrr/watchtower
121+
volumes:
122+
- /var/run/docker.sock:/var/run/docker.sock
123+
command: >
124+
--schedule "0 0 4 * * *"
125+
--cleanup
126+
--label-enable
127+
environment:
128+
WATCHTOWER_NOTIFICATIONS: shoutrrr
129+
WATCHTOWER_NOTIFICATION_URL: "${WATCHTOWER_NOTIFICATION_URL:-}"
130+
profiles:
131+
- watchtower
132+
restart: unless-stopped
133+
98134
# ─────────────────────────────────────────
99135
# Optional: wallet-cli (profile: wallet_cli)
100136
# Usage: docker compose run --rm wallet-cli
@@ -132,6 +168,8 @@ services:
132168
api-blockchain-scanner-daemon:
133169
<<: *common
134170
image: "mintlayer/api-blockchain-scanner-daemon:latest"
171+
labels:
172+
com.centurylinklabs.watchtower.enable: "true"
135173
depends_on:
136174
- node-daemon
137175
- postgres
@@ -152,9 +190,13 @@ services:
152190

153191
api-web-server:
154192
image: "mintlayer/api-web-server:latest"
193+
labels:
194+
com.centurylinklabs.watchtower.enable: "true"
155195
depends_on:
156196
- postgres
157197
- node-daemon
198+
ports:
199+
- "${API_WEB_SERVER_PORT:-3000}:3000"
158200
environment:
159201
ML_API_WEB_SRV_NETWORK: "${NETWORK:-mainnet}"
160202
ML_API_WEB_SRV_BIND_ADDRESS: "0.0.0.0:3000"

0 commit comments

Comments
 (0)