From 22bb29c296b1c7482f622bded6c8f49913405df9 Mon Sep 17 00:00:00 2001 From: Alexander Heldt Date: Sat, 9 Nov 2024 10:41:13 +0100 Subject: [PATCH] test-vm: Add `WHIB backend` --- flake.lock | 24 ++++++++- flake.nix | 24 ++++++--- hosts/pinwheel/home.nix | 2 + hosts/test-vm/configuration.nix | 4 +- hosts/test-vm/whib-backend.nix | 89 +++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+), 8 deletions(-) create mode 100644 hosts/test-vm/whib-backend.nix diff --git a/flake.lock b/flake.lock index 36d3382..7fc41ce 100644 --- a/flake.lock +++ b/flake.lock @@ -241,7 +241,8 @@ "nix-gc-env": "nix-gc-env", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", - "pppdotpm-site": "pppdotpm-site" + "pppdotpm-site": "pppdotpm-site", + "whib-backend": "whib-backend" } }, "systems": { @@ -258,6 +259,27 @@ "repo": "default", "type": "github" } + }, + "whib-backend": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735899504, + "narHash": "sha256-Ap8GreoeEcey6LDAirjv7UmZJ5Dg1jfnFc924Q3WDOU=", + "ref": "master", + "rev": "ca43a546fccb16bdebd6b041129cc0de42fde331", + "revCount": 365, + "type": "git", + "url": "ssh://gitea@git.ppp.pm:1122/alex/whib.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "ssh://gitea@git.ppp.pm:1122/alex/whib.git" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 7834054..9669676 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,11 @@ url = "git+ssh://gitea@git.ppp.pm:1122/alex/ppp.pm-site.git?ref=main"; inputs.nixpkgs.follows = "nixpkgs"; }; + + whib-backend = { + url = "git+ssh://gitea@git.ppp.pm:1122/alex/whib.git?ref=master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = @@ -77,13 +82,20 @@ ]; }; - test-vm = inputs.nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { - inherit inputs; + test-vm = + let + system = "x86_64-linux"; + in + inputs.nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = { + inherit inputs; + }; + modules = [ + ./hosts/test-vm/configuration.nix + inputs.whib-backend.nixosModules.${system}.default + ]; }; - modules = [ ./hosts/test-vm/configuration.nix ]; - }; }; devShells = diff --git a/hosts/pinwheel/home.nix b/hosts/pinwheel/home.nix index 0af6904..463a63d 100644 --- a/hosts/pinwheel/home.nix +++ b/hosts/pinwheel/home.nix @@ -14,6 +14,8 @@ home.homeDirectory = "/home/alex"; home.packages = [ + inputs.whib-backend.packages.${pkgs.system}.whib-import + pkgs.beekeeper-studio pkgs.bitwarden-desktop pkgs.gimp pkgs.zip diff --git a/hosts/test-vm/configuration.nix b/hosts/test-vm/configuration.nix index b78f109..8297895 100644 --- a/hosts/test-vm/configuration.nix +++ b/hosts/test-vm/configuration.nix @@ -2,6 +2,7 @@ { imports = [ ./ppp.pm-site.nix + ./whib-backend.nix ]; config = { @@ -10,7 +11,8 @@ networking.hostName = "test-vm"; mod = { - pppdotpm-site.enable = true; + pppdotpm-site.enable = false; + whib-backend.enable = true; }; users.users.a = { diff --git a/hosts/test-vm/whib-backend.nix b/hosts/test-vm/whib-backend.nix new file mode 100644 index 0000000..8087835 --- /dev/null +++ b/hosts/test-vm/whib-backend.nix @@ -0,0 +1,89 @@ +{ + lib, + config, + ... +}: +let + enabled = config.mod.whib-backend.enable; +in +{ + options = { + mod.whib-backend = { + enable = lib.mkEnableOption "enable WHIB backend"; + }; + }; + + config = lib.mkIf enabled { + services.whib-backend = { + enable = true; + + backend = { + signingKey = "super-secret-key"; + domain = "whib-backend.local"; + }; + + postgres = { + password = "postgrespassword"; + + backup = { + interval = "*-*-* *:*:00 UTC"; # Every minute, for testing + + # Set these for test runs + gpgPassphraseFile = ""; + + backblazeBucket = ""; + backblazeKeyID = ""; + backblazeKey = ""; + }; + }; + + grafana = { + password = "granfanapassword"; + }; + }; + + virtualisation.vmVariant = { + virtualisation = { + sharedDirectories = { + my-shared = { + source = "/home/alex/whib-backup"; + target = "/mnt/shared"; + }; + }; + + forwardPorts = [ + { + # Service API + from = "host"; + host.port = 8080; + guest.port = 8080; + } + { + # Service Metrics + from = "host"; + host.port = 8181; + guest.port = 8181; + } + { + # Postgres + from = "host"; + host.port = 5432; + guest.port = 5432; + } + { + # Grafana + from = "host"; + host.port = 3000; + guest.port = 3000; + } + { + # Prometheus + from = "host"; + host.port = 9090; + guest.port = 9090; + } + ]; + }; + }; + }; +}