Commit Graph

95 Commits

Author SHA1 Message Date
Erik Arvstedt
7d1797cec7 clightning: add option 'extraConfig' 2020-10-16 16:46:56 +02:00
Erik Arvstedt
9aa19c3fdd extract operator module 2020-10-16 16:46:55 +02:00
Jonas Nick
322ba5bfff Add nix-bitcoin.lib for utility functions and types 2020-08-20 21:31:24 +00:00
nixbitcoin
43da15557d clightning: refactor bind-addr to be IP address only
With typecheck
2020-08-04 14:07:02 +00:00
nixbitcoin
d99ccc8445 clightning: add bindport option 2020-08-04 12:42:57 +00:00
nixbitcoin
5a978a2836 bitcoind: switch from rpcpassword to rpcauth
Includes bitcoind's `share/rpcauth` to convert apg generated passwords
into salted HMAC-SHA-256 hashed passwords.
2020-07-28 14:32:47 +00:00
nixbitcoin
3c0c446547 clightning: add netns
- Adds clightning to netns-isolation.services
- Adds bitcoin-rpcconnect option to allow using clightning with network
  namespaces
- Uses bind-addr option (defaults to localhost) as target of hidden service
- Adds different bind-addr options depending on if netns-isolation is
  enabled or not.
2020-07-21 09:38:30 +00:00
nixbitcoin
ae1230e13b clightning: remove bitcoin-rpcuser option
Simplifies the clightning module.
2020-07-21 09:38:28 +00:00
nixbitcoin
65b5dab3d4 clightning: add announce-tor
From the clightning manpage:

autolisten=BOOL By default, we bind (and maybe announce) on IPv4 and
IPv6 interfaces if no addr, bind-addr or  announce-addr options  are
specified. Setting this to false disables that.

We already set bind-addr by default, so autolisten had no effect.
Therefore, this commit replaces autolisten with the more granular
announce-addr option.

For now we are Tor-only, so we only need to announce our hidden service
to accept incoming connections. In the future, we can add clearnet
connectivity with `addr` and route connections into our netns with NAT.
2020-07-21 09:38:26 +00:00
nixbitcoin
1c75543f2f clightning: add user and group options 2020-05-22 16:16:17 +00:00
nixbitcoin
a040e52854 All modules: ProtectSystem = strict
Add ReadWritePaths in all modules, except lnd which has ProtectSystem =
full.
2020-05-22 15:47:01 +00:00
nixbitcoin
adc71b892e Remove PermissionStartOnly where possible and replace with bitcoinrpc
Remove PermissionsStartOnly for bitcoind and spark-wallet (it was never
needed there)

Give reason for PermissionsStartOnly in lightning-charge

Replace PermissionsStartOnly in clightning, electrs and liquid
2020-05-22 15:04:49 +00:00
nixbitcoin
91b6b2c370 All modules with preStart: Use systemd.tmpfiles.rules
This is NixOS' recommended way to setup service dirs
https://github.com/NixOS/nixpkgs/pull/56265. This commit hands off the
initial data directory creation to systemd.tmpfiles.rules. All other
preStart scripts are left intact to limit this changes' scope.
2020-05-22 14:54:39 +00:00
nixbitcoin
7c70dd43ac All modules: Give service config precedence over defaultHardening
With '//' the latter takes precedence over the former in case of
equally named attributes.
2020-05-22 08:08:27 +00:00
nixbitcoin
0ba55757f8 clightning: allow group access to RPC socket 2020-05-19 11:13:12 +00:00
nixbitcoin
304dd297ba clightning: remove config group read access 2020-05-19 11:13:05 +00:00
nixbitcoin
04c6936ce9 clightning: Remove clightning "bitcoinrpc" membership
Secrets are written to clightning config file during preStart with root
permissions because of PermissionsStartOnly.
2020-05-19 11:09:13 +00:00
nixbitcoin
159f551b93 Remove bitcoin, clightning, electrs, liquid user home directory 2020-04-26 14:08:08 +02:00
Erik Arvstedt
37b2faf63c move systemPackages definitions to services
These are generally useful and shouldn't be limited to secure-node.nix.

Also, only add the hardware-wallets group when hardware wallets are enabled.
2020-04-08 17:35:14 +02:00
Erik Arvstedt
eaaa6b8701 clightning: update to v0.8.0
To continue using inotify would be too complicated because we would also need to
monitor the creation of the 'bitcoin' subdirectory.
2020-01-15 23:13:19 +00:00
Erik Arvstedt
826245484e make secrets dir location configurable
Users of the nix-bitcoin modules shouldn't be forced to add an extra
dir under root.
The secrets location is unchanged for the default node config.
2020-01-13 00:25:12 +01:00
Erik Arvstedt
86167c6e6d clightning: wait until the RPC socket appears
This fixes failures with spark-wallet which requires clightning RPC
2020-01-12 20:02:02 +01:00
Erik Arvstedt
1833b15888 clightning: add cli option
An executable is more robust to use than shell aliases.

