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
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.Log into your dashboard at drifthalt.com/dashboard
- 2.Click Account in the left sidebar
- 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_KEYThe 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-agentView live logs:
journalctl -u drifthalt-agent -fUninstall
To remove the agent from a server:
curl -fsSL https://raw.githubusercontent.com/drifthalt/drifthalt-agent/main/uninstall.sh | sudo bash4. 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-infoecho "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-pm2Once 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