Open source, Apache 2.0
Restow is one repository and one release in two builds.
Everything outside the ee/ directory, the core, is open
source under the Apache License 2.0. The Business and Service
Provider modules live in ee/ and are licensed under the
Restow license terms: the code is
visible, and using the modules in production needs a valid license
key.
The Community edition is the core: free of charge for one
organization, with no mailbox limit and no license key at all.
Every release comes in two builds of the same commit. The full
images, restow and restow-web, carry the
core and the modules; the Community images,
restow-community and restow-web-community,
carry the core only, with no code from ee/ at all. Both
use the same database, so switching means changing the two image
lines and running docker compose up -d.
What's public today
The complete source code, including the ee/ directory,
is public on
GitHub,
where every release is published. Version 0.1.0, the first
public release,
is out now as a beta: test it before you rely on it, and keep an
independent backup alongside it while it is new. Known limits: the
release checks have not yet been run against a real Microsoft 365
tenant (Microsoft 365 backup and restore are covered by tests
against a simulated Graph API), and the endpoint agent's install
script was run in the release checks only in a Linux container; the
macOS installer was not part of them. See how Restow is built for
the full account of the development process this code goes
through.
One repository, two licenses
There is no separate closed-source product. The core is under the
Apache License 2.0, the code in ee/ under the
Restow license terms. In the full
images without a key, the Business and Service Provider features stay
locked: a locked menu entry stays visible, greyed out, and leads to
the license section (Admin › License), where the key is installed,
with no banners or pop-ups. The Community images have no such entries and no license
settings at all.
What the paid editions actually add (and don't)
Business and Service Provider unlock what lives in
ee/: legal holds (per tenant or per mailbox), the SMTP
journal receiver for Exchange Online, archive deletion runs
(enforced retention), the audit log viewer (search, filter, details,
chain verification) and its export (CSV, JSON with hashes), and
scheduled summary reports. Service Provider adds the
cross-tenant provider API, the provider view of the Overview
(tenant matrix, alerts), the "All tenants" view of the Jobs and limiting a team member to chosen tenants.
Continuous archive capture from the mailboxes (Microsoft Graph and IMAP
sync, since 0.4.4) is a license capability in the same way: the
Community build keeps the capture service idle.
All of it is present in the full images,
and the license key decides at runtime which of it is active; the
Community images do not contain it. Not
everything around these features is finished: sign-in with Microsoft and single sign-on (SSO) are planned, and so is white label for Service Providers; four-eyes approval and a signed restore proof are planned too, see the roadmap.
Deliberately in the core, in every edition: the team with roles (several administrators, since 0.3.1), the archive export (EML in a ZIP, or MBOX, readable without Restow), the database schema, the settings for archive retention and the recording of the audit log. Every read and every restore is written to the append-only, hash-chained audit log in every edition; only viewing, filtering and verifying it is Business and Service Provider. Since 0.4.0 backing up file shares, immutable backups and ransomware detection are in the core too, in every edition.
The license key is a fair-play mechanism, not DRM: it is verified
offline against a signed Ed25519 key, does not phone home, does not
expire your access to a version you already have, and never limits
restore. Restore is never limited by edition, in any version. See
pricing for exact terms. If development
ever stops, the project has committed to announce it at least twelve
months in advance and then publish ee/ as open source
under the core's license, Apache 2.0; installations keep running
without a key.
Contributing
How to contribute, and what a contribution needs, is described in CONTRIBUTING.md in the repository.
Getting your data back without Restow at all
Open source extends past the application code to the data itself: the chunk-store format is open and documented, and a small standalone tool restores from it even with no Restow server running, so open source here also means you can get your own backup back even in the worst case, not just read the code. See exit costs and vendor lock-in for why that specific property is worth having in writing.
Frequently asked
Is Restow really open source, or open core with a locked-down free tier?
Open core, in one public repository. The core is open source under the Apache License 2.0, and the free Community edition built on it already includes full Microsoft 365 and IMAP backup, server and client backup, mail import and export, non-destructive restore and weekly restore checks, with no mailbox limit and no license key required. The Business and Service Provider modules (for example legal holds, the journal receiver, enforced retention, the audit log viewer and the cross-tenant provider API) live in ee/ and are licensed under the Restow license terms; using them in production needs a license key. It is the same codebase, not a smaller version of the same feature: the full images carry the modules, locked until a license key is installed, and the Community images leave them out entirely.
Where's the code?
On GitHub, github.com/restow-backup/restow: everything outside ee/ under the Apache License 2.0, and ee/ under the Restow license terms. Every release is published there, starting with 0.1.0, the first public release.
Is the license key a form of DRM?
No. It doesn't call home, doesn't expire your access, and never limits restore. Restore is never limited by edition or license in any version of Restow. It's a fair-play mechanism that unlocks Business/Service Provider features once, offline, against a signed Ed25519 key; nothing about it can remotely disable the software.
What does a contribution need?
CONTRIBUTING.md in the repository describes how to contribute and what a contribution needs.