Skip to main content

Backup & Restore

The BACKUP tab lets you configure automated backups of directories on your server to cloud storage, powered by rclone.

How It Works

  1. KoreShell installs rclone on your server (no root required)
  2. You define a backup job: source path, destination, schedule
  3. KoreShell runs rclone over SSH at the scheduled time
  4. Logs stream live to the UI — results are saved in job history

rclone Setup

rclone is installed automatically on first backup run. The binary is placed at ~/.local/bin/rclone — no sudo needed.

Supported destinations: S3-compatible (AWS S3, Backblaze B2, Wasabi, MinIO, Cloudflare R2), SFTP, Google Drive, Dropbox, and any other rclone remote.

Adding a Remote

Before creating a backup job, configure an rclone remote on the server:

# SSH into the server, then:
rclone config
# Follow interactive prompts to add your remote (name it, e.g. "myS3")

Or paste a pre-generated rclone.conf block directly to ~/.config/rclone/rclone.conf on the server.

Creating a Backup Job

  1. Click + NEW JOB in the BACKUP tab
  2. Fill in the fields:
FieldDescription
NameDisplay name for this job
Source pathAbsolute path on the server to back up (e.g. /var/www/myapp)
DestinationremoteName:bucket/path — rclone remote + path
ScheduleCron expression (e.g. 0 2 * * * = 2am daily) or Manual only
FlagsExtra rclone flags (e.g. --exclude "*.log", --max-age 30d)
  1. Click SAVE — the job appears in the jobs list

Running a Job Manually

Click the ▶ RUN button on any job card. A log panel opens and streams the rclone output live.

The job status updates in real time:

  • RUNNING — currently executing
  • DONE — completed successfully
  • FAILED — rclone exited non-zero; check the log

You can navigate away while a job runs — it continues in the background. The BACKUP tab shows a badge when jobs are active.

Job History

Each job keeps a history of all runs. Click a job → HISTORY to see:

  • Start time, end time, duration
  • Exit code
  • Full rclone log output

Restoring

  1. Click a job → RESTORE
  2. Enter the source path on the remote and the destination path on the server
  3. KoreShell runs rclone copy remote:backup/path /restore/to and streams the output
  4. Confirm the restore before files are written

:::warning Restore overwrites Restoring to an existing path overwrites files without a prompt. Specify a separate restore path (e.g. /var/www/myapp-restore) to avoid overwriting live data. :::

Aborting a Running Job

Click ■ ABORT on a running job card to send SIGTERM to the rclone process. The log will show the cancellation.

Scheduling Details

Schedules are stored as cron expressions and run via cron on the server. KoreShell installs a crontab entry automatically when a schedule is set.

Examples:

ScheduleCron expression
Every day at 2am0 2 * * *
Every Sunday at midnight0 0 * * 0
Every 6 hours0 */6 * * *
Manual only(leave blank)

Troubleshooting

"rclone not found" — rclone install may have failed. Check that ~/.local/bin is writable and that curl is available on the server.

Job fails immediately — check the log for rclone config errors. Run rclone lsd remoteName: manually over SSH to verify the remote is accessible.

Transfers are slow — add --transfers 4 --checkers 8 to Flags to increase parallelism.