diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 132 |
1 files changed, 76 insertions, 56 deletions
@@ -1,69 +1,89 @@ -# Obnam – a backup system +# Obnam — a backup system Obnam2 is a project to develop a backup system. -You probably want to read the [obnam.md](obnam.md) subplot file. - -## Client installation - -See instructions at <https://obnam.org/download/> for installing the -client. It's not duplicated here to avoid having to keep the -information in sync in two places. - -## Server installation - -To install the Obnam server component, you need a Debian host with -sufficient disk space, and Ansible installed locally. Run the -following commands in the Obnam source tree, replacing -`obnam.example.com` with the domain name of your server: - -```sh -$ cd ansible -$ printf '[obnam-server]\nobnam.example.com\n' > hosts -$ ansible-playbook -i hosts obnam-server.yml -e domain=obnam.example.com -``` - -The above gets a free TLS certificate from [Let's Encrypt][], but only -works if the server is accessible from the public Internet. For a -private host use the following instead: - -```sh -$ cd ansible -$ printf '[obnam-server]\nprivate-vm\n' > hosts -$ ansible-playbook -i hosts obnam-server.yml -``` - -This uses a pre-created self-signed certificate from -`files/server.key` and `files/server.pem` and is probably only good -for trying out Obnam. You may want to generate your own certificates -instead. - -To create a self-signed certificate, something like the following -command might work, using [OpenSSL]: - -```sh -$ openssl req -x509 -newkey rsa:4096 -passout pass:hunter2 \ - -keyout key.pem -out cert.pem -days 365 -subj /CN=localhost -``` - - -[Let's Encrypt]: https://letsencrypt.org/ -[OpenSSL]: https://www.openssl.org/ - +For installation instructions and a quick start guide, see +[tutorial.md][]. For more details on goals, requirements, and +implementation details, see the [obnam.md][] subplot file. + +[tutorial.md]: https://doc.obnam.org/obnam/tutorial.html +[obnam.md]: https://doc.obnam.org/obnam/obnam.html + +# Dependencies for build and test + +The up-to-date, tested list of dependencies for building and testing +Obnam are listed in the file [debian/control](debian/control), in +terms of Debian packages, and in [Cargo.toml](Cargo.toml) for Rust. +The Rust dependencies are handled automatically by the Cargo tool on +all platforms. The other dependencies are, not including ones needed +merely for building Debian packages: + +* [Rust](https://www.rust-lang.org/tools/install) — the + programming implementation. This can be installed via the standard + Rust installer, `rustup`, or any other way. Obnam does not currently + specify an explicit minimum version of Rust it requires, but its + developers use whatever is the current stable version of the + language. + + On Debian, the `build-essential` package also needs to be installed + to build Rust programs. + +* [daemonize](http://software.clapper.org/daemonize/) — a tool + for running a command as a daemon in the background; needed for + testing, so that the Obnam server can be started and stopped by the + Obnam test suite. + +* [SQLite](https://sqlite.org), specifically its development library + component — an SQL database engine that stores the whole + database in a file and can be used as a library rather then run as a + service. + +* [OpenSSL](https://www.openssl.org), specifically its development + library component known as `libssl-dev` — a library that + implments TLS, which Obnam uses for communication between its client + and server parts. + +* [moreutils](https://joeyh.name/code/moreutils/) — a collection + of handy utilities, of which the Obnam test suite uses the `chronic` + tool to hide output of successful commands. This is optional, but + nice to have. + +* [pkg-config](http://pkg-config.freedesktop.org) — a tool for + managing compile and link time flags; needed so that the OpenSSL + library can be linked into the Obnam binaries. + +* [Python 3](https://www.python.org/), + [Requests](http://python-requests.org), + [PYYAML](https://github.com/yaml/pyyaml) — programming + language and libraries for it, used by the Obnam test suite. + +* [Subplot](https://subplot.liw.fi) — a tool for documenting + acceptance criteria and verifying that they are met. + +* [TeX Live](http://www.tug.org/texlive/) — a typesetting system + for generating PDF versions of documentation. The LaTeX + implementation and fonts are needed, not the full suite. None of Tex + Live is needed, if PDFs aren't needed, but `./check` does not + currently have a way to be told not to generate PDFs. + +* [Summain](https://summain.liw.fi) — a tool for generating + manifests of files. Used by the Obnam test suite to verify restored + data matches the original data. ## Legalese -Copyright 2020-2021 Lars Wirzenius + +Copyright 2020-2021 Lars Wirzenius and others This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Affero General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see <https://www.gnu.org/licenses/>. |