View as Markdown

#Overview

Glassmkr has two parts:

  • Dashboard is the hosted service at app.glassmkr.com. It stores your data, evaluates alerts, and renders server health.
  • Crucible is the MIT-licensed agent. It runs on your server, collects health data, and pushes snapshots to the Dashboard.

You register a server in the Dashboard (which gives you a collector key), then install Crucible on that server with the key. That is the entire flow for a single server.

Want it on your own hardware? The whole stack self-hosts with one compose file: see /docs/self-hosting. The steps below cover the hosted service.
Automating, or onboarding many servers? The whole flow runs over the API, no dashboard clicks. A write-scoped account key (gmk_acct_live_) creates each server with POST /api/v1/servers, and the response returns that server's collector key. See the Programmatic API quickstart.

Last verified: 2026-08-24 against Crucible v0.15.1.

#Prerequisites

  • A Linux server. Ubuntu and Debian can use the one-line installer; RHEL, Rocky, Alma, Arch, Alpine and everything else use the single-file binary, which needs no Node. See step 3.
  • Root or sudo access.
  • Outbound HTTPS (port 443) to app.glassmkr.com. No inbound ports required.

#Step 1: Create a Dashboard account

Go to app.glassmkr.com and sign up with email, Google, or GitHub. Hosted accounts are free, with a 10-node per-account cap (a capacity protection, not a tier) and 90-day retention.

#Step 2: Register a server

After logging in, click + Add Server. Enter a name (for example, web-01 or db-prod).

The Dashboard generates a collector key that starts with gmk_cru_live_. This key is shown once. Copy it. Servers created before Crucible 0.9.0 may have a legacy col_xxx key; both formats work.

What is this key? The collector key (gmk_cru_live_xxx) authenticates snapshot pushes from this specific server to the Dashboard. Each server gets its own key, scoped to that server's telemetry only. This is different from the account API key (gmk_acct_live_xxx) in Settings, which is for programmatic API access from automation like Ansible, Terraform, or scripts.

#Step 3: Install Crucible

SSH into your server. There are three ways in, and which one you use depends on your distribution.

Bootstrap installer (Ubuntu and Debian only)

The dashboard shows this command with your collector key pre-filled:

curl -sf https://glassmkr.com/install.sh | sudo bash -s -- --api-key gmk_cru_live_your_key_here
This script supports Ubuntu and Debian only. On anything else it exits with only Ubuntu and Debian are supported and installs nothing. That is deliberate rather than a bug: it installs distribution packages and a Node runtime, and those steps are only tested on Debian-family hosts. On RHEL, Rocky, Alma, Arch, Alpine or anything else, use the single-file binary below.

The installer:

  • Installs Node.js 24 if not present.
  • Installs smartmontools (SMART disk monitoring).
  • Installs ipmitool if available (IPMI hardware monitoring).
  • Runs glassmkr-crucible init to validate the key against the Dashboard, write /etc/glassmkr/crucible.yaml (mode 0600; migrates a pre-0.13.5 /etc/glassmkr/collector.yaml in place when present), and install the systemd unit.
  • Starts the glassmkr-crucible service (runs as the non-root glassmkr user).

Reading the key from a password manager? Pipe it through stdin:

op read "op://Private/Dashboard/key" | sudo glassmkr-crucible init --api-key -

The legacy --dashboard-key flag is preserved as an alias for --api-key so existing Ansible or Terraform automation keeps working without changes.

Single-file binary (any distribution, no Node required)

The release binaries bundle their own runtime, so a host with no Node can run them. This is the path for RHEL family, Arch and Alpine, and it works on Debian family too:

curl -fsSLO https://github.com/glassmkr/crucible/releases/download/v1.0.1/glassmkr-crucible-linux-x64
curl -fsSLO https://github.com/glassmkr/crucible/releases/download/v1.0.1/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
sudo install -m 0755 glassmkr-crucible-linux-x64 /usr/local/bin/glassmkr-crucible
sudo glassmkr-crucible init --api-key gmk_cru_live_your_key_here

Use glassmkr-crucible-linux-arm64 on arm64. Each binary carries a build-provenance attestation; the Trust page shows how to check one without a GitHub account.

The binary does not bundle system tools, so install those separately for SMART and IPMI data:

sudo dnf install -y smartmontools ipmitool     # RHEL, Rocky, Alma
sudo apt install -y smartmontools ipmitool     # Debian, Ubuntu

npm install (any distribution with Node 22.19.0 or newer)

If you would rather not pipe to bash, and the host already has a recent Node:

sudo npm install -g @glassmkr/crucible
sudo glassmkr-crucible init --api-key gmk_cru_live_your_key_here

Check with node -v first. Several distributions still ship Node 16 or 18 by default, including AlmaLinux and Rocky, and the agent refuses to start below 22.19.0. Either add your distribution's current Node repository, or use the binary above and skip Node entirely.

Run glassmkr-crucible init --help to see the full flag list (custom server name, alternate Dashboard URL, etc.).

#Step 4: Verify

Check that Crucible is running:

sudo systemctl status glassmkr-crucible

You should see active (running). Check the logs for the first collection:

sudo journalctl -u glassmkr-crucible --since "5 min ago" --no-pager

Expected output (the first collection may take a few seconds longer than later ones):

[collector] Starting. Server: web-01. Interval: 60s
[collector] IPMI: enabled, SMART: enabled
[collector] Dashboard: https://app.glassmkr.com
[collector] Collecting...
[collector] Collected in 1013ms. Alerts: 0 active, 0 new, 0 resolved

=== First collection complete ===
Server: web-01 (Ubuntu 24.04 LTS)
CPU:    5.3% (load: 0.14)
RAM:    12.1% (1940 / 16036 MB)
Disk:   23% (/)
SMART:  2 drive(s) checked
Network: eth0, eth1
IPMI:   available
Active alerts: 0
Dashboard: enabled

[dashboard] Push successful. Active alerts: 0

Within about five minutes (one collection interval), the server appears on the Dashboard with live data. The Dashboard evaluates all 70 alert rules on each push.

Last verified: 2026-05-22. Default snapshot interval is 300 seconds (five minutes); the minimum is 60.

#Two kinds of keys

Glassmkr uses two key types:

Key typePrefixCreated whereUsed byPurpose
Collector keygmk_cru_live_ (legacy: col_)Dashboard: + Add ServerCrucible agentAuthenticates snapshot pushes from one specific server. Scoped to that server; cannot list other servers or read account settings.
Account API keygmk_acct_live_Settings: API keys (every account)Automation: Ansible, Terraform, scripts, MCP clientsProgrammatic access to your account (list servers, query health, mutate state). On every account, with read, write, or admin scope; bounded by the hosted 10-node cap and rate limits.

#Next steps