Skip to content

About

Multi-task remote backup dashboard for Linux servers.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

35 Commits

Folders and files

Repository files navigation

Simple Backup

A multi-task remote backup dashboard for Linux servers. Each task independently backs up files/directories, MySQL/MariaDB, PostgreSQL, or Redis, with its own source server, local directory, schedule, and retention count. Backups run in the background.

Install

Run as root on the server that will store backups:

bash <(curl -Ls https://raw.githubusercontent.com/JohnMuyuan/Server-File-backuper/main/install.sh)

The installer first asks whether 1Panel will provide reverse proxying and HTTPS. Press Enter for Simple Backup's built-in Let's Encrypt short-lived IP certificate, or enter y to delegate HTTPS to 1Panel and skip certificate requests.

In 1Panel mode, the service listens only on http://127.0.0.1:<panel-port> and does not expose that port publicly. Create a reverse-proxy site targeting http://127.0.0.1:8088 (adjust the port), and select/request its HTTPS certificate. Users access https://your-domain, rather than the local upstream address.

Built-in certificate issuance/renewal requires the public IPv4 to point directly to this server. The installer tries TCP 80, then TCP 443 TLS-ALPN, then zero-downtime Nginx/Apache validation. SB_ACME_WEBROOT=/path/to/site-root can reuse an existing site. The webroot must serve requests to that IP; in 1Panel, make it the default site or bind the public IP. The installer verifies this before issuance. Public access always uses HTTPS to protect SSH credentials.

Noninteractive example:

SB_NONINTERACTIVE=1 \
SB_REVERSE_PROXY=0 \
SB_PUBLIC_IP='203.0.113.10' \
SB_PANEL_USER='admin' \
SB_PANEL_PASSWORD='replace-with-at-least-10-characters' \
SB_PANEL_PORT='8088' \
bash <(curl -Ls https://raw.githubusercontent.com/JohnMuyuan/Server-File-backuper/main/install.sh)

For noninteractive 1Panel installation, set SB_REVERSE_PROXY=1; SB_PUBLIC_IP is unnecessary, and no certificate is requested or panel port opened.

Use https://<public-IP>:<panel-port> with built-in HTTPS or your 1Panel site's HTTPS URL. Both use the web login page.

If Chrome reports an insecure connection, run simple-backup info, verify HTTPS and the certificate's exact public IP, check the device clock, and check for a proxy replacing certificates. Chrome's certificate details show the specific error. An older installation mistakenly using port 80 migrates to 8088 during simple-backup update if that port is free.

Create backup tasks

  1. Prefer a dedicated key on the backup server: ssh-keygen -t ed25519, then ssh-copy-id -p 22 root@source-server.
  2. Alternatively select SSH password in the task.
  3. Select files/directories or a database type. File tasks support compressed snapshots, additive uncompressed archives, or complete uncompressed mirror synchronization. Configure every N days and one or more times; every day at 02:00 and 14:00 means twice daily.
  4. Keep automatic dependency installation on first connection enabled, then test with Back up now.

On the first run, the supplied SSH credentials are used to check/install rsync or the appropriate MySQL/MariaDB, PostgreSQL, or Redis client. The SSH user must be root or have passwordless sudo -n; failures appear in the dashboard and Telegram. StrictHostKeyChecking=accept-new records the initial host fingerprint.

There are four parallel connections by default, configurable from 1–16. A complete remote scan fixes the file list for that run, then splits it into disjoint rsync queues. Each connection creates parent directories. Files added after scanning wait until next time; files removed during transfer produce warnings, while permission/network errors still fail and retry. Partial downloads stay in each task's .partial-<task-ID> directory. Pause preserves them, Resume rescans and continues, and Stop and discard removes only this run's staging data. Tasks active during an update or unexpected restart resume automatically.

Snapshot file tasks mirror remote content into local staging; database tasks stream native exports over SSH without writing a backup on the source. The backup server then creates .tar.zst archives. File transfers resume; failed database exports restart from the beginning. A fixed file list is not an atomic snapshot of files being written. Use LVM, ZFS, Btrfs, or application snapshots for strict point-in-time consistency.

Additive archives use one growing directory: existing local paths are neither redownloaded nor overwritten, and remote deletion preserves local copies. Pause preserves progress; Stop and discard rolls back only the latest incomplete additions. Retention count does not apply.

Complete mirror synchronization uses one directory and propagates additions, changes, and deletions. A complete new staged mirror replaces the old one only after success. Failed, paused, or discarded runs preserve the previous successful mirror. Unchanged files use local hard links rather than repeat downloads. Retention count does not apply.

A retention count of 0 keeps all snapshots. With 10, the oldest task backup is removed before creating the eleventh. Tasks do not delete each other's files. Any target disk dropping below 3 GB free stops running backups, pauses new work, and sends a Telegram notice.

Telegram

Enter the bot token and chat ID in Settings and use the test-message button. Only that chat ID can control tasks:

/tasks
/backup <task-ID>
/stop <task-ID>
/stop all
/discard <task-ID>
/discard all
/status <task-ID>
/list <task-ID>
/delete <task-ID> <backup-filename>

/stop pauses and keeps progress; /discard stops and clears it. Some commands omit the ID when only one task exists. Notifications cover start, success, failure, low space, and old-backup deletion. Success reports filename, size, time, and free space.

Management and supported environments

Run simple-backup for status, start/stop/restart, account/port changes, updates, logs, certificate renewal, and uninstall. simple-backup update is also available directly.

The homepage shows disk/task usage, real-time network speeds, an expandable upcoming queue, current stage, and recent logs. Logs and task pages load recent entries on demand, support earlier pages and complete log downloads, and work on mobile. Task cards provide pause, discard, resume, and details with immediate feedback. Details show the concurrency strategy, active transfer slots/files/speeds/bytes, backups, and paged logs. Failure summaries prioritize actual authentication, permission, network, or file errors.

Panel passwords use salted PBKDF2 hashes. SSH/database passwords are separated from normal configuration in root-readable 0600 files and are not placed in command-line arguments. Login uses HTTPS, secure cookies, CSRF checks, per-IP/account rate limits, and failure logs. Use strong random passwords and restrict public panel access to trusted IPs where possible.

Installation supports apt, dnf, yum, zypper, pacman, apk, systemd, OpenRC, and common SysV init systems. Old single-task configurations migrate into the first task. Uninstall retains existing backups by default.

About

Multi-task remote backup dashboard for Linux servers.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages