Compare commits

...
Sign in to create a new pull request.

7 commits

Author SHA1 Message Date
wi11-holdsworth
f0a4c6c3d5 Merge branch 'enhancement/32' of github.com:wi11-holdsworth/dots into enhancement/32 2025-10-22 18:09:00 +11:00
wi11-holdsworth
046f47b082 feat: install owntracks frontend 2025-10-22 18:08:53 +11:00
wi11-holdsworth
0b8a87e87c fix: pass port into owntracks-recorder config as a string, not an int 2025-10-22 18:08:53 +11:00
wi11-holdsworth
0a57515130 feat: install owntracks backend 2025-10-22 18:08:53 +11:00
wi11-holdsworth
0e059a51b3 feat: install owntracks frontend 2025-10-22 18:07:50 +11:00
wi11-holdsworth
cac7aedbba fix: pass port into owntracks-recorder config as a string, not an int 2025-10-22 18:07:43 +11:00
wi11-holdsworth
66787f06e7 feat: install owntracks backend 2025-10-22 17:46:28 +11:00
3 changed files with 74 additions and 0 deletions

View file

@ -15,6 +15,7 @@
"miniflux" "miniflux"
"nginx" "nginx"
"ntfy-sh" "ntfy-sh"
"owntracks"
"paperless" "paperless"
"prowlarr" "prowlarr"
"qbittorrent" "qbittorrent"

View file

@ -0,0 +1,32 @@
{
stdenv,
writeText,
fetchzip,
}:
stdenv.mkDerivation {
pname = "owntracks-frontend";
version = "v2.15.3";
src = fetchzip {
url = "https://github.com/owntracks/frontend/releases/download/v2.15.3/v2.15.3-dist.zip";
sha256 = "iy+yISPcOD/2lTyJUb1eI3wufLku1mKfVDm0+Dy8OKk=";
};
config = writeText "config.js" ''
window.owntracks = window.owntracks || {};
window.owntracks.config = {
api: {
baseUrl: "https://owntracks.fi33.buzz:5014"
},
router: {
basePath: "owntracks"
}
};
'';
installPhase = ''
runHook preInstall
cp -r . $out
cp $config $out/config/config.js
runHook postInstall
'';
}

View file

@ -0,0 +1,41 @@
{
pkgs,
...
}:
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 ${port}
--http-host https://${host}
'';
DynamicUser = true;
StateDirectory = "owntracks";
Restart = "always";
};
wantedBy = [ "multi-user.target" ];
};
services = {
# borgbackup.jobs = owntracks { };
nginx.virtualHosts.${host} =
let
owntracks-frontend = pkgs.callPackage ./owntracks-frontend.nix;
in
{
forceSSL = true;
useACMEHost = "fi33.buzz";
root = "/var/www/html";
locations."/owntracks/".alias = "${owntracks-frontend}";
};
};
}