Configuration
Configure Reaver from the dashboard Settings page (and related Security / License screens). Most admin cards are collapsible and closed by default.
License activation
Open License in the dashboard and sign in with your Reaver website account (email and password). The dashboard links to your account (and its subscription/plan) on the marketing site.
What you get back
- Plan and status
- Limits:
max_sites,max_offsite - Usage (when the dashboard reports install id + counts): account-wide sites/offsite across every linked control plane
Default API host: https://reaverbackup.com. Override with REAVER_LICENSE_API_BASE if needed.
API endpoints (website):
POST /api/link-license.php— first link:{ "email", "password", "installation_id", "machine_id", "used_sites", "used_offsite" }POST /api/verify-license.php— later:{ "api_token", "installation_id", "machine_id", "used_sites", "used_offsite" }
Limits and enforcement
| Count | How it is measured |
|---|---|
| Sites | Managed restic repos (site_repos), not agents. WordPress discovery and custom path sites both count after they have a repo. |
| Offsite | Configured remote destinations on the Offsite page. Free = local only. |
| Account-wide | Website sums usage from all dashboards linked to the same account so two Free installs cannot each run one site. |
The dashboard blocks new site repo claims, schedules that cannot run, and extra offsite destinations when over limit. See plan tables in FAQ.
Grace periods
- Renewal (5 days): after expiry, backups continue briefly; then new backups pause (restores still work). Plan is not forced to Free.
- Downgrade overage (14 days): time to remove excess repos; then newest site repos stop new backups; oldest keep up to the limit.
Automatic re-check
With system cron running cli/run_schedules.php, the dashboard re-verifies the license about every 6 hours and can email admins about grace/overage/expired state. Manual Refresh status on License still works. Force: php cli/run_schedules.php --force-license.
Where to view usage
| Place | What you see |
|---|---|
| Dashboard License | Account-wide sites used/max, this install vs other dashboards |
| Dashboard home | Banners for grace / expired / overage |
| Website My Account → Site usage | Totals + list of linked dashboards |
| Website Admin → Users → Usage | Per-user totals and per-install breakdown |
Installation ID and machine fingerprint
- Installation ID — identifies this control plane for account-wide site quotas. Stored in
data/license.json. When the host has a Linux machine-id (or similar), the dashboard derives the id from a hash of that identity plus the data directory path, so a wipe/reinstall on the same machine and path reports the same id and does not create a second usage row. - Machine ID — host-only fingerprint (also hashed) sent with license checks. If the install id is new but exactly one prior row for the account shares the same machine id (typical after reinstall before the stable id was adopted, or a path change with a single dashboard on the host), the website reconnects that row instead of double-counting sites.
Two dashboards on one server use different data paths and therefore different installation ids; they only share a machine id. Orphan rows from older random ids can be removed under Admin → Users → Usage → Remove.
SMTP (admin)
Settings → SMTP — required for invite email, password reset, notification digests, and license notice email.
Configure host, port, encryption, username, password, and from address. Use the built-in test connection / test notification actions when available. Saves are audited (host/port/user/from; password updated vs unchanged — never the raw password).
Email notifications
| Setting | Purpose |
|---|---|
| My notification preferences | Per-user preferences (e.g. instant OK/fail per site on the Dashboard cards) |
| Email notifications (admin) | System-wide notification policy / digest behavior |
Morning digests are tied to the same minute scheduler as Schedules.
Schedule timezone
Settings → Schedule timezone — wall-clock interpretation for schedule “next run” times. Change this if next run does not match local time.
Local backups
Settings → Local backups — defaults for agent-local restic storage paths and related options. Local restic passwords are dashboard-managed like remote destinations (see Security and Agents).
Primary repositories
Settings → Primary repos (also from Dashboard site cards) — default destination for Run and Backup all. Remote destinations use per-site repos under {prefix}/{site-slug}.
Repo maintenance
Settings → Repo maintenance — operator tools for repository maintenance / intentional storage destroy. Use carefully; deleting a destination entry does not always wipe remote data.
Jobs cleanup
Settings → Jobs cleanup — automatically delete finished jobs older than N days (completed/failed). Manual Clear finished on the Jobs page remains available.
Agent environment (on each host)
Agent-side settings (poll intervals, local backup path, destination connect timeouts) live in /opt/reaver-agent/data/agent.env on each host — not on this Settings page. See Agents → Environment variables.
Debug logging
Settings → Debug logging — writes detailed diagnostics under data/debug.log. Enable when diagnosing stuck jobs or destination failures; disable when finished to reduce noise and disk use.
Product feedback
From the dashboard top bar (Feedback, next to your account name), submit category + message to the website API using the linked account token. Optional “Open on website” for screenshots (/feedback with session). Requires a linked License. Team replies by email when website SMTP is configured.
Anonymous product statistics
Reaver can send limited, anonymous product statistics so we can prioritize development. This is separate from license usage reporting.
Default: on for every edition (Free and paid). You can opt out at any time by setting anonymous_statistics to false in dashboard configuration (or the Settings UI when available). Free use treats limited stats as the expected exchange for free, no-account access; paid plans use the same default and the same opt-out.
What is sent (coarse only, schema v2): Reaver version, plan label, PHP/OS, site and agent counts, schedule count, WordPress vs custom-path site counts, feature flags, backup success/failure totals, destination type enums and counts, primary repo type, whether SMTP and notifications are configured, whether an account is linked, last backup age bucket, restore/archive ever used, coarse recent failure buckets, days since install, and a random local install_id for dedupe only.
What is not sent: hostnames, site URLs, emails, SMTP hosts, bucket names, paths, job names, repo IDs, tokens, or error logs.
- Endpoint:
POST https://reaverbackup.com/api/telemetry.php(or yourREAVER_LICENSE_API_BASEhost) - Fail open: if the endpoint is unreachable, backups continue as normal
See Public API and chat apps and the Privacy Policy.