Compare commits

...

8 Commits

Author SHA1 Message Date
h7x4
0d7f05e56d bicep/postgres: add cleanup timers 2026-05-21 04:14:34 +09:00
Daniel Olsen
4a67eddf52 bicep/matrix/livekit: open the rtc ports 2026-05-20 20:04:33 +02:00
h7x4
08a23bd380 base/hardening: ban a few more modules 2026-05-20 23:15:25 +09:00
h7x4
28b67c3578 base/mitigations: blacklist modules for copyfail and pintheft 2026-05-20 23:15:25 +09:00
Vegard Bieker Matthey
e5804c043a README: add gluttony 2026-05-20 06:24:26 +02:00
Vegard Bieker Matthey
9c227f3022 update gluttony IPs and boot device 2026-05-20 06:07:41 +02:00
Felix Albrigtsen
69fdf709d7 grr: fix the heccin quotes 2026-05-19 16:38:34 +02:00
Adrian G L
30ec70fa5f fix: ildkule grub duplicated devices, format nix files 2026-05-19 16:26:36 +02:00
14 changed files with 378 additions and 271 deletions

View File

@@ -39,6 +39,7 @@ revert the changes on the next nightly rebuild (tends to happen when everybody i
| bikkje | Virtual | Experimental login box | | bikkje | Virtual | Experimental login box |
| [brzeczyszczykiewicz][brz] | Physical | Shared music player | | [brzeczyszczykiewicz][brz] | Physical | Shared music player |
| [georg][geo] | Physical | Shared music player | | [georg][geo] | Physical | Shared music player |
| [gluttony][glu] | Virtual | General purpose compute |
| [ildkule][ild] | Virtual | Logging and monitoring host, prometheus, grafana, ... | | [ildkule][ild] | Virtual | Logging and monitoring host, prometheus, grafana, ... |
| [kommode][kom] | Virtual | Gitea + Gitea pages | | [kommode][kom] | Virtual | Gitea + Gitea pages |
| [lupine][lup] | Physical | Gitea CI/CD runners | | [lupine][lup] | Physical | Gitea CI/CD runners |
@@ -57,6 +58,7 @@ revert the changes on the next nightly rebuild (tends to happen when everybody i
[bic]: https://wiki.pvv.ntnu.no/wiki/Maskiner/bicep [bic]: https://wiki.pvv.ntnu.no/wiki/Maskiner/bicep
[brz]: https://wiki.pvv.ntnu.no/wiki/Maskiner/brzęczyszczykiewicz [brz]: https://wiki.pvv.ntnu.no/wiki/Maskiner/brzęczyszczykiewicz
[geo]: https://wiki.pvv.ntnu.no/wiki/Maskiner/georg [geo]: https://wiki.pvv.ntnu.no/wiki/Maskiner/georg
[glu]: https://wiki.pvv.ntnu.no/wiki/Maskiner/gluttony
[ild]: https://wiki.pvv.ntnu.no/wiki/Maskiner/ildkule [ild]: https://wiki.pvv.ntnu.no/wiki/Maskiner/ildkule
[kom]: https://wiki.pvv.ntnu.no/wiki/Maskiner/kommode [kom]: https://wiki.pvv.ntnu.no/wiki/Maskiner/kommode
[lup]: https://wiki.pvv.ntnu.no/wiki/Maskiner/lupine [lup]: https://wiki.pvv.ntnu.no/wiki/Maskiner/lupine

View File

@@ -7,7 +7,13 @@
"ax25" "ax25"
"batman-adv" "batman-adv"
"can" "can"
"dccp"
"ipx"
"llc"
"n-hdlc"
"netrom" "netrom"
"p8022"
"p8023"
"psnap" "psnap"
"rds" "rds"
"rose" "rose"
@@ -23,7 +29,6 @@
"cramfs" "cramfs"
"efs" "efs"
"exofs" "exofs"
"orangefs"
"freevxfs" "freevxfs"
"gfs2" "gfs2"
"hfs" "hfs"
@@ -35,10 +40,12 @@
"nilfs2" "nilfs2"
"ntfs" "ntfs"
"omfs" "omfs"
"orangefs"
"qnx4" "qnx4"
"qnx6" "qnx6"
"sysv" "sysv"
"ubifs" "ubifs"
"udf"
"ufs" "ufs"
# Legacy hardware # Legacy hardware

View File

@@ -1,17 +1,24 @@
{ ... }: { pkgs, lib, ... }:
let
modulesToBan = [
# copy.fail
"af_alg"
"algif_aead"
"algif_hash"
"algif_rng"
"algif_skcipher"
# dirtyfrag / Fragnesia
"esp4"
"esp6"
"rxrpc"
# PinTheft
"rds"
];
in
{ {
boot.blacklistedKernelModules = [ boot.blacklistedKernelModules = modulesToBan;
"rxrpc" # dirtyfrag
"esp6" # dirtyfrag boot.extraModprobeConfig = lib.concatMapStringsSep "\n" (mod: "install ${mod} ${lib.getExe' pkgs.coreutils "false"}") modulesToBan;
"esp4" # dirtyfrag
];
boot.extraModprobeConfig = ''
# dirtyfrag
install esp4 /bin/false
# dirtyfrag
install esp6 /bin/false
# dirtyfrag
install rxrpc /bin/false
'';
} }

486
flake.nix
View File

@@ -49,8 +49,14 @@
qotd.inputs.nixpkgs.follows = "nixpkgs"; qotd.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, nixpkgs, nixpkgs-unstable, sops-nix, disko, ... }@inputs: outputs = {
let self,
nixpkgs,
nixpkgs-unstable,
sops-nix,
disko,
...
} @ inputs: let
inherit (nixpkgs) lib; inherit (nixpkgs) lib;
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
@@ -71,182 +77,196 @@
in { in {
inputs = lib.mapAttrs (_: src: src.outPath) inputs; inputs = lib.mapAttrs (_: src: src.outPath) inputs;
pkgs = forAllSystems (system: import nixpkgs { pkgs = forAllSystems (system:
inherit system; import nixpkgs {
config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) inherit system;
[ config.allowUnfreePredicate = pkg:
"nvidia-x11" builtins.elem (lib.getName pkg)
"nvidia-settings" [
]; "nvidia-x11"
}); "nvidia-settings"
];
});
nixosConfigurations = let nixosConfigurations = let
nixosConfig = nixosConfig = nixpkgs: name: configurationPath: extraArgs @ {
nixpkgs: localSystem ? "x86_64-linux", # buildPlatform
name: crossSystem ? "x86_64-linux", # hostPlatform
configurationPath: specialArgs ? {},
extraArgs@{ modules ? [],
localSystem ? "x86_64-linux", # buildPlatform overlays ? [],
crossSystem ? "x86_64-linux", # hostPlatform enableDefaults ? true,
specialArgs ? { }, ...
modules ? [ ], }: let
overlays ? [ ], commonPkgsConfig =
enableDefaults ? true, {
... config.allowUnfreePredicate = pkg:
}: builtins.elem (lib.getName pkg)
let
commonPkgsConfig = {
config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg)
[ [
"nvidia-x11" "nvidia-x11"
"nvidia-settings" "nvidia-settings"
]; ];
overlays = (lib.optionals enableDefaults [ overlays =
# Global overlays go here (lib.optionals enableDefaults [
inputs.roowho2.overlays.default # Global overlays go here
]) ++ overlays; inputs.roowho2.overlays.default
} // (if localSystem != crossSystem then { ])
inherit localSystem crossSystem; ++ overlays;
} else { }
system = crossSystem; // (
}); if localSystem != crossSystem
pkgs = import nixpkgs commonPkgsConfig; then {
unstablePkgs = import nixpkgs-unstable commonPkgsConfig; inherit localSystem crossSystem;
in
lib.nixosSystem (lib.recursiveUpdate
{
system = crossSystem;
inherit pkgs;
specialArgs = {
inherit inputs unstablePkgs;
values = import ./values.nix;
fp = path: ./${path};
} // specialArgs;
modules = [
{
networking.hostName = lib.mkDefault name;
} }
configurationPath else {
] ++ (lib.optionals enableDefaults [ system = crossSystem;
sops-nix.nixosModules.sops }
inputs.roowho2.nixosModules.default );
self.nixosModules.rsync-pull-targets pkgs = import nixpkgs commonPkgsConfig;
]) ++ modules; unstablePkgs = import nixpkgs-unstable commonPkgsConfig;
} in
(builtins.removeAttrs extraArgs [ lib.nixosSystem (
"localSystem" lib.recursiveUpdate
"crossSystem" {
"modules" system = crossSystem;
"overlays"
"specialArgs" inherit pkgs;
"enableDefaults"
]) specialArgs =
); {
inherit inputs unstablePkgs;
values = import ./values.nix;
fp = path: ./${path};
}
// specialArgs;
modules =
[
{
networking.hostName = lib.mkDefault name;
}
configurationPath
]
++ (lib.optionals enableDefaults [
sops-nix.nixosModules.sops
inputs.roowho2.nixosModules.default
self.nixosModules.rsync-pull-targets
])
++ modules;
}
(builtins.removeAttrs extraArgs [
"localSystem"
"crossSystem"
"modules"
"overlays"
"specialArgs"
"enableDefaults"
])
);
stableNixosConfig = name: extraArgs: stableNixosConfig = name: extraArgs:
nixosConfig nixpkgs name ./hosts/${name}/configuration.nix extraArgs; nixosConfig nixpkgs name ./hosts/${name}/configuration.nix extraArgs;
in { in
bicep = stableNixosConfig "bicep" { {
modules = [ bicep = stableNixosConfig "bicep" {
inputs.matrix-next.nixosModules.default modules = [
inputs.pvv-calendar-bot.nixosModules.default inputs.matrix-next.nixosModules.default
inputs.minecraft-heatmap.nixosModules.default inputs.pvv-calendar-bot.nixosModules.default
self.nixosModules.gickup inputs.minecraft-heatmap.nixosModules.default
self.nixosModules.matrix-ooye self.nixosModules.gickup
]; self.nixosModules.matrix-ooye
overlays = [ ];
inputs.pvv-calendar-bot.overlays.default overlays = [
inputs.minecraft-heatmap.overlays.default inputs.pvv-calendar-bot.overlays.default
(final: prev: { inputs.minecraft-heatmap.overlays.default
inherit (self.packages.${prev.stdenv.hostPlatform.system}) out-of-your-element; (final: prev: {
}) inherit (self.packages.${prev.stdenv.hostPlatform.system}) out-of-your-element;
]; })
}; ];
bekkalokk = stableNixosConfig "bekkalokk" { };
overlays = [ bekkalokk = stableNixosConfig "bekkalokk" {
(final: prev: { overlays = [
mediawiki-extensions = final.callPackage ./packages/mediawiki-extensions { }; (final: prev: {
simplesamlphp = final.callPackage ./packages/simplesamlphp { }; mediawiki-extensions = final.callPackage ./packages/mediawiki-extensions {};
bluemap = final.callPackage ./packages/bluemap.nix { }; simplesamlphp = final.callPackage ./packages/simplesamlphp {};
}) bluemap = final.callPackage ./packages/bluemap.nix {};
inputs.pvv-nettsiden.overlays.default })
inputs.qotd.overlays.default inputs.pvv-nettsiden.overlays.default
]; inputs.qotd.overlays.default
modules = [ ];
inputs.pvv-nettsiden.nixosModules.default modules = [
self.nixosModules.bluemap inputs.pvv-nettsiden.nixosModules.default
inputs.qotd.nixosModules.default self.nixosModules.bluemap
]; inputs.qotd.nixosModules.default
}; ];
ildkule = stableNixosConfig "ildkule" { };
modules = [ ildkule = stableNixosConfig "ildkule" {
inputs.disko.nixosModules.disko modules = [
]; inputs.disko.nixosModules.disko
}; ];
#ildkule-unstable = unstableNixosConfig "ildkule" { }; };
skrot = stableNixosConfig "skrot" { #ildkule-unstable = unstableNixosConfig "ildkule" { };
modules = [ skrot = stableNixosConfig "skrot" {
inputs.disko.nixosModules.disko modules = [
inputs.dibbler.nixosModules.default inputs.disko.nixosModules.disko
]; inputs.dibbler.nixosModules.default
overlays = [inputs.dibbler.overlays.default]; ];
}; overlays = [inputs.dibbler.overlays.default];
shark = stableNixosConfig "shark" { }; };
wenche = stableNixosConfig "wenche" { }; shark = stableNixosConfig "shark" {};
temmie = stableNixosConfig "temmie" { }; wenche = stableNixosConfig "wenche" {};
gluttony = stableNixosConfig "gluttony" { }; temmie = stableNixosConfig "temmie" {};
gluttony = stableNixosConfig "gluttony" {};
kommode = stableNixosConfig "kommode" { kommode = stableNixosConfig "kommode" {
overlays = [ overlays = [
inputs.nix-gitea-themes.overlays.default inputs.nix-gitea-themes.overlays.default
]; ];
modules = [ modules = [
inputs.nix-gitea-themes.nixosModules.default inputs.nix-gitea-themes.nixosModules.default
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
]; ];
}; };
ustetind = stableNixosConfig "ustetind" { ustetind = stableNixosConfig "ustetind" {
modules = [ modules = [
"${nixpkgs}/nixos/modules/virtualisation/lxc-container.nix" "${nixpkgs}/nixos/modules/virtualisation/lxc-container.nix"
]; ];
}; };
brzeczyszczykiewicz = stableNixosConfig "brzeczyszczykiewicz" { brzeczyszczykiewicz = stableNixosConfig "brzeczyszczykiewicz" {
modules = [ modules = [
inputs.grzegorz-clients.nixosModules.grzegorz-webui inputs.grzegorz-clients.nixosModules.grzegorz-webui
inputs.gergle.nixosModules.default inputs.gergle.nixosModules.default
inputs.greg-ng.nixosModules.default inputs.greg-ng.nixosModules.default
]; ];
overlays = [ overlays = [
inputs.greg-ng.overlays.default inputs.greg-ng.overlays.default
inputs.gergle.overlays.default inputs.gergle.overlays.default
]; ];
}; };
georg = stableNixosConfig "georg" { georg = stableNixosConfig "georg" {
modules = [ modules = [
inputs.grzegorz-clients.nixosModules.grzegorz-webui inputs.grzegorz-clients.nixosModules.grzegorz-webui
inputs.gergle.nixosModules.default inputs.gergle.nixosModules.default
inputs.greg-ng.nixosModules.default inputs.greg-ng.nixosModules.default
]; ];
overlays = [ overlays = [
inputs.greg-ng.overlays.default inputs.greg-ng.overlays.default
inputs.gergle.overlays.default inputs.gergle.overlays.default
]; ];
}; };
} }
// // (let
(let machineNames = map (i: "lupine-${toString i}") (lib.range 1 5);
machineNames = map (i: "lupine-${toString i}") (lib.range 1 5); stableLupineNixosConfig = name: extraArgs:
stableLupineNixosConfig = name: extraArgs:
nixosConfig nixpkgs name ./hosts/lupine/configuration.nix extraArgs; nixosConfig nixpkgs name ./hosts/lupine/configuration.nix extraArgs;
in lib.genAttrs machineNames (name: stableLupineNixosConfig name { in
modules = [{ networking.hostName = name; }]; lib.genAttrs machineNames (name:
specialArgs.lupineName = name; stableLupineNixosConfig name {
})); modules = [{networking.hostName = name;}];
specialArgs.lupineName = name;
}));
nixosModules = { nixosModules = {
bluemap = ./modules/bluemap.nix; bluemap = ./modules/bluemap.nix;
@@ -268,7 +288,8 @@
}) })
]; ];
}; };
in pkgs.callPackage ./shell.nix { }; in
pkgs.callPackage ./shell.nix {};
cuda = let cuda = let
cuda-pkgs = import nixpkgs-unstable { cuda-pkgs = import nixpkgs-unstable {
inherit system; inherit system;
@@ -277,81 +298,88 @@
cudaSupport = true; cudaSupport = true;
}; };
}; };
in cuda-pkgs.callPackage ./shells/cuda.nix { }; in
cuda-pkgs.callPackage ./shells/cuda.nix {};
}); });
packages = { packages = {
"x86_64-linux" = let "x86_64-linux" = let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
in rec { in
default = important-machines; rec {
important-machines = pkgs.linkFarm "important-machines" default = important-machines;
(lib.getAttrs importantMachines self.packages.${system}); important-machines =
all-machines = pkgs.linkFarm "all-machines" pkgs.linkFarm "important-machines"
(lib.getAttrs allMachines self.packages.${system}); (lib.getAttrs importantMachines self.packages.${system});
all-machines =
pkgs.linkFarm "all-machines"
(lib.getAttrs allMachines self.packages.${system});
simplesamlphp = pkgs.callPackage ./packages/simplesamlphp { }; simplesamlphp = pkgs.callPackage ./packages/simplesamlphp {};
bluemap = pkgs.callPackage ./packages/bluemap.nix { }; bluemap = pkgs.callPackage ./packages/bluemap.nix {};
out-of-your-element = pkgs.callPackage ./packages/ooye/package.nix { }; out-of-your-element = pkgs.callPackage ./packages/ooye/package.nix {};
} }
// //
# Mediawiki extensions # Mediawiki extensions
(lib.pipe null [ (lib.pipe null [
(_: pkgs.callPackage ./packages/mediawiki-extensions { }) (_: pkgs.callPackage ./packages/mediawiki-extensions {})
(lib.flip builtins.removeAttrs ["override" "overrideDerivation"]) (lib.flip builtins.removeAttrs ["override" "overrideDerivation"])
(lib.mapAttrs' (name: lib.nameValuePair "mediawiki-${name}")) (lib.mapAttrs' (name: lib.nameValuePair "mediawiki-${name}"))
]) ])
// //
# Machines # Machines
lib.genAttrs allMachines lib.genAttrs allMachines
(machine: self.nixosConfigurations.${machine}.config.system.build.toplevel) (machine: self.nixosConfigurations.${machine}.config.system.build.toplevel)
// //
# Nix-topology # Nix-topology
(let (let
topology' = import inputs.nix-topology { topology' = import inputs.nix-topology {
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
overlays = [ overlays = [
inputs.nix-topology.overlays.default inputs.nix-topology.overlays.default
(final: prev: { (final: prev: {
inherit (nixpkgs-unstable.legacyPackages.${system}) super-tiny-icons; inherit (nixpkgs-unstable.legacyPackages.${system}) super-tiny-icons;
}) })
];
};
specialArgs = {
values = import ./values.nix;
};
modules = [
./topology
{
nixosConfigurations = lib.mapAttrs (_name: nixosCfg:
nixosCfg.extendModules {
modules = [
inputs.nix-topology.nixosModules.default
./topology/service-extractors/greg-ng.nix
./topology/service-extractors/postgresql.nix
./topology/service-extractors/mysql.nix
./topology/service-extractors/gitea-runners.nix
];
})
self.nixosConfigurations;
}
]; ];
}; };
in {
specialArgs = { topology = topology'.config.output;
values = import ./values.nix; topology-png =
}; pkgs.runCommand "pvv-config-topology-png" {
nativeBuildInputs = [pkgs.writableTmpDirAsHomeHook];
modules = [ } ''
./topology mkdir -p "$out"
{ for file in '${topology'.config.output}'/*.svg; do
nixosConfigurations = lib.mapAttrs (_name: nixosCfg: nixosCfg.extendModules { ${lib.getExe pkgs.imagemagick} -density 300 -background none "$file" "$out"/"$(basename "''${file%.svg}.png")"
modules = [ done
inputs.nix-topology.nixosModules.default '';
./topology/service-extractors/greg-ng.nix });
./topology/service-extractors/postgresql.nix
./topology/service-extractors/mysql.nix
./topology/service-extractors/gitea-runners.nix
];
}) self.nixosConfigurations;
}
];
};
in {
topology = topology'.config.output;
topology-png = pkgs.runCommand "pvv-config-topology-png" {
nativeBuildInputs = [ pkgs.writableTmpDirAsHomeHook ];
} ''
mkdir -p "$out"
for file in '${topology'.config.output}'/*.svg; do
${lib.getExe pkgs.imagemagick} -density 300 -background none "$file" "$out"/"$(basename "''${file%.svg}.png")"
done
'';
});
}; };
}; };
} }

