Skip to content

Operator guides ​

Task-oriented guides for the person who runs Pulse. Pulse is a single-owner system: one operator, one VPS, one pulsed and one NATS server. The detailed contract lives in the repository's docs/operator/; these pages explain how to use it.

Pulse overview: event counts, throughput, top subjects and the disk forecastPulse overview: event counts, throughput, top subjects and the disk forecast
The Overview page

Reaching the dashboard ​

The dashboard and the admin API need a signed-in user with a role: administrator, operator, auditor or viewer. People sign in with a password and TOTP, or with single sign-on. The first administrator comes from pulsed admin bootstrap. See Users and single sign-on.

The admin listener is on host loopback, so you can always reach it through an SSH tunnel:

sh
ssh -L 8080:127.0.0.1:8080 you@vps.example.com
# then open http://127.0.0.1:8080

With PULSE_ADMIN_PUBLIC=true the dashboard is also served behind Cloudflare, on its own hostname or on the API hostname. The admin commands of the pulse CLI (pulse clients, pulse streams, pulse backup) always use the tunnel (--admin-url http://127.0.0.1:8080) with a personal access token.

Everyday work ​

TaskGuide
Invite people, assign roles, set up single sign-onUsers and single sign-on
Give a tool its own credentials and exactly the subjects it needsClients and grants
HTTP tokens for scripts and services that cannot speak NATSClients and grants
Look at events, streams, consumers, KV buckets and objectsStreams, KV and objects
See who changed whatClients and grants
Receive webhooks from GitHub or Stripe, send events to your servicesWebhooks in and out

Setup and operations ​

TaskGuide
Hostnames, Cloudflare, the origin certificate and Let's Encrypt for NATSCloudflare and TLS
The nftables table, automatic bans, lifting a banFirewall and bans
The master key, the key store, what to keep offlineKeys and credentials
Nightly encrypted backups, restores, disaster recoveryBackup and restore
Logs, metrics, alert rules, Telegram and DiscordMonitoring and alerts
New releases, migrations, rollbackUpgrades
Configuration as codeTerraform

First time? Start with Deploy on a VPS, then Connect your first tool.

Where state lives ​

WhatWhereBacked up
Events, user streams, KV buckets, object storesNATS JetStream (nats-data volume)Yes, as JetStream snapshots
Clients, grants, tokens, webhooks, bans, audit, alerts, rollups, settings, dashboard users and SSO providersSQLite pulse.db (pulsed-data volume)Yes
Signing keys, internal CA, ACME accountkeys.enc, sealed with the master keyYes (still sealed)
Master keyA compose secret from your vault, never on a volumeNo: keep it in your vault
age backup identityOffline onlyNo: keep two offline copies

Released under the Apache-2.0 license.