{ 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 # 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; } ]; }; }; }; }