The easiest way to try out nix-bitcoin is to use one of the provided examples.
If you use a Flakes-enabled version of Nix, run the following command to start a minimal nix-bitcoin QEMU VM:
nix run github:fort-nix/nix-bitcoin/release
The VM (defined in flake.nix) runs in the terminal and has bitcoind
and clightning
installed.
It leaves no traces (outside of /nix/store
) on the host system.
Clone this repo and enter the examples shell:
git clone https://github.com/fort-nix/nix-bitcoin
cd nix-bitcoin/examples/
nix-shell
The following example scripts set up a nix-bitcoin node according to ./configuration.nix
and then
shut down immediately. They leave no traces (outside of /nix/store
) on the host system.
By default, ./configuration.nix
enables bitcoind
and clightning
.
-
./deploy-container.sh
creates a NixOS container.
This is the fastest way to set up a node.
Requires: Nix, a systemd-based Linux distro and root privileges -
./deploy-qemu-vm.sh
creates a QEMU VM.
Requires: Nix, Linux -
./deploy-krops.sh
creates a QEMU VM and deploys a nix-bitcoin configuration to it using krops.
Requires: Nix, Linux -
./deploy-container-minimal.sh
creates a container defined by importable-configuration.nix.
You can copy and import this file to use nix-bitcoin in an existing NixOS configuration.
The configuration doesn't use the secure-node.nix preset.
Requires: Nix, a systemd-based Linux distro and root privileges
Run the examples with option --interactive
or -i
to start a shell for interacting with
the node:
./deploy-qemu-vm.sh -i
The nix-bitcoin test suite is also useful for exploring features.
Check the server repo for https://nixbitcoin.org to see the configuration of a Flakes-based nix-bitcoin node that's used in production.
The commands in shell.nix
allow you to locally run the node in a VM or container.
Flakes make it easy to include nix-bitcoin
in an existing NixOS config.
The flakes example shows how to use nix-bitcoin
as an input to a system flake.
The persistent container example shows how to run a Flake-based node
in a container.
Requires: A systemd-based Linux distro and root privileges.
The mempool extension flake shows how to define new
pkgs and modules in a Flake.
Since mempool is now a core nix-bitcoin module, this Flake just serves as an example.