The Mentat system is available as a package for Debian based systems via our custom
internal repository. We are trying hard to keep the installation process as simple
as possible, however at the same time we try not to force too many decisions on the
users of the system. For that reason the Debian package for Mentat system does not
pull and automatically install all required dependencies, but you will have to install
couple of additional Debian system packages and/or Python libraries manually according
to your setup and preferences.

Note

As an example try to compare version of PostgreSQL
database that is available via official Debian repositories with version available
via repository operated by PostgreSQL development
team. That is the reason why we did not add is directly to the list of Debian package
dependencies.

PostgreSQL is a powerful, open source object-relational database system. It
has more than 15 years of active development and a proven architecture that
has earned it a strong reputation for reliability, data integrity, and
correctness. It runs on all major operating systems, including Linux,
UNIX (AIX, BSD, HP-UX, macOS, Solaris), and Windows. It is fully ACID
compliant, has full support for foreign keys, joins, views, triggers, and
stored procedures (in multiple languages). It includes most SQL:2008 data
types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL,
and TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video. It has native programming interfaces for C/C++,
Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional
documentation.

In Mentat system it is used as backend service for persistent data storage.

If you wish to use the web interface Hawat, you wil have to install and configure
a web server. You may use any server you like as long as it supports execution of
WSGI Python3 scripts. Do not forget to setup some initial user accounts, either
use the demonstration fixtures, or setup real user accounts, otherwise you will
not be able to log in.

Please do not use Ansible roles for installation during migration from previous
stable version of Mentat based on Perl and MongoDB. Some of the configuration
files changed and you may encounter weird errors in case original configuration
stays active. Part of the migration process is assessing changes in configuration
files and this process is not automated and needs to be done by hand.

If you are fond of Ansible, there is great news
for you: we have prepared Ansible roles to make
the installation as simple as possible. These roles are available via official
Ansible Galaxy site. They can be found easily
using the galaxy search form.
For the sake of completeness this is a short guide how to quickly use them, but
you can use them as usual in your own role ecosystem.

First there is a basic role called mentat.
This role will perform only basic Mentat installation. It covers steps 1 through
11 of manual installation with some additional actions like starting Mentat system
and enabling it at system boot. Additionally it will install the PostgreSQL
database for you through native dependency on
postgresql
role:

And that is it. After a lot of crunching Mentat system should be installed on your
target device. Again, this playbook installs only basic system without configuration
of Apache webserver or creating any demonstration accounts.

If you would like to quickly bootstrap the demonstration installation of Mentat
system including Hawat web interface and some preconfigured user accounts, groups
etc., you may use another prepared role called mentat_demo.
This role uses dependency on mentat role described above to perform basic
installation and then builds on top of that:

Please browse through the tasks of both playbooks to known what actions are
actually being done on taget host. Ansible
is designed to be human readable and easily understandable, so it does not
make much sense to describe set of actions for each playbook. That would only
duplicate the information.

If you run into issues with pip3, because your native packaging system contains
older versions and you are attempting to install a package requiring newer version,
you might opt to uninstall the Debian version of pip3 and install latest manually
using get-pip.py script: