diff --git a/apps/bitcoind/config.json b/apps/bitcoind/config.json new file mode 100644 index 00000000..4e9879ac --- /dev/null +++ b/apps/bitcoind/config.json @@ -0,0 +1,71 @@ +{ + "$schema": "../schema.json", + "name": "Bitcoin Daemon", + "available": true, + "exposable": false, + "no_gui": true, + "port": 8333, + "id": "bitcoind", + "description": "Bitcoin node daemon", + "tipi_version": 1, + "version": "26.0", + "categories": ["finance"], + "short_desc": "Bitcoin node daemon", + "author": "Bitcoin developers", + "source": "https://github.com/lncm/docker-bitcoind", + "form_fields": [ + { + "type": "number", + "label": "DB Cache Size (In mb)", + "hint": "Set database cache size in megabytes; machines sync faster with a larger cache. Recommend setting as high as possible based upon machine's available RAM. Default 450 Mb.", + "required": false, + "env_variable": "DB_CACHE" + }, + { + "type": "number", + "label": "Max Mempool Size (In mb)", + "hint": "Keep the transaction memory pool below megabytes. Default 300 Mb.", + "required": false, + "env_variable": "MAX_MEMPOOL" + }, + { + "type": "number", + "label": "Listen for Incoming Connections (0 disabled / 1 enabled)", + "hint": "Accept incoming connections from peers. Default disabled.", + "regex": "^[01]$", + "required": false, + "env_variable": "LISTEN" + }, + { + "type": "number", + "label": "Max Peer Connections", + "hint": "Maintain at most N connections to peers. Default 125.", + "required": false, + "env_variable": "MAXPEERS" + }, + { + "type": "number", + "label": "Enable RPC Server (0 disabled / 1 enabled)", + "hint": "Accept command line and JSON-RPC commands. Default disabled.", + "regex": "^[01]$", + "required": false, + "env_variable": "RPCSERVER" + }, + { + "type": "text", + "label": "RPC Auth", + "hint": "Username and hashed password for JSON-RPC connections. The field comes in the format: :$. RPC clients connect using rpcuser=/rpcpassword= arguments. You can generate this value at https://jlopp.github.io/bitcoin-core-rpc-auth-generator/.", + "required": false, + "env_variable": "RPCAUTH" + }, + { + "type": "text", + "label": "RPC Allow IP Address", + "hint": "Allow JSON-RPC connections from specified source. Valid for are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).", + "required": false, + "env_variable": "RPCALLOWIP" + } + + ], + "supported_architectures": ["amd64", "arm64", "arm"] +} \ No newline at end of file diff --git a/apps/bitcoind/docker-compose.yml b/apps/bitcoind/docker-compose.yml new file mode 100644 index 00000000..a347eae8 --- /dev/null +++ b/apps/bitcoind/docker-compose.yml @@ -0,0 +1,26 @@ +version: '3.9' +services: + bitcoind: + container_name: bitcoind + image: lncm/bitcoind:v26.0 + user: 1000:1000 + volumes: + - ${APP_DATA_DIR}/data:/data/.bitcoin + ports: + - ${APP_PORT}:8333 + - 8332:8332 + - 28332:28332 + - 28333:28333 + restart: unless-stopped + stop_grace_period: 15m30s + command: >- + --dbcache=${DB_CACHE:-450} + --maxmempool=${MAX_MEMPOOL:-300} + --listen=${LISTEN:-0} + --maxconnections=${MAXPEERS:-125} + --server=${RPCSERVER:-0} + --rpcauth=${RPCAUTH} + --rpcallowip=${RPCALLOWIP} + --rpcbind=0.0.0.0 + networks: + - tipi_main_network \ No newline at end of file