Skip to content

ConfusedOnCOFFEE/everarch

 
 

Repository files navigation

everarch - the hopefully ever lasting archive

1) Introduction
2) Build & Installation
3) Podman Images
4) Usage
5) Tests
6) License
7) 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
https://github.com/marook/everarch


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

everarch uses some linux and GNU libc APIs which makes it POSIX
incompatible. So you might not be able to compile it on Windows or BSD
systems.

Everarch is known to run at least on i686 and arm64 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 te bouild evr-fs:

$ apt install fuse3 libfuse3-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
$ ./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.


------------------------------------------------------------------------
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 <markus.peroebner@gmail.com>.

About

the hopefully ever lasting archive

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 80.5%
  • JavaScript 5.8%
  • Shell 3.6%
  • Emacs Lisp 3.1%
  • M4 2.6%
  • Python 1.4%
  • Other 3.0%