# Restic Restic is a modern backup program. Single static [[Go]] binary, encrypted-by-default, content-addressable storage with deduplication, runs on Linux, BSD, macOS and Windows. ## Key Features - **Encrypted by default** — AES-256 in CTR mode + Poly1305-AES MAC. Repository password is required; no plaintext metadata. - **Deduplication** — content-defined chunking (Rabin fingerprinting). Identical chunks are stored once across all snapshots and hosts using the same repo. - **Incremental** — only new/changed chunks are uploaded. First backup is slow; subsequent ones are very fast. - **Snapshots** — each backup is an immutable snapshot. Easy mount via `restic mount` (FUSE) for browse/restore. - **Verification** — `restic check` validates repo integrity; `--read-data` re-hashes all chunks. - **No server needed** — pushes directly to the chosen backend. ## Storage Backends - Local filesystem / SFTP - Amazon S3 (and any S3-compatible: MinIO, Backblaze B2, Wasabi, Cloudflare R2…) - Google Cloud Storage, Azure Blob Storage - Backblaze B2 native - OpenStack Swift - rclone (gateway to dozens more: Dropbox, Google Drive, OneDrive, etc.) - REST server (`rest-server`) ## Typical Workflow ```bash restic init --repo /path/or/url # create repo (prompts for password) restic -r REPO backup ~/Documents # take a snapshot restic -r REPO snapshots # list snapshots restic -r REPO restore SNAPSHOT --target /tmp/r restic -r REPO forget --keep-daily 7 --keep-weekly 4 --prune restic -r REPO check # integrity check ``` ## Project - **License**: BSD 2-Clause - **Language**: [[Go]] - **Status**: pre-1.0, but production-grade and stable; backward compatibility commitment for repo format ## References - Official website: https://restic.net/ - Documentation: https://restic.readthedocs.io/ - GitHub repo: https://github.com/restic/restic - REST server backend: https://github.com/restic/rest-server - Forum: https://forum.restic.net/ ## Related - [[Backrest]] - [[Borg]] - [[Go]] - [[How I synchronize and backup my Obsidian notes]]