| { pkgs, ... }: |
| let |
| createUser = { username, realname, founder ? false, sudo ? false, ... }: { |
| description = realname; |
| extraGroups = ((if founder then [ "founder" ] else [ ]) |
| ++ (if founder || sudo then [ "wheel" ] else [ ])); |
| isNormalUser = true; |
| openssh.authorizedKeys.keyFiles = [ "./sshKeys/${username}" ]; |
| }; |
| |
| users = { |
| "coded" = { |
| realname = "Sam"; |
| founder = true; |
| }; |
| "minion" = { |
| realname = "Skyler"; |
| founder = true; |
| }; |
| "pineapplefan" = { |
| realname = "Ash"; |
| founder = true; |
| }; |
| "eek" = { |
| realname = "Nexus"; |
| sudo = true; |
| }; |
| }; |
| in { |
| users = { |
| mutableUsers = false; |
| motd = '' |
| Welcome to Clicks! Please make sure to follow all guidelines for using the server, which you can find by typing |
| `guidelines` in your terminal. In particular, please remember to use this server as minimally as possible (e.g. |
| by keeping as much of your work as is possible stateless and by using your personal |
| "${builtins.readFile ./texts/MOTD}" |
| ''; |
| defaultUserShell = pkgs.zsh; |
| users = |
| builtins.mapAttrs (name: value: createUser { username = name; } // value) |
| users; |
| groups = { }; |
| }; |
| } |