chore: newest extra modules update
This commit is contained in:
parent
ebb24bace9
commit
ffd869b97d
61
flake.lock
61
flake.lock
|
@ -909,6 +909,43 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lib-net": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1596309860,
|
||||||
|
"narHash": "sha256-izAzepR/6cDvnRfaa2ceSolMLMwqzQB5x9q62aR5J2g=",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://gist.github.com/duairc/5c9bb3c922e5d501a1edb9e7b3b845ba/archive/3885f7cd9ed0a746a9d675da6f265d41e9fd6704.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://gist.github.com/duairc/5c9bb3c922e5d501a1edb9e7b3b845ba/archive/3885f7cd9ed0a746a9d675da6f265d41e9fd6704.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"microvm": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"spectrum": "spectrum"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1704120350,
|
||||||
|
"narHash": "sha256-s5BOPAnVc4e/4WvGDeeF3VSLAWzBUB+YW6fJb3pFbRw=",
|
||||||
|
"owner": "astro",
|
||||||
|
"repo": "microvm.nix",
|
||||||
|
"rev": "d5553b1388f2947915c4cec6249b89474046573a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "astro",
|
||||||
|
"repo": "microvm.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-darwin": {
|
"nix-darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -1012,17 +1049,18 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell_3",
|
"devshell": "devshell_3",
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_4",
|
||||||
|
"lib-net": "lib-net",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"pre-commit-hooks": "pre-commit-hooks_2"
|
"pre-commit-hooks": "pre-commit-hooks_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704474098,
|
"lastModified": 1704938286,
|
||||||
"narHash": "sha256-qeSqlbSQAhvtcBsn0SUpAiGwAqVLMbxOkm6NX+NHNPI=",
|
"narHash": "sha256-/uv+N2v5ixqYz7SG8R5GWOTdrNKboHEp85BR5Jdz6qE=",
|
||||||
"owner": "oddlama",
|
"owner": "oddlama",
|
||||||
"repo": "nixos-extra-modules",
|
"repo": "nixos-extra-modules",
|
||||||
"rev": "7013e9116ddfde2e39a16b6ae8c26d869e2dbe98",
|
"rev": "c55f465ba1f369852ab4122a9fa42c85b4a571de",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1408,6 +1446,7 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
|
"microvm": "microvm",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixos-extra-modules": "nixos-extra-modules",
|
"nixos-extra-modules": "nixos-extra-modules",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
|
@ -1448,6 +1487,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"spectrum": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703273931,
|
||||||
|
"narHash": "sha256-CJ1Crdi5fXHkCiemovsp20/RC4vpDaZl1R6V273FecI=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "97e2f3429ee61dc37664b4d096b2fec48a57b691",
|
||||||
|
"revCount": 597,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
|
}
|
||||||
|
},
|
||||||
"spicetify-nix": {
|
"spicetify-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_7",
|
"flake-utils": "flake-utils_7",
|
||||||
|
|
|
@ -12,6 +12,11 @@
|
||||||
url = "github:oddlama/nixos-extra-modules";
|
url = "github:oddlama/nixos-extra-modules";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
microvm = {
|
||||||
|
url = "github:astro/microvm.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.flake-utils.follows = "flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
# to prevent multiple instances of systems
|
# to prevent multiple instances of systems
|
||||||
systems.url = "github:nix-systems/default";
|
systems.url = "github:nix-systems/default";
|
||||||
|
@ -103,6 +108,7 @@
|
||||||
devshell,
|
devshell,
|
||||||
wired-notify,
|
wired-notify,
|
||||||
nixvim,
|
nixvim,
|
||||||
|
nixos-extra-modules,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
|
@ -144,6 +150,7 @@
|
||||||
++ import ./pkgs
|
++ import ./pkgs
|
||||||
++ [
|
++ [
|
||||||
# nixpkgs-wayland.overlay
|
# nixpkgs-wayland.overlay
|
||||||
|
nixos-extra-modules.overlays.default
|
||||||
devshell.overlays.default
|
devshell.overlays.default
|
||||||
agenix-rekey.overlays.default
|
agenix-rekey.overlays.default
|
||||||
wired-notify.overlays.default
|
wired-notify.overlays.default
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partEfiBoot "boot" "0%" "2GiB")
|
(partEfi "boot" "0%" "2GiB")
|
||||||
(partSwap "swap" "2GiB" "18GiB")
|
(partSwap "swap" "2GiB" "18GiB")
|
||||||
(partLuksZfs "rpool" "rpool" "18GiB" "100%")
|
(partLuksZfs "m2-ssd" "rpool" "18GiB" "100%")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -25,16 +25,14 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partLuksZfs "panzer" "panzer" "0%" "100%")
|
(partLuksZfs "sata-hdd" "panzer" "0%" "100%")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
zpool = with lib.disko.zfs; {
|
zpool = with lib.disko.zfs; {
|
||||||
rpool = defaultZpoolOptions // {datasets = defaultZfsDatasets;};
|
rpool = mkZpool {datasets = impermanenceZfsDatasets;};
|
||||||
panzer =
|
panzer = mkZpool {
|
||||||
defaultZpoolOptions
|
|
||||||
// {
|
|
||||||
datasets = {
|
datasets = {
|
||||||
"local" = unmountable;
|
"local" = unmountable;
|
||||||
"local/state" = filesystem "/panzer/state";
|
"local/state" = filesystem "/panzer/state";
|
||||||
|
@ -45,6 +43,4 @@
|
||||||
fileSystems."/state".neededForBoot = true;
|
fileSystems."/state".neededForBoot = true;
|
||||||
fileSystems."/persist".neededForBoot = true;
|
fileSystems."/persist".neededForBoot = true;
|
||||||
fileSystems."/panzer/state".neededForBoot = true;
|
fileSystems."/panzer/state".neededForBoot = true;
|
||||||
boot.initrd.luks.devices.enc-rpool.allowDiscards = true;
|
|
||||||
boot.initrd.luks.devices.enc-panzer.allowDiscards = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,5 +25,4 @@
|
||||||
};
|
};
|
||||||
fileSystems."/state".neededForBoot = true;
|
fileSystems."/state".neededForBoot = true;
|
||||||
fileSystems."/persist".neededForBoot = true;
|
fileSystems."/persist".neededForBoot = true;
|
||||||
boot.initrd.luks.devices.enc-rpool.allowDiscards = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
inputs: [
|
inputs: [
|
||||||
(import ./disko.nix inputs)
|
|
||||||
(import ./containers.nix inputs)
|
(import ./containers.nix inputs)
|
||||||
(import ./misc.nix inputs)
|
(import ./misc.nix inputs)
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
_inputs: _self: super: {
|
|
||||||
lib =
|
|
||||||
super.lib
|
|
||||||
// {
|
|
||||||
disko = {
|
|
||||||
gpt = {
|
|
||||||
partGrub = name: start: end: {
|
|
||||||
inherit name start end;
|
|
||||||
part-type = "primary";
|
|
||||||
flags = ["bios_grub"];
|
|
||||||
};
|
|
||||||
partEfiBoot = name: start: end: {
|
|
||||||
inherit name start end;
|
|
||||||
fs-type = "fat32";
|
|
||||||
bootable = true;
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
partSwap = name: start: end: {
|
|
||||||
inherit name start end;
|
|
||||||
fs-type = "linux-swap";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
randomEncryption = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
partLuksZfs = name: pool: start: end: {
|
|
||||||
inherit start end;
|
|
||||||
name = "enc-${name}";
|
|
||||||
content = {
|
|
||||||
type = "luks";
|
|
||||||
name = "enc-${name}";
|
|
||||||
extraOpenArgs = ["--allow-discards"];
|
|
||||||
content = {
|
|
||||||
type = "zfs";
|
|
||||||
inherit pool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
zfs = rec {
|
|
||||||
defaultZpoolOptions = {
|
|
||||||
type = "zpool";
|
|
||||||
rootFsOptions = {
|
|
||||||
compression = "zstd";
|
|
||||||
acltype = "posix";
|
|
||||||
atime = "off";
|
|
||||||
xattr = "sa";
|
|
||||||
dnodesize = "auto";
|
|
||||||
mountpoint = "none";
|
|
||||||
canmount = "off";
|
|
||||||
devices = "off";
|
|
||||||
};
|
|
||||||
options.ashift = "12";
|
|
||||||
};
|
|
||||||
defaultZfsDatasets = {
|
|
||||||
"local" = unmountable;
|
|
||||||
"local/root" =
|
|
||||||
filesystem "/"
|
|
||||||
// {
|
|
||||||
postCreateHook = "zfs snapshot rpool/local/root@blank";
|
|
||||||
};
|
|
||||||
"local/nix" = filesystem "/nix";
|
|
||||||
"local/state" = filesystem "/state";
|
|
||||||
"safe" = unmountable;
|
|
||||||
"safe/containers" = unmountable;
|
|
||||||
"safe/persist" = filesystem "/persist";
|
|
||||||
};
|
|
||||||
unmountable = {type = "zfs_fs";};
|
|
||||||
filesystem = mountpoint: {
|
|
||||||
type = "zfs_fs";
|
|
||||||
options = {
|
|
||||||
canmount = "noauto";
|
|
||||||
inherit mountpoint;
|
|
||||||
};
|
|
||||||
inherit mountpoint;
|
|
||||||
# needed for initrd dependency
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
20
lib/misc.nix
20
lib/misc.nix
|
@ -1,30 +1,10 @@
|
||||||
_inputs: _self: super: let
|
_inputs: _self: super: let
|
||||||
inherit
|
|
||||||
(super.lib)
|
|
||||||
unique
|
|
||||||
foldl'
|
|
||||||
filter
|
|
||||||
;
|
|
||||||
|
|
||||||
# Counts how often each element occurrs in xs.
|
|
||||||
# Elements must be strings.
|
|
||||||
countOccurrences =
|
|
||||||
foldl'
|
|
||||||
(acc: x: acc // {${x} = (acc.${x} or 0) + 1;})
|
|
||||||
{};
|
|
||||||
# Returns all elements in xs that occur at least twice
|
|
||||||
duplicates = xs: let
|
|
||||||
occurrences = countOccurrences xs;
|
|
||||||
in
|
|
||||||
unique (filter (x: occurrences.${x} > 1) xs);
|
|
||||||
writeText = text: (super.writeText (builtins.hashString "sha256" "${text}") "${text}");
|
writeText = text: (super.writeText (builtins.hashString "sha256" "${text}") "${text}");
|
||||||
in {
|
in {
|
||||||
lib =
|
lib =
|
||||||
super.lib
|
super.lib
|
||||||
// {
|
// {
|
||||||
inherit
|
inherit
|
||||||
countOccurrences
|
|
||||||
duplicates
|
|
||||||
writeText
|
writeText
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{lib, ...}: let
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit
|
inherit
|
||||||
(lib)
|
(lib)
|
||||||
mkOption
|
mkOption
|
||||||
|
@ -10,18 +6,9 @@
|
||||||
;
|
;
|
||||||
in {
|
in {
|
||||||
options.node = {
|
options.node = {
|
||||||
name = mkOption {
|
|
||||||
description = "A unique name for this node (host) in the repository. Defines the default hostname, but this can be overwritten.";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
secretsDir = mkOption {
|
secretsDir = mkOption {
|
||||||
description = "Path to the secrets directory for this node.";
|
description = "Path to the secrets directory for this node.";
|
||||||
type = types.path;
|
type = types.path;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
|
||||||
networking.hostName = config.node.name;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,7 @@ in {
|
||||||
database.createLocally = true;
|
database.createLocally = true;
|
||||||
phpOptions."opcache.interned_strings_buffer" = "32";
|
phpOptions."opcache.interned_strings_buffer" = "32";
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
|
default_phone_region = "DE";
|
||||||
trusted_proxies = ["192.168.178.32"];
|
trusted_proxies = ["192.168.178.32"];
|
||||||
overwriteprotocol = "https";
|
overwriteprotocol = "https";
|
||||||
enabledPreviewProviders = [
|
enabledPreviewProviders = [
|
||||||
|
@ -92,7 +93,6 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
defaultPhoneRegion = "DE";
|
|
||||||
dbtype = "pgsql";
|
dbtype = "pgsql";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue