hosts/denna/configuration.nix (view raw)
1{ config, pkgs, lib, ... }:
2
3{
4 imports =
5 [
6 ./hardware-configuration.nix
7 ../ssh.nix
8 ];
9
10 boot.loader.systemd-boot.enable = true;
11 boot.loader.efi.canTouchEfiVariables = true;
12 systemd.network.wait-online.enable = false;
13
14 networking.hostName = "denna";
15 networking.networkmanager.enable = true;
16
17 time.timeZone = "Europe/Helsinki";
18
19 i18n.defaultLocale = "en_US.UTF-8";
20
21 i18n.extraLocaleSettings = {
22 LC_ADDRESS = "en_US.UTF-8";
23 LC_IDENTIFICATION = "en_US.UTF-8";
24 LC_MEASUREMENT = "en_US.UTF-8";
25 LC_MONETARY = "en_US.UTF-8";
26 LC_NAME = "en_US.UTF-8";
27 LC_NUMERIC = "en_US.UTF-8";
28 LC_PAPER = "en_US.UTF-8";
29 LC_TELEPHONE = "en_US.UTF-8";
30 LC_TIME = "en_US.UTF-8";
31 };
32
33 sound.enable = true;
34 hardware.pulseaudio.enable = true;
35 hardware.opengl = {
36 enable = true;
37 extraPackages = with pkgs; [
38 intel-media-driver
39 vaapiIntel
40 vaapiVdpau
41 libvdpau-va-gl
42 intel-compute-runtime
43 ];
44 };
45
46 security = {
47 doas.enable = true;
48 sudo.enable = true;
49 doas.extraConfig = ''
50 permit nopass :wheel
51 '';
52 doas.extraRules = [{
53 users = [ "icy" ];
54 }];
55 };
56
57 users.users.icy = {
58 isNormalUser = true;
59 description = "icy";
60 extraGroups = [ "networkmanager" "wheel" "docker" ];
61 packages = with pkgs; [ ];
62 };
63
64 users.users.git = {
65 isNormalUser = true;
66 description = "git";
67 extraGroups = [ "networkmanager" "wheel" ];
68 homeMode = "755";
69 packages = with pkgs; [ ];
70 };
71
72
73 nixpkgs.config.allowUnfree = true;
74 environment.systemPackages = with pkgs; [
75 vim
76 wget
77 git
78 nfs-utils
79 ];
80
81 services = {
82 openssh.enable = true;
83 tailscale.enable = true;
84 # nix-snapshotter.enable = true;
85 };
86
87 services.k3s = let address = "100.77.4.74"; in {
88 enable = true;
89 role = "agent";
90 extraFlags = "--node-ip=${address} --node-external-ip=${address} --flannel-iface=tailscale0";
91 serverAddr = "https://sini:6443";
92 tokenFile = "/var/lib/rancher/k3s/token";
93 };
94
95 services.openiscsi = {
96 enable = true;
97 name = config.networking.hostName;
98 };
99
100 environment.etc = {
101 "rancher/k3s/registries.yaml" = {
102 text = ''
103 mirrors:
104 sini:5000:
105 endpoint:
106 - "http://sini:5000"
107 '';
108 };
109 };
110
111 systemd.tmpfiles.rules = [
112 "L+ /usr/local/bin - - - - /run/current-system/sw/bin/"
113 ];
114
115 nix.settings.experimental-features = [ "nix-command" "flakes" ];
116 system.stateVersion = "24.05";
117}
118