Herakles backs up your files, folders and whole disks into deduplicated, compressed and AES‑256 encrypted repositories, on a USB disk, your NAS, an SFTP server or its own backup server. One small program, no dependencies, set up in minutes.
Why Herakles
Herakles is a single static program. It contains the scheduler, the user interfaces and even the backup server, so there is nothing else to install, and it works the same on a laptop, a server and a NAS.
AES‑256‑GCM for all data and metadata. Unlock with a password, a key file, or both. Storage and backup server never see your data.
Content‑defined chunking stores every piece of data once, across files, snapshots and computers. zstd compression on top.
Pick a type per schedule, for example full on Sunday and incremental on weekdays. Every snapshot is complete and restorable on its own.
Cron schedules, catch‑up of missed runs, retries and rules like “keep 7 daily, 4 weekly, 12 monthly”. Configurable all the way.
Back up folders with permissions and metadata, or image entire disks and partitions and write them back for disaster recovery.
Local disk, mounted NFS/CIFS share, Windows UNC path, SMB without mounting, SFTP, or the Herakles repository server.
The optional backup server has users, per‑user repositories, quotas and an append‑only mode: clients can add backups but never delete them.
Command line, a full‑screen terminal UI, a desktop GUI and a tray icon, all in the same program and all editing the same YAML file.
See it
Set it up once with the desktop interface, then let it run quietly in the tray. When you need something back, browse any snapshot like a folder.
Every backup appears as a complete snapshot. Open one, walk through its folders and restore a single file, a folder or everything, to the original place or somewhere else. You can also download files straight from the browser or compare two snapshots.

Pick folders or disks, exclusions, when to run which kind of backup and how long to keep what. Presets cover the common cases. Behind the form is a plain YAML file you can also edit by hand.

herakles tray runs the scheduler and the interface in the background and puts an icon in the system tray. A coloured dot tells you when a backup runs, when a repository needs its password or when something failed. One setting starts it every time you log in.


Everything the interfaces do is also a command: with --help and examples on every command, --json output and meaningful exit codes. Ideal for servers, cron and automation.
$ herakles backup documents job documents: incremental backup -> snapshot 39454397 (success) files: 12 new, 3 changed, 1189 unmodified (1204 total, 2.10 GiB) added: 41.30 MiB of new data, 12.80 MiB stored after compression; took 0:04 $ herakles snapshots --job documents ID TIME JOB TYPE SIZE ADDED 2939cbe7 2026-11-09 02:00:04 documents full 2.09 GiB 1.21 GiB 6ec4a073 2026-11-10 02:00:03 documents incremental 2.09 GiB 9.84 MiB 39454397 2026-11-11 02:00:02 documents incremental 2.10 GiB 12.80 MiB $ herakles restore latest:/home/alex/Documents --target ~/recovered --verify restored 1180 files, 64 directories (1.62 GiB) from snapshot 39454397 to /home/alex/recovered verified 1180 files
Get going
The guide walks through it in detail, including the command line way.
Download the file for your system and start the desktop interface.
herakles tray --open
Under Repositories, choose where backups go (for example a USB disk or your NAS), pick a password and click Initialize.
Under Backup Jobs, choose folders and a schedule preset. Click Back up now, and tick Start in the tray when I log in.
Download
One file per platform. There is no installer: download it, make it executable and run it. The same file is the CLI, the interfaces, the background service and the backup server.
| System | File | Size | SHA‑256 |
|---|---|---|---|
| Linux, x86‑64 (PCs, servers, most NAS) | herakles-linux-amd64 | 15.3 MiB | 5c9978445be043d198618541a26736195e0d9dd2d876d359a9e35855529d483d |
| Linux, ARM64 (Raspberry Pi 4/5, ARM NAS) | herakles-linux-arm64 | 14.1 MiB | 757fce6d875387a6804c64c0d675ac0a34f2caecd4eab36150de1fe4e41cce08 |
| Linux, ARMv7 32‑bit (older Pi and NAS) | herakles-linux-armv7 | 14.3 MiB | 2820cdc51040e23c4d5971329e3093abb77b7ac2d999db453134212dbbd863b7 |
| Windows, x64 | herakles-windows-amd64.exe | 12.8 MiB | b685b9db569ffd6303e07572bb97246763393fe6cb206c4722f709cb8b2ee155 |
| Windows, ARM64 | herakles-windows-arm64.exe | 11.6 MiB | 4aebaa7adbb796c995e57ef72142e3b132a0a1bcf8276a09c36e1c95fcec0832 |
| macOS, Apple Silicon (experimental, no tray icon) | herakles-macos-arm64 | 11.6 MiB | e5f2452c8315e7cd85ffd493197df2b3c3b50350704d7c601745d9798daefee9 |
All checksums: SHA256SUMS · versioned files: downloads/v0.1.0/
# download (pick the file for your CPU), check it, install it curl -LO https://herakles.kloeck-it.de/downloads/herakles-linux-amd64 curl -LO https://herakles.kloeck-it.de/downloads/SHA256SUMS sha256sum -c --ignore-missing SHA256SUMS sudo install -m 755 herakles-linux-amd64 /usr/local/bin/herakles # start the desktop interface in the tray, or use: herakles tui herakles tray --open
# PowerShell: download, check, put it somewhere permanent mkdir $env:LOCALAPPDATA\Herakles -Force cd $env:LOCALAPPDATA\Herakles Invoke-WebRequest https://herakles.kloeck-it.de/downloads/herakles-windows-amd64.exe -OutFile herakles.exe (Get-FileHash herakles.exe).Hash # compare with SHA256SUMS .\herakles.exe tray --open
Windows SmartScreen may warn about an unknown publisher the first time, because the file is not code-signed. Choose More info → Run anyway.
curl -LO https://herakles.kloeck-it.de/downloads/herakles-macos-arm64
chmod +x herakles-macos-arm64
xattr -d com.apple.quarantine herakles-macos-arm64 # allow the unsigned file
sudo mv herakles-macos-arm64 /usr/local/bin/herakles
herakles gui
The macOS build is experimental and has not been tested on a Mac yet. CLI, terminal UI and GUI are expected to work. The tray icon is not available.