Full-featured cPanel backup tool with SSH, S3, and Google Drive support. Includes WHM plugin with Tailwind/DaisyUI UI, multi-remote management, decoupled schedules, and account restore workflows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73 lines
2.2 KiB
Bash
Executable File
73 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# gniza install script
|
|
# Installs to /usr/local/gniza and creates symlink in /usr/local/bin
|
|
|
|
set -euo pipefail
|
|
|
|
INSTALL_DIR="/usr/local/gniza"
|
|
BIN_LINK="/usr/local/bin/gniza"
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "Error: install.sh must be run as root" >&2
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SOURCE_DIR="$(dirname "$SCRIPT_DIR")"
|
|
|
|
echo "Installing gniza to $INSTALL_DIR..."
|
|
|
|
# Create install directory
|
|
mkdir -p "$INSTALL_DIR"
|
|
|
|
# Copy files
|
|
cp -r "$SOURCE_DIR/bin" "$INSTALL_DIR/"
|
|
cp -r "$SOURCE_DIR/lib" "$INSTALL_DIR/"
|
|
cp -r "$SOURCE_DIR/etc" "$INSTALL_DIR/"
|
|
|
|
# Make bin executable
|
|
chmod +x "$INSTALL_DIR/bin/gniza"
|
|
|
|
# Create symlink
|
|
ln -sf "$INSTALL_DIR/bin/gniza" "$BIN_LINK"
|
|
|
|
# Create working directory
|
|
mkdir -p "$INSTALL_DIR/workdir"
|
|
|
|
# Create config directory structure
|
|
mkdir -p /etc/gniza
|
|
mkdir -p /etc/gniza/remotes.d
|
|
mkdir -p /etc/gniza/schedules.d
|
|
|
|
# Copy example configs if no config exists
|
|
if [[ ! -f /etc/gniza/gniza.conf ]]; then
|
|
cp "$INSTALL_DIR/etc/gniza.conf.example" /etc/gniza/gniza.conf.example
|
|
echo "Example config copied to /etc/gniza/gniza.conf.example"
|
|
fi
|
|
cp "$INSTALL_DIR/etc/remote.conf.example" /etc/gniza/remote.conf.example
|
|
cp "$INSTALL_DIR/etc/schedule.conf.example" /etc/gniza/schedule.conf.example
|
|
|
|
# Create log directory
|
|
mkdir -p /var/log/gniza
|
|
|
|
echo "gniza installed successfully!"
|
|
|
|
# ── WHM Plugin (if cPanel/WHM is present) ─────────────────────
|
|
WHM_CGI_DIR="/usr/local/cpanel/whostmgr/docroot/cgi"
|
|
if [[ -d "$WHM_CGI_DIR" ]]; then
|
|
echo "Installing WHM plugin..."
|
|
cp -r "$SOURCE_DIR/whm/gniza-whm" "$WHM_CGI_DIR/"
|
|
cp "$SOURCE_DIR/whm/gniza-whm.conf" "$WHM_CGI_DIR/gniza-whm/"
|
|
chmod +x "$WHM_CGI_DIR/gniza-whm/"*.cgi
|
|
/usr/local/cpanel/bin/register_appconfig "$WHM_CGI_DIR/gniza-whm/gniza-whm.conf"
|
|
echo "WHM plugin installed — access via WHM > Plugins > gniza Backup Manager"
|
|
else
|
|
echo "WHM not detected, skipping WHM plugin installation."
|
|
fi
|
|
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " 1. Run 'gniza init' to create your configuration"
|
|
echo " 2. Or copy /etc/gniza/gniza.conf.example to /etc/gniza/gniza.conf"
|
|
echo " 3. Run 'gniza status' to verify your setup"
|