nix-bitcoin/examples
Erik Arvstedt 03db1a61b1
lnd, joinmarket: don't write to secrets dir
Keeping the secrets dir read-only is more simple and robust.

- lnd seed mnemonic creation and joinmarket wallet creation can be
  run as the regular service user instead of root.

- It is easier to switch to a third-party secrets deployment
  method in the future.

Don't create a seed mnemonic for lnd when a wallet exists.
This avoids creating unused mnemonics and helps simplifying
the migration command in `versioning.nix`.
2021-03-15 18:50:15 +01:00
..
nixops Remove nixops examples and documentation 2021-03-15 12:42:47 +00:00
qemu-vm examples/qemu: disable hardened preset 2021-03-15 12:42:52 +00:00
configuration.nix lnd, joinmarket: don't write to secrets dir 2021-03-15 18:50:15 +01:00
deploy-container-minimal.sh examples: add deploy-container-minimal.sh 2020-10-20 12:35:23 +02:00
deploy-container.sh secrets: add option 'generateSecrets' 2021-03-15 12:42:52 +00:00
deploy-qemu-vm.sh secrets: add option 'generateSecrets' 2021-03-15 12:42:52 +00:00
minimal-configuration.nix secrets: add option 'generateSecrets' 2021-03-15 12:42:52 +00:00
nix-bitcoin-release.nix Add fetch-release script 2020-04-08 07:01:35 +00:00
README.md Remove nixops examples and documentation 2021-03-15 12:42:47 +00:00
shell.nix Remove nixops examples and documentation 2021-03-15 12:42:47 +00:00
start-bash-session.sh examples: add option --interactive|-i 2020-10-18 13:42:58 +02:00

Examples

The easiest way to try out nix-bitcoin is to use one of the provided examples.

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.

Run the examples with option --interactive or -i to start a shell for interacting with the node:

./deploy-qemu-vm.sh -i

Tests

The internal test suite is also useful for exploring features.
The following run-tests.sh commands leave no traces (outside of /nix/store) on the host system.

git clone https://github.com/fort-nix/nix-bitcoin
cd nix-bitcoin/test

# Run a Python test shell inside a VM node
./run-tests.sh debug
print(succeed("systemctl status bitcoind"))

# Run a node in a container. Requires systemd and root privileges.
./run-tests.sh container
c systemctl status bitcoind

# Explore a single feature
./run-tests.sh --scenario electrs container

# Run a command in a container
./run-tests.sh --scenario '{
  services.clightning.enable = true;
  nix-bitcoin.nodeinfo.enable = true;
}' container --run c nodeinfo

See run-tests.sh for a complete documentation.