Gniza Backup Manager - Installation & Uninstallation

1. Overview

Gniza is a backup management solution built on Restic. It provides centralized backup management for supported hosting panels and standalone Linux servers.

Supported environments:

  • cPanel/WHM

  • DirectAdmin

  • Standalone Linux servers without a hosting panel

Plesk is not currently listed as a supported panel.

2. System Requirements

Before installing Gniza, ensure that:

  • You have root SSH access to the server.

  • Your operating system and hosting panel are compatible with the installed release.

  • The server has internet access.

  • You have sufficient local disk space for temporary backup staging.

  • You have a supported backup destination.

  • You can securely store the recovery key and master key.

For production servers, use remote backup storage whenever possible.

3. Installation

3.1 Install Gniza

Connect to the server over SSH as root and execute:

curl -fsSL https://github.com/shukiv/gniza/releases/latest/download/get.sh | sh

The installer automatically detects the environment and installs the appropriate integration.

  • cPanel/WHM: Installs the WHM plugin and cPanel integration.

  • DirectAdmin: Installs the DirectAdmin integration.

  • Standalone Linux: Installs the standalone agent and associated components.

The installer verifies signed release checksums, installs Restic if necessary, and configures the Gniza service and integration hooks.

3.2 Verify the installation

Check the service:

systemctl status gniza

Review recent logs:

journalctl -u gniza -n 100 --no-pager

3.3 Open Gniza

For cPanel/WHM:

  1. Log in to WHM as root.

  2. Navigate to Plugins → Gniza Backups.

  3. Confirm that the interface loads.

For DirectAdmin:

  1. Log in to DirectAdmin.

  2. Navigate to Admin Tools → Gniza.

  3. Confirm that the interface loads.

For standalone Linux:

Launch the terminal interface:

gniza-agent -tui

3.4 Verify the installer before execution (optional)

Download the installer and checksum file:

curl -fsSLO https://github.com/shukiv/gniza/releases/latest/download/get.sh
curl -fsSLO https://github.com/shukiv/gniza/releases/latest/download/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS

Review the script:

less get.sh

After successful verification and review, run:

sh get.sh

Do not proceed if checksum verification fails.

4. Configure a Backup Destination

Open Gniza and navigate to the destination configuration section.

Supported destination types include:

  • SFTP

  • S3-compatible storage

  • Restic REST

  • Local or mounted storage

Create a destination, enter the requested connection details, and verify that the destination is reachable.

For production servers, remote storage is recommended so that a server failure does not destroy both the original data and its backups.

4.1 Save the recovery key

When a repository is created, Gniza provides a recovery key. Save it securely when displayed.

Do not assume the recovery key can be retrieved later if lost.

4.2 Protect the master key

Gniza stores its master key at:

/etc/gniza/master.key

This key protects stored destination credentials. Keep a secure off-server copy and restrict access to authorized administrators.

The master key and repository recovery key serve different purposes. Protect both as required.

5. Configure Backup Schedules

  1. Open the Schedules section.

  2. Create a new schedule.

  3. Select the accounts or data to protect.

  4. Choose the destination.

  5. Configure frequency and retention settings available in your version.

  6. Save the schedule.

  7. Run a manual backup.

  8. Verify the result in Gniza.

A configured schedule does not guarantee that a successful backup exists. Verify the first run and investigate warnings or errors.

6. cPanel/WHM Backup Management

Gniza integrates with cPanel's account backup and restore mechanisms.

Depending on the selected workflow and configuration, backups may include:

  • Home directory files.

  • Account configuration.

  • Databases and related account data.

  • Mail and mailbox data.

  • Cron jobs.

  • Domains and DNS information.

  • SSL certificates and related account configuration.

Actual coverage depends on the selected workflow and applicable exclusions.

6.1 Account lifecycle integration

The cPanel integration registers hooks for account creation, modification, suspension, unsuspension, and removal.

These hooks help Gniza maintain account identity and respond to account lifecycle events.

6.2 Backup exclusions

