app: id: bitcoin-knots name: Bitcoin Knots version: 28.1.0 description: Full Bitcoin Knots node with dynamic prune/full-mode startup based on host disk. container_name: bitcoin-knots container: image: 146.59.87.168:3000/lfg2025/bitcoin-knots:latest pull_policy: if-not-present network: archy-net entrypoint: ["sh", "-lc"] custom_args: # Sync-speed flags: -par=0 uses every core (was capped at 2 by # --cpus=2, now removed for bitcoin/electrumx). -dbcache sized to # the IBD sweet spot - 4GB on full nodes, 1GB on pruned. Container # --memory=8g (config.rs::get_memory_limit) leaves headroom for # mempool + connections. - >- BITCOIND="$(command -v bitcoind || true)"; if [ -z "$BITCOIND" ]; then BITCOIND="$(find /opt -path '*/bin/bitcoind' -type f 2>/dev/null | sort | tail -n 1)"; fi; if [ -z "$BITCOIND" ]; then echo "bitcoind not found in image" >&2; exit 127; fi; RPC_USER="$(printenv BITCOIN_RPC_USER)"; RPC_PASS="$(printenv BITCOIN_RPC_PASS)"; DISK_GB_VALUE="$(printenv DISK_GB || true)"; if [ "${DISK_GB_VALUE:-0}" -lt 1000 ]; then exec "$BITCOIND" -datadir=/home/bitcoin/.bitcoin -noconf -server=1 -prune=550 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=2048 -par=0 -maxconnections=125 -rpcuser="$RPC_USER" -rpcpassword="$RPC_PASS"; else exec "$BITCOIND" -datadir=/home/bitcoin/.bitcoin -noconf -server=1 -txindex=1 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=4096 -par=0 -maxconnections=125 -rpcuser="$RPC_USER" -rpcpassword="$RPC_PASS"; fi derived_env: - key: DISK_GB template: "{{DISK_GB}}" secret_env: - key: BITCOIN_RPC_PASS secret_file: bitcoin-rpc-password data_uid: "100101:100101" dependencies: - storage: 500Gi resources: cpu_limit: 0 memory_limit: 8Gi disk_limit: 500Gi security: capabilities: [CHOWN, FOWNER, SETUID, SETGID, DAC_OVERRIDE] readonly_root: false network_policy: isolated ports: - host: 8332 container: 8332 protocol: tcp - host: 8333 container: 8333 protocol: tcp volumes: - type: bind source: /var/lib/archipelago/bitcoin target: /home/bitcoin/.bitcoin options: [rw] environment: - BITCOIN_RPC_USER=archipelago health_check: type: tcp endpoint: localhost:8332 interval: 30s timeout: 5s retries: 3 bitcoin_integration: rpc_access: admin sync_required: true testnet_support: false pruning_support: true