diff --git a/flake.lock b/flake.lock index 36d3382..c551b3e 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,23 @@ "repo": "default", "type": "github" } + }, + "whib-backend": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734695939, + "narHash": "sha256-CzASZ/7siZWTV1JS+sKdYVBLyQdLUPoZdQugtr48CwI=", + "path": "/home/alex/code/own/whib", + "type": "path" + }, + "original": { + "path": "/home/alex/code/own/whib", + "type": "path" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 7834054..f13f41a 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,12 @@ 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=nix-flake"; + url = "path:/home/alex/code/own/whib"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = @@ -77,13 +83,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..8285759 --- /dev/null +++ b/hosts/test-vm/whib-backend.nix @@ -0,0 +1,87 @@ +{ + 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; + domain = "whib-backend.local"; + + backend = { + signingKey = "super-secret-key"; + }; + + postgres = { + password = "postgrespassword"; + + backup = { + interval = "*-*-* **:**:00 UTC"; # Every minute, for testing + gpgPassphraseFile = ./whib-gpgPassfile; + + backblazeBucket = "whib-postgres-backups"; + backblazeKeyID = "003867c33cd1a9b0000000003"; + backblazeKey = "K003+GUNG0lwTOMS5EheKC9YzgxFzuU"; + }; + }; + + 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; + } + ]; + }; + }; + }; +}