Configuration for my NixOS based systems and Home Manager
1{ pkgs, lib, ... }:
2{
3 # Declarative only optoins.
4 # I don't want to allow ad-hoc modifying users on the system.
5 # Users must be declared either as part of a package or in this file.
6 users.mutableUsers = false;
7
8 # Define a user account. Don't forget to set a password with ‘passwd’.
9 users.users.noah = {
10 isNormalUser = true;
11 shell = pkgs.fish;
12 extraGroups = [
13 "wheel"
14 "video"
15 "render"
16 "nas"
17 "nats"
18 "litterbox"
19 "httpd"
20 ]; # Enable ‘sudo’ for the user.
21 hashedPasswordFile = "/etc/nixos/noah-password";
22 openssh.authorizedKeys.keys = lib.strings.splitString "\n" (
23 builtins.readFile (
24 builtins.fetchurl {
25 url = "https://meta.sr.ht/~chiefnoah.keys";
26 name = "chiefnoah.keys";
27 # Update this with:
28 # `curl https://meta.sr.ht/~chiefnoah.keys | sha256sum`
29 sha256 = "0s16lykn9ysd7wxqckhahqf8cjb9mv39ymf6xy0hb92nb40sfn68";
30 }
31 )
32 );
33 };
34
35 users.groups.nas.gid = 1001;
36 users.groups.httpd.gid = 1002;
37 users.groups.litterbox.gid = 1003;
38}