From c82dd5e36f5e256a4c841a2ff7d76d3a3bcd9076 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 21 Jan 2025 21:58:09 -0600 Subject: [PATCH] feat: hledger test --- config/instances/config/hledger.nix | 34 +++++++++++ .../desktop/hyprland/config/windowrulev2.nix | 4 ++ nixos/modules/services/acme.nix | 1 + nixos/modules/services/hledger.nix | 56 +++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 config/instances/config/hledger.nix create mode 100644 nixos/modules/services/hledger.nix diff --git a/config/instances/config/hledger.nix b/config/instances/config/hledger.nix new file mode 100644 index 0000000..0f84e49 --- /dev/null +++ b/config/instances/config/hledger.nix @@ -0,0 +1,34 @@ +{ instancesFunctions }: +let + inherit (instancesFunctions) + domain0 + servicePath + sslPath + sopsPath + ; + + hledgerLabel = "Hledger"; + hledgerName = "hledger"; + hledgerSubdomain = "source"; +in +{ + label = hledgerLabel; + name = hledgerName; + email = { + address0 = "noreply@${domain0}"; + }; + sops = { + path0 = "${sopsPath}/${hledgerName}"; + }; + subdomain = hledgerSubdomain; + paths = { + path0 = "${servicePath}/${hledgerLabel}"; + }; + ports = { + port0 = 5000; + }; + ssl = { + cert = "${sslPath}/${hledgerSubdomain}.${domain0}/fullchain.pem"; + key = "${sslPath}/${hledgerSubdomain}.${domain0}/key.pem"; + }; +} diff --git a/home/modules/gui/desktop/hyprland/config/windowrulev2.nix b/home/modules/gui/desktop/hyprland/config/windowrulev2.nix index 0af2065..b15d025 100755 --- a/home/modules/gui/desktop/hyprland/config/windowrulev2.nix +++ b/home/modules/gui/desktop/hyprland/config/windowrulev2.nix @@ -20,6 +20,7 @@ let kdenlive = "(org.kde.kdenlive)"; shotcut = "(shotcut)"; scrcpy = "(.scrcpy-wrapped)"; + battle = "(.*Battle.net.*)"; maxsizeWindows = [ "maxsize 720 400, class:^${blueman}$" @@ -34,6 +35,8 @@ let "maxsize 720 400, title:^${picture}$" "maxsize 720 400, title:^${save}$" "maxsize 720 400, title:^${discord-popout}$" + "maxsize 1280 720, title:^${battle}$" + "minsize 1280 720, title:^${battle}$" ]; floatWindows = builtins.map (x: "float, " + x) [ @@ -50,6 +53,7 @@ let "title:^(${discord-popout})$" "title:^${bitwarden}$" "title:^${save}$" + "title:^${battle}$" ]; pinWindows = builtins.map (x: "pin, " + x) [ diff --git a/nixos/modules/services/acme.nix b/nixos/modules/services/acme.nix index 2958efa..d3c7f76 100755 --- a/nixos/modules/services/acme.nix +++ b/nixos/modules/services/acme.nix @@ -44,6 +44,7 @@ in "ollama" "syncthing" "vaultwarden" + "hledger" ] ) ++ (map diff --git a/nixos/modules/services/hledger.nix b/nixos/modules/services/hledger.nix new file mode 100644 index 0000000..92e153a --- /dev/null +++ b/nixos/modules/services/hledger.nix @@ -0,0 +1,56 @@ +{ + flake, + ... +}: +let + inherit (flake.config.people) + user0 + ; + inherit (flake.config.machines.devices) + server + ; + inherit (flake.config.services.instances) + hledger + web + ; + service = hledger; + localhost = web.localhost.address0; + host = "${service.subdomain}.${web.domains.url0}"; +in +{ + hledger-web = { + enable = true; + host = localhost; + baseUrl = host; + stateDir = service.paths.path0; + port = service.ports.port0; + allow = "edit"; + }; + + caddy = { + virtualHosts = { + "${host}" = { + extraConfig = '' + reverse_proxy ${localhost}:${toString service.ports.port0} + + tls ${service.ssl.cert} ${service.ssl.key} + ''; + }; + }; + }; + + fileSystems."/var/lib/${service.name}" = { + device = service.paths.path0; + fsType = "none"; + options = [ + "bind" + ]; + depends = [ + server.storage0.mount + ]; + }; + + systemd.tmpfiles.rules = [ + "Z ${service.paths.path0} 0755 ${user0} ${user0} -" + ]; +}