If files are missing from a backup, check the relevant cPanel backup exclusion settings, including:

/etc/cpbackup-exclude.conf

Also check the account-specific cpbackup-exclude.conf file where applicable.

Review the schedule and backup logs before concluding that data was skipped incorrectly.

6.3 Restore cPanel accounts

Use the restore workflow provided by Gniza Backups in WHM.

Depending on the supported workflow, restoration may include whole-account recovery, deleted-account recovery, or supported item-level recovery.

Before restoring, verify the target account, selected snapshot, available disk space, and whether existing data will be overwritten.

After restoring, verify file ownership, permissions, databases, websites, mail, DNS, SSL certificates, and scheduled jobs as applicable.

7. DirectAdmin Backup Management

Gniza integrates with DirectAdmin's account backup and restore workflows.

7.1 Configure account backups

  1. Open Admin Tools → Gniza.

  2. Configure the backup destination.

  3. Create a schedule.

  4. Select the accounts or supported data.

  5. Save the schedule.

  6. Run a manual backup.

  7. Verify the backup status.

7.2 DirectAdmin limitations

Not every cPanel feature is available in DirectAdmin.

Granular restore operations and some schedule exclusion features may be limited. Check the capabilities of your installed version before relying on a specific restoration workflow.

For disaster recovery, consider maintaining a separate system-level backup of important DirectAdmin configuration, CustomBuild settings, web server and PHP configuration, mail, DNS, firewall, SSH, and other server-specific settings.

8. Standalone Linux Backup Management

On a standalone Linux server, Gniza does not automatically know which data you want to protect. You must select the sources in a schedule.

Supported source categories include:

  • Files and directories.

  • MySQL databases.

  • PostgreSQL databases.

  • Docker and Podman containers and associated stacks.

8.1 Access the terminal interface

gniza-agent -tui

Use the interface to configure destinations, schedules, backup sources, logs, and restore operations.

8.2 Configure the web interface

The installer asks where the web interface should listen. The recommended default is local-only access at 127.0.0.1:8443.

Set or change the web password:

gniza-agent -web-set-password

Create an SSH tunnel from your local computer:

ssh -L 8443:127.0.0.1:8443 root@YOUR_SERVER_IP

Replace YOUR_SERVER_IP with the actual server IP address.

Then open this address in your local browser:

http://127.0.0.1:8443/

Avoid exposing the administrative interface directly to the public internet unless access has been deliberately configured and secured.

9. Restore and Disaster Recovery

9.1 Before restoring

Before starting a restore operation:

  1. Identify the affected account or data.

  2. Select the correct repository and restore point.

  3. Confirm that the recovery key is available.

  4. Check free space on the restore target.

  5. Review whether existing data will be overwritten.

  6. Preserve a copy of critical current data where possible.

9.2 Restore through the hosting panel

Use the restore functionality supported by the installed integration. Available operations may differ between cPanel/WHM and DirectAdmin.

After restoring, verify file ownership, permissions, database contents, website functionality, mail delivery, DNS, SSL certificates, and scheduled jobs as applicable.

9.3 Restore through Restic

For a Restic REST repository, the general command pattern is:

export RESTIC_REPOSITORY='rest:https://backup.example.com/repository'
export RESTIC_PASSWORD='YOUR_RECOVERY_KEY'

restic snapshots

After identifying the required snapshot, restore it to a separate directory:

restic restore latest --target /restore-target

Replace the example repository URL, recovery key, and target directory with the actual values. Other destination types require their appropriate repository configuration and credentials.

A Restic restore does not automatically rebuild a complete hosting server. The operating system, hosting panel, services, and configuration may need to be restored separately.

10. Troubleshooting

10.1 Gniza does not appear in WHM or DirectAdmin

Check the service:

systemctl status gniza

Inspect recent logs:

journalctl -u gniza -n 100 --no-pager

Confirm that the installer detected the correct panel and completed its integration steps.

10.2 Backup jobs fail

