From ff586d468fc5067c5cd327e4fa4e4b6736c1d9cf Mon Sep 17 00:00:00 2001
From: Nicolas Lenz <nicolas@eisfunke.com>
Date: Fri, 7 Mar 2025 23:02:33 +0100
Subject: [PATCH] wip

---
 nixos/server/track.nix | 46 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 nixos/server/track.nix

diff --git a/nixos/server/track.nix b/nixos/server/track.nix
new file mode 100644
index 00000000..f8ff4c38
--- /dev/null
+++ b/nixos/server/track.nix
@@ -0,0 +1,46 @@
+{ ... }:
+
+{
+  traccar = {
+    enable = true;
+    settings = {
+      # see https://www.traccar.org/postgresql
+      databaseDriver = "org.postgresql.Driver";
+      databaseUrl = "jdbc:postgresql:///run/postgresql/traccar";
+      databaseUser = "traccar";
+      #databasePassword = "";
+
+      loggerConsole = "true";
+      mediaPath = "/var/lib/traccar/media";
+      templatesPath = "/var/lib/traccar/templates";
+      webPort = 61038;
+    };
+    environmentFile = {
+
+    };
+  };
+
+  services.postgresql = {
+    ensureUsers = [{
+      name = "traccar";
+      ensureDBOwnership = true;
+    }];
+    ensureDatabases = [ "traccar" ];
+  };
+
+  environment.persistence."/persist".directories = [ "/var/lib/traccar" ];
+
+  services.traefik.dynamicConfigOptions.http = {
+    routers.track = {
+      rule = "Host(`track.eisfunke.com`)";
+      entrypoints = [ "websecure" ];
+      tls.certResolver = "tls";
+      service = "track";
+    };
+    services.track = {
+      loadBalancer.servers = [
+        { url = "http://localhost:61038"; }
+      ];
+    };
+  };
+}
-- 
GitLab