πŸ”§ Node management

To make things easier, setting the following aliases is recommended:

alias ez='docker exec ez'
alias bitcoin-cli='ez bitcoin-cli'

With these in place, you can use bitcoin-cli as you normally would and ez <cmd> to issue other commands on the container.

You can add the aliases to ~/.bashrc to make them permanent. The instructions below assumes you have them set up.

To run an interactive command, use docker exec with -it. For example, docker exec -it ez bash to start a new shell.

To manage the server remotely, you can enable the SSH service with SSHD=UNRESTRICTED.

😈 Daemonizing

To run the docker container as a background daemon and have it automatically run on start-up, change docker run to use -d --restart unless-stopped instead of -it --rm. For example:

docker run -d --restart unless-stopped --name ez -v ~/eznode:/data eznode/eznode

You can control the background container using docker stop|start|restart ez.

πŸ•ΉοΈ Controlling services

eznode uses the (fantastic!) s6 init/supervision system (via s6-overlay) to manage services.

A CLI utility wrapper written on top of the s6 commands is provided to ease service management:

# Display an overview of all services
ez status

# Display more information
ez status -v

# Display the status of some service(s)
ez status <services...>

# Service management
ez start|stop|restart <services...>

πŸ–₯️ Terminal display

You can setup a live textual terminal display with information about your node and the Bitcoin network using watch -t -n10 docker exec ez banner.

It will look something like this:

πŸ“ Viewing logs

The main logs are displayed in the docker run output, including some select important log messages across all services. If you're running the container in the background, you can use docker logs -f ez to view them.

ez logs will stream full logs from all the services (tail -f-like). You can use ez logs <services...> to select specific services.

-n sets how many last log lines are returned initially (defaults to 8). -c reads the logs without following them. For example: ez logs -c -n1000 bitcoind.

You can request that some services will be logged in the main docker run output using the following flags: BITCOIND_LOGS, BWT_LOGS, EXPLORER_LOGS, SPECTER_LOGS, TOR_LOGS, SSHD_LOGS and LETSENCRYPT_LOGS.

πŸ”„ Updating

To update your ezonde, run:

docker pull eznode/eznode

And re-start the docker run command.

Signature verification instructions are available here.

πŸ’Ύ Backing up

You can create a backup tar.gz file using this command:

ez backup > ez-backup.tar.gz

The backup includes the following:

  • Bitcoin Core wallets (/data/bitcoin/**/wallets) + bitcoin.conf
  • Specter wallets/devices config (/data/specter)
  • SSH keys (/data/ssh-keys)
  • SSL keys/certificates (/data/nginx-keys)
  • Tor onion service files (/data/tor-hsv)
  • Config file (/data/config)

You'll need to make ongoing backups whenever new wallets, devices or transaction labels are added in Specter. Other than that, backing up once initially should generally be enough.

Everything that needs to be backed up is kept within the directory mounted to /data, so keeping a safe copy of it is sufficient. But /data also includes files that don't require a backup, like the bitcoind data files, while ez backup does not.