mirror of
https://git.pvv.ntnu.no/Drift/pvv-nixos-config.git
synced 2026-01-10 09:28:24 +01:00
Compare commits
2 Commits
alps
...
716f9bed77
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
716f9bed77 | ||
|
|
7cff6b197c |
@@ -16,7 +16,6 @@
|
|||||||
./flake-input-exporter.nix
|
./flake-input-exporter.nix
|
||||||
|
|
||||||
./services/acme.nix
|
./services/acme.nix
|
||||||
./services/uptimed.nix
|
|
||||||
./services/auto-upgrade.nix
|
./services/auto-upgrade.nix
|
||||||
./services/dbus.nix
|
./services/dbus.nix
|
||||||
./services/fwupd.nix
|
./services/fwupd.nix
|
||||||
@@ -28,8 +27,10 @@
|
|||||||
./services/prometheus-node-exporter.nix
|
./services/prometheus-node-exporter.nix
|
||||||
./services/prometheus-systemd-exporter.nix
|
./services/prometheus-systemd-exporter.nix
|
||||||
./services/promtail.nix
|
./services/promtail.nix
|
||||||
|
./services/roowho2.nix
|
||||||
./services/smartd.nix
|
./services/smartd.nix
|
||||||
./services/thermald.nix
|
./services/thermald.nix
|
||||||
|
./services/uptimed.nix
|
||||||
./services/userborn.nix
|
./services/userborn.nix
|
||||||
./services/userdbd.nix
|
./services/userdbd.nix
|
||||||
];
|
];
|
||||||
|
|||||||
4
base/services/roowho2.nix
Normal file
4
base/services/roowho2.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.roowho2.enable = true;
|
||||||
|
}
|
||||||
44
flake.lock
generated
44
flake.lock
generated
@@ -381,9 +381,32 @@
|
|||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"pvv-calendar-bot": "pvv-calendar-bot",
|
"pvv-calendar-bot": "pvv-calendar-bot",
|
||||||
"pvv-nettsiden": "pvv-nettsiden",
|
"pvv-nettsiden": "pvv-nettsiden",
|
||||||
|
"roowho2": "roowho2",
|
||||||
"sops-nix": "sops-nix"
|
"sops-nix": "sops-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"roowho2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767631532,
|
||||||
|
"narHash": "sha256-cDUHAGjfkH3G/lxXhfEzHOZrt8JDSGOGa2M25jJtrMg=",
|
||||||
|
"ref": "main",
|
||||||
|
"rev": "fa789c43a667f50c14fa8238c51af5bcd7ab5aa7",
|
||||||
|
"revCount": 26,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.pvv.ntnu.no/Projects/roowho2.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"ref": "main",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.pvv.ntnu.no/Projects/roowho2.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -426,6 +449,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rust-overlay_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"roowho2",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767322002,
|
||||||
|
"narHash": "sha256-yHKXXw2OWfIFsyTjduB4EyFwR0SYYF0hK8xI9z4NIn0=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "03c6e38661c02a27ca006a284813afdc461e9f7e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|||||||
15
flake.nix
15
flake.nix
@@ -29,6 +29,9 @@
|
|||||||
minecraft-heatmap.url = "git+https://git.pvv.ntnu.no/Projects/minecraft-heatmap.git?ref=main";
|
minecraft-heatmap.url = "git+https://git.pvv.ntnu.no/Projects/minecraft-heatmap.git?ref=main";
|
||||||
minecraft-heatmap.inputs.nixpkgs.follows = "nixpkgs";
|
minecraft-heatmap.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
roowho2.url = "git+https://git.pvv.ntnu.no/Projects/roowho2.git?ref=main";
|
||||||
|
roowho2.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
greg-ng.url = "git+https://git.pvv.ntnu.no/Grzegorz/greg-ng.git?ref=main";
|
greg-ng.url = "git+https://git.pvv.ntnu.no/Grzegorz/greg-ng.git?ref=main";
|
||||||
greg-ng.inputs.nixpkgs.follows = "nixpkgs";
|
greg-ng.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
gergle.url = "git+https://git.pvv.ntnu.no/Grzegorz/gergle.git?ref=main";
|
gergle.url = "git+https://git.pvv.ntnu.no/Grzegorz/gergle.git?ref=main";
|
||||||
@@ -93,6 +96,7 @@
|
|||||||
modules = [
|
modules = [
|
||||||
configurationPath
|
configurationPath
|
||||||
sops-nix.nixosModules.sops
|
sops-nix.nixosModules.sops
|
||||||
|
inputs.roowho2.nixosModules.default
|
||||||
] ++ extraArgs.modules or [];
|
] ++ extraArgs.modules or [];
|
||||||
|
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
@@ -104,6 +108,7 @@
|
|||||||
];
|
];
|
||||||
overlays = [
|
overlays = [
|
||||||
# Global overlays go here
|
# Global overlays go here
|
||||||
|
inputs.roowho2.overlays.default
|
||||||
] ++ extraArgs.overlays or [ ];
|
] ++ extraArgs.overlays or [ ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
@@ -261,7 +266,12 @@
|
|||||||
topology' = import inputs.nix-topology {
|
topology' = import inputs.nix-topology {
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
overlays = [ inputs.nix-topology.overlays.default ];
|
overlays = [
|
||||||
|
inputs.nix-topology.overlays.default
|
||||||
|
(final: prev: {
|
||||||
|
inherit (nixpkgs-unstable.legacyPackages.x86_64-linux) super-tiny-icons;
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
@@ -275,6 +285,9 @@
|
|||||||
modules = [
|
modules = [
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
./topology/service-extractors/greg-ng.nix
|
./topology/service-extractors/greg-ng.nix
|
||||||
|
./topology/service-extractors/postgresql.nix
|
||||||
|
./topology/service-extractors/mysql.nix
|
||||||
|
./topology/service-extractors/gitea-runners.nix
|
||||||
];
|
];
|
||||||
}) self.nixosConfigurations;
|
}) self.nixosConfigurations;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,11 +103,26 @@ in {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nodes.bekkalokk.hardware.info = "Supermicro X9SCL/X9SCM";
|
||||||
|
|
||||||
|
nodes.lupine-1.hardware.info = "Dell OptiPlex 7040";
|
||||||
|
# nodes.lupine-2.hardware.info = "Dell OptiPlex 5050";
|
||||||
|
nodes.lupine-3.hardware.info = "Dell OptiPlex 5050";
|
||||||
|
nodes.lupine-4.hardware.info = "Dell OptiPlex 5050";
|
||||||
|
# nodes.lupine-5.hardware.info = "Dell OptiPlex 5050";
|
||||||
|
|
||||||
nodes.buskerud = mkDevice "buskerud" {
|
nodes.buskerud = mkDevice "buskerud" {
|
||||||
deviceIcon = ./icons/proxmox.svg;
|
deviceIcon = ./icons/proxmox.svg;
|
||||||
interfaceGroups = [ [ "eth1" ] ];
|
interfaceGroups = [ [ "eth1" ] ];
|
||||||
|
|
||||||
interfaces.eth1.network = "pvv";
|
interfaces.eth1.network = "pvv";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
proxmox = {
|
||||||
|
name = "Proxmox web interface";
|
||||||
|
info = "https://buskerud.pvv.ntnu.no:8006/";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes.shark = {
|
nodes.shark = {
|
||||||
@@ -125,6 +140,15 @@ in {
|
|||||||
hardware.info = "Dell PowerEdge R730 x 3";
|
hardware.info = "Dell PowerEdge R730 x 3";
|
||||||
|
|
||||||
interfaceGroups = [ [ "eth1" ] ];
|
interfaceGroups = [ [ "eth1" ] ];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
proxmox = {
|
||||||
|
name = "Proxmox web interface";
|
||||||
|
details.bubbles.text = "https://bubbles.pvv.ntnu.no:8006/";
|
||||||
|
details.blossom.text = "https://blossom.pvv.ntnu.no:8006/";
|
||||||
|
details.buttercup.text = "https://buttercup.pvv.ntnu.no:8006/";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes.kommode = {
|
nodes.kommode = {
|
||||||
|
|||||||
@@ -120,6 +120,30 @@ in {
|
|||||||
values.hosts.gateway6
|
values.hosts.gateway6
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
dovecot = {
|
||||||
|
name = "Dovecot";
|
||||||
|
info = "imap.pvv.ntnu.no pop.pvv.ntnu.no";
|
||||||
|
icon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/dovecot.svg";
|
||||||
|
details.imap.text = "0.0.0.0:993";
|
||||||
|
details.pop3.text = "0.0.0.0:995";
|
||||||
|
};
|
||||||
|
|
||||||
|
exim4 = {
|
||||||
|
name = "Exim4";
|
||||||
|
info = "mail.pvv.ntnu.no mailhost.pvv.ntnu.no";
|
||||||
|
details.smtp.text = "0.0.0.0:25";
|
||||||
|
details.smtps.text = "0.0.0.0:465";
|
||||||
|
details.starttls.text = "0.0.0.0:587";
|
||||||
|
};
|
||||||
|
|
||||||
|
nfs = {
|
||||||
|
name = "NFS";
|
||||||
|
info = "homepvv.pvv.ntnu.no";
|
||||||
|
details.rpcbind.text = "0.0.0.0:111";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes.innovation = mkDevice "innovation" {
|
nodes.innovation = mkDevice "innovation" {
|
||||||
@@ -145,6 +169,7 @@ in {
|
|||||||
icon = "services.minecraft";
|
icon = "services.minecraft";
|
||||||
info = "minecraft.pvv.ntnu.no";
|
info = "minecraft.pvv.ntnu.no";
|
||||||
details.listen.text = "0.0.0.0:25565";
|
details.listen.text = "0.0.0.0:25565";
|
||||||
|
details.directory.text = "/srv/minecraft-pvv";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -220,11 +245,26 @@ in {
|
|||||||
values.hosts.gateway6
|
values.hosts.gateway6
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
mapcrafter = {
|
||||||
|
name = "Mapcrafter Minecraft Map";
|
||||||
|
info = "http://isvegg.pvv.ntnu.no/kart/";
|
||||||
|
details.directory.text = "/scratch/mckart/kart";
|
||||||
|
};
|
||||||
|
gophernicus = {
|
||||||
|
name = "Gophernicus";
|
||||||
|
info = "gopher://gopher.pvv.ntnu.no/";
|
||||||
|
details.directory.text = "/var/gopher";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes.ameno = mkDevice "ameno" {
|
nodes.ameno = mkDevice "ameno" {
|
||||||
deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/ubuntu.svg";
|
deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/ubuntu.svg";
|
||||||
|
|
||||||
|
hardware.info = "Raspberry Pi 2B 1.1";
|
||||||
|
|
||||||
interfaceGroups = [ [ "eth0" ] ];
|
interfaceGroups = [ [ "eth0" ] ];
|
||||||
interfaces.eth0 = {
|
interfaces.eth0 = {
|
||||||
mac = "b8:27:eb:62:1d:d8";
|
mac = "b8:27:eb:62:1d:d8";
|
||||||
|
|||||||
13
topology/service-extractors/gitea-runners.nix
Normal file
13
topology/service-extractors/gitea-runners.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ config, unstablePkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.services.gitea-actions-runner;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.topology.self.services = lib.mapAttrs' (name: instance: {
|
||||||
|
name = "gitea-runner-${name}";
|
||||||
|
value = {
|
||||||
|
name = "Gitea runner ${name}";
|
||||||
|
icon = "services.gitea";
|
||||||
|
};
|
||||||
|
}) (lib.filterAttrs (_: instance: instance.enable) cfg.instances);
|
||||||
|
}
|
||||||
19
topology/service-extractors/mysql.nix
Normal file
19
topology/service-extractors/mysql.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ config, unstablePkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.services.mysql;
|
||||||
|
cfgBak = config.services.mysqlBackup;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.topology.self.services.mysql = lib.mkIf cfg.enable {
|
||||||
|
name = "MySQL";
|
||||||
|
icon = "${unstablePkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/mysql.svg";
|
||||||
|
|
||||||
|
details.listen.text = "${cfg.settings.mysqld.bind-address or "127.0.0.1"}:${toString (cfg.settings.mysqld.port or 3306)}";
|
||||||
|
details.socket.text = cfg.settings.mysqld.socket or "/run/mysqld/mysqld.sock";
|
||||||
|
details.type.text = cfg.package.pname;
|
||||||
|
details.dataDir.text = cfg.dataDir;
|
||||||
|
|
||||||
|
# details.backup-time = lib.mkIf cfgBak.enable cfgBak.calendar;
|
||||||
|
# details.backup-location = lib.mkIf cfgBak.enable cfgBak.location;
|
||||||
|
};
|
||||||
|
}
|
||||||
19
topology/service-extractors/postgresql.nix
Normal file
19
topology/service-extractors/postgresql.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ config, unstablePkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.services.postgresql;
|
||||||
|
cfgBak = config.services.postgresqlBackup;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.topology.self.services.postgresql = lib.mkIf cfg.enable {
|
||||||
|
name = "PostgreSQL";
|
||||||
|
icon = "${unstablePkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/postgresql.svg";
|
||||||
|
|
||||||
|
details.listen.text = lib.mkIf cfg.enableTCPIP "0.0.0.0:${toString cfg.settings.port}";
|
||||||
|
details.socket.text = "/run/postgresql/.s.PGSQL.${toString cfg.settings.port}";
|
||||||
|
details.version.text = cfg.package.version;
|
||||||
|
details.dataDir.text = cfg.dataDir;
|
||||||
|
|
||||||
|
# details.backup-time = lib.mkIf cfgBak.enable cfgBak.startAt;
|
||||||
|
# details.backup-location = lib.mkIf cfgBak.enable cfgBak.location;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user