]> Git — Sourcephile - julm/julm-nix.git/blob - hosts/aubergine.nix
upower: use instead of powertop which draws ~0.3W more
[julm/julm-nix.git] / hosts / aubergine.nix
1 { config, pkgs, lib, inputs, hostName, ... }:
2 {
3 imports = [
4 #../nixos/profiles/debug.nix
5 ../nixos/profiles/lang-fr.nix
6 ../nixos/profiles/security.nix
7 ../nixos/profiles/system.nix
8 #../nixos/profiles/tor.nix
9 aubergine/hardware.nix
10 aubergine/networking.nix
11 ];
12
13 # Lower kernel's security for better performances
14 boot.kernelParams = [ "mitigations=off" ];
15
16 # Setting the machine-id avoids to reencrypt all credentials
17 # when reinstalling NixOS on a new drive.
18 environment.etc.machine-id.source = aubergine/machine-id;
19
20 home-manager.users.julm = {
21 imports = [ ../homes/julm.nix ];
22 };
23 systemd.services.home-manager-julm.postStart = ''
24 ${pkgs.nix}/bin/nix-env --delete-generations +1 --profile /nix/var/nix/profiles/per-user/julm/home-manager
25 '';
26 users.users.julm = {
27 isNormalUser = true;
28 uid = 1000;
29 # Put the hashedPassword in /nix/store, but it will also be in /etc/passwd
30 # which is already world readable.
31 # printf %s $(mkpasswd -m md5crypt)
32 hashedPassword = lib.readFile aubergine/users/julm/login/hashedPassword.clear;
33 extraGroups = [
34 "adbusers"
35 "dialout"
36 "networkmanager"
37 "tor"
38 "wheel"
39 ];
40 # If created, zfs-mount.service would require:
41 # zfs set overlay=yes ${hostName}/home
42 createHome = true;
43 openssh.authorizedKeys.keys = map lib.readFile [
44 ../users/root/ssh/losurdo.pub
45 ../users/julm/ssh/losurdo.pub
46 ../users/julm/ssh/oignon.pub
47 ../users/julm/ssh/redmi.pub
48 ];
49 };
50 users.users.root = {
51 hashedPassword = "!";
52 openssh.authorizedKeys.keys =
53 config.users.users.julm.openssh.authorizedKeys.keys;
54 };
55
56 #systemd.services.nix-daemon.serviceConfig.LoadCredentialEncrypted =
57 # "secret-key-files:" + aubergine/nix/secret-key-files;
58 nix = {
59 extraOptions = ''
60 #secret-key-files = /run/credentials/nix-daemon.service/secret-key-files.pem
61 '';
62 settings = {
63 trusted-users = [ config.users.users."julm".name ];
64 substituters = [
65 #"http://nix-localcache.losurdo.wg"
66 #"ssh://nix-ssh@losurdo.wg?priority=30"
67 #"ssh://nix-ssh@oignon.wg?priority=30"
68 ];
69 trusted-public-keys = map lib.readFile [
70 ../users/root/nix/oignon.pub
71 ];
72 };
73 nixPath = lib.mkForce [ "nixpkgs=${inputs.nixpkgs}" ];
74 };
75 #environment.etc."nixpkgs".source = pkgs.path;
76 #environment.etc."nixpkgs-overlays".source = inputs.self + "/nixpkgs";
77
78 nix.settings.allowed-users = [ config.users.users."nix-ssh".name ];
79 nix.sshServe = {
80 enable = true;
81 keys = map lib.readFile [
82 ../users/julm/ssh/losurdo.pub
83 ../users/sevy/ssh/patate.pub
84 ../users/julm/ssh/oignon.pub
85 ];
86 };
87
88 environment.systemPackages = [
89 ];
90
91 boot.extraModulePackages = [
92 #config.boot.kernelPackages.v4l2loopback
93 ];
94
95 # This value determines the NixOS release with which your system is to be
96 # compatible, in order to avoid breaking some software such as database
97 # servers. You should change this only after NixOS release notes say you should.
98 system.stateVersion = "22.11"; # Did you read the comment?
99 }