Plakar: open source backup engine
Encrypted, deduplicated, verifiable, and scalable.
Back up anything, store anywhere, restore everywhere, with zero-trust encryption and no vendor lock-in.
Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文
What is Plakar?
Plakar is an open-source backup solution powered by Kloset and ptar. It creates snapshots of your data, stores them in an encrypted and deduplicated store, and lets you inspect, verify, and restore them later.
Plakar stores backups in a Kloset, an open-source, immutable data store that enables the implementation of advanced data protection scenarios.
Through integrations, Plakar can back up and restore databases, Kubernetes workloads, object stores, and other sources alongside regular files.
What sets Plakar apart:
- snapshots are browsable: you can inspect their contents, diff two snapshots, or restore a single file without touching the rest;
- every snapshot is independently verifiable without restoring anything;
- backups are deduplicated and compressed, so keeping many snapshots does not multiply storage costs;
- encryption covers both data and metadata, with an audited cryptography implementation;
- Plakar is extensible through integrations for additional sources, storage backends, and destinations.
Quickstart
# Install
go install github.com/PlakarKorp/plakar@latest
Create a local repository
plakar at /var/backups create
Back up a directory
plakar at /var/backups backup /etc
List snapshots
plakar at /var/backups ls
Restore a snapshot
plakar at /var/backups restore -to /tmp/restore <snapshot-id>
Open the web UI
plakar at /var/backups ui
Prebuilt binaries are available at https://www.plakar.io/download. For a full walkthrough, see the quickstart guide.
Installation
Prebuilt binaries
Download a binary for your platform: https://www.plakar.io/download
Build from source
Plakar requires Go 1.23.3 or higher.
go install github.com/PlakarKorp/plakar@latest
@latest installs the latest release, which includes the web UI. A build of the main branch does not: with go install github.com/PlakarKorp/plakar@main, or make in a clone, plakar ui serves the API and a page explaining how to get the UI. To build the UI in a clone, run make ui before make; it requires Node.js and pnpm.
More with Plakar
Archives. You can export one or more snapshots as a .ptar archive using plakar ptar. A .ptar file is a self-contained, deduplicated, compressed, and encrypted archive.
Integrations. Plakar supports additional backup sources and storage backends through its package manager. Available integrations include PostgreSQL, MySQL, etcd, Kubernetes, S3-compatible object stores, and more.
plakar pkg add <integration>
Distributed stores. Kloset stores can be synchronized across locations to implement 3-2-1 backup strategies or more advanced push, pull, and sync workflows across heterogeneous environments.
plakar at /var/backups sync to @s3
See the documentation for the full list of supported workflows.
Documentation
https://www.plakar.io/docs/community
Contributing and reporting issues
Please read the contributing guidelines and code of conduct before opening a pull request.
If you find a bug or want to request a change, open an issue:
https://github.com/PlakarKorp/plakar/issues
Releasing
Release tags carry the built web UI, main does not. Releases are cut from a release/vX.Y branch: create it from main for a new minor version, and reuse it for its patch releases. To release vX.Y.Z:
git switch release/vX.Y # for vX.Y.0: git switch -c release/vX.Y main
set version to "vX.Y.Z" in utils/utils.go
make release-ui
git commit -am "release vX.Y.Z"
git tag vX.Y.Z
git push origin release/vX.Y vX.Y.Z
Run make release-ui for every release, patch releases included: the branch already carries the previous release's UI, and the release workflow refuses a tag whose UI was not built from its own ui/web/src.
Community
Changelog
See CHANGELOG.md for release notes and version history.