--- # Bitcoin Knots: full node built from source, with PGP signature and SHA256 # verification of the release tarball. The build is guarded by a binary-exists # check, so a converged host skips the whole 30-60 minute compile. # # The chain lives in bitcoin_large_data_dir (/mnt/knots_data, ~875 GB). Nothing # here touches it; the only `state: absent` tasks target the build tree under # /opt/bitcoin-knots and run only when the binary is missing. - name: Build and Deploy Bitcoin Knots from Source hosts: bitcoin become: yes vars: # Preserves the push URL this check has been reporting to. The role knows # nothing about Uptime Kuma — this is just "a URL that accepts a ping". healthcheck_push_url: "https://{{ subdomains.gatus }}.{{ root_domain }}/api/v1/endpoints/probe_bitcoin-knots/external" healthcheck_push_token: "{{ gatus_push_tokens[inventory_hostname] }}" roles: - bitcoin_knots - name: Setup public Bitcoin P2P forwarding on the edge host hosts: edge become: yes tasks: - name: Expose Bitcoin P2P through a socket proxy ansible.builtin.include_role: name: socket_proxy vars: socket_proxy_name: bitcoin-p2p socket_proxy_description: "Bitcoin P2P" socket_proxy_listen_port: "{{ hostvars['knots_box_local'].bitcoin_p2p_port }}" socket_proxy_upstream_host: "{{ hostvars['knots_box_local'].ansible_host }}" socket_proxy_documentation: "https://github.com/bitcoin/bitcoin" socket_proxy_free_bind: true socket_proxy_timeout_stop_sec: 5 socket_proxy_log_to_journal: true