This is also a preparation for commit 'add module test' because the
NixOS testing framework makes interactive aliases hard to use: It
unsets 'PS1' which is used by programs/bash/bash.nix to detect
interactive shells.
2020-01-12 20:02:02 +01:00
Erik Arvstedt
f0a36fe0c7 add 'nix-bitcoin-services' option
1. Makes the content easily accessible for module users
2. Avoids needlessly recalculating the attrset in every client module
2020-01-12 20:02:00 +01:00
Erik Arvstedt
760da232e0 add nix-bitcoin pkgs namespace
Not polluting the main pkgs namespace with internal pkgs makes it
easier to integrate the nix-bitcoin modules into a larger config.

Also, by overriding the nix-bitcoin namespace, users can now easily set the
packages used by services that offer no explicit `package` option, like `clightning`.
2020-01-09 10:43:30 +01:00
Erik Arvstedt
3b842e5fe7 add nix-bitcoin-secrets.target
Remove use of nixops-specific 'keys' group and key services.
Instead:
- Add nix-bitcoin-secrets.target, which should be required by all
  units that depend on secrets. (To keep it simple, it's okay to meet
  the secrets dependency indirectly by e.g. depending on bitcoind.)

  Various secret deployment methods can use this target by
  setting up the secrets before activating the target.
  In case of nixops we just specify that nixops' keys.target comes
  before nix-bitcoin-secrets.target.

  If the target is left undefined in the case of manual secrets
  deployment, systemd will simply ignore unit dependencies on
  the target.

- Allow all users to access the secrets dir.
  The access protection for the individual secret files is unchanged.
  This allows us to drop the unit dependency on the nixops 'keys' group.
2020-01-09 10:43:29 +01:00
Erik Arvstedt
d61b185c3a simplify user and group definitions 2019-11-27 14:05:19 +01:00
Jonas Nick
8dd27b6334 Use types.str instead of types.string to avoid warning 2019-10-28 20:59:15 +00:00
Jonas Nick
c1d67c4cee Update nixpkgs 2019-10-07 11:53:05 +00:00
Jonas Nick
a5e10a82d8 Simplify clightning preStart 2019-08-19 20:39:13 +00:00
Jonas Nick
f1445c396e Use bitcoind consistently without GUI. The 'bitcoin' package includes the GUI. 2019-05-17 22:39:00 +00:00
Jonas Nick
eaaf8e9aab Use IPAddress{Allow,Deny} by default for systemd services 2019-04-28 13:15:17 +00:00
Jonas Nick
a089d65d25 Move service hardening flags into separate file 2019-04-28 13:15:12 +00:00
nixbitcoin
132703637c Tor proxy, always-use-proxy, bind to localhost clightning 2019-03-07 13:37:00 +01:00
nixbitcoin
9ada1d32f3 Incorproate PR comments, correct erroneous description in clightning module, add electrs module, add electrs package, add electrs to nix-bitcoin.nix, add electrs to modules/nix-bitcoin.nix 2019-01-04 10:44:03 +01:00
Jonas Nick
bca40e23b1 Indentation cleanups 2019-01-02 15:17:57 +00:00
Jonas Nick
d2e203918b Fix 'Remove unused paths in modules' 2019-01-02 11:23:43 +00:00
Jonas Nick
1c756379fb Remove unused paths in modules 2019-01-02 11:05:25 +00:00
Jonas Nick
3c7d0c66fb Add liquidd pruning 2018-12-06 10:45:45 +00:00
Jonas Nick
9ed888b9c2 Improve abstraction of deployment keys 2018-12-03 22:16:01 +00:00
Jonas Nick
c79aaf9695 Add liquid 2018-12-03 21:43:15 +00:00
Jonas Nick
95c706b1b0 Add operator user 2018-11-28 23:54:19 +00:00
Jonas Nick
94258c505e Make RPC password a secret 2018-11-28 22:58:36 +00:00
Jonas Nick
ac2be00c7f Add guest user with same ssh keys as root and fix nodeinfo not waiting for clightning to warm up 2018-11-23 15:49:13 +00:00
Jonas Nick
668d66085a signed commit 2018-11-22 23:06:07 +00:00