From f58083c7cd1dfad154df3077519f88ed957d35c0 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 17 Feb 2025 10:17:21 -0500 Subject: [PATCH 1/5] lubelogger --- .../users/overseer/services/lubelogger.nix | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 modules/users/overseer/services/lubelogger.nix diff --git a/modules/users/overseer/services/lubelogger.nix b/modules/users/overseer/services/lubelogger.nix new file mode 100644 index 0000000..3a3450e --- /dev/null +++ b/modules/users/overseer/services/lubelogger.nix @@ -0,0 +1,63 @@ +let + volumePath = "/overseer/services"; +in + { + lib, + config, + ... + }: + lib.mkIf config.user.overseer.enable { + systemd.tmpfiles.rules = [ + "d ${volumePath}/lubelogger" + "d ${volumePath}/lubelogger/data" + "d ${volumePath}/lubelogger/keys" + ]; + ########### + # Service # + ########### + + sops = { + secrets = { + "lubelogger/user" = {}; + "lubelogger/pass" = {}; + }; + templates."lubelogger-env".content = '' + LC_ALL=en_US.UTF-8 + LANG=en_US.UTF-8 + MailConfig__EmailServer="" + MailConfig__EmailFrom="" + MailConfig__Port=587 + MailConfig__Username="" + MailConfig__Password="" + UserNameHash="${config.sops.placeholder."lubelogger/user"}" + UserPasswordHash="${config.sops.placeholder."lubelogger/pass"}" + LUBELOGGER_CUSTOM_WIDGETS=true + ''; + }; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + virtualHosts = { + "garage.wanderingcrow.net" = { + forceSSL = true; + useACMEHost = "garage.wanderingcrow.net"; + locations."/" = { + proxyPass = "http://10.88.0.8:8080"; + proxyWebsockets = true; + }; + }; + }; + }; + + virtualisation.oci-containers = { + backend = "podman"; + containers = { + "umami" = { + image = "ghcr.io/hargata/lubelogger:latest"; + extraOptions = ["--ip=10.88.0.8"]; + environmentFiles = [config.sops.templates."lubelogger-env".path]; + }; + }; + }; + } From ed8c03aaafaede0d43ec6badaa0a88afed36d672 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 17 Feb 2025 10:17:28 -0500 Subject: [PATCH 2/5] lubelogger --- flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index 06bf82c..de9cfc4 100644 --- a/flake.lock +++ b/flake.lock @@ -168,11 +168,11 @@ }, "nix-secrets": { "locked": { - "lastModified": 1739650303, - "narHash": "sha256-ijb3zxFUQJ9+UXoNW2VxGuaWF0dQZoihJEL8+LiccDs=", + "lastModified": 1739805021, + "narHash": "sha256-//4V4vE0xMVuXkz8TO4Pwkw25+BDNE+NbX9aIOTwqqI=", "ref": "refs/heads/master", - "rev": "d31054406479b1cd148954706662f8510abe16ce", - "revCount": 46, + "rev": "bbde0e2da04a1b37a814fe9f11772797fdbf5e7e", + "revCount": 47, "type": "git", "url": "ssh://git@github.com/TheWanderingCrow/nix-secrets" }, From db343f784087fca0c164395cdc3349dfe555602a Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 17 Feb 2025 10:18:08 -0500 Subject: [PATCH 3/5] lubelogger --- modules/users/overseer/acme.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/users/overseer/acme.nix b/modules/users/overseer/acme.nix index 867ed8f..c3bb0ab 100644 --- a/modules/users/overseer/acme.nix +++ b/modules/users/overseer/acme.nix @@ -37,6 +37,7 @@ lib.mkIf config.user.overseer.enable { certs = { "wanderingcrow.net" = {}; "umami.wanderingcrow.net" = {}; + "garage.wanderingcrow.net" = {}; "bar.wanderingcrow.net" = {}; "home.wanderingcrow.net" = {}; "homebox.wanderingcrow.net" = {}; From 05c621db6963bf1acc3ee946d934524eea257851 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 17 Feb 2025 10:28:20 -0500 Subject: [PATCH 4/5] lubelogger --- modules/users/overseer/services/default.nix | 1 + modules/users/overseer/services/lubelogger.nix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/users/overseer/services/default.nix b/modules/users/overseer/services/default.nix index c3f5036..c3b4a15 100644 --- a/modules/users/overseer/services/default.nix +++ b/modules/users/overseer/services/default.nix @@ -8,5 +8,6 @@ ./attic.nix ./the-nest.nix ./umami.nix + ./lubelogger.nix ]; } diff --git a/modules/users/overseer/services/lubelogger.nix b/modules/users/overseer/services/lubelogger.nix index 3a3450e..a4e6d72 100644 --- a/modules/users/overseer/services/lubelogger.nix +++ b/modules/users/overseer/services/lubelogger.nix @@ -53,7 +53,7 @@ in virtualisation.oci-containers = { backend = "podman"; containers = { - "umami" = { + "lubelogger" = { image = "ghcr.io/hargata/lubelogger:latest"; extraOptions = ["--ip=10.88.0.8"]; environmentFiles = [config.sops.templates."lubelogger-env".path]; From 26858e2970d29e37e44dd4184178f8cf135a702b Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 17 Feb 2025 11:22:39 -0500 Subject: [PATCH 5/5] lubelogger --- flake.lock | 8 +++--- modules/users/overseer/services/homepage.nix | 28 +++++++++++++++++-- .../users/overseer/services/lubelogger.nix | 8 +++--- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index de9cfc4..1cb78ec 100644 --- a/flake.lock +++ b/flake.lock @@ -168,11 +168,11 @@ }, "nix-secrets": { "locked": { - "lastModified": 1739805021, - "narHash": "sha256-//4V4vE0xMVuXkz8TO4Pwkw25+BDNE+NbX9aIOTwqqI=", + "lastModified": 1739808207, + "narHash": "sha256-zIUNDAM1bpto8VYWF9y+4KLxWZlEiFnUynjofbQX6vI=", "ref": "refs/heads/master", - "rev": "bbde0e2da04a1b37a814fe9f11772797fdbf5e7e", - "revCount": 47, + "rev": "5794fabd27b350f7787b666b255acdffdc8aef6f", + "revCount": 48, "type": "git", "url": "ssh://git@github.com/TheWanderingCrow/nix-secrets" }, diff --git a/modules/users/overseer/services/homepage.nix b/modules/users/overseer/services/homepage.nix index b5072f8..44190ce 100644 --- a/modules/users/overseer/services/homepage.nix +++ b/modules/users/overseer/services/homepage.nix @@ -6,11 +6,17 @@ lib.mkIf config.user.overseer.enable { # Homepage.dev secrets sops = { - secrets."homepage/openmeteo/lat" = {}; - secrets."homepage/openmeteo/long" = {}; + secrets = { + "homepage/openmeteo/lat" = {}; + "homepage/openmeteo/long" = {}; + "lubelogger/user" = {}; + "lubelogger/pass" = {}; + }; templates."homepage-environment".content = '' HOMEPAGE_VAR_LAT = ${config.sops.placeholder."homepage/openmeteo/lat"} HOMEPAGE_VAR_LONG = ${config.sops.placeholder."homepage/openmeteo/long"} + HOMEPAGE_VAR_LUBELOGGERUSER = ${config.sops.placeholder."lubelogger/user"} + HOMEPAGE_VAR_LUBELOGGERPASS = ${config.sops.placeholder."lubelogger/pass"} ''; }; @@ -42,6 +48,24 @@ lib.mkIf config.user.overseer.enable { settings = { theme = "dark"; }; + services = [ + { + "Services" = [ + { + "Garage" = { + href = "https://garage.wanderingcrow.net"; + description = "Vehicle management"; + widget = { + type = "lubelogger"; + url = "https://garage.wanderingcrow.net"; + username = "{{HOMEPAGE_VAR_LUBELOGGERUSER}}"; + password = "{{HOMEPAGE_VAR_LUBELOGGERPASS}}"; + }; + }; + } + ]; + } + ]; widgets = [ { search = { diff --git a/modules/users/overseer/services/lubelogger.nix b/modules/users/overseer/services/lubelogger.nix index a4e6d72..40d73cc 100644 --- a/modules/users/overseer/services/lubelogger.nix +++ b/modules/users/overseer/services/lubelogger.nix @@ -18,8 +18,8 @@ in sops = { secrets = { - "lubelogger/user" = {}; - "lubelogger/pass" = {}; + "lubelogger/user_hash" = {}; + "lubelogger/pass_hash" = {}; }; templates."lubelogger-env".content = '' LC_ALL=en_US.UTF-8 @@ -29,8 +29,8 @@ in MailConfig__Port=587 MailConfig__Username="" MailConfig__Password="" - UserNameHash="${config.sops.placeholder."lubelogger/user"}" - UserPasswordHash="${config.sops.placeholder."lubelogger/pass"}" + UserNameHash="${config.sops.placeholder."lubelogger/user_hash"}" + UserPasswordHash="${config.sops.placeholder."lubelogger/pass_hash"}" LUBELOGGER_CUSTOM_WIDGETS=true ''; };