Added support for encyption and moved from one big backup file to smaller ones for each application.
This commit is contained in:
1 parent
cb7891337e
commit
099688ea48
6 files changed
+252
-227
No files matched your search
@@ -1,83 +1,122 @@
|
||||
# app-backup.conf
|
||||
# -----------------------------------------------------------------------------
|
||||
# Konfiguration für app-backup.sh und app-restore.sh (Split-Archive + tuned rclone)
|
||||
# Konfiguration für app-backup.sh und app-restore.sh
|
||||
# Pfade/Accounts bitte an eure Umgebung anpassen.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# === Core paths ===
|
||||
WORKDIR="/var/backups/app-backup"
|
||||
STAGING_ROOT="${WORKDIR}/staging"
|
||||
ARCHIVE_DIR="${WORKDIR}/archives"
|
||||
ARCHIVE_PREFIX="appbackup"
|
||||
|
||||
# === Retention ===
|
||||
LOCAL_RETENTION_DAYS=7
|
||||
COMPRESSOR="zstd" # zstd|gzip
|
||||
|
||||
# rclone / OneDrive (case-sensitive Remote-Name!)
|
||||
# === Compression ===
|
||||
# zstd (schnell + gut) oder gzip (kompatibel)
|
||||
COMPRESSOR="zstd"
|
||||
|
||||
# === Remote (rclone) ===
|
||||
RCLONE_BIN="rclone"
|
||||
RCLONE_REMOTE_BASE="OneDrive:Sicherung/JRITServerBackups/$(hostname -s)"
|
||||
ENABLE_UPLOAD="true"
|
||||
|
||||
# Large file robustness
|
||||
RCLONE_ONEDRIVE_CHUNK_SIZE="64M"
|
||||
RCLONE_TIMEOUT="1h"
|
||||
RCLONE_CONTIMEOUT="30s"
|
||||
RCLONE_TRANSFERS="2"
|
||||
RCLONE_CHECKERS="4"
|
||||
|
||||
# Retry strategy
|
||||
RCLONE_RETRIES=10
|
||||
RCLONE_LOW_LEVEL_RETRIES=40
|
||||
RCLONE_REMOTE_BASE="OneDriveCrypt:gemini"
|
||||
RCLONE_RETRIES=6
|
||||
RCLONE_LOW_LEVEL_RETRIES=20
|
||||
RCLONE_RETRIES_SLEEP="30s"
|
||||
RCLONE_STATS="1m"
|
||||
RCLONE_BWLIMIT="0" # e.g. "20M"
|
||||
|
||||
RCLONE_BWLIMIT="0" # "0" = unbegrenzt
|
||||
ENABLE_REMOTE_RETENTION="true"
|
||||
REMOTE_RETENTION_DAYS=30
|
||||
|
||||
MIN_FREE_GB=12
|
||||
# === Safety ===
|
||||
MIN_FREE_GB=10
|
||||
NICE_LEVEL=10
|
||||
IONICE_CLASS=2
|
||||
IONICE_LEVEL=6
|
||||
|
||||
# === Mail report (lokaler postfix/sendmail) ===
|
||||
ENABLE_MAIL_REPORT="true"
|
||||
MAIL_TO="johannes"
|
||||
MAIL_FROM="app-backup@$(hostname -f 2>/dev/null || hostname)"
|
||||
MAIL_SUBJECT_PREFIX="[app-backup]"
|
||||
MAIL_INCLUDE_LOG_TAIL_LINES=200
|
||||
|
||||
# Components
|
||||
# -----------------------------------------------------------------------------
|
||||
# Was soll gesichert werden?
|
||||
# -----------------------------------------------------------------------------
|
||||
ENABLE_WORDPRESS="true"
|
||||
ENABLE_NEXTCLOUD="true"
|
||||
ENABLE_NEXTCLOUD_DATA="true"
|
||||
ENABLE_NEXTCLOUD_MAINTENANCE="true"
|
||||
ENABLE_DB_DUMPS="true"
|
||||
ENABLE_MAIL="true" # optional
|
||||
|
||||
# WordPress
|
||||
# -----------------------------------------------------------------------------
|
||||
# WordPress / Webroot
|
||||
# -----------------------------------------------------------------------------
|
||||
# In eurem Setup liegt WordPress direkt in /var/www/html
|
||||
WP_DIR="/var/www/html"
|
||||
WP_DB_NAME="wordpress"
|
||||
WP_DB_CNF="/etc/app-backup/db-wordpress.cnf"
|
||||
|
||||
# Wenn Nextcloud unterhalb von WP_DIR liegt, wird es sonst doppelt gesichert.
|
||||
# Modus:
|
||||
# - auto => exclude "nextcloud/" automatisch, wenn NC_DIR == WP_DIR/nextcloud
|
||||
# - manual => nutzt WP_EXCLUDES Array
|
||||
WP_EXCLUDES_MODE="auto"
|
||||
#WP_EXCLUDES_MODE="manual"
|
||||
#WP_EXCLUDES=("nextcloud/")
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Nextcloud
|
||||
# -----------------------------------------------------------------------------
|
||||
NC_DIR="/var/www/html/nextcloud"
|
||||
|
||||
# User für occ-Kommandos (Rocky/Apache meist: apache)
|
||||
NC_OCC_USER="apache"
|
||||
NC_DB_NAME="nextcloud"
|
||||
NC_DB_CNF="/etc/app-backup/db-nextcloud.cnf"
|
||||
# Nextcloud data UNDER NC_DIR
|
||||
|
||||
# Achtung: Das Dataverzeichnis ist oft NICHT unter /var/www/html/nextcloud/data!
|
||||
# Ermitteln mit:
|
||||
# sudo -u apache php /var/www/html/nextcloud/occ config:system:get datadirectory
|
||||
NC_DATA_DIR="/var/www/html/nextcloud/data"
|
||||
|
||||
# Optional: nach Restore files:scan ausführen (kann lange dauern)
|
||||
NC_FILES_SCAN_AFTER_RESTORE="false"
|
||||
|
||||
# Gitea (native install)
|
||||
ENABLE_GITEA="true"
|
||||
GITEA_SERVICE_NAME="gitea"
|
||||
ENABLE_GITEA_SERVICE_STOP="true"
|
||||
# -----------------------------------------------------------------------------
|
||||
# Datenbanken (MariaDB/MySQL)
|
||||
# -----------------------------------------------------------------------------
|
||||
# DB-Namen
|
||||
WP_DB_NAME="wordpress"
|
||||
NC_DB_NAME="nextcloud"
|
||||
|
||||
# According to your /etc/gitea/app.ini:
|
||||
# APP_DATA_PATH = /var/lib/gitea/data
|
||||
GITEA_DATA_DIR="/var/lib/gitea/data"
|
||||
GITEA_ETC_DIR="/etc/gitea"
|
||||
# Zugangsdaten über my.cnf Dateien (empfohlen, keine Passwörter im Script)
|
||||
# Beispiel-Inhalt:
|
||||
# [client]
|
||||
# user=backup
|
||||
# password=SEHR_GEHEIM
|
||||
# host=localhost
|
||||
WP_DB_CNF="/etc/app-backup/wp-db.cnf"
|
||||
NC_DB_CNF="/etc/app-backup/nc-db.cnf"
|
||||
|
||||
# Gitea MariaDB
|
||||
GITEA_DB_NAME="gitea"
|
||||
GITEA_DB_CNF="/etc/app-backup/db-gitea.cnf"
|
||||
# -----------------------------------------------------------------------------
|
||||
# Mail (optional) - nur relevant wenn ENABLE_MAIL=true
|
||||
# -----------------------------------------------------------------------------
|
||||
MAIL_DIR="/var/vmail"
|
||||
POSTFIX_DIR="/etc/postfix"
|
||||
DOVECOT_DIR="/etc/dovecot"
|
||||
|
||||
# Restore behavior
|
||||
# -----------------------------------------------------------------------------
|
||||
# Restore Verhalten
|
||||
# -----------------------------------------------------------------------------
|
||||
# Wenn true: rsync --delete beim Restore (macht Ziel 1:1 wie im Backup)
|
||||
RESTORE_STRICT_DELETE="false"
|
||||
|
||||
# Restore Default-Schalter (können auch per env überschrieben werden)
|
||||
# DRY_RUN="true"
|
||||
# RESTORE_FILES="true"
|
||||
# RESTORE_DB="true"
|
||||
|
||||
# --- Force crypt remote (no fallback) ---
|
||||
ENABLE_UPLOAD="true"
|
||||
RCLONE_REMOTE_BASE="OneDriveCrypt:gemini"
|
||||
|
||||
# Optional: log level
|
||||
RCLONE_LOG_LEVEL="INFO"
|
||||
Reference in new issue
Block a user