Check:

  • Destination connectivity.

  • Authentication credentials.

  • Destination permissions and storage quota.

  • Local staging space.

  • DNS and network connectivity.

  • Database backup errors.

  • Error details shown in Gniza.

Check filesystem capacity:

df -h

Check inode availability:

df -i

10.3 Insufficient local disk space

Large accounts may require temporary local staging space during backup operations, even when the final destination is remote.

Identify the filesystem running out of space before removing files. Do not delete existing backups or customer data without confirming their purpose and whether another verified copy exists.

10.4 The service does not start

Check service status and logs:

systemctl status gniza
journalctl -u gniza -n 100 --no-pager

Investigate the reported error before restarting or reinstalling the software.

10.5 Destination credentials are inaccessible

Check whether the master key exists:

ls -l /etc/gniza/master.key

Do not overwrite or delete the master key as a troubleshooting shortcut. If it is missing, preserve the existing state and recovery information.

11. Update Gniza

The installation script can be run again to upgrade an existing installation in place.

Run the installation command from Section 3 as root.

Before upgrading:

  1. Verify that recent backups are healthy.

  2. Secure the recovery key and master key.

  3. Review the release notes and compatibility information.

  4. Run the installer.

  5. Verify the service and panel interface.

Check the service after upgrading:

systemctl status gniza

Review logs if errors occur:

journalctl -u gniza -n 100 --no-pager

12. Uninstall Gniza

Before uninstalling, confirm that your backup repositories and necessary recovery material will remain accessible.

12.1 Standard uninstall

Run as root:

sh /usr/local/share/gniza/uninstall.sh

The standard uninstall removes Gniza's service, panel integration, hooks, and program components.

Some components may be moved to a dated directory under:

/var/lib/gniza/removed/

The script reports the relevant location.

The standard uninstall preserves:

/etc/gniza/master.key
/var/lib/gniza/state.db

The Restic cache is removed and can be rebuilt if needed. Remote backup repositories are not deleted.

12.2 Complete local removal

If you intentionally want to remove the remaining local Gniza configuration and data, run:

sh /usr/local/share/gniza/uninstall.sh --everything

This removes additional local data, including the master key, state database, cache, Restic components, and moved-aside files.

The script requests confirmation. A --yes option is available for non-interactive execution.

Warning: Complete local removal can eliminate the key material needed to access stored destination credentials. Secure all necessary recovery information before proceeding.

This command does not delete remote backup repositories.

12.3 Verify uninstallation

Check the service:

systemctl status gniza

Confirm that the Gniza entry is no longer available in WHM or DirectAdmin.

Do not manually delete unrelated hosting-panel files as part of the uninstall process.

13. Plesk Compatibility

Plesk is not currently listed as a supported hosting panel in Gniza's documented integrations.

The documented environments include cPanel/WHM, DirectAdmin, and standalone Linux servers. Do not expect a Plesk extension unless explicit support is added.

14. Security Best Practices

  • Store backups separately from the server being protected.

  • Keep recovery keys and the master key in a secure off-server location.

  • Restrict administrative access.

  • Review destination credentials and permissions.

  • Monitor failed and partial backups.

  • Perform regular recovery tests.

  • Verify backup access before decommissioning a server.

  • Avoid complete local removal while required recovery material is still needed.

  • Document the server rebuild and disaster recovery process.

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

How to enable rewrite rules for Plesk using NGINX

Login to Plesk. Open the domain you need to update. Click on the “Apache and nginx settings”...

How to Enable Nginx with PHP-FPM on Plesk

Nginx is supported with PHP-FPM which is a fast and reliable web server.Plesk Control Panel...

How to Enable all of the required ports of Plesk

If you found, the ports are closed of a Plesk server due to FirewallD, then run the following...

Plesk license getting revoked? Here's the solution

Some of our clients' complaints that their Plesk WebHost license getting revoked. So, here's the...

AUG 7 Fix for DoS vulnerability in BIND DNS service

For CentOS, you will need to enable Continuous Release (CR) Repository to get this patch. Here's...