Backup & Restore
The BACKUP tab lets you configure automated backups of directories on your server to cloud storage, powered by rclone.
How It Works
- KoreShell installs rclone on your server (no root required)
- You define a backup job: source path, destination, schedule
- KoreShell runs rclone over SSH at the scheduled time
- 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
- Click + NEW JOB in the BACKUP tab
- Fill in the fields:
| Field | Description |
|---|---|
| Name | Display name for this job |
| Source path | Absolute path on the server to back up (e.g. /var/www/myapp) |
| Destination | remoteName:bucket/path — rclone remote + path |
| Schedule | Cron expression (e.g. 0 2 * * * = 2am daily) or Manual only |
| Flags | Extra rclone flags (e.g. --exclude "*.log", --max-age 30d) |
- 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
- Click a job → RESTORE
- Enter the source path on the remote and the destination path on the server
- KoreShell runs
rclone copy remote:backup/path /restore/toand streams the output - 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:
| Schedule | Cron expression |
|---|---|
| Every day at 2am | 0 2 * * * |
| Every Sunday at midnight | 0 0 * * 0 |
| Every 6 hours | 0 */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.