How Do I Get Started with restic?

Updated

Install restic as a single executable, then run restic init to create a repository and restic backup to store your first snapshot. This guide covers the whole path from download to verification, using the official quickstart, installation, and compatibility guidance from restic.net.

What restic Is and Why It Matters for Getting Started

restic is a modern backup program that backs up files from Linux, BSD, Mac, and Windows to many storage types, including self-hosted and online services. It is a single executable that runs without a server or complex setup, transfers only the parts of files that actually changed, uses cryptography throughout, and lets you verify that files can be restored. It is entirely free to use and completely open source.

That single-binary design is what makes the first run simple: there is no daemon to configure and no database to install before your first backup.

Step 1: Install restic

Follow the Installation Instructions page in the user manual, or download the latest native binary from the GitHub Download Page.

  • Manual route: use the installation instructions for your platform so dependencies and paths are handled correctly.
  • Binary route: download the native binary and place it somewhere on your PATH.

Verify the install before continuing:

restic version

Expected result: the command prints the restic version. If it is not found, the binary is not on your PATH.

Step 2: Create a Repository

A repository is where restic stores snapshots. Initialize one against the storage backend you plan to use:

restic init --repo /path/to/repo

You will be prompted to set a repository password. restic encrypts data in every part of the process, so this password is required to read or restore anything later. Store it somewhere safe and separate from the backup itself.

Expected result: restic reports that the repository was created successfully.

Step 3: Run Your First Backup

Point restic at the files you want to protect:

restic -r /path/to/repo backup /path/to/data

Expected result: restic scans the path, uploads the changed data, and prints a snapshot ID when finished.

Because restic only transfers the parts of files that actually changed, the first backup is the slowest and later runs are much faster.

Step 4: Verify You Can Restore

A backup you cannot restore is not a backup. restic is designed to be verifiable, so confirm the snapshot exists and inspect it:

restic -r /path/to/repo snapshots
restic -r /path/to/repo ls latest

Expected result: snapshots lists your snapshot with its ID and timestamp, and ls latest lists the files inside it. To restore files to a directory:

restic -r /path/to/repo restore latest --target /path/to/restore

Learn More from the Official Manual

The quickstart demo and full documentation are the fastest way to go deeper:

  • Manual (released version): matches the stable release you installed.
  • Manual (latest development version): includes features not yet in a release.

Use the released manual unless you specifically need an unreleased feature.

Compatibility: What You Can Rely On

Backward compatibility matters because you must always be able to restore saved data. restic follows Semantic Versioning, and the repository and its data structures are treated as the "Public API" in that sense.

Version stage Compatibility guarantee
After 1.0.0 All repositories within one major version are backward compatible; data can be read and restored as long as the major version does not change.
Before 1.0.0 Maintainers and developers work to keep backward compatibility and stability, but breaking changes may occur without a major version increase.

restic also aims to be fully backward compatible with all prior versions.

Where to Get Help

  • Usage or support questions: post in the forum.
  • Bugs or feature suggestions: open a GitHub issue, and fill out the issue template you are shown.
  • Contributing: see the contribution guidelines; the design document describes restic's design and on-disk data structures.

Common Sticking Points

  • Forgetting the repository password: there is no recovery path described in the source material, so treat the password as essential from the first init.
  • Skipping verification: run snapshots and ls after the first backup so you know the repository is readable.
  • Mixing versions carelessly: check the compatibility table above before upgrading across a major version.