From 027a9c675d50ab55850f639e9c23bb274e74d0c0 Mon Sep 17 00:00:00 2001 From: Petru Paler Date: Sun, 25 Jan 2026 17:52:28 +0000 Subject: [PATCH] feat: add fitdata Nomad job Static port 5311 for MCP access (5/3/1 reference). OIDC protected via Traefik middleware. Setup: sudo mkdir -p /data/services/fitdata && sudo chown 1000:1000 /data/services/fitdata Co-Authored-By: Claude Opus 4.5 --- services/fitdata.hcl | 74 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 services/fitdata.hcl diff --git a/services/fitdata.hcl b/services/fitdata.hcl new file mode 100644 index 0000000..822e65e --- /dev/null +++ b/services/fitdata.hcl @@ -0,0 +1,74 @@ +# ABOUTME: Nomad job for Fitdata - fitness data analysis and MCP server. +# ABOUTME: Runs FastHTML Python app with SQLite, static port for MCP access. + +# Setup required before running: +# sudo mkdir -p /data/services/fitdata && sudo chown 1000:1000 /data/services/fitdata + +job "fitdata" { + datacenters = ["alo"] + + meta { + uuid = uuidv4() + } + + update { + max_parallel = 1 + health_check = "checks" + min_healthy_time = "30s" + healthy_deadline = "5m" + progress_deadline = "10m" + auto_revert = true + } + + group "web" { + network { + port "http" { + static = 5311 + } + } + + task "app" { + driver = "docker" + user = "1000" + + config { + image = "gitea.v.paler.net/alo/fitdata:latest" + ports = ["http"] + force_pull = true + volumes = ["/data/services/fitdata:/var/lib/fitdata"] + } + + env { + FITDATA_DATA_DIR = "/var/lib/fitdata" + FITDATA_DB_PATH = "/var/lib/fitdata/fitdata.db" + } + + resources { + memory = 512 + } + + service { + name = "fitdata" + port = "http" + + tags = [ + "traefik.enable=true", + "traefik.http.routers.fitdata.entryPoints=websecure", + "traefik.http.routers.fitdata.middlewares=oidc-auth@file", + ] + + check { + type = "http" + path = "/healthz" + interval = "10s" + timeout = "5s" + + check_restart { + limit = 3 + grace = "60s" + } + } + } + } + } +}