Documentation

DriftHalt monitors your servers by running a lightweight agent on each one. The agent collects data about what's installed, what's running, and how healthy the system is — then sends it to your dashboard every 15 minutes.

The agent is open source, read-only, and never accepts inbound connections. It only pushes data outbound to DriftHalt over HTTPS.

Agent language

Python 3

Scan interval

Every 15 minutes

OS support

Ubuntu 20.04+, Debian 11+

Agent license

MIT (open source)

1. Create an account

Go to drifthalt.com/register and sign up with your email and a password. The free plan lets you monitor up to 2 servers at no cost.

Free vs Pro

ServersFree: 2 · Pro: Unlimited
Version databaseFree: Top packages · Pro: Expanded list
HistoryFree: 7 days · Pro: 12 months
PriceFree: $0 · Pro: $6/month

2. Get your API key

Your API key is how the agent authenticates with your account. Each agent install uses the same key — it identifies which account to report data to.

  1. 1.Log into your dashboard at drifthalt.com/dashboard
  2. 2.Click Account in the left sidebar
  3. 3.Find the API Key section and click Show then Copy

Keep your API key secret. Anyone with this key can register servers to your account. If it's ever compromised, rotate it from the Account page.

3. Install the agent

SSH into the server you want to monitor and run the install command. Replace YOUR_API_KEY with the key you copied from the Account page.

Run on your server:

curl -fsSL https://drifthalt.sh/install | sudo bash -s -- --api-key YOUR_API_KEY

The installer will:

  • Create a dedicated drifthalt system user with minimal permissions
  • Install the agent to /opt/drifthalt-agent
  • Create a systemd service that runs on boot
  • Run the first scan immediately and send data to your dashboard

Requirements

  • ·Ubuntu 20.04+ or Debian 11+
  • ·Python 3 installed (standard on most servers)
  • ·sudo access to run the installer
  • ·Outbound HTTPS access to drifthalt.com on port 443

Verify the agent is running

After install, confirm the service is active:

systemctl status drifthalt-agent

View live logs:

journalctl -u drifthalt-agent -f

Uninstall

To remove the agent from a server:

curl -fsSL https://raw.githubusercontent.com/drifthalt/drifthalt-agent/main/uninstall.sh | sudo bash

4. Using the dashboard

Once the agent runs its first scan, your server appears in the dashboard. Click into it to see all collected data across seven tabs.

Overview

A summary of the server — package count, running services, SSL certificates, and cron jobs. Resource gauges show current CPU, memory, and disk usage.

Packages

Every package installed via apt/dpkg with its version. Use the search box to find specific packages. Version comparison against latest known versions is shown for tracked packages.

Services

All systemd services with their current status (running, stopped, failed). Filter by status to quickly find failed services. Note: UFW firewall may show as stopped even when active — verify with sudo ufw status on the server.

SSL

SSL certificates detected from your Nginx config, with issuer, expiry date, and days remaining. A color-coded bar shows urgency — green is healthy, yellow is expiring soon, red is critical.

Cron

Scheduled cron jobs from crontab and /etc/cron.d/, showing the user, schedule, and command for each job. The Last Run column shows how long ago each job was last invoked, based on system journal logs from the last 24 hours. Note: Last Run shows when the job started, not whether it succeeded. A job that runs and fails silently will still show a recent Last Run time. Jobs showing — have not run in the last 24 hours or could not be matched to a journal entry.

Containers

Docker containers running on the server, showing image name, tag, status, and exposed ports. Containers using the latest tag are highlighted — pinning to a specific version is recommended for production. Note: Docker must be installed before running the agent installer for container detection to work automatically. If you install Docker after the agent, re-run the install command to enable container visibility.

History

A timeline of the last 50 scans for this server. Select any two scans and click Compare to see a diff of what changed between them — packages added or removed, services that changed status, SSL certs, and cron jobs.

5. PM2 process monitoring

DriftHalt can monitor PM2 processes on your server, tracking restart counts, memory usage, and process status. If a process restarts 3 or more times between scans, you'll receive an alert. PM2 monitoring requires a one-time setup on each server where you want it enabled.

Requirements

PM2 installed and running on the server. DriftHalt agent v1.2.3 or later.

Setup

SSH into your server and run the following commands. Replace YOUR_USERNAME with the Linux user that runs PM2 on your server (commonly ubuntu, deploy, or your personal username).

sudo bash -c 'cat > /usr/local/bin/drifthalt-pm2-info << '\''EOF'\''
          #!/bin/bash
          PM2_HOME=/home/YOUR_USERNAME/.pm2 pm2 jlist
          EOF'
          sudo chmod +x /usr/local/bin/drifthalt-pm2-info
          sudo chown YOUR_USERNAME:YOUR_USERNAME /usr/local/bin/drifthalt-pm2-info
echo "drifthalt ALL=(YOUR_USERNAME) NOPASSWD: /usr/local/bin/drifthalt-pm2-info" | sudo tee /etc/sudoers.d/drifthalt-pm2
          sudo chmod 440 /etc/sudoers.d/drifthalt-pm2

Once complete, PM2 data will appear in your next agent scan (within 15 minutes). No agent restart required.

What gets monitored

Process name and current status. Restart count — alerts when 3 or more restarts occur in a single scan cycle. Memory usage per process.

Alerts

When a PM2 process restarts 3 or more times between scans, DriftHalt sends an email and webhook notification with the process name, restart count, and a link to your dashboard.

FAQ

Is the agent safe to install?

Yes. The agent is open source (MIT license) and read-only — it never modifies anything on your server. It only collects metadata and sends it outbound to DriftHalt over HTTPS. It never accepts inbound connections. You can review the full source code at github.com/drifthalt/drifthalt-agent.

What does the agent collect?

The agent collects: hostname, OS info, kernel version, uptime, CPU/memory/disk usage, installed packages and versions, systemd service status, Docker container info, SSL certificate expiry, cron jobs, open ports, and system user metadata (username, sudo access, SSH key presence). It never collects passwords, SSH private keys, environment variables, or file contents.

How often does the agent scan?

Every 15 minutes by default. This is configurable in the agent config file at /etc/drifthalt/agent.conf.

What if my server goes offline?

The agent retries on the next scan cycle if a send fails. The dashboard marks a server as "stale" if no scan has been received in over 30 minutes, and "offline" after a longer period.

Can I monitor servers that are not Ubuntu or Debian?

Not yet. Version 1 supports Ubuntu 20.04+ and Debian 11+. Support for other distributions is planned for a future release.

How do I add more than 2 servers?

Upgrade to Pro from the Account page. Pro is $6/month or $60/year and includes unlimited servers.

How do I remove a server?

Open the server detail page in the dashboard and click "Remove server" in the top right. This deletes all data associated with that server. You should also uninstall the agent from the server itself to stop it from sending data.

Is my data private?

Yes. Every database query is scoped to your account — no other user can access your server data. See our Privacy Policy for full details on data handling and deletion.

How do I update the agent?

The agent does not auto-update. To update, re-run the install command on each server with your API key. The installer will overwrite the existing agent files and restart the service automatically.

Ready to get started?

Free plan covers 2 servers. No credit card required.

Create free account