#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "-- Installing app-backup..." sudo mkdir -p /etc/app-backup sudo mkdir -p /usr/local/sbin sudo mkdir -p /var/log/app-backup sudo mkdir -p /var/backups/app-backup # Scripts sudo install -m 0750 -o root -g root "$ROOT_DIR/usr-local-sbin/app-backup.sh" /usr/local/sbin/app-backup.sh sudo install -m 0750 -o root -g root "$ROOT_DIR/usr-local-sbin/app-restore.sh" /usr/local/sbin/app-restore.sh # Config (copy once) if [[ ! -f /etc/app-backup/app-backup.conf ]]; then sudo install -m 0640 -o root -g root "$ROOT_DIR/etc/app-backup/app-backup.conf" /etc/app-backup/app-backup.conf echo " - installed /etc/app-backup/app-backup.conf (please adjust paths/db names)" else echo " - /etc/app-backup/app-backup.conf exists, not overwriting" fi # DB examples (do not overwrite real files) sudo install -m 0640 -o root -g root "$ROOT_DIR/etc/app-backup/db-wordpress.cnf.example" /etc/app-backup/db-wordpress.cnf.example sudo install -m 0640 -o root -g root "$ROOT_DIR/etc/app-backup/db-nextcloud.cnf.example" /etc/app-backup/db-nextcloud.cnf.example # systemd sudo install -m 0644 -o root -g root "$ROOT_DIR/systemd/app-backup.service" /etc/systemd/system/app-backup.service sudo install -m 0644 -o root -g root "$ROOT_DIR/systemd/app-backup.timer" /etc/systemd/system/app-backup.timer # logrotate sudo install -m 0644 -o root -g root "$ROOT_DIR/logrotate/app-backup" /etc/logrotate.d/app-backup sudo systemctl daemon-reload sudo systemctl enable --now app-backup.timer echo "-- Done." echo "Next steps:" echo "1) Adjust /etc/app-backup/app-backup.conf" echo "2) Create DB cnf files from examples (chmod 600, root:root)" echo "3) Ensure rclone works as root: sudo rclone lsd onedrive:" echo "4) Test run: sudo systemctl start app-backup.service"