#!/usr/bin/env bash set -euo pipefail # This script demonstrates how to setup a VirtualBox nix-bitcoin node with nixops. # Running this script leaves no traces on your host system. # This demo is a template for your own experiments. # Run with option `--interactive` or `-i` to start a shell for interacting with # the node. if [[ ! -v IN_NIX_SHELL ]]; then echo "Running script in nix shell env..." cd "${BASH_SOURCE[0]%/*}" exec nix-shell --run "./${BASH_SOURCE[0]##*/} $*" fi # Cleanup on exit cleanup() { set +e if nixops list | grep -q bitcoin-node; then nixops destroy --confirm -d bitcoin-node fi rm -rf $tmpDir } trap "cleanup" EXIT tmpDir=/tmp/nix-bitcoin-nixops mkdir -p $tmpDir # Don't write nixops and VirtualBox data to the $USER's home export HOME=$tmpDir # Disable interactive queries and don't write to the $USER's known_hosts file export NIXOPS_SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" nixops create nixops/node.nix nixops/node-vbox.nix -d bitcoin-node nixops deploy -d bitcoin-node # Connect to node nixops ssh bitcoin-node systemctl status bitcoind c() { nixops ssh bitcoin-node "$@"; } case ${1:-} in -i|--interactive) . start-bash-session.sh ;; esac # Cleanup happens at exit (see above)