tangled
alpha
login
or
join now
isabelroses.com
/
dotfiles
12
fork
atom
my over complex system configurations
dotfiles.isabelroses.com/
nixos
nix
flake
dotfiles
linux
12
fork
atom
overview
issues
pulls
pipelines
profiles/{oracle,hetzner,upcloud}: init
isabelroses.com
3 months ago
c258f177
4fcbf683
+77
-217
18 changed files
expand all
collapse all
unified
split
modules
generic
profiles.nix
home
profiles.nix
nixos
hardware
cloud
default.nix
hetzner
default.nix
garden.nix
networking.nix
oracle.nix
overrides.nix
upcloud.nix
systems
aphrodite
default.nix
hardware.nix
hephaestus
default.nix
hardware.nix
isis
default.nix
hardware.nix
minerva
default.nix
skadi
default.nix
hardware.nix
+1
-8
modules/generic/profiles.nix
···
8
8
headless.enable = mkEnableOption "Headless";
9
9
workstation.enable = mkEnableOption "Workstation";
10
10
laptop.enable = mkEnableOption "Laptop";
11
11
-
12
12
-
server = {
13
13
-
enable = mkEnableOption "Server";
14
14
-
15
15
-
# types of servers
16
16
-
oracle.enable = mkEnableOption "Oracle";
17
17
-
hetzner.enable = mkEnableOption "Hetzner";
18
18
-
};
11
11
+
server.enable = mkEnableOption "Server";
19
12
};
20
13
}
+1
-6
modules/home/profiles.nix
···
9
9
headless
10
10
workstation
11
11
laptop
12
12
+
server
12
13
;
13
13
-
14
14
-
server = {
15
15
-
inherit (cfg.server) enable;
16
16
-
oracle.enable = cfg.server.oracle.enable;
17
17
-
hetzner.enable = cfg.server.hetzner.enable;
18
18
-
};
19
14
};
20
15
21
16
programs.git.enable = lib.mkDefault cfg.workstation.enable;
+3
modules/nixos/hardware/cloud/default.nix
···
2
2
imports = [
3
3
# keep-sorted start
4
4
./hetzner
5
5
+
./oracle.nix
6
6
+
./overrides.nix
7
7
+
./upcloud.nix
5
8
# keep-sorted end
6
9
];
7
10
}
-1
modules/nixos/hardware/cloud/hetzner/default.nix
···
3
3
# keep-sorted start
4
4
./garden.nix
5
5
./networking.nix
6
6
-
./overrides.nix
7
6
# keep-sorted end
8
7
];
9
8
}
+6
-2
modules/nixos/hardware/cloud/hetzner/garden.nix
···
1
1
{ lib, config, ... }:
2
2
let
3
3
-
inherit (lib) mkIf;
3
3
+
inherit (lib) mkIf mkEnableOption;
4
4
5
5
-
cfg = config.garden.profiles.server.hetzner;
5
5
+
cfg = config.garden.profiles.hetzner;
6
6
in
7
7
{
8
8
+
options.garden.profiles.hetzner = {
9
9
+
enable = mkEnableOption "Hetzner Cloud profile";
10
10
+
};
11
11
+
8
12
config = mkIf cfg.enable {
9
13
garden = {
10
14
device.capabilities = {
+2
-2
modules/nixos/hardware/cloud/hetzner/networking.nix
···
2
2
let
3
3
inherit (lib) mkIf mkForce mkOption;
4
4
5
5
-
cfg = config.garden.profiles.server.hetzner;
5
5
+
cfg = config.garden.profiles.hetzner;
6
6
in
7
7
{
8
8
-
options.garden.profiles.server.hetzner = {
8
8
+
options.garden.profiles.hetzner = {
9
9
ipv4 = mkOption {
10
10
type = lib.types.str;
11
11
description = ''
+8
-4
modules/nixos/hardware/cloud/hetzner/overrides.nix
modules/nixos/hardware/cloud/overrides.nix
···
5
5
...
6
6
}:
7
7
let
8
8
-
inherit (lib.modules) mkIf mkForce;
9
9
-
cfg = config.garden.profiles.server.hetzner;
8
8
+
inherit (lib) mkIf mkForce;
9
9
+
enable =
10
10
+
config.garden.profiles.hetzner.enable
11
11
+
|| config.garden.profiles.upcloud.enable
12
12
+
|| config.garden.profiles.oracle.enable;
10
13
in
11
14
{
12
12
-
config = mkIf cfg.enable {
15
15
+
config = mkIf enable {
13
16
services = {
14
14
-
smartd.enable = mkForce false; # Unavailable - device lacks SMART capability.
17
17
+
# Unavailable - device lacks SMART capability.
18
18
+
smartd.enable = mkForce false;
15
19
16
20
# Needed by the Hetzner Cloud password reset feature
17
21
qemuGuest.enable = true;
+13
modules/nixos/hardware/cloud/oracle.nix
···
1
1
+
{ lib, config, ... }:
2
2
+
let
3
3
+
inherit (lib) mkForce mkEnableOption;
4
4
+
in
5
5
+
{
6
6
+
options.garden.profiles.oracle = {
7
7
+
enable = mkEnableOption "Oracle Cloud profile";
8
8
+
};
9
9
+
10
10
+
config = lib.mkIf config.garden.profiles.oracle.enable {
11
11
+
services.thermald.enable = mkForce false; # Unavailable - device lacks thermal sensors.
12
12
+
};
13
13
+
}
+23
modules/nixos/hardware/cloud/upcloud.nix
···
1
1
+
{ lib, config, ... }:
2
2
+
let
3
3
+
inherit (lib) mkIf mkEnableOption;
4
4
+
in
5
5
+
{
6
6
+
options.garden.profiles.upcloud = {
7
7
+
enable = mkEnableOption "UpCloud profile";
8
8
+
};
9
9
+
10
10
+
config = mkIf config.garden.profiles.upcloud.enable {
11
11
+
garden = {
12
12
+
device = {
13
13
+
cpu = "intel";
14
14
+
gpu = null;
15
15
+
};
16
16
+
17
17
+
system.boot = {
18
18
+
loader = "grub";
19
19
+
grub.device = "/dev/vda";
20
20
+
};
21
21
+
};
22
22
+
};
23
23
+
}
+1
-10
systems/aphrodite/default.nix
···
5
5
profiles = {
6
6
headless.enable = true;
7
7
server.enable = true;
8
8
-
};
9
9
-
10
10
-
device = {
11
11
-
cpu = "intel";
12
12
-
gpu = null;
13
13
-
};
14
14
-
15
15
-
system.boot = {
16
16
-
loader = "grub";
17
17
-
grub.device = "/dev/vda";
8
8
+
upcloud.enable = true;
18
9
};
19
10
20
11
services = {
-39
systems/aphrodite/hardware.nix
···
1
1
-
{ lib, ... }:
2
1
{
3
2
fileSystems."/" = {
4
3
device = "/dev/disk/by-uuid/ecbc167c-3bfe-4801-90c1-51c272d316c6";
···
8
7
swapDevices = [
9
8
{ device = "/dev/disk/by-uuid/a04ef6f2-82fe-4a8c-9273-fb80e7383dfa"; }
10
9
];
11
11
-
12
12
-
services = {
13
13
-
smartd.enable = lib.mkForce false;
14
14
-
qemuGuest.enable = true;
15
15
-
};
16
16
-
17
17
-
boot = {
18
18
-
loader.generationsDir.copyKernels = lib.mkForce false;
19
19
-
20
20
-
initrd = {
21
21
-
availableKernelModules = [
22
22
-
"ata_piix"
23
23
-
"uhci_hcd"
24
24
-
"xen_blkfront"
25
25
-
"vmw_pvscsi"
26
26
-
27
27
-
"virtio_net"
28
28
-
"virtio_pci"
29
29
-
"virtio_mmio"
30
30
-
"virtio_blk"
31
31
-
"virtio_scsi"
32
32
-
"9p"
33
33
-
"9pnet_virtio"
34
34
-
];
35
35
-
kernelModules = [
36
36
-
"nvme"
37
37
-
"virtio_balloon"
38
38
-
"virtio_console"
39
39
-
"virtio_rng"
40
40
-
"virtio_gpu"
41
41
-
];
42
42
-
};
43
43
-
44
44
-
loader.grub = {
45
45
-
useOSProber = lib.mkForce false;
46
46
-
efiSupport = lib.mkForce false;
47
47
-
};
48
48
-
};
49
10
}
+1
-10
systems/hephaestus/default.nix
···
5
5
profiles = {
6
6
headless.enable = true;
7
7
server.enable = true;
8
8
-
};
9
9
-
10
10
-
device = {
11
11
-
cpu = "intel";
12
12
-
gpu = null;
13
13
-
};
14
14
-
15
15
-
system.boot = {
16
16
-
loader = "grub";
17
17
-
grub.device = "/dev/vda";
8
8
+
upcloud.enable = true;
18
9
};
19
10
20
11
services = {
-39
systems/hephaestus/hardware.nix
···
1
1
-
{ lib, ... }:
2
1
{
3
2
fileSystems."/" = {
4
3
device = "/dev/disk/by-uuid/4d503c5f-c51a-4eca-993c-5beb9b85b963";
···
8
7
swapDevices = [
9
8
{ device = "/dev/disk/by-uuid/9455e246-4f8f-42cb-beb8-d1a071a1b5e0"; }
10
9
];
11
11
-
12
12
-
services = {
13
13
-
smartd.enable = lib.mkForce false;
14
14
-
qemuGuest.enable = true;
15
15
-
};
16
16
-
17
17
-
boot = {
18
18
-
loader.generationsDir.copyKernels = lib.mkForce false;
19
19
-
20
20
-
initrd = {
21
21
-
availableKernelModules = [
22
22
-
"ata_piix"
23
23
-
"uhci_hcd"
24
24
-
"xen_blkfront"
25
25
-
"vmw_pvscsi"
26
26
-
27
27
-
"virtio_net"
28
28
-
"virtio_pci"
29
29
-
"virtio_mmio"
30
30
-
"virtio_blk"
31
31
-
"virtio_scsi"
32
32
-
"9p"
33
33
-
"9pnet_virtio"
34
34
-
];
35
35
-
kernelModules = [
36
36
-
"nvme"
37
37
-
"virtio_balloon"
38
38
-
"virtio_console"
39
39
-
"virtio_rng"
40
40
-
"virtio_gpu"
41
41
-
];
42
42
-
};
43
43
-
44
44
-
loader.grub = {
45
45
-
useOSProber = lib.mkForce false;
46
46
-
efiSupport = lib.mkForce false;
47
47
-
};
48
48
-
};
49
10
}
+1
-10
systems/isis/default.nix
···
5
5
profiles = {
6
6
headless.enable = true;
7
7
server.enable = true;
8
8
-
};
9
9
-
10
10
-
device = {
11
11
-
cpu = "intel";
12
12
-
gpu = null;
13
13
-
};
14
14
-
15
15
-
system.boot = {
16
16
-
loader = "grub";
17
17
-
grub.device = "/dev/vda";
8
8
+
upcloud.enable = true;
18
9
};
19
10
20
11
services = {
-40
systems/isis/hardware.nix
···
1
1
-
{ lib, ... }:
2
1
{
3
3
-
4
2
fileSystems."/" = {
5
3
device = "/dev/disk/by-uuid/71fc32ae-cc42-4020-a9ab-03b2b79d89c5";
6
4
fsType = "ext4";
7
7
-
};
8
8
-
9
9
-
services = {
10
10
-
smartd.enable = lib.mkForce false;
11
11
-
qemuGuest.enable = true;
12
12
-
};
13
13
-
14
14
-
boot = {
15
15
-
loader.generationsDir.copyKernels = lib.mkForce false;
16
16
-
17
17
-
initrd = {
18
18
-
availableKernelModules = [
19
19
-
"ata_piix"
20
20
-
"uhci_hcd"
21
21
-
"xen_blkfront"
22
22
-
"vmw_pvscsi"
23
23
-
24
24
-
"virtio_net"
25
25
-
"virtio_pci"
26
26
-
"virtio_mmio"
27
27
-
"virtio_blk"
28
28
-
"virtio_scsi"
29
29
-
"9p"
30
30
-
"9pnet_virtio"
31
31
-
];
32
32
-
kernelModules = [
33
33
-
"nvme"
34
34
-
"virtio_balloon"
35
35
-
"virtio_console"
36
36
-
"virtio_rng"
37
37
-
"virtio_gpu"
38
38
-
];
39
39
-
};
40
40
-
41
41
-
loader.grub = {
42
42
-
useOSProber = lib.mkForce false;
43
43
-
efiSupport = lib.mkForce false;
44
44
-
};
45
5
};
46
6
}
+5
-6
systems/minerva/default.nix
···
7
7
garden = {
8
8
profiles = {
9
9
headless.enable = true;
10
10
-
server = {
10
10
+
server.enable = true;
11
11
+
12
12
+
hetzner = {
11
13
enable = true;
12
12
-
hetzner = {
13
13
-
enable = true;
14
14
-
ipv4 = "91.107.198.173";
15
15
-
ipv6 = "2a01:4f8:c012:2f67::1";
16
16
-
};
14
14
+
ipv4 = "91.107.198.173";
15
15
+
ipv6 = "2a01:4f8:c012:2f67::1";
17
16
};
18
17
};
19
18
+1
systems/skadi/default.nix
···
5
5
profiles = {
6
6
headless.enable = true;
7
7
server.enable = true;
8
8
+
oracle.enable = true;
8
9
};
9
10
10
11
device = {
+11
-40
systems/skadi/hardware.nix
···
1
1
{
2
2
-
lib,
3
3
-
pkgs,
4
4
-
modulesPath,
5
5
-
...
6
6
-
}:
7
7
-
let
8
8
-
inherit (lib.modules) mkForce;
9
9
-
in
10
10
-
{
11
11
-
imports = [
12
12
-
(modulesPath + "/profiles/qemu-guest.nix")
13
13
-
];
14
14
-
15
15
-
config = {
16
16
-
boot.initrd.availableKernelModules = [
17
17
-
"xhci_pci"
18
18
-
"virtio_scsi"
19
19
-
];
20
20
-
21
21
-
fileSystems = {
22
22
-
"/" = {
23
23
-
device = "/dev/disk/by-uuid/3ac0d35f-0807-4553-a17e-24b227f1a3b1";
24
24
-
fsType = "ext4";
25
25
-
};
26
26
-
27
27
-
"/boot" = {
28
28
-
device = "/dev/disk/by-uuid/ED86-8CB2";
29
29
-
fsType = "vfat";
30
30
-
options = [
31
31
-
"fmask=0022"
32
32
-
"dmask=0022"
33
33
-
];
34
34
-
};
2
2
+
fileSystems = {
3
3
+
"/" = {
4
4
+
device = "/dev/disk/by-uuid/3ac0d35f-0807-4553-a17e-24b227f1a3b1";
5
5
+
fsType = "ext4";
35
6
};
36
7
37
37
-
services = {
38
38
-
smartd.enable = mkForce false; # Unavailable - device lacks SMART capability.
39
39
-
thermald.enable = mkForce false; # Unavailable - device lacks thermal sensors.
40
40
-
41
41
-
qemuGuest.enable = true;
8
8
+
"/boot" = {
9
9
+
device = "/dev/disk/by-uuid/ED86-8CB2";
10
10
+
fsType = "vfat";
11
11
+
options = [
12
12
+
"fmask=0022"
13
13
+
"dmask=0022"
14
14
+
];
42
15
};
43
43
-
44
44
-
systemd.services.qemu-guest-agent.path = [ pkgs.shadow ];
45
16
};
46
17
}