Setup#

Requirements#

  • Python 3.12 or newer. It is likely that your system already comes with this. Otherwise, refer to the Python Beginners Guide.

  • A modern browser. hircine is built to target ES2022 and should run on all common browsers at the time of writing. See this support table for a detailed breakdown. The web interface was successfully tested on the following systems and browsers:

    • Linux 6.7.6: Firefox 123.0

    • Windows 10 Pro 22H2: Edge 122.0.2365.59, Firefox 123.0

    • Windows 11 Pro 23H2: Edge 122.0.2365.59, Firefox 123.0

hircine is designed to be hosted on Linux systems but may be set up for Windows as well. Keep in mind that some utilities (e.g. gunicorn) are not available for Windows.

Installation#

hircine should be installed in a virtual environment:

$ python -m venv <VENVDIR>
$ source <VENVDIR>/bin/activate

Note

VENVDIR should only ever contain program files and should not be the directory you choose for the database in the next step.

For example, ~/.local/share/hircine is a sensible setting for VENVDIR.

Once the environment is set up, download the latest wheel and install it using pip:

(.venv) $ python -m pip install <WHEEL>

Now the hircine command is available from within your shell:

(.venv) $ hircine version
hircine 0.1.1 "Satanic Satyr"

Important

Outside of this document it is assumed that the virtual environment is activated and that the hircine command is present.

Initializing the database#

Next, navigate to where you want to store the database and initialize it:

(.venv) $ cd <DIR>
(.venv) $ hircine init

This will create the following structure:

Item

Description

hircine.db

the SQLite database

content/

the directory containing your archives (may be nested arbitrarily)

objects/

the object store for processed images

backups/

backups of the SQLite database

Tip

By default, the command-line interface and the web application will always look for the database in the current directory. Whilst this behaviour cannot be changed when launching the web application, you may direct the command-line program to a different directory using -C <DIR>.

If -C <DIR> is given on the command line, it must appear before any sub-command (import, etc.)

Starting the web application#

To serve the web application, you need a compatible ASGI server. We recommend gunicorn. The endpoint for the web application is the app() factory in hircine.app:

(.venv) $ python -m pip install gunicorn
(.venv) $ gunicorn -k uvicorn.workers.UvicornWorker --bind localhost:8000 "hircine.app:app()"

Now you can point your browser to http://localhost:8000 to open the web application. To stop it, simply terminate gunicorn or the ASGI server of your choice.