2017-11-08 22:33:13 +01:00
.. zrepl documentation master file, created by
sphinx-quickstart on Wed Nov 8 22:28:10 2017.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
2017-11-10 14:31:04 +01:00
.. include :: global.rst.inc
2018-10-26 21:50:43 +02:00
|GitHub license| |Language: Go| |User Docs| |Donate via PayPal| |Donate
via Liberapay| |Twitter|
.. |GitHub license| image :: https://img.shields.io/github/license/zrepl/zrepl.svg
:target: https://github.com/zrepl/zrepl/blob/master/LICENSE
.. |Language: Go| image :: https://img.shields.io/badge/language-Go-6ad7e5.svg
:target: https://golang.org/
.. |User Docs| image :: https://img.shields.io/badge/docs-web-blue.svg
:target: https://zrepl.github.io
.. |Donate via PayPal| image :: https://img.shields.io/badge/donate-paypal-yellow.svg
:target: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=R5QSXJVYHGX96
.. |Donate via Liberapay| image :: https://img.shields.io/badge/donate-liberapay-yellow.svg
:target: https://liberapay.com/zrepl/donate
.. |Twitter| image :: https://img.shields.io/twitter/url/https/github.com/zrepl/zrepl.svg?style=social
:target: https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2Fzrepl%2Fzrepl
2017-11-09 20:33:09 +01:00
zrepl - ZFS replication
-----------------------
2017-11-08 22:33:13 +01:00
2018-10-11 17:46:26 +02:00
**zrepl** is a one-stop, integrated solution for ZFS replication.
.. raw :: html
<div style="margin-bottom: 1em; background: #2e3436; min-height: 6em; max-width: 100%">
<a href="https://raw.githubusercontent.com/wiki/zrepl/zrepl/zrepl_0.1_status.mp4" target="_new" >
<video title="zrepl status subcommand" loop autoplay style="width: 100%; display: block;" src="https://raw.githubusercontent.com/wiki/zrepl/zrepl/zrepl_0.1_status.mp4"></video>
</a>
</div>
2017-11-09 20:33:09 +01:00
Getting started
~~~~~~~~~~~~~~~
2018-04-01 14:58:12 +02:00
The :ref: `10 minutes tutorial setup <tutorial>` gives you a first impression.
2017-11-09 20:33:09 +01:00
Main Features
~~~~~~~~~~~~~
2018-10-11 17:46:26 +02:00
* **Filesystem replication**
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* [x] Pull & Push mode
* [x] Multiple transport :ref: `transports <transport>` : TCP, TCP + TLS client auth, SSH
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* Advanced replication features
2017-11-09 21:17:09 +01:00
2019-03-19 18:18:41 +01:00
* [x] Automatic retries for temporary network errors
2018-10-11 17:46:26 +02:00
* [ ] Resumable send & receive
* [ ] Compressed send & receive
* [ ] Raw encrypted send & receive
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* **Automatic snapshot management**
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* [x] Periodic filesystem snapshots
* [x] Flexible :ref: `pruning rule system <prune>`
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* [x] Age-based fading (grandfathering scheme)
* [x] Bookmarks to avoid divergence between sender and receiver
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* **Sophisticated Monitoring & Logging**
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* [x] Live progress reporting via `zrepl status` :ref: `subcommand <usage>`
* [x] Comprehensive, structured :ref: `logging <logging>`
2018-04-14 11:30:48 +02:00
* `` human `` , `` logfmt `` and `` json `` formatting
* stdout, syslog and TCP (+TLS client auth) outlets
2018-10-11 17:46:26 +02:00
* [x] Prometheus :ref: `monitoring <monitoring>` endpoint
2017-11-09 21:17:09 +01:00
2018-10-11 17:46:26 +02:00
* **Maintainable implementation in Go**
2017-11-09 21:17:09 +01:00
* [x] Cross platform
* [x] Type safe & testable code
2017-11-08 22:33:13 +01:00
2018-10-11 17:46:26 +02:00
.. ATTENTION ::
zrepl as well as this documentation is still under active development.
There is no stability guarantee on the RPC protocol or configuration format,
but we do our best to document breaking changes in the :ref: `changelog` .
2017-11-09 20:33:09 +01:00
Contributing
~~~~~~~~~~~~
2017-11-08 22:33:13 +01:00
2017-11-09 20:33:09 +01:00
We are happy about any help we can get!
2017-11-08 22:33:13 +01:00
2017-11-09 20:33:09 +01:00
* Explore the codebase
2017-11-10 14:31:04 +01:00
* These docs live in the `` docs/ `` subdirectory
2017-11-09 20:33:09 +01:00
* Document any non-obvious / confusing / plain broken behavior you encounter when setting up zrepl for the first time
2019-03-19 18:22:15 +01:00
* Check the *Issues* and *Projects* sections for things to do.
The `good first issues <https://github.com/zrepl/zrepl/labels/good%20first%20issue> `_ and `docs <https://github.com/zrepl/zrepl/labels/docs> `_ are suitable starting points.
2017-11-09 20:33:09 +01:00
2017-11-10 14:31:04 +01:00
.. admonition :: Development Workflow
:class: note
The `GitHub repository <https://github.com/zrepl/zrepl> `_ is where all development happens.
Make sure to read the `Developer Documentation section <https://github.com/zrepl/zrepl> `_ and open new issues or pull requests there.
2017-11-09 20:33:09 +01:00
Table of Contents
~~~~~~~~~~~~~~~~~
.. toctree ::
:maxdepth: 2
:caption: Contents:
2017-11-08 22:33:13 +01:00
2017-11-09 20:33:09 +01:00
tutorial
installation
configuration
2017-12-27 17:07:11 +01:00
usage
2017-11-09 20:33:09 +01:00
implementation
2018-10-11 17:46:26 +02:00
pr
2017-11-12 14:12:57 +01:00
changelog
2017-11-12 16:45:11 +01:00
GitHub Repository & Issue Tracker <https://github.com/zrepl/zrepl>
2018-10-11 17:46:26 +02:00