View File

@@ -64,4 +64,11 @@ in
''; '';
}; };
}; };
networking.firewall.allowedUDPPortRanges = [
{
from = cfg.settings.rtc.port_range_start;
to = cfg.settings.rtc.port_range_end;
}
];
} }

View File

@@ -0,0 +1,37 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.postgresql;
in
{
config = lib.mkIf cfg.enable {
systemd.services = {
postgresql-repack = {
requires = [ "postgresql.service" ];
after = [ "postgresql.target" ];
description = "Repack all PostgreSQL databases";
startAt = "Mon 06:00:00";
serviceConfig = {
Type = "oneshot";
User = "postgres";
Group = "postgres";
ExecStart = "${lib.getExe cfg.package.pkgs.pg_repack} --port=${builtins.toString cfg.settings.port} --all";
};
};
postgresql-vacuum-analyze = {
requires = [ "postgresql.service" ];
after = [ "postgresql.target" ];
description = "Vacuum and analyze all PostgreSQL databases";
startAt = "Tue 06:00:00";
serviceConfig = {
Type = "oneshot";
User = "postgres";
Group = "postgres";
ExecStart = "${lib.getExe' cfg.package "psql"} --port=${builtins.toString cfg.settings.port} -tAc 'VACUUM ANALYZE'";
};
};
};
};
}

