{ config, lib, ... }: let readKeys = k: lib.trivial.pipe k [ builtins.readFile (lib.strings.splitString "\n") (lib.filter (s: s != "")) ]; in { users.groups = { # group for publishing web data "www-data" = {}; }; users.motd = '' welcome to the simatime network! your host is '${config.networking.hostName}' ''; users.mutableUsers = false; users.users = { # # bots # deploy = { isNormalUser = true; home = "/home/deploy"; openssh.authorizedKeys.keys = readKeys ./Keys/Deploy.pub; extraGroups = [ "wheel" ]; }; # # humans # root.openssh.authorizedKeys.keys = readKeys ./Keys/Ben.pub; ben = { description = "Ben Sima"; isNormalUser = true; home = "/home/ben"; openssh.authorizedKeys.keys = readKeys ./Keys/Ben.pub; extraGroups = [ "wheel" "docker" "bitcoind-mainnet" ]; hashedPassword = "$6$SGhdoRB6DhWe$elW8RQE1ebe8JKf1ALW8jGZTPCyn2rpq/0J8MV/A9y8qFMEhA.Z2eiexMgptohZAK5kcGOc6HIUgNzJqnDUvY."; }; nick = { description = "Nick Sima"; isNormalUser = true; home = "/home/nick"; openssh.authorizedKeys.keys = readKeys ./Keys/Nick.pub; extraGroups = [ "docker" ]; }; }; }