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.