Quickstart
Zero to a working Pulse install in about ten minutes on a Linux host with Docker.
Get from zero to a working install in about ten minutes on a Linux host with Docker.
1. Clone and configure
Section titled “1. Clone and configure”git clone https://github.com/your-org/pulse.git /opt/pulsecd /opt/pulsecp .env.example .env$EDITOR .envSet at minimum:
PUBLIC_BASE_URL=https://pulse.example.comAPI_CORS_ORIGINS=https://pulse.example.comSESSION_SECRET=$(openssl rand -hex 32)CSRF_SECRET=$(openssl rand -hex 32)WORKER_ENROLLMENT_TOKEN=$(openssl rand -hex 24)Leave DATABASE_URL and REDIS_URL at their compose defaults unless you point at managed services.
2. Bring it up
Section titled “2. Bring it up”docker compose -f docker/docker-compose.yml up -dThe API applies migrations on boot. Verify:
curl -fsS https://pulse.example.com/api/v1/healthz# {"service":"pulse-api","status":"ok",...}3. Create your first user
Section titled “3. Create your first user”Open https://pulse.example.com/signup. The bootstrap signup is open until exactly one user exists, then closes automatically.
4. Add your first monitor
Section titled “4. Add your first monitor”In the app: Monitors → + New monitor. Pick HTTP, paste a URL (e.g. https://example.com), 60s interval, save. First check fires within seconds; you’ll see live status on the dashboard.
5. Wire one notification channel
Section titled “5. Wire one notification channel”Settings → Channels → Add → Slack. Paste a Slack incoming-webhook URL, save.
6. Create one alert rule
Section titled “6. Create one alert rule”Alerts → + New rule. Scope: All monitors. Trigger: Status becomes down for 3 consecutive checks. Channel: the one you just added. Save.
That’s a complete loop. Take the monitored target down for a minute and watch the alert fire in Slack.
Where to next
Section titled “Where to next”- Core concepts for the small set of terms the rest of the docs uses.
- Self-hosting for production hardening — TLS, backups, upgrades.
- Monitors for the full check configuration surface.