Features
Everything Salvo does, and what comes next
The full list, by type: what already runs, the version it shipped in and which Lab test measured it. What doesn’t run yet shows as planned, never as done.
Version 0.4.3 · updated Oct 18, 2026
171features running
33planned
15types
Panel, command line and API: since version 0.4.0, every new feature ships in all three.
Backup
What gets stored, and howRuns today
Full cPanel account backup: account settings, files, email and one dump per database
Lab 09v0.2.0
Incremental: only what changed is read and sent again; what repeats takes no space twice
Lab 12Lab 13Lab 15v0.1.0
Data compressed and encrypted before it leaves the server
v0.1.0
Each account in its own repository on the storage
Lab 02v0.2.0
Several accounts at once, with the number chosen per job
v0.2.0
A default list of 46 exclusions (cache, logs, WordPress plugin backups, temporary files), drawn from real use and editable
Lab 10v0.2.0
Databases without locking tables (InnoDB); MyISAM locked only while it is copied
v0.2.0
Database dump streamed straight to the Salvo engine, with no temporary file on disk
v0.1.0
A dump that doesn’t finish is a failure, not a backup
v0.2.0
A database that disappeared from the account becomes a warning, not an error, and doesn’t count as an old backup
v0.3.0
An interrupted run shows as interrupted, with the reason
v0.3.0
Maximum time per run: what didn’t make it fails, with the reason
v0.3.0
Create a job from the panel and “Run now”
v0.4.0
Back up a single account now, or the selected ones, without running the whole job
v0.4.3
A backup that recovers on its own: if an account’s files are deleted from the storage from outside, the next backup starts over and says so
v0.4.3
WordPress database stored “one file per table”, optional per job
Lab 22v0.4.1
Export the account from the backup as a standard cPanel package, to take it to another server
Lab 16v0.2.0
Per-account metrics: time, new and sent bytes, memory and CPU
v0.1.0
Cancel a running backup: what was already copied counts, the account in the middle does not and cancelling is not an alert
v0.4.4
Planned
Backup priority per job (today it’s per server)
Planned
Add accounts to a job from the account list, in bulk
Planned
PostgreSQL
Planned
One backup counting for more than one schedule (Sunday’s counts as the weekly one), without running again
In design
Restoring a whole account
The account is gone or broken: how it comes backRuns today
Restore a standard cPanel backup (the panel’s own file) through Salvo
Lab 18v0.4.0
Restore the account straight from the backup on the storage, choosing the day
Lab 19v0.4.0
Three modes: new account, replace the current one or merge with it
v0.4.0
Replace with a safety copy first (on by default) and automatic rollback if it fails
v0.4.0
Suspend afterwards, change the plan or owner, leave paths out
v0.4.0
Pre-restore check: existing account, domain owned by another account, existing database, disk, plan, PHP version, IP and owner
v0.4.0
Disk check for the chosen method, before writing anything
v0.4.1
At the end, backup × restored, item by item: domains, mailboxes, messages, databases, files and scheduled tasks
Lab 18v0.4.0
Server charts during the restore: CPU, load, disk and inodes, every 2 seconds
Lab 18v0.4.0
Restore steps with the time of each; on failure, the step that stopped and the ones that didn’t run
Lab 19v0.4.3
The restore keeps going if the page is closed; the result stays in the history
v0.4.0
Restore history with the full log, filter by type and “Load more”
v0.4.3
Bring the whole backup to the server before restoring, over several connections: the default, after what we measured
Lab 21v0.4.1
Hand the folder straight to the panel, without a compressed package
v0.4.1
A clear message when the backup is no longer on the storage, creating nothing in its place, with “Choose another backup”
v0.4.1
Several accounts at once: ticked in the list, or the last backup of each one up to a given day (the hacked-server case), with how many accounts, how much space and how long before starting
Lab 23Lab 24v0.4.4
Two-track restore: the panel creates the account while Salvo fetches the backup, and the site and email are written straight into place, once
Lab 24v0.4.4
Restore queue in plain sight: what is running, how much is left and, for each one waiting, why it is waiting and when it should start
v0.4.4
Several restores at the same time (default: 3), and the queue can wait for the server load to drop between accounts
Lab 24v0.4.4
Cancel what has not started without leaving an account half-done, and redo only the ones that failed
v0.4.4
Several cPanel packages at once, to bring several accounts from another server
Lab 23v0.4.4
Fast restore without asking: two tracks, the backup fetched whole first and 8 storage connections are the default. Whoever restores in a hurry gets the fastest path we measured without knowing any option; everything can be changed in Settings › Restore, or just for one restore
Lab 21Lab 23Lab 24v0.4.6
Salvo picks by itself the path the backup allows: two tracks, or the cPanel package for an older backup made before this way of restoring
v0.4.6
The restore in progress at the top, with live steps, and a chart of where each restore’s time goes: fetching from the storage, checking, restoring in cPanel and checking what came back
v0.4.8
After restoring the account, Salvo checks that the WordPress site responds: in an urgent restore, the proof to show the customer
v0.4.8
History with who asked for the restore, from where and why
v0.4.8
A notice in the browser and on the alert channels when the restore finishes
v0.4.8
How long the restore will take, before it starts: the likely range, from what Salvo has already measured on the same server (previous restores and the backup’s size). With no history yet, it does not guess
Lab 24v0.4.9
Restore again with one click: the whole account opens already filled in (same account, same backup), and a database, a mailbox or the WordPress site’s files come back again after a confirmation
v0.4.10
Planned
Restore on another server from the panel: Salvo on the new server reads the old one’s backup
Planned
Restore in stages: site and databases first, email history afterwards
To be measured
Undo a restore with one click (account, database, files and email), for one account or the whole batch
Planned
Account package to download, with an expiring link and an access code
Planned
Site thumbnail after restoring
Planned
Preview of what is lost since the backup, before restoring
Planned
Restoring part of an account
The customer lost just one thingRuns today
See what each backup holds (mailboxes, databases and folders) without restoring
v0.4.0
Files and folders: only what’s missing, replace with a safety copy, or into a separate folder
Lab 20v0.4.0
Download any file, folder or database straight from the backup
v0.4.0
Nothing is written through a symbolic link (protection against link attacks)
v0.4.0
Account settings, each item on its own: scheduled tasks (cron), DNS zone, SSL certificate, FTP accounts and database users
v0.4.0
DNS zone: only the records that differ, and the serial goes up so secondaries pick it up
v0.4.0
Planned
Self-service restore by the customer, inside cPanel (files, email and databases), with limits set by the admin
Planned
Restore rules: file permissions, a limit per account and locking the home folder during the restore
Planned
WordPress and databases
The site’s database brokeRuns today
Restore a database: replace with a copy first, into a new database alongside, or download the .sql
Lab 20v0.4.0
Result table by table, with rows before and after
v0.4.0
Restore just one WordPress table (wp_options, wp_postmeta, wp_posts…), without touching the rest of the database
Lab 22v0.4.1
Pick the WordPress tables to restore from a list
v0.4.2
One file per table: restoring a table fetches only that table from the storage, using the same space on the storage
Lab 22v0.4.1
Planned
A WooCommerce store’s WordPress database in the Lab
Planned
Runs today
Restore a mailbox: only the missing messages, deleting nothing
Lab 20v0.4.0
Restore into a separate folder inside the mailbox, for the customer to check in webmail
v0.4.0
A restored folder with a deadline to delete itself; one click keeps it
v0.4.1
A deleted mailbox recreated with the quota and password from the backup
v0.4.0
Result per folder: in the backup, before, copied and after
v0.4.0
Storage (destinations)
Where backups live, and how much fitsRuns today
Local disk or SFTP server, in its own folder
v0.1.0
SFTP only with a known host key
v0.1.0
Free space measured on every backup, with a forecast of when it fills up
v0.3.0
Several connections to each storage, from 1 to 32
v0.4.1
Test the connection step by step, with the cause written out when it fails
v0.4.2
Measure the space on demand
v0.4.2
Create a destination from the screen, an SFTP server (with an SSH key) or a folder on this server: Salvo shows the storage key’s fingerprint to check, creates the folder if missing and tests before saving; if something fails, nothing is saved and the screen says at which step it stopped
v0.4.76
Space per disk: when several destinations share a disk, a donut shows how much is each destination’s, how much is outside Salvo and how much is left; and each destination shows how much it takes, how much each account takes inside it and the growth over the measurements
v0.4.76
Planned
S3-compatible destination (any S3 storage)
Planned
Create destinations from the panel, testing the connection before saving
Planned
Schedule, retention and locks
When it runs, how much it keeps, what never to deleteRuns today
Schedules in the JetBackup model: daily, weekly, monthly and every N hours
v0.3.0
Retention per schedule: how many to keep of each
v0.3.0
Retention of manual backups, per job
v0.4.0
Never deletes the last backup of each item
v0.3.0
Changing a schedule keeps its history
v0.4.0
A missed run is recovered, up to 12 hours later
v0.3.0
Lock a backup until a date, or forever, with a note
v0.4.0
Performance and server load
How heavy it is, and how long it takesRuns today
CPU, memory and disk limits, and low priority, only during the backup
v0.3.0
Restores at low priority by default: the server’s sites go first
v0.4.2
How many files the backup reads at once (default: one per core, the fastest we measured)
Lab 08v0.4.1
How many files a restore reads and writes at once
v0.4.1
Temporary cache, deleted at the end of each account
Lab 01v0.1.0
Each account’s cache kept between backups, optional (measurement planned)
v0.4.1
No permanent service running on the server
v0.3.0
Planned
Read whole backup packs, sequentially and in parallel, when restoring
To be measured
Panel and search
What the admin seesRuns today
A panel in WHM, for the server admin only
v0.3.0
Every menu screen in the new design
v0.4.3
A dashboard with one small square per account; late ones grouped by cause, with each group’s action
v0.4.2
Search across the whole panel: accounts, domains, mailboxes, WordPress databases and jobs
v0.4.2
Accounts: every cPanel account, including those never backed up and removed ones
v0.3.0
Status cards that filter (up to date, late, never backed up, with warnings), search, filter by job and bulk selection
v0.4.3
Export the account list to a spreadsheet (CSV)
v0.4.3
Runs with a status per item and the cause
v0.3.0
Charts: backup duration per day, destination space with a forecast and volume written
v0.3.0
Server settings on one screen, with help and validation
v0.3.0
Large lists paginated, for servers with hundreds of accounts
v0.4.2
Sizes in decimal units, the same on screen and on the command line
v0.4.0
Links to the Lab on options whose default came from a measurement
v0.4.1
Salvo opens inside WHM, with WHM’s own menu and header
v0.4.4
Jobs at a glance: which have a schedule, how the week’s runs went, the accounts outside any job and the next backup. What has no schedule, is late or has a warning shows up without opening job after job
v0.4.5
Each job with its last 14 runs, average duration, what it wrote and what it didn’t need to write, the accounts from the last run, the next runs and retention
v0.4.5
Edit, duplicate, pause only the schedule and delete a job, without deleting its backups (unless you ask)
v0.4.5
Runs at a glance: what is running or the next backup and how long it should take, a chart of when each job ran and, per day, how many accounts each run copied, what warned, how much it wrote and how much it didn’t need to write. In the morning you know whether the night went well without opening anything
v0.4.7
Each run with its accounts, the comparison with the previous one, the job’s history and the log; the accounts that warned can have their backup redone on their own, without repeating the others
v0.4.7
The account map stays readable at the same size with 50 or 600 accounts
v0.4.29
Update Salvo from the screen: an icon next to the version shows when there is a new one and updates with one click; Salvo downloads it, checks the package signature, replaces itself and reloads the screen. Also from the command line
v0.4.41
Activity center at the top of every screen: what is running (backups, restores and migrations), the step, how far along and how long since the last signal; if a server stops responding, it warns you. And every click gets feedback right away
v0.4.70
Planned
The account page, the schedule editor and “Create job” in the new design
Planned
Compact density, dark mode and per-user preferences
Planned
A central console for many servers
Planned
Alerts
Who tells you when something goes wrongRuns today
A backup that fails or runs late, an account without a recent backup, a full or filling destination, an interrupted run
v0.3.0
Email (through the machine’s own server or SMTP), signed webhook and Zabbix
v0.3.0
Only when the problem starts and when it’s resolved, with one reminder a day
v0.3.0
Alerts grouped by cause, with each group’s action (“Try again” backs up just those accounts)
v0.4.3
An account’s failure alert resolves itself after a good backup
v0.4.3
No false alarm from a new schedule
v0.3.0
Planned
Set up alert email and webhook from the panel
Planned
Mute an alert for a while
Planned
A dedicated alert when an account’s repository disappears from the storage
Planned
An alert when the integrity check fails
Planned
Verification and security
How to know the backup is goodRuns today
On-demand verification: restores to a temporary folder and compares sha256, permissions, owner and date
v0.1.0
A safety copy before replacing anything: account, database, file or setting
v0.4.0
Panel for the server admin only, protected against forged requests
v0.3.0
The log never records passwords or file contents
v0.3.0
Safety copies in plain sight: what was there before each replacement is kept for as long as you choose, with a button to go back to it
v0.4.8
Audit: every action in Salvo is recorded, from the screen, the terminal, the schedule, the alerts and even requests arriving from another server during a migration; who, when, from where and what changed, with the value before and after
v0.4.44
Chained audit records: if someone alters the history from outside, the screen shows from which record on; with a map of when actions happen, who acted and from where, filters and CSV export
v0.4.44
In testing: named administrators and 2-step verification. Each person signs in with their own name and a code from an authenticator app, no SMS, the same way as WHM; invitation by email through the panel itself, recovery codes and lockout after wrong codes. What each person does goes into the Audit under their name, without creating system accounts. On cPanel and DirectAdmin
v0.4.46
Planned
Backup integrity check (structure, sample and full restore), on a schedule, with an alert
Planned
Scheduled restore test, with a badge on the panel: “the last restore test passed”
Planned
JetBackup: side by side and switching
How to leave JetBackup without riskRuns today
Runs alongside JetBackup, in its own folder
v0.1.0
JetBackup read side by side in the panel: account by account, who is up to date and where the two disagree
Lab 13Lab 14v0.3.0
Schedules, retention and restore options in the same model as JetBackup
v0.4.0
Settings drawn from JetBackup’s screens, each with its JetBackup equivalent
v0.3.0
Restore a standard cPanel backup, the same format JetBackup can produce
Lab 18v0.4.0
When reading JetBackup, only backups count: JetBackup’s restores, cleanups and checks are left out, and a restore never counts as a backup
v0.4.29
Planned
Full import of the JetBackup configuration (destinations, jobs, schedules, retention and filters)
Planned
Side by side on a real server, switch-over and undo
Planned
Read old JetBackup backups
Planned
Migration between servers
Moving accounts to another server without breaking anythingRuns today
Each Salvo builds the profile of the server it runs on (panel, system, PHP versions for the WordPress sites, database, web server, email, disks, packages) and reads the others’
v0.4.11
Before moving any account, both ways: what the destination has and what it lacks to take the source’s accounts (PHP that isn’t there, an older database, packages to create, disk that can’t hold everything at once, care with DNS)
v0.4.11
Migrate an account from one cPanel server to another, in stages: first the skeleton (domains, email accounts with their passwords, the WordPress sites’ configuration), the account created by the panel’s own tool, and only then the files, the email and the databases
v0.4.12
At the end of the migration, a check compares source and destination item by item (every domain, every database and its tables, every mailbox and its messages) before any switch
v0.4.12
The migration followed on one screen, stage by stage
v0.4.12
Sync an already migrated account again, only the part that changed: the email that arrived on the old server (only the difference, with folders and flags), a WordPress site’s database or the files
v0.4.13
Every sync is kept in the account’s history, with the result and the check
v0.4.13
Migrate accounts with databases: the WordPress sites arrive with their databases, users and each database’s permissions, and each domain’s PHP is set to a version that exists on the new server
v0.4.14
The check requests the site on both servers and compares: if it answers on the old one and not on the new one, the migration does not pass
v0.4.14
Requirements in plain sight before migrating: Salvo checks and records each one (the name and domains free on the new server, space, the PHP versions of the WordPress sites, databases, mailboxes, where the site and email really are, signs of a hack) and shows each one with its check mark. If something blocks it, the migration does not even start and says why
v0.4.16
The two servers talk over their own channel, with a key that only lets the new server read what the migration needs
v0.4.16
Migrate and sync from the screen: the admin picks the account and clicks Migrate; afterwards, syncs email, files or databases again with one click
v0.4.16
No email is left behind in a migration: suspended mailboxes sync normally, and even email folders left without an account (no password) go whole to the new server. If the customer ever asks for the mailbox back, just recreate it with the same name and the messages are there
v0.4.17
Webmail arrives the way the customer left it: in a migration, each mailbox also takes the filters created in webmail and its contacts, identities and preferences, and they go along every time the mailbox is synced again
v0.4.18
Migrate accounts whose email lives on another cPanel server (mail node): Salvo fetches the site and databases from the account’s server and the email, email accounts, calendars and contacts from the mail server, and everything arrives together on the new server, with the same item-by-item check
v0.4.19
Calendars and contacts checked and synced in every migration
v0.4.19
The customer’s files stay the customer’s: everything the migration writes into the account is written as the account’s own user, never as the server admin, and the check fails the migration if any file ends up with another owner
v0.4.25
The source server is only read, email included: whatever the new server tries to write there disappears, and the real mailbox stays intact
v0.4.25
Nothing leaves without your release: the new server asks for each account, and on the old one the admin releases it for a period (24 h, 48 h, 7 days) or refuses, on screen; authorized servers are managed on screen too
v0.4.25
Databases checked row by row, table by table, on WordPress sites and any other
v0.4.25
Live progress, Cancel and a notice at the end, through the same channels as backup alerts
v0.4.25
After the first copy, each sync carries only the difference, and what was deleted on the old server is removed from the new one too
v0.4.25
Light on the old server: the migration runs at the lowest CPU and disk priority
v0.4.25
"Migrate an account" button: pick the source server and the account, check the requirements and migrate, with the step-by-step release on the source right there
v0.4.30
Pick the account from the source server’s list, with each one’s size and where its email is stored, including when it lives on another server; just filter and click
v0.4.31
An account waiting for release on the source has an "Update status" button, without leaving the screen
v0.4.32
Checking an account’s requirements again takes a few seconds, shows only the latest result and says exactly what blocks the migration
v0.4.33
Migrations show live in Runs, alongside backups: the step running now, the ones already done, how long they took and the log updating by itself; you can tell whether it is moving or stuck without opening SSH
v0.4.47
Migration screen by the server’s role: bring accounts here, release what leaves from here and the paired servers, with each account’s progress, the sync passes and the source × destination check
v0.4.70
Migration time left: each part of the account in bars (files, each mailbox, each database) and a clock with how long until the email is done, at the real pace of the messages
v0.4.75
In testing, in a rehearsal with a fictitious domain: the switchover by Salvo, with cPanel on the source. Scheduled from the screen: the TTL drops right away and, at the chosen time, Salvo does the last pass, puts the source databases in read-only without taking the site down, changes in the zone only what points to the old server and checks propagation. Afterwards, email syncs both ways, the account stays suspended on the source for the chosen time, and every step can be undone until the final deletion
v0.4.88
Planned
Several accounts in a queue
Planned
Sync by itself, in cycles, until the switch
Planned
cPanel ↔ DirectAdmin
Planned
Command line, API, logs and languages
For those who automateRuns today
Everything from the command line and the REST API, as well as the panel
v0.4.0
A log for every run and restore, with four levels (per server, job or run)
v0.3.0
Live log on screen, with a level filter and “Download log”
v0.3.0
Panel in English and Portuguese, following the WHM language; 24 h or 12 h time
v0.3.0
Command line and logs in English
v0.4.0
Salvo version in the panel, on the command line, in the API and in the log
v0.4.1
Logs on one screen: everything Salvo did on the server (backups, restores, warnings, alerts and schedule), with filters by level, source, job and account, search, live and downloadable. You can look into a night’s events without SSH and without hunting for files
v0.4.5
The reason for each restore from the command line too, kept in the history next to who asked for it
v0.4.10
Command line and logs in English, the standard for server admins (the old commands still work); the screens keep WHM’s language
v0.4.10
Planned
More languages: one file per language, and the admin can add their own without replacing Salvo
Planned
Platforms
Where Salvo runsRuns today
cPanel and WHM
Lab 09v0.2.0
In testing: DirectAdmin, with account backup and restore the same way as on cPanel (the whole account, a database, a mailbox or individual files), inside the panel itself and with the same screens as in WHM
v0.4.66
Planned
DirectAdmin: running alongside JetBackup and self-service restore
Planned