AlumDeck

Run · Backups & restore

Backed up every night. Tested every Sunday.

At 02:30 AlumDeck backs up your database, your uploads and your private documents, outside the web folder, with a checksum for every file. Every Sunday it proves the newest backup restores, table by table.

Every night

What happens at 02:30, while everyone sleeps.

  1. 02:30: copy the database

    A consistent dump of your MySQL or MariaDB database, compressed. The database password goes into a private option file, never onto the command line, where other accounts on a shared server could read it.

  2. Pack the files

    Your public uploads and your private documents, each in its own compressed archive. With a backup passphrase saved, every file is then encrypted with AES-256.

  3. Write a manifest

    The time, the database name, every table, every file size and a SHA-256 checksum for each file, plus a note on how to restore.

  4. Check it before keeping it

    A dump that is empty, tiny or has no tables in it is rejected. The work happens in a temporary folder that only gets its real name once everything is complete.

  5. Keep the last seven

    Older backups are removed. If the newest one is getting old, the Backups page says so, which is usually the first sign the cron line has stopped.

How it works

Backups you can prove, not just hope for.

Where

Written where the web cannot reach

Backups go to a folder beside your install, not inside it. AlumDeck refuses any folder a browser could reach, such as public_html, www or htdocs, and tells you why. The folder and files can be read by your hosting account only.

  • Outside the web folder, always
  • Owner-only folder and files
  • A different folder is one setting in .env

Every Sunday

A restore test, not just a backup

At 04:00 every Sunday, AlumDeck loads the newest backup into a scratch database, compares the number of rows in every table with the live site, warns about any table missing from the backup, and then removes the scratch copy.

  • On cPanel, the scratch database is made with cPanel's own tools
  • Row counts compared for every table
  • Never touches the live database

When you need it

Restoring, written down before you need it

The Backups page has a Restoring section with the exact commands for SSH, and a phpMyAdmin route for hosts without it. It also prints ready-made cron lines to copy, for installs where the scheduler was never set up. The same page has a "Back up now" button, and a Download button beside each encrypted backup for full administrators.

  • Commands for the database and both archives
  • A route without SSH
  • Cron lines ready to paste into your control panel

What it needs

Four things from your host, one of them a cron line.

What nightly backups need from your host
NeedsWhy
One cron lineThe backup, the Sunday restore test and every other scheduled job run from the scheduler
PHP exec() allowedThe database dump and the archives run as commands; AlumDeck checks first and says plainly if it is disabled
MySQL or MariaDBThe only databases AlumDeck runs on
Room for seven backupsOlder ones are removed automatically

Not yet

What backups do not do yet.

A tag means a fix is planned. No tag means it is not.

  • Downloading a backup that is not encrypted from the admin: Download is for full administrators and for encrypted backups only (use FTP or SSH for the rest)
  • Restoring from inside the admin
  • An automatic copy to cloud storage off the server: backups stay on your server, encrypted if you set a passphrase, until you copy them elsewhere
  • Backups on hosts without exec() or MySQL
  • The Sunday restore test on a host without cPanel whose database user may not create a database: there the test cannot make its scratch database, and fails until you create an empty one and pass its name to the restore command

FAQ

Questions committees ask

What exactly is in a backup?

Four files in a dated folder: the database, your public uploads (photos and media), your private documents (association papers, contact attachments, import files) and a manifest listing every table, every file size and a SHA-256 checksum per file. Save a backup passphrase in Settings, Automatic backups, and each file is encrypted with AES-256 before it is kept.

Where are backups stored?

Outside the web folder, in a directory beside your AlumDeck install by default. AlumDeck refuses any place a browser could reach, such as public_html, and explains why. The folder is readable by your hosting account only.

How do we get a copy off the server?

Save a backup passphrase first, in Settings, Automatic backups. Every backup taken after that is encrypted, and a full administrator can then press Download beside it on the Backups page, type their own password again and save one file, backup-DATE.tar. Every download is written to the audit log, and the administrators are told.

A backup that is not encrypted is never offered for download: fetch it with FTP or SSH, from the backup folder. A very large backup can take longer than a host allows one web request; fetch that one over SFTP too.

Can we take a backup right now?

Yes. "Back up now", at the top of the Backups page, takes one backup straight away, for example before an upgrade. The scheduled task picks the request up, normally within a minute, and the page shows how it goes. One backup runs at a time, and another can be asked for 10 minutes after the last. It works while automatic backups are switched off too.

Is a backup taken before an update?

Yes, while automatic backups are on. The Updates screen installs a new release in two steps: it checks the release's signature and checksum, keeps a rollback copy of every file it replaces, and takes a backup before it runs the database updates. If that backup fails, the database is left alone. With automatic backups off, it asks you to confirm that you have a recent backup from your host first.

Can we switch the nightly backups off?

Yes, in Settings, Automatic backups. That suits a site whose host already backs up the whole account. The nightly backup and the Sunday restore test both stop, and the Backups page says so. They start switched on.

How do we restore?

By hand, following the Restoring section on the Backups page: it shows the exact commands for SSH, and a phpMyAdmin route if you do not have SSH. Restoring from inside the admin is not supported.

What if our host has disabled exec()?

Then AlumDeck cannot run backups, and the Backups page says so in plain words. Ask your host to allow it, or use their own backup service instead.

Do backups need the cron line?

Yes. The nightly backup, the Sunday restore test and "Back up now" all run from the scheduler, so they need the one cron line the installer asks for. The Backups page prints ready-made cron lines to copy.

See the rest of the admin in the demo.

Sign in as the administrator and open Backups for the cron lines and the restore instructions. The demo itself is rebuilt from a clean copy every night.

Sign-in details on the demo pageResets every night

Type a word, or start with one of these pages.

↑ ↓ moveEnter openEsc close