Connecting...
Source

What is Raindesk?

A read-only witness of system state across multiple servers. It does not control anything; it only observes and reports what exists.

Data sources: Each server generates /witness.json every minute via cron. Raindesk fetches these files and displays the aggregate view.

Boundaries: This dashboard cannot start/stop services, deploy apps, or modify anything. For control, use SSH, deploy scripts, or the orchestrator (when deployed).

Live State
-
Servers
-
Apps
-
Tmux
-
Services
App Catalog

Apps deployed to Hyperstitious. Click to open. Hover for description.

Architecture

How we got here

  • 2024: Started with scattered experiments, various VPS servers
  • Dec 2025: Consolidated to 2 servers: Hyperstitious (static apps) + FinML (ML/agents)
  • Dec 17: Created witness.json protocol for truthful state reporting
  • Dec 17: Built Raindesk as read-only dashboard
  • Next: Deploy Rewire (event log), Orchestra (agent runner)

Server Roles

  • Hyperstitious (173.212.203.211) — Static app hosting via nginx. Drop-deploy pattern: scp files to /var/www/drops/[app]/, symlink current. No dynamic backends.
  • FinML (5.189.145.105) — ML workloads, Jupyter notebooks, tmux sessions for experiments. 141 sessions = technical debt to clean up.
Guiding Principles

Truth over beauty

If we can't query it, we don't show it. No placeholder data, no aspirational features. Unknown = "unknown".

One purpose per project

Raindesk witnesses. Rewire logs events. Orchestra runs agents. If it does two things, split it.

Provenance is mandatory

Every deployed artifact knows where it came from (repo, commit, or "manual").

Prefer boring over novel

systemd over custom daemons. nginx over custom servers. JSON over custom formats.

Quick Links
GitHub Portal Deploy Dashboard Infra Dash