`qemu-vm.nix` is already imported in `vm-config.nix` but under a different path. This causes an "already declared" error on NixOS 23.11. |
||
---|---|---|
.. | ||
flakes | ||
krops | ||
nixops | ||
qemu-vm | ||
.gitignore | ||
configuration.nix | ||
deploy-container-minimal.sh | ||
deploy-container.sh | ||
deploy-krops.sh | ||
deploy-qemu-vm.sh | ||
importable-configuration.nix | ||
krops-vm-configuration.nix | ||
nix-bitcoin-release.nix | ||
README.md | ||
shell.nix | ||
start-bash-session.sh |
Examples
The easiest way to try out nix-bitcoin is to use one of the provided examples.
Flakes-based quick start
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.
More examples
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
Tests
The nix-bitcoin test suite is also useful for exploring features.
Real-world example
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
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.
Extending nix-bitcoin with Flakes
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.