From da1148595fe8d3d937a3856aa845a4dd080a047f Mon Sep 17 00:00:00 2001 From: Jonas Nick Date: Sat, 1 Dec 2018 22:00:39 +0000 Subject: [PATCH] Clean up a bit --- configuration.nix | 52 +++++------------------------------------- modules/nixbitcoin.nix | 41 +++++++++++++++------------------ 2 files changed, 24 insertions(+), 69 deletions(-) diff --git a/configuration.nix b/configuration.nix index 3787556..95c4b77 100644 --- a/configuration.nix +++ b/configuration.nix @@ -4,7 +4,7 @@ { config, pkgs, ... }: let - # custom packages + # Custom packages nodeinfo = (import pkgs/nodeinfo.nix); lightning-charge = import pkgs/lightning-charge.nix { inherit pkgs; }; nanopos = import pkgs/nanopos.nix { inherit pkgs; }; @@ -16,21 +16,16 @@ in { ./modules/nixbitcoin.nix ]; - # turn off binary cache by passing the empty list - #nix.binaryCaches = []; + # turn off binary cache by setting binaryCaches to empty list + # nix.binaryCaches = []; networking.hostName = "nix-bitcoin"; # Define your hostname. time.timeZone = "UTC"; environment.systemPackages = with pkgs; [ - vim tmux clightning bitcoin - nodeinfo - jq - lightning-charge.package - nanopos.package - nodejs-8_x - nginx + vim tmux ]; + nixpkgs.config.packageOverrides = pkgs: { inherit nodeinfo; inherit lightning-charge; @@ -38,45 +33,10 @@ in { }; services.openssh.enable = true; - -# users.users.root = { -# openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILacgZRwLsiICNHGHY2TG2APeuxFsrw6Cg13ZTMQpNqA nickler@rick" ]; -# }; - - # networking.firewall.allowedUDPPorts = [ ... ]; networking.firewall.enable = true; - networking.firewall.allowedTCPPorts = [ ]; - - #services.bitcoin.proxy = services.tor.client.socksListenAddress; services.nixbitcoin.enable = true; - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Select internationalisation properties. - # i18n = { - # consoleFont = "Lat2-Terminus16"; - # consoleKeyMap = "us"; - # defaultLocale = "en_US.UTF-8"; - # }; - - - # List packages installed in system profile. To search, run: - # $ nix search wget - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; - - # List services that you want to enable: - - - # Open ports in the firewall. - # Or disable the firewall altogether. - - # This value determines the NixOS release with which your system is to be + # This value determines the NixOS release with which your system is to be # compatible, in order to avoid breaking some software such as database # servers. You should change this only after NixOS release notes say you # should. diff --git a/modules/nixbitcoin.nix b/modules/nixbitcoin.nix index 13aceed..02fdfc7 100644 --- a/modules/nixbitcoin.nix +++ b/modules/nixbitcoin.nix @@ -7,6 +7,7 @@ let in { imports = [ + # Tor module from nixpkgs but with HiddenService v3 ./tor.nix ./bitcoind.nix ./clightning.nix @@ -26,18 +27,22 @@ in { }; config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + vim tmux clightning bitcoin + nodeinfo + jq + lightning-charge.package + nanopos.package + nodejs-8_x + nginx + ]; + # Add bitcoinrpc group users.groups.bitcoinrpc = {}; # Tor services.tor.enable = true; services.tor.client.enable = true; - services.tor.hiddenServices.bitcoind = { - map = [{ - port = config.services.bitcoind.port; - }]; - version = 3; - }; # bitcoind services.bitcoind.enable = true; @@ -51,6 +56,12 @@ in { discover=0 ''; services.bitcoind.prune = 2000; + services.tor.hiddenServices.bitcoind = { + map = [{ + port = config.services.bitcoind.port; + }]; + version = 3; + }; # clightning services.clightning = { @@ -69,23 +80,7 @@ in { services.nanopos.enable = true; services.nixbitcoin-webindex.enable = true; - # nodeinfo - systemd.services.nodeinfo = { - description = "Get node info"; - wantedBy = [ "multi-user.target" ]; - after = [ "clightning.service" "tor.service" ]; - path = [ pkgs.clightning pkgs.jq pkgs.sudo ]; - serviceConfig = { - ExecStart="${pkgs.bash}/bin/bash ${pkgs.nodeinfo}/bin/nodeinfo > /var/lib/nodeinfo.sh"; - User = "root"; - Type = "simple"; - RemainAfterExit="yes"; - Restart = "on-failure"; - RestartSec = "10s"; - }; - }; - - # Define a user account. Don't forget to set a password with ‘passwd’. + # Create user operator which can use bitcoin-cli and lightning-cli users.users.operator = { isNormalUser = true; extraGroups = [ "clightning" config.services.bitcoind.group ];