Commit Graph
100 Commits
Author SHA1 Message Date
Erik Arvstedt 7985e075e5 README: remove nixos-search 2022-09-07 10:24:16 +02:00
Erik Arvstedt c63da4734e tests: disable nixosSearch 2022-09-05 21:11:15 +02:00
Erik Arvstedt 67a573dae8 create-git-repo.sh: fix amend error if there's no branch checked out
In this case, `git commit --amend` fails.

The state of a .git repo existing without a branch being checked out
can be reached through the following sequence of events (which I just
seem to have triggered):
1. The script calls `git init`
2. The user interrupts the script before `git commit` is finished
2022-08-29 00:12:19 +02:00
Erik Arvstedt d9eecb7d4c nixos-search/flake: remove unused output 2022-08-29 00:12:19 +02:00
Erik Arvstedt 4e70db14bc README: fix capitalization 2022-08-29 00:12:18 +02:00
Erik Arvstedt 030be842c8 secrets: use fetchurl derivation
This moves fetching from eval time to build time, which is a better
fit for fetching build time resources.
2022-08-29 00:12:17 +02:00
Erik Arvstedt 1713e016a0 clightning-replication: clarify comment about FUSE mounts 2022-08-28 23:49:12 +02:00
Erik Arvstedt cd3878e357 delete modules/default.nix
This file has been missing some modules for quite some time.
Remove it to simplify maintenance.
2022-08-28 23:49:12 +02:00
Erik Arvstedt f2a4d1fe65 docs/security: fix typo 2022-08-28 23:49:12 +02:00
Erik Arvstedt 3a65dc0dc9 docs/configuration: improve section Remote bitcoind 2022-08-28 23:49:12 +02:00
Erik Arvstedt af115d746b internal scripts: use pinned, cached pkgs
Instead of setting up the script PATH via nix-shell, use
`nix shell` with inputs from the nix-bitcoin flake.
Advantages:
- Uses the nixpkgs version from the nix-bitcoin flake instead of
  `<nixpkgs>` from the user env (NIX_PATH), so the script runtime
  env is reproducible.
- The pkg derivations for the runtime env are cached, which greatly
  increases script startup speed.

This commit was generated by running the following script inside the
repo root dir:

def transform(path, src)
  if src =~ /#! *nix-shell +-i +bash +-p +(.*)/
    pkgs = $1
    if src =~ /^.*?(set -e.*?pipefail)\n/
      set_statement = $1
      src.sub!($&, '')
    end
    src.sub!(/\A.*?#! *nix-shell.*?\n/m, '')

    parents = ([ '..' ] * (path.split('/').count - 1)).join('/')

    [
      '#!/usr/bin/env bash',
      *set_statement,
      %(. "${BASH_SOURCE[0]%/*}/#{parents}/helper/run-in-nix-env" "#{pkgs}" "$@"),
      nil,
      src
    ].join("\n")
  end
end

Dir['**/*.sh'].each do |f|
  src = File.read(f)
  if new_src = transform(f, src)
    puts "Changed file #{f}"
    File.write(f, new_src)
  end
end
2022-08-28 23:49:12 +02:00
Erik Arvstedt b625325487 ci/modules_test: use flake-enabled nix 2022-08-28 18:25:37 +02:00
Erik Arvstedt 02f1599503 clightning-rest: 0.8.0 -> 0.9.0 2022-08-27 14:09:48 +02:00
Erik Arvstedt c3769014b1 rtl: 0.13.0 -> 0.13.1 2022-08-27 14:09:48 +02:00
Erik Arvstedt db3c0f0519 img/logo: add LICENSE 2022-08-26 10:22:29 +02:00
Erik Arvstedt 53dd2a1ae2 cl-rest: 0.7.2 -> 0.8.0
- Use `fetch-node-modules`
- Only use nodejs-slim as a runtime dependency
2022-08-21 19:11:51 +02:00
Erik Arvstedt 617ed4c8e8 rtl: 0.12.3-beta -> 0.13.0
- Use `fetch-node-modules` to remove the 4161 line file `node-packages.nix`
- Only use nodejs-slim as a runtime dependency
- Shrink package size by >500M by excluding certain dev-only dependencies
2022-08-21 19:11:51 +02:00
Erik Arvstedt e63dafe0f7 pkgs: add fetch-node-modules 2022-08-21 19:11:51 +02:00
Erik Arvstedt 321e8ba06e clightning: fix build 2022-08-21 10:23:33 +02:00
Erik Arvstedt 44561235b2 rtl: set explicit nodejs version 2022-08-21 10:23:33 +02:00
Erik Arvstedt f2cb5bfc10 update nixpkgs
nbxplorer: 2.3.28 -> 2.3.33
btcpayserver: 1.6.1 -> 1.6.9
charge-lnd: 0.2.4 -> 0.2.12
lightning-loop: 0.19.1-beta -> 0.20.0-beta
2022-08-21 10:23:33 +02:00
Erik Arvstedt 5eb01498d5 tests: add comment 2022-08-05 13:48:53 +00:00
Erik Arvstedt 952cd3773f run-tests: support tests with multiple VMs in run 2022-08-05 13:48:36 +00:00
Erik Arvstedt a3490dfc0f onion-services: don't propagate restart of onion-addresses to depending services
Currently, public services that publish their onion addresses have a
`requires` dependeny on service `onion-addresses`, so they are restarted
when `onion-addresses` restarts.

This has the downside that most of nix-bitcoin's services are restarted
when a new onion service is added and the system config has the following common settings:
- nix-bitcoin.onionServices.bitcoind.public = true
- nix-bitcoin.operator.enable = true

Sequence of events:
1. onion service is added
2. `onion-addresses` restarts, because the new onion service is made available to `operator`
3. bitcoind restarts
4. all depending services restart

Fix this by using a `wants` dependency.
2022-08-04 11:48:26 +02:00
Erik Arvstedt 7544c62970 readme: add nixos options search 2022-07-29 17:24:32 +02:00
Erik Arvstedt 9c5dbeaa83 test/nixos-search: fix wrong flake being tested
Now the test targets the main nix-bitcoin flake instead of the
nixos-search flake.

Also remove `NIX_PATH`, which is no longer required.
2022-07-22 17:41:31 +02:00
Erik Arvstedt 42bf0422e0 operator: fix syntax error in description
Fix error `Invalid XML` when running flake-info (nixos-search) .
2022-07-22 17:17:11 +02:00
Erik Arvstedt 7d5182298b examples/deploy-krops: fix missing secrets
Previously, `deploy-krops.sh` failed when run in a freshly cloned repo
due to missing secrets.
2022-07-22 16:24:24 +02:00
Erik Arvstedt 7a129a7e9c docs: improve Security Fund documentation
- Add to README
- Improve wording
2022-07-22 15:18:34 +02:00
Erik Arvstedt 0ba6c63670 secrets: fix sorting in setup-secrets
Now the bash globbing sort order equals the nix sort order
(order of `processedFiles`)
Previously, `comm` could fail with error `unsorted` on
specific secrets names.
2022-07-22 14:57:06 +02:00
Erik Arvstedt f12ea83d36 docs/install: fix formatting 2022-07-18 16:11:11 +02:00
Erik Arvstedt dad9679647 deployment shell: add command build-config 2022-07-17 22:17:48 +02:00
Erik Arvstedt 2926fc27dc krops: enable evaluating nodes with non-native systems 2022-07-17 22:17:48 +02:00
Erik Arvstedt fe2df830a2 flake: add system armv7l-linux
There are some ARMv7 single board computers that are capable of
running a bitcoin node (see https://nixos.wiki/wiki/NixOS_on_ARM).
2022-07-17 22:17:47 +02:00
Erik Arvstedt 84b69dfb46 versioning: improve description wording 2022-07-17 12:46:01 +02:00
Erik Arvstedt 8dc4858872 bitcoind: remove banlist loader
Gmaxwell's banlist (https://people.xiph.org/~greg/banlist.cli.txt) is
no longer maintained and hasn't been updated since 2 years.
2022-07-15 14:45:37 +02:00
Erik Arvstedt 9d20837b90 flake: remove rec 2022-07-15 11:42:13 +02:00
Erik Arvstedt c82e0ee294 clightning/plugins: format plugin defs, order alphabetically 2022-07-15 01:50:15 +02:00
Erik Arvstedt 9ac3d93b27 improve comments, descriptions 2022-07-15 01:50:11 +02:00
Erik Arvstedt 97b1a1d353 operator: improve descriptions 2022-07-14 23:47:12 +02:00
Erik Arvstedt 27dd31ead5 clightning/feeadjuster: fix typo 2022-07-14 23:46:25 +02:00
Erik Arvstedt df5abd5eab lnd: move wallet-unlock-password-file setting to config
There's no need to pass this option via the cmdline.
2022-07-14 23:46:25 +02:00
Erik Arvstedt 7d7f2df006 fulcrum: add module 2022-07-09 11:07:09 +02:00
Erik Arvstedt edd8bd311c bitcoind-rpc-public-whitelist: add ping, help
Required by fulcrum.
2022-07-08 15:10:03 +02:00
Erik Arvstedt f946a7cd9b examples: use mkDefault for setting system.stateVersion
This makes it easier for users to override the default.
2022-07-08 15:10:03 +02:00
Erik Arvstedt c853f380d4 lightning-loop: add certificate options extraIPs and extraDomains
This is useful for non-local access to the lightning-loop REST server.
2022-07-07 16:09:26 +02:00
Erik Arvstedt edfbe700e7 lnd: add certificate options extraIPs and extraDomains
This is useful for non-local access to the lnd REST server.
2022-07-07 16:09:26 +02:00
Erik Arvstedt 60a27d58a6 lnd, lightning-loop: improve extraConfig option description 2022-07-07 16:09:26 +02:00
Erik Arvstedt 79994d0bd2 tests: increase postgresql startup timeout
Required for Cirrus CI.
2022-07-07 11:43:21 +02:00
Erik Arvstedt 99f1dc0bff bitcoind, liquidd: increase TimeoutStartSec
I've just seen `liquidd` hit the timeout on nixbitcoin.org while
`Loading block index`.
This was probably due to HDD contention while starting services during
boot.
2022-07-05 13:04:18 +02:00
Erik Arvstedt 7261813051 examples/configuration.nix: use system.stateVersion comment from NixOS 22.05 2022-07-05 10:13:55 +02:00
Erik Arvstedt 2ae2eea54e run-tests: fix command debug on NixOS 22.05 2022-07-05 10:13:55 +02:00
Erik Arvstedt a8255d61d7 lib/make-container: update required extra-container version 2022-07-05 10:13:54 +02:00
Erik Arvstedt f02f27cbca lib/make-test: fix system.stateVersion warning 2022-07-05 10:13:54 +02:00
Erik Arvstedt f17fcebe11 nodeinfo: make extensible
Module authors can now add extra services via option `nix-bitcoin.nodeinfo.services`.
Mark as internal because we're not yet providing a user-friendly, stable API.
2022-07-05 10:11:55 +02:00
Erik Arvstedt 3f3f31c32d examples/krops: fix nixpkgs symlink sync error on macOS/BSD 2022-07-04 23:42:09 +02:00
Erik Arvstedt 68ef662654 krops: don't reimport pkgs
Previously, the krops pkg was accessed by evaluating nixpkgs with the
krops overlay.
Now directly call krops with an existing pkgs instance.
2022-07-04 10:16:46 +02:00
Erik Arvstedt 4579b44781 update nixpkgs
clightning: 0.11.1 -> 0.11.2
lnd: 0.14.3-beta -> 0.15.0-beta
2022-07-03 02:09:33 +02:00
Erik Arvstedt fe68ee650b fix containers on nixos-22.05 2022-06-28 00:09:26 +02:00
Erik Arvstedt 15e7b32c2d fix VMs on nixos-22.05 2022-06-28 00:09:26 +02:00
Erik Arvstedt f52ff8fdb5 fix python packages on nixos-22.05
Fixes:
- joinmarket
- pyln-proto
2022-06-28 00:09:26 +02:00
Erik Arvstedt a9123a9842 lndinit: update vendorSha256 2022-06-28 00:09:25 +02:00
Erik Arvstedt 3102c99275 configuration.nix: update system.stateVersion 2022-06-28 00:09:25 +02:00
Erik Arvstedt 2106a2cdea spark-wallet/generate.sh: remove TODO-EXTERNAL
It makes sense in general to explicitly set the nodejs version.
2022-06-28 00:09:25 +02:00
Erik Arvstedt 96144fde81 update-flake.nix: fix stable pkgs selection
In rare cases, the nixpkgs stable version of a package can be newer
than in unstable nixpkgs. [1]
When this happens, choose the newer stable version instead of the
older unstable version.

[1] E.g., when a package is updated in both nixpkgs stable and unstable,
and nixpkgs stable is released before unstable.
2022-06-27 22:19:06 +02:00
Erik Arvstedt c8d5cb2405 examples: improve Flakes-based VM
- Show login message
- Poweroff on shell exit
- Move to top of examples/README
2022-06-02 14:06:54 +02:00
Erik Arvstedt cbf327c808 lndconnect-onion: fix for custom operator names 2022-06-02 12:38:33 +02:00
Erik Arvstedt 1e94e891b2 flake: move VM to separate file
This simplifies the flake.
2022-06-01 22:12:50 +02:00
Erik Arvstedt 7233b054d9 flake: use new output format
The previous format is deprecated.
2022-06-01 22:12:47 +02:00
Erik Arvstedt f9315db52c clightning/feeadjuster: add test 2022-05-27 11:22:00 +02:00
Erik Arvstedt ae94665ad1 clightning: add package option 2022-05-22 15:57:15 +02:00
Erik Arvstedt 041162d1e3 clightning-plugins: update to latest rev 2022-05-22 15:57:15 +02:00
Erik Arvstedt ef93a9a8bd rtl: formatting 2022-05-20 13:28:45 +02:00
Erik Arvstedt 571983a993 docs/services: improve lndconnect section 2022-05-20 13:28:45 +02:00
Erik Arvstedt 9649785dd5 docs/configuration: improve formatting
Join paragraphs that refer to the same topic.
2022-05-20 13:28:44 +02:00
Erik Arvstedt 3d32c0afeb docs/configuration: clarify description
It's not entirely clear what 'updating the secrets' means (it refers to
the previous step), so just remove this part.
2022-05-20 13:28:44 +02:00
Erik Arvstedt 107ee27be3 docs/configuration: improve wording 2022-05-20 13:28:44 +02:00
Erik Arvstedt e2721a9039 examples/configuration.nix: update system.stateVersion 2022-05-20 13:28:42 +02:00
Erik Arvstedt 15288d58e1 lnd: rename var mnemonic -> seed
This matches lnd's terminology.
2022-05-17 13:19:38 +02:00
Erik Arvstedt 84fe731c94 treewide: curl: exit with error status on HTTP errors
This makes scripts fail early on request errors.
Previously, curl exited with status 0 when enountering HTTP error status
codes.
`-fsS` equals `--fail --silent --show-error`.
2022-05-17 13:19:38 +02:00
Erik Arvstedt 63b3eec9cd push-release.sh: fix pushing to master branch 2022-05-17 13:19:37 +02:00
Erik Arvstedt 3755b3ebea rtl: add option extraConfig for nodes
Also define rtl config as a Nix attrset that is converted to JSON
2022-05-15 21:25:32 +02:00
Erik Arvstedt ff228a604d rtl: change nodes options
- Move option `rtl.nodes.{lnd,clightning}` -> `rtl.nodes.{lnd,clightning}.enable`
  This is required by the next commit.

- Move option `rtl.loop` -> `rtl.nodes.lnd.loop`

- Only enable loop when `nodes.lnd` is enabled
2022-05-15 21:25:32 +02:00
Erik Arvstedt beae9f8df7 clightning-rest: 0.7.0 -> 0.7.2 2022-05-14 15:22:35 +02:00
Erik Arvstedt 4c2d908a38 rtl: 0.12.2-beta -> 0.12.3-beta 2022-05-14 15:22:35 +02:00
Erik Arvstedt 472bcf1565 pkgs-unstable: inherit system from stable pkgs
Previously, `builtins.defaultSystem` was implicitly used.
This fixes NixOS system builds for systems other than `defaultSystem`.
2022-05-11 10:04:55 +02:00
Erik Arvstedt e6bb281a88 services: set systemd list options as list values
This makes our list definitions mergeable with custom list values
set by users.
Previously, a module error ("value is a string while a list
was expected") was thrown instead.

This commit was partly auto-generated with this script:

#!/usr/bin/env ruby
Dir["**/*.nix"].each do |file|
  src = File.read(file)
  fixed = src.gsub(/ReadWritePaths *= *(.*?);/) do
    "ReadWritePaths = [ #{$1} ];"
  end
  File.write(file, fixed) if fixed != src
end
2022-05-07 20:37:02 +02:00
Erik Arvstedt 4b800605e0 add release branch
Use this as the default in the example flake.
2022-05-06 16:49:31 +02:00
Erik Arvstedt 8e1ad6e3a8 docs/services: update Zeus usage section, add clightning
The current Zeus version has native tor support, so Orbot is no longer required.
2022-05-06 16:26:40 +02:00
Erik Arvstedt 20c0194ade readme: add hint about github table of contents button 2022-05-06 16:26:40 +02:00
Erik Arvstedt e2fee4bf1a lnd-rest-onion-service.nix: move to lndconnect-onion.nix, add clightning support
Option `services.lnd.restOnionService.package` has been removed.
There's not much use in overriding the [lndconnect pkg](https://github.com/LN-Zap/lndconnect).
2022-05-06 16:26:40 +02:00
Erik Arvstedt acf5fe69ad add standalone clightning-rest service
- Rename `services.rtl.cl-rest` to `services.clightning-rest`.
  `clightning-rest` is generally useful for connecting external REST clients
  to clightning.

- Add a dedicated network namespace in netns-isolation.

- Add nodeinfo entry.

- Add datadir (which contains REST auth data) to backups.
2022-05-06 16:26:40 +02:00
Erik Arvstedt c30aa33c15 cl-rest: rename pkg to clightning-rest 2022-05-06 16:24:59 +02:00
Erik Arvstedt f234e59ca5 nbPython3Packages: fix clightning pkgs
Also enable tests for the pyln-* pkgs.
2022-05-06 13:36:06 +00:00
Erik Arvstedt 900836fe0d joinmarket: add private python package set
This is a nonfunctional refactoring commit.

It's needed because pkg `pyln-proto`, which is introduced in the next commit,
requires a different, incompatible version of `cryptography`, which
must be placed in a different python package set.
2022-05-06 13:35:32 +00:00
Erik Arvstedt ca834cce84 joinmarket: simplify pkgs
Remove unused dependencies.
2022-05-06 13:35:32 +00:00
Erik Arvstedt 408486ac9c tests: update nbxplorer 2022-05-06 13:35:28 +00:00
Erik Arvstedt aa21fb454e tests: disable btcpayserver.lbtc for regtest
Previously, in case of btcpayserver.lbtc on regtest, nbxplorer just
printed a log error while trying to generate liquidd regtest blocks.
Now nbxplorer exits with an error, so disable lbtc.
2022-05-06 13:35:27 +00:00
Erik Arvstedt 7de56b019f nbxplorer: use postgresql
The former DBTrie backend has been deprecated.
2022-05-06 13:35:27 +00:00
Erik Arvstedt 29d2ffc111 defaultHardening: allow clone3 system call
clone3 is the latest version of the clone system call, which is already
allowed.
clone3 is required by nbxplorer 2.3.20.
2022-05-06 13:35:23 +00:00