#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.

Last verified: 2026-05-22 against Crucible v0.13.3.

#Prerequisites

  • A Linux server (Ubuntu, Debian, RHEL, Rocky, Alma, Arch, or Alpine).
  • 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. Free accounts can monitor up to 3 servers with 7-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. The dashboard shows the exact command with your collector key pre-filled. The bootstrap installer is:

curl -sf https://glassmkr.com/install.sh | sudo bash -s -- --api-key gmk_cru_live_your_key_here

The installer:

  • Installs Node.js 22 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/collector.yaml (mode 0600), 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.

npm install

If you would rather not pipe to bash:

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

Docker install

The agent is published to both registries; either works:

# GitHub Container Registry
docker run -d --restart=unless-stopped --name glassmkr-crucible \
  --pid=host --net=host --privileged \
  -v /etc/glassmkr:/etc/glassmkr \
  -e GLASSMKR_API_KEY=gmk_cru_live_your_key_here \
  ghcr.io/glassmkr/crucible:latest

# Docker Hub
docker run -d --restart=unless-stopped --name glassmkr-crucible \
  --pid=host --net=host --privileged \
  -v /etc/glassmkr:/etc/glassmkr \
  -e GLASSMKR_API_KEY=gmk_cru_live_your_key_here \
  docker.io/glassmkr/crucible:latest

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 60 seconds (one collection interval), the server appears on the Dashboard with live data. The Dashboard evaluates all 61 alert rules on each push.

Last verified: 2026-05-22. Default snapshot interval is 60 seconds in Crucible v0.10.0 and later.

#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 (Pro+)Automation: Ansible, Terraform, scripts, MCP clientsProgrammatic access to your account (list servers, query health, mutate state). Pro plan only.

#Next steps