Install command builder
Enter your public dashboard URL and install directory. Copy the generated command and run it on your Linux control server as root.
Requires root (sudo). Re-running the command upgrades an existing install and preserves
data/. Full options: … | sudo bash -s -- --help
Installation
Install the Reaver dashboard on a Linux control server. Agents are installed later on each host you want to protect from the dashboard UI (not from the public CDN).
Install command builder
Use the form at the top of this page to enter your public dashboard URL and install directory. It generates a ready-to-copy command with the right flags.
Quick install
Interactive (prompts for public URL and install directory when a terminal is available):
curl -fsSL https://cdn.reaverbackup.com/install/install.sh | sudo bash
With flags (recommended when piping — options go after bash -s --):
curl -fsSL https://cdn.reaverbackup.com/install/install.sh | sudo bash -s -- \
--url=https://backup.example.com \
--dir=/var/www/reaver
Download then run:
curl -fsSL https://cdn.reaverbackup.com/install/install.sh -o install.sh
sudo bash install.sh --url=https://backup.example.com --dir=/opt/reaver
Useful flags
| Flag | Meaning |
|---|---|
--url=https://… |
Public dashboard URL (nginx server_name) |
--dir=/path |
Install directory (default /var/www/reaver) |
--version=… |
Pin a specific release (default: CDN latest) |
--certbot --certbot-email=you@example.com |
TLS with Let's Encrypt |
--skip-deps / --skip-nginx / --skip-cron |
Skip those steps |
--non-interactive / -y |
No prompts |
--help |
Full usage |
CDN hosts are fixed in the installer (not overridable) for supply-chain safety.
The installer:
- Installs nginx + PHP-FPM (Debian/Ubuntu) unless
--skip-deps - Downloads the release tarball and verifies SHA-256
- Installs into
--dir(document root = dashboard files) - Writes an nginx site for your
--url - Installs a minute cron for
cli/run_schedules.php - Prints the URL for the browser setup wizard
Agent install is separate — from the dashboard Agents page after setup.
Upgrading
Re-running the same install command upgrades in place:
- Everything under the install dir except
data/is moved to<dir>.bak.<timestamp>/ - The new package is extracted on top
- Your SQLite DB, license, keys, and archives under
data/stay put
You can also upgrade from the dashboard License → Software version (Check for updates / Upgrade) when a newer CDN release is available.
Prerequisites
| Requirement | Notes |
|---|---|
| OS | Linux (Ubuntu 22.04+ recommended) |
| PHP | 8.1+ with pdo_sqlite, curl, mbstring, openssl (installer installs these on Debian/Ubuntu) |
| Web server | Nginx + PHP-FPM (installer can configure nginx) |
| Database | SQLite under the dashboard data/ directory |
| TLS | HTTPS recommended (--certbot or your own certificate) |
| Cron | Minute cron for schedules / digests / license re-check |
Dashboard layout
| Path | Purpose |
|---|---|
reaver.php |
Main UI router |
api/ |
Agent poll API plus public API and chat-app URL |
data/ |
SQLite DB, secrets, archives — not public |
cli/ |
Schedule runner, digests, nginx config generator |
agent/ |
Agent package source (served via dashboard API) |
docs/ |
In-app operator guides |
Deny web access to data/, cli/, agent/, vendor/, logs/, templates/, and most of shared/. The package nginx template does this for you.
Manual deploy (without the CDN installer)
- Deploy dashboard files to a web root (e.g.
/var/www/reaver). - Ensure the PHP user can write
data/. - Point nginx at the root; route PHP to FPM.
- Open the site and complete the setup wizard.
- Enable the schedule cron (see Schedules).
Nginx sketch
server {
listen 443 ssl http2;
server_name reaver.example.com;
root /var/www/reaver;
index reaver.php index.php;
client_max_body_size 2G;
location ~ ^/(data|cli|agent|vendor|logs|templates|install)/ {
deny all;
return 404;
}
location / {
try_files $uri $uri/ /reaver.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}
Or generate a vhost with php cli/generate_nginx_config.php --url=https://… --root=/var/www/reaver.
The public API and built-in MCP server need nginx to forward /api/v1* and the Authorization header. The package template already does that. See Public API and chat apps and MCP Server for AI Agents.
PHP / nginx upload limits
Archive upload and large POSTs need aligned limits:
- PHP:
upload_max_filesize,post_max_size - Nginx:
client_max_body_size
Mismatch often produces HTTP 413. See Restore & Archives.
After install
Complete the browser setup wizard (admin account), then sign in. The dashboard shows a guided first-run walkthrough until you dismiss it or a backup succeeds — same order as the public guide:
Follow the First Backup Walkthrough:
- Agents & Sites — install an agent (SSH or manual pair)
- Discover WordPress / add custom paths
- Choose storage — local primary repo, or Offsite Destinations then set primary
- Run the first backup, then Schedules
- Configuration — license, SMTP, notifications when ready
- Optional: Public API and chat apps and MCP Server for AI Agents — tokens, Claude/Cursor/LibreChat, outbound webhooks