--- # 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_files: - ../../infra_vars.yml - ../../services_config.yml - ../../infra_secrets.yml 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: "{{ healthcheck_push_urls.bitcoin_knots | default('') }}" roles: - bitcoin_knots - name: Setup public Bitcoin P2P forwarding on the edge host hosts: edge become: yes vars_files: - ../../infra_vars.yml - ../../services_config.yml 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: "{{ service_settings.bitcoin.p2p_port }}" socket_proxy_upstream_host: "{{ service_settings.bitcoin.tailscale_hostname }}" 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