Skip to content

Installation and maintenance

Motivation

The promise of SHEBANQ to its users is that the queries and notes they have saved on SHEBANQ will be accessible by a fixed URL for the indefinite future.

Therefore it is vitally important to backup this data and store those backups in a variety of places, not only on the server that hosts SHEBANQ, however well that server is being managed.

The following tasks must be addressed:

  • Server migration

    Servers do not have eternal life, so every now and then SHEBANQ has to migrate from one server to another.

  • 'Foreign' servers

    We encourage people to host their own SHEBANQ, so we must support new installations on third party servers. Those servers must be equally maintainable as the offical servers.

  • Software updates

    In order to keep SHEBANQ alive over the years, software updates must be carried out, not only of the webapp, but also of its supporting systems, Emdros, Web2py, Python, and MariaDB (a replacement of MySQL ).

  • Data updates

    The ETCBC, as the provider of the textual and linguistic data of the Hebrew Bible, produces data updates through its BHSA repository. These data updates must be applied to the servers that host SHEBANQ.

There are some additional requirements which are vital for the long-term support of SHEBANQ.

  • Security

    SHEBANQ servers should be secure. They must be hardened against attacks, and the user data must be kept safe, even if only the bare minimum of personal data is stored (names, email addresses, password hashes).

  • Automation

    Maintaining a server requires countless nitty-gritty steps, which are easily forgotten. That is the prime reason to automate all these steps. People that are new to SHEBANQ should be able to maintain SHEBANQ in a straightforward way.

  • Documentation

    The maintenance of SHEBANQ should be well documented. Together with automation it is the best help we can offer to the maintainers of SHEBANQ in the years to come.

  • Testing

    Whenever parts of the SHEBANQ codebase are changed, it is immensely helpful to run a battery of tests as an indication that nothing has been broken by the changes. This is in an early stage of development. We have set up the framework and implemented a couple of tests, just to show the mechanism. The test themselves are also documented. See (testing)[../tests/index.md]

Operation

SHEBANQ has a build script by which you can take care of a few standard maintenance tasks:

  • documentation building and publishing
  • committing changes to GitHub

Just do

cd ~/github/etcbc/shebanq
python3 build.py --help

to look at the options, or inspect the source code.

Shell function

Write a shell function and put it into your .zshrc or bashrc like this

function shb {
    cd ~/github/etcbc/shebanq
    python3 build.py "$@"
}

now you can run shb (i.e. shebanq-build) from any directory.