From 0a57515130cee17e9da6d36e34189075a279e98e Mon Sep 17 00:00:00 2001 From: wi11-holdsworth <83637728+wi11-holdsworth@users.noreply.github.com> Date: Wed, 22 Oct 2025 17:46:28 +1100 Subject: [PATCH] feat: install owntracks backend --- modules/nixos/bundles/server.nix | 1 + modules/nixos/features/owntracks.nix | 39 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 modules/nixos/features/owntracks.nix diff --git a/modules/nixos/bundles/server.nix b/modules/nixos/bundles/server.nix index 271c07b..8796c8d 100644 --- a/modules/nixos/bundles/server.nix +++ b/modules/nixos/bundles/server.nix @@ -15,6 +15,7 @@ "miniflux" "nginx" "ntfy-sh" + "owntracks" "paperless" "prowlarr" "qbittorrent" diff --git a/modules/nixos/features/owntracks.nix b/modules/nixos/features/owntracks.nix new file mode 100644 index 0000000..eac7cfe --- /dev/null +++ b/modules/nixos/features/owntracks.nix @@ -0,0 +1,39 @@ +{ + # keep-sorted start + lib, + pkgs, + # keep-sorted end + ... +}: +let + host = "owntracks.fi33.buzz"; + port = "5014"; +in +{ + systemd.services.owntracks = { + enable = true; + description = "owntracks recorder"; + serviceConfig = { + ExecStart = '' + ${pkgs.owntracks-recorder}/bin/ot-recorder \ + --storage /var/lib/owntracks/recorder/store \ + --port 0 + --http-port ${lib.toInt port} + --http-host https://${host} + ''; + DynamicUser = true; + StateDirectory = "owntracks"; + Restart = "always"; + }; + wantedBy = [ "multi-user.target" ]; + }; + services = { + # borgbackup.jobs = owntracks { }; + + nginx.virtualHosts.${host} = { + forceSSL = true; + useACMEHost = "fi33.buzz"; + locations."/".proxyPass = "http://localhost:${port}"; + }; + }; +}