Skip to content
This repository was archived by the owner on Feb 21, 2025. It is now read-only.

marook/everarch

Repository files navigation

 ______________________
< this repo has moved! >
 ----------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||



the current upstream version is at:


    https://git.ma300k.de/everarch/









everarch - the hopefully ever lasting archive

1) Introduction
2) Build & Installation
3) Podman Images
4) Usage
5) Tests
6) Release
7) License
8) Contact


------------------------------------------------------------------------
Introduction

everarch is a collection of applications to store your personal
data. The goals of everarch are:

- store your tiny and GB sized files
- provide a customized index over your data
- make backups complete and fast
- access your files via a virtual file system
- store your data in a format which you still can read in 20 years in
  _future programming language_
- store your data in a way that allows you to easily adopt new data
  structures without the need to migrate the existing data
- detect corrupt or externally modified data and restore it with a
  partial backup

What everarch is not:

- a database which handles inserts every few milliseconds over a long
  amount of time very well
- a multi user storage with fine grained access permissions

everarch is right now in a pre alpha state. It's not intended to be
used for your production data yet. Check out the backlog file to see
what we are heading for in the v0.1 release.

To get a more in depth overview about everarch watch the presentation
at https://evr.ma300k.de

The everarch source code is available at
git://git.ma300k.de/everarch
https://evr.ma300k.de/dist


------------------------------------------------------------------------
Build & Installation

everarch should compile on linux and BSD systems. It relies on some
POSIX APIs which make it incompatible to Windows.

Everarch is known to run at least on i686, arm64 and arm32 systems.

Install at least the minimal required dependencies on Debian. For
other distributions see the corresponding doc/BUILD.* files:

$ apt install make automake pkg-config libtool texinfo libxml2-dev \
    libxslt1-dev libssl-dev libgpgme-dev libgcrypt-dev libsqlite3-dev

The minimum required dependencies will just build the
evr-glacier-storage server. Usually you also want to build
evr-attr-index which requires the following extra dependencies:

$ apt install flex bison

evr-fs let's you access everarch content from the file system instead
of just via the evr command line interface. You need the following
extra dependencies if you want to build evr-fs:

$ apt install fuse3 libfuse3-dev

evr-attr-index has an optional http server to query the index. Install
the following if you want to use it:

$ apt install libmicrohttpd-dev

Install the following if you want to use the emacs integration:

$ apt install emacs elpa-helm elpa-s elpa-seq

Install the following if you want to build the unfinished and
experimental evr-attr-ui:

$ apt install libgtk-3-dev

On linux you can execute the following within the everarch directory
to build the application.

Setup the build system once after you clone the repository:

$ autoreconf --install --symlink
$ ./configure

There are some feature toggles available with the configure
script. For example --enable-futile-claim-set-tracking. List them
with:

$ ./configure --help

Run every time you want to build the applications:

$ make

Install the applications:

$ make install


------------------------------------------------------------------------
Podman Images

Some parts of everarch are available as podman or docker images. These
images can either be compiled by yourself or are available at
https://hub.docker.com/u/ma300k

Files for building the images are below etc/podman. Also there is a
podman compose configuration for starting up an evr-websocket-server
together with an evr-glacier-storage server. See
etc/podman/standalone-glacier-websocket.


------------------------------------------------------------------------
Usage

A detailed manual can be found in src/evr.texi.


------------------------------------------------------------------------
Tests

Executing the tests requires more dependencies:

$ apt install valgrind socat

Executing the tests also requires a GPG key usable for signing. If you
don't have one it can be created using:

$ gpg --gen-key

Execute the following to run the whole test suite with unit and
integration tests:

$ ./test.sh

Test execution relies on valgrind ( https://www.valgrind.org ) and
socat ( http://www.dest-unreach.org/socat/ ).

You can customize some integration test variables for you local
system's needs if you create the file testing/suite/config.local. See
testing/suite/config for potential variables.


------------------------------------------------------------------------
Release

Releases the source code committed to the main branch to
https://evr.ma300k.de/dist

$ ./release


------------------------------------------------------------------------
License

See COPYING for details about everarch files copying conditions.

There are a few files which got a different license. See their header
comments for more details. These files include at least:

src/rollsum.h
src/rollsum.c

My sincere thank you goes out to the original authors Martin Pool and
Donovan Baarda.


------------------------------------------------------------------------
Contact

For questions about everarch you can contact me via email at Markus
Peröbner <[email protected]>.

About

the hopefully ever lasting archive

Resources

License

Stars

Watchers

Forks

Releases

No releases published