View File

@@ -3,11 +3,15 @@ let
cfg = config.services.postgresql; cfg = config.services.postgresql;
in in
{ {
imports = [ ./backup.nix ]; imports = [
./backup.nix
./cleanup-timers.nix
];
services.postgresql = { services.postgresql = {
enable = true; enable = true;
package = pkgs.postgresql_18; package = pkgs.postgresql_18;
extensions = ps: with ps; [ pg_repack ];
enableTCPIP = true; enableTCPIP = true;
authentication = '' authentication = ''

View File

@@ -22,7 +22,7 @@
"sd_mod" "sd_mod"
]; ];
boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" = {
@@ -31,7 +31,7 @@
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/933A-3005"; device = "/dev/disk/by-uuid/BD97-FCA0";
fsType = "vfat"; fsType = "vfat";
options = [ options = [
"fmask=0077" "fmask=0077"

View File

@@ -1,17 +1,23 @@
{ config, fp, pkgs, lib, values, ... }:
{ {
config,
fp,
pkgs,
lib,
values,
...
}: {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./disks.nix ./disks.nix
(fp /base) (fp /base)
./services/monitoring ./services/monitoring
./services/nginx ./services/nginx
./services/journald-remote.nix ./services/journald-remote.nix
]; ];
boot.loader.systemd-boot.enable = false; boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda"; boot.loader.systemd-boot.enable = lib.mkForce false;
boot.tmp.cleanOnBoot = true; boot.tmp.cleanOnBoot = true;
zramSwap.enable = true; zramSwap.enable = true;
@@ -29,11 +35,20 @@
interfaces."ens3" = { interfaces."ens3" = {
ipv4.addresses = [ ipv4.addresses = [
{ address = hostConf.ipv4; prefixLength = 32; } {
{ address = hostConf.ipv4_internal; prefixLength = 24; } address = hostConf.ipv4;
prefixLength = 32;
}
{
address = hostConf.ipv4_internal;
prefixLength = 24;
}
]; ];
ipv6.addresses = [ ipv6.addresses = [
{ address = hostConf.ipv6; prefixLength = 64; } {
address = hostConf.ipv6;
prefixLength = 64;
}
]; ];
}; };
}; };

View File

@@ -1,4 +1,4 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by 'nixos-generate-config'
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:

View File

@@ -1,4 +1,4 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by 'nixos-generate-config'
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:

View File

@@ -1,4 +1,4 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by 'nixos-generate-config'
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:

View File

@@ -1,4 +1,4 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by 'nixos-generate-config'
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:

View File

@@ -86,10 +86,10 @@ in rec {
ipv6 = pvv-ipv6 167; ipv6 = pvv-ipv6 167;
}; };
gluttony = { gluttony = {
ipv4 = "129.241.100.118"; ipv4 = "129.241.100.37";
ipv4_internal = "192.168.20.77"; ipv4_internal = "192.168.1.219";
ipv4_internal_gw = "192.168.20.1"; ipv4_internal_gw = "192.168.1.1";
ipv6 = "2001:700:305:aa07::3b3"; ipv6 = "2001:700:305:8a0f:f816:3eff:fe9b:7a46";
}; };
wenche = { wenche = {
ipv4 = pvv-ipv4 240; ipv4 = pvv-ipv4 240;
@@ -118,9 +118,9 @@ in rec {
}; };
defaultNetworkConfig = { defaultNetworkConfig = {
dns = [ "129.241.0.200" "129.241.0.201" "2001:700:300:1900::200" "2001:700:300:1900::201" ]; dns = ["129.241.0.200" "129.241.0.201" "2001:700:300:1900::200" "2001:700:300:1900::201"];
domains = [ "pvv.ntnu.no" "pvv.org" ]; domains = ["pvv.ntnu.no" "pvv.org"];
gateway = [ hosts.gateway hosts.gateway6 ]; gateway = [hosts.gateway hosts.gateway6];
networkConfig.IPv6AcceptRA = "no"; networkConfig.IPv6AcceptRA = "no";
DHCP = "no"; DHCP = "no";