/eznode

✨ A simple pruning-friendly setup for a personal bitcoin full node

Primary LanguageShellMIT LicenseMIT

eznode

𝚎𝚣𝚗𝚘𝚍𝚎

Build Status Latest release Docker pulls MIT license Chat on Telegram Chat on IRC

Docker-based single-container package featuring:

  • Bitcoin Core: Pruned by default with optional trusted fast-sync
  • Electrum Server: Personal Electrum server powered by BWT
  • BTC RPC Explorer: Personal block explorer and node dashboard
  • Specter Desktop: Wallet GUI for hardware and multi-sig setups
  • Secure remote access using Tor Onion SSH tunnels or SSL

Why eznode?

  • Simple one command setup
  • Lightweight (120 MB docker image)
  • Pruning-friendly (requires <5GB of storage)
  • Suitable for a dedicated box, but doesn't require one
  • Supports Linux, macOS, Windows and ARMv7/v8

Support development: ⚡ lightning or ⛓️ on-chain via BTCPay

Website: ezno.de

🚀 Quickstart

Install Docker (the only dependency) and start eznode with the data directory mounted to /data:

docker run -it --rm --name ez -v ~/eznode:/data eznode/eznode TOR=1 XPUB=<xpub>

This will setup a pruned Bitcoin Core full node, a personal Electrum server tracking your <xpub>, a block explorer and a Tor onion service for secure remote access. All the information you need for accessing them will be shown on startup.

You can skip setting an XPUB if you're not using the Electrum server.

Change ~/eznode if you'd like to store the node's data files elsewhere. On Windows, you can use $env:AppData\eznode to store them in C:\Users\<USER>\AppData\Roaming. They require ~4.8GB of free space.

On Windows/macOS, you'll need to publish the ports with -p to access them locally.

Set TRUSTED_FASTSYNC=1 to enable the trusted fast-sync mode. You should carefully consider the implications and avoid this if possible.

To enable Specter Desktop, set SPECTER=1.

To experiment on signet, set NETWORK=signet.

Signature verification instructions are available here.

📙 User Guide

The full user guide is available at https://ezno.de.

❤️ Contributing

Contributions are welcome!

eznode manages services using the (fantastic!) s6 init/supervision system (via s6-overlay). Refer to specter for an example of a simple service package and to the s6 docs for more information on writing services.

📃 License

MIT