umbrel-apps/bitcoin/docker-compose.yml
2026-04-13 20:18:14 +10:00

86 lines
3.7 KiB
YAML

version: "3.7"
services:
app_proxy:
environment:
APP_HOST: $APP_BITCOIN_NODE_IP
APP_PORT: 3000
app:
image: ghcr.io/getumbrel/umbrel-bitcoin:v1.2.2@sha256:bc72c7fe705c582b8be1740c52449ac82de4d40b0e91ea090513aac6d4fc9393
user: "1000:1000"
restart: on-failure
stop_grace_period: 15m30s
# these ports are exposed for external connections to bitcoind
ports:
- "${APP_BITCOIN_P2P_PORT}:${APP_BITCOIN_P2P_PORT}"
- "${APP_BITCOIN_RPC_PORT}:${APP_BITCOIN_RPC_PORT}"
volumes:
- ${APP_DATA_DIR}/data:/data # data/app and data/bitcoin
environment:
# DATA DIRECTORY SETTINGS
# BITCOIN_DIR: bitcoin-dir-override
# APP_STATE_DIR: app-state-dir-override
# BITCOIND BINARY SETTINGS
# BITCOIND_BIN: bitcoind-binary-path-override
# BITCOIND_EXTRA_ARGS is a comma-delimited list of extra startup flags to pass to bitcoind
# We can remove depratedrpc=create_bdb in a future update once Jam (JoinMarket) implements descriptor wallet support
# Bitcoin Core v30 no longer supports legacy bdb wallets, so Jam users will need to run v29.2 for compatibility
BITCOIND_EXTRA_ARGS: '-deprecatedrpc=create_bdb'
# BITCOIND CONF FILE SETTINGS
APPS_SUBNET: "${NETWORK_IP}/16" # used for rpcallowip
P2P_PORT: "${APP_BITCOIN_P2P_PORT}" # port, bind (also used for connect details)
P2P_WHITEBIND_PORT: "${APP_BITCOIN_P2P_WHITEBIND_PORT}" # Additional inbound P2P listener granting whitelisted permissions (whitebind) to this port; for trusted internal apps only; do not publish externally
RPC_PORT: "${APP_BITCOIN_RPC_PORT}" # rpcport (also used for rpc client and connect details)
TOR_PORT: "${APP_BITCOIN_TOR_PORT}" # bind=onion
ZMQ_RAWBLOCK_PORT: "${APP_BITCOIN_ZMQ_RAWBLOCK_PORT}" # zmqpubrawblock
ZMQ_RAWTX_PORT: "${APP_BITCOIN_ZMQ_RAWTX_PORT}" # zmqpubrawtx
ZMQ_HASHBLOCK_PORT: "${APP_BITCOIN_ZMQ_HASHBLOCK_PORT}" # zmqpubhashblock
ZMQ_SEQUENCE_PORT: "${APP_BITCOIN_ZMQ_SEQUENCE_PORT}" # zmqpubsequence
ZMQ_HASHTX_PORT: "${APP_BITCOIN_ZMQ_HASHTX_PORT}" # zmqpubhashtx
TOR_HOST: "${APP_BITCOIN_TOR_PROXY_IP}" # proxy, onion, torcontrol
TOR_SOCKS_PORT: "9050" # proxy, onion
TOR_CONTROL_PORT: "9051" # torcontrol
TOR_CONTROL_PASSWORD: "moneyprintergobrrr" # torpassword
I2P_HOST: "${APP_BITCOIN_I2P_DAEMON_IP}" # i2psam
I2P_SAM_PORT: "7656" # i2psam
# RPC CLIENT SETTINGS
BITCOIND_IP: "${APP_BITCOIN_NODE_IP}" # host for the rpc client. Also used for bitcoind conf file rpcbind & bind.
RPC_USER: "${APP_BITCOIN_RPC_USER}" # also shown in the connect modal
RPC_PASS: "${APP_BITCOIN_RPC_PASS}" # also shown in the connect modal
# CONNECTION DETAILS (shown to user in the connect modal)
DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}"
P2P_HIDDEN_SERVICE: "${APP_BITCOIN_P2P_HIDDEN_SERVICE}"
RPC_HIDDEN_SERVICE: "${APP_BITCOIN_RPC_HIDDEN_SERVICE}"
networks:
default:
ipv4_address: $APP_BITCOIN_NODE_IP
tor:
image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a
user: "1000:1000"
restart: on-failure
volumes:
- ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro
- ${TOR_DATA_DIR}:/data
environment:
HOME: "/tmp"
networks:
default:
ipv4_address: "${APP_BITCOIN_TOR_PROXY_IP}"
i2pd_daemon:
image: purplei2p/i2pd:release-2.59.0@sha256:257653c18ce0b127ef480e3d8373b3ddbf1495e842674c8cfc59909be0015979
user: "root"
command: --sam.enabled=true --sam.address=0.0.0.0 --sam.port=7656 --loglevel=error
restart: on-failure
volumes:
- ${APP_DATA_DIR}/data/i2pd:/home/i2pd/data
networks:
default:
ipv4_address: "${APP_BITCOIN_I2P_DAEMON_IP}"