Before you start

You'll need four things:

The app itself needs roughly 100 MB of disk and about 50 MB of RAM per client workspace. Your actual backup data is stored in your destination (Google Drive, S3, Azure or local disk) — not on the web server.

Security first: where to install

Never install GWS Backup inside public_html.

The application folder contains your encrypted credentials database, your .env encryption keys and your recovery keys. If those live under public_html, one misconfiguration could let anyone on the internet download them. The app is served by Node.js — it does not need to be in your web root, and it must not be.

/home/youruser/gwsbackup  ✓ correct
/home/youruser/public_html/backup  ✗ never

Use a random subdomain name.

Bots constantly scan predictable names like backup.yourdomain.com and admin.yourdomain.com looking for login panels to attack. Give your installation an unguessable address instead — for example vault‑k7x93q.yourdomain.com — and don't link to it from anywhere public. Your login page effectively becomes invisible to automated scanners.

Always use HTTPS. Run AutoSSL on the new subdomain before your first login so your admin password never travels in plain text.

Fresh installation

1Create the random subdomain

In cPanel → DomainsCreate a New Domain (or Subdomains):

Then open SSL/TLS Status and run AutoSSL so the subdomain gets a certificate.

2Create the Node.js application

cPanel → SoftwareSetup Node.js AppCreate Application:

Click Create, then Stop the app for now.

3Upload the application files

In File Manager, open the application root folder (e.g. /home/youruser/gwsbackup) and upload update.zip and update.php from your download. Then open the cPanel Terminal (or SSH) and run:

cd ~/gwsbackup
php update.php

The wizard extracts the application and then deletes update.php and update.zip automatically to keep the server clean. No terminal access? Use File Manager's Extract on update.zip instead, then delete both update files manually.

4Set the application URL variable

Back in Setup Node.js App, add an environment variable so Google sign-in callbacks return to the right address:

NEXTAUTH_URL = https://vault-k7x93q.yourdomain.com

(your real subdomain, including https://).

5Start the app

Click Start (or Restart) in Setup Node.js App. On first boot the app generates its own encryption keys and writes them to .env and recovery-keys.txt inside the app folder.

6First-run setup & licence activation

Visit https://your-random-subdomain/ in a browser:

  1. Create your administrator account on the setup screen, and save the recovery key it shows you — it is displayed once, and it's the only way back in if you forget your password.
  2. You'll then be asked for your licence key. Paste the key we emailed you — no key yet? Request one now; the app will wait on the activation screen until it arrives. The software stays locked until a valid key is activated.
  3. Follow the in-app Connection Wizard to link your first Google Workspace — it walks you through the service account and gives you the exact permission scopes to paste into your Google Admin console.

That's it — set your backup schedule and destination in Settings and you're protected.

Updating an existing installation

Updates are one command, and your database is backed up automatically first:

  1. Download the latest release from this site.
  2. Upload the new update.zip and update.php into your existing application root (the folder containing gws-backup.db).
  3. Run:
cd ~/gwsbackup
php update.php

The script backs up your database to db_backups/backup_db_<timestamp>.zip, clears the old build, extracts the new one and removes the update files. Your database, licence and settings are untouched. Finally, restart the app in Setup Node.js App.

Once you've confirmed an update is stable, delete older archives from db_backups/ — they count against your hosting quota.

Files you must protect

Inside your application root, treat these as crown jewels and keep your own offline copies:

Migrating servers? Move the whole application folder, keep the same .env, and delete any -wal / -shm files before first start on the new machine. Remember your licence key may only be live on one installation at a time — retire the old server when the new one goes live.

Troubleshooting

Still stuck? Check the FAQ — it's searchable — or use the contact form (allow 1–2 days for free-edition support).