Hosts
The machines that make up the Leif and SuperHiTech infrastructure.
The handful of long-lived hosts that everything else depends on. If you forget which IP is which or which port goes where, this is the page.
Leif host
The FastMCP server itself — Claude’s primary conduit into SuperHiTech infrastructure.
| Field | Value |
|---|---|
| Internal IP | 10.10.0.25 |
| Public hostname | mcp.super-ht.com (via Cloudflare Tunnel) |
| Service | FastMCP / Leif AI assistant |
| Tool routing | local_execute_command for shell access |
The tunnel maps leif.super-ht.com (and mcp.super-ht.com) to this host. The
hostname leif.super-ht.com is load-bearing — Claude.ai’s MCP integration
reaches Leif through it. Don’t reuse or repoint without updating the tunnel
configuration first.
Pricing app server (nvrbackup)
Runs the SuperHiTech pricing application — vendor price list ingestion, product catalog, RS ticket sync, ESA order processing. Also hosts the finance / trading project (see below).
| Field | Value |
|---|---|
| Internal IP | 10.10.0.14 |
| SSH port | 2223 (not 22 — port 22 routes to the Proxmox host and rejects exec mode) |
| Tool routing | remote_execute_command for shell access |
| Workspace | /home/superht/pricing/ |
| Logs | /home/superht/pricing/logs/ |
| Exports | /home/superht/pricing/exports/ |
Important paths
- RS ticket sync log:
/home/superht/pricing/logs/rs_ticket_invoice_sheet_sync/cron.log - RS ticket sync export:
/home/superht/pricing/exports/repairshopr_ticket_invoice_report_sheet_sync_latest.csv - Cron schedule: RS ticket sync runs at
:20past every hour
The benign No module named 'models' warning in the cron log is expected and
not a real failure — see Cron Schedule.
Finance / trading project
The finance project is a separate application co-located on nvrbackup — a
trading-signal collection and ML scoring system with its own web dashboard.
| Field | Value |
|---|---|
| Host | nvrbackup (10.10.0.14) |
| Source tree | /home/superht/finance/ |
| API | http://10.10.0.14:3000 (health at /api/health/all) |
| API tool routing | finance_* — finance_get_portfolio, finance_get_quote, finance_list_positions, finance_get_signals, finance_list_watchlists, finance_get_risk_limits, finance_get_risk_status, finance_search_symbols, finance_health_check |
| Shell/file tool routing | finance_app_* — finance_app_execute_command, finance_app_read_file, finance_app_write_file, finance_app_list_directory, finance_app_file_exists (scoped to the finance tree) |
The :3000 API is only up when the backend is running; finance_health_check
returning a connect timeout means the service is stopped, not broken. Use the
finance_app_* tools for the source tree and finance_* for live data — they
are not interchangeable with the remote_* tools, which target the host
generally rather than the finance app.
SHTops host
Operations and monitoring for SuperHiTech — LibreNMS alerting, UniFi cache,
services management, and the shtops-dashboard API. Full details on the
SHTops page.
| Field | Value |
|---|---|
| Internal IP | 10.10.0.24 |
| Platform | Proxmox guest VM (kernel 6.8.x-pve) |
| Workspace | /home/superht/shtops/ |
| Dashboard | shtops-dashboard systemd service on :5000 |
| Tool routing | shtops_execute_command for shell, shtops_* family for scoped operations |
| Adjacent tools | unifi_* (UniFi cache), pve_* (Proxmox VMs/LXCs) |
Don’t use local_execute_command here — that targets Leif. Don’t use
remote_execute_command here — that targets nvrbackup. SHTops has its own
namespace because it’s a separate ops surface. There are no dedicated SHTops
read/write tools; shtops_execute_command is the file workhorse.
RunPod GPU instance
An on-demand GPU pod (RunPod cloud) for ML / GPU workloads. It is ephemeral — RunPod assigns a fresh public IP and SSH port each time the pod is started, and the host is unreachable while the pod is stopped.
| Field | Value |
|---|---|
| SSH endpoint | Dynamic public IP + high port (e.g. 213.173.109.238:49862) — changes per pod start |
| Lifecycle | On-demand; spun down when idle |
| Tool routing | runpod_execute_command for shell, runpod_get_system_info, runpod_list_directory, runpod_read_file, runpod_write_file |
A Connection refused from runpod_get_system_info means the pod is stopped or
the SSH endpoint has rotated — it is not a tool failure. Start the pod and
confirm the current endpoint before relying on the runpod_* tools.
Customer infrastructure
Reachable from the Leif host via SSH and WireGuard. Topology lives in Network Topology.
Notable customer-facing public hostnames in the SuperHiTech orbit:
webserver.super-ht.com— Virtualmin / Postfix mail server (DKIM, SPF maintained)super-ht.com— corporate WordPress site, hosted on SiteGroundmcp.super-ht.com/leif.super-ht.com— Cloudflare-tunneled MCP endpointdocs.leif.super-ht.com— this docs site, hosted on Cloudflare Pages
Tool routing summary
A reminder of which *_execute_command goes where:
| Target | Tool |
|---|---|
Leif host (10.10.0.25) | local_execute_command |
Pricing app server (nvrbackup, 10.10.0.14) | remote_execute_command |
Finance app tree (on nvrbackup) | finance_app_execute_command |
| SHTops host | shtops_execute_command |
| RunPod GPU pod | runpod_execute_command |
| Website host | website_execute_command |
| Generic SSH-able host | remote_execute_command (with config) |
When in doubt, this table is correct — these are persistent rules in the Leif self-document.
Last verified against live systems: 2026-06-01 — see doc freshness.