Restic
By the Restic open-source project
Restic is an open-source, command-line backup program that creates encrypted, deduplicated backups of files and directories to a wide range of storage backends, including local disks, SFTP servers, and cloud object storage. It splits data…
Definition
Restic is an open-source, command-line backup program that creates encrypted, deduplicated backups of files and directories to a wide range of storage backends, including local disks, SFTP servers, and cloud object storage. It splits data into content-defined chunks so identical data is stored only once across backup runs, keeping incremental backups fast and space-efficient, and encrypts everything client-side before it leaves the source machine. Individuals and DevOps teams use it as a scriptable, secure backup layer for servers, workstations, and Kubernetes volumes.
Overview
Restic was created to make secure, efficient backups accessible from the command line without requiring a dedicated backup server or proprietary storage format. Many backup tools either lack strong encryption by default or produce large, hard-to-manage snapshot files; Restic instead treats every backup as a set of deduplicated, encrypted chunks that can be stored on almost any target a script can write to. Mechanically, Restic scans the files being backed up and splits their contents into variable-sized chunks using a content-defined chunking algorithm, so that a small change to a large file only produces a small amount of new data to store rather than a full new copy. Each chunk is encrypted with AES-256 before upload, and Restic maintains an index so that later backups can recognize chunks already present in the repository and skip re-uploading them. A single Restic repository can hold many backup snapshots over time while storing only the unique data across all of them. Compared to Borgbackup, Restic offers a broader range of supported storage backends, including native support for major cloud object storage providers, whereas Borgbackup historically focused on SSH and local repositories and relies on tools like Rclone to reach cloud storage. Compared to Duplicity, which also targets cloud backup, Restic's deduplication and repository model tend to produce more efficient incremental backups and simpler pruning of old snapshots. In practice, Restic is used to back up servers and workstations on a schedule via cron or systemd timers, and it is embedded inside higher-level tools such as Velero, which uses Restic as a fallback method for backing up Kubernetes persistent volumes that lack native snapshot support. Its scriptable CLI also makes it a common building block in custom backup pipelines that need encryption and deduplication without a full backup server product. Limitations include the lack of a built-in graphical interface or centralized management console, meaning larger environments may need to layer scheduling and monitoring tooling around it themselves, and restoring very large repositories can be slower than a purpose-built enterprise backup appliance. Teams needing centralized policy management across many machines often pair Restic with a wrapper tool or choose a commercial backup platform instead. Restic's repository format is also documented and stable enough that third parties have built scheduling and monitoring wrappers around it, and organizations sometimes run it as the workhorse behind a simple internal backup service rather than exposing the raw CLI to end users. Its check and prune commands need to be run periodically to detect corruption and reclaim space from expired snapshots, which is a maintenance step teams must remember to schedule alongside the backups themselves.
Key Features
- Deduplicates data using content-defined chunking across backups
- Encrypts all data client-side with AES-256 before upload
- Supports local disks, SFTP, and major cloud storage backends
- Stores many backup snapshots efficiently in one repository
- Provides a scriptable command-line interface for automation
- Verifies repository integrity with built-in check commands
- Prunes old snapshots while preserving shared chunk data
- Runs cross-platform on Linux, macOS, and Windows