Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

License Build Status Coverage Status Release status


This web application is a frontend for the Citellus framework by rcernin


Known issues

  • The first time we load a case, it takes ~30 seconds to parse and insert all the data in the DB. This might be because that we're using db.merge.
  • It's my first python webapp, and I think some of the things could be better implement, like the helpers modules.


We have a Trello Board to track TODOs.


Python libraries

We first create python's virtual environment and we souce the activate file. WSGI will be able to use this environment using the python-home variable.

$ cd /var/www/nexus
$ virtualenv-2.7 .venv
$ . .venv/bin/activate
$ pip install -r requirements.txt

User accounts

You can login using OAuth with Google as provider. There's currently no roles implemented.

Apache config

WSGIDaemonProcess nexus python-home=/var/www/nexus/.venv

WSGIProcessGroup nexus
WSGIApplicationGroup %{GLOBAL}
WSGIPythonHome /var/www/nexus/.venv
# This is necessary because it can take quite some time to scan a lot of reports
Timeout 300

WSGIScriptAlias /nexus /var/www/nexus/

<Directory /var/www/nexus>
    Require all granted


Make a copy and edit instance/

  • You need to create Credentials on Google API Console
  • You need to setup a MySQL DB. Here's a docker command:
docker network create --subnet= net-db
docker run \
--name nexus-db001 \
--net net-db --ip \
-p 3306:3306 \
-v /root/mariadb/conf:/etc/mysql/conf.d \
-v /root/mariadb/data:/var/lib/mysql \
-e MYSQL_USER=nexus \
-e MYSQL_PASSWORD=OtherRandomString \
-d mariadb:10.3 \
--character-set-server=utf8mb4 \

DB init

The database is initialized based on the file.

$ pwd
$ . .venv/bin/activate
$ export FLASK_CONFIG=development
$ rm -rf migrations/
$ python db init
$ python db migrate
$ python db upgrade

The script bin/ executes these commands.

System Activity Report (SAR)

Most of the sosreport we get have SA files generated by sysstat v10. It appears that the format has changed considerably and it looks like sysstat-11 is not backward compatible, so you can't parse sysstat-10 files with sysstat-11. If you use sysstat-11 on your environment (Fedora for example), you will need to compile sysstat-10. This is not necessary on collab-shell for now.

This is how I built sysstat-10. You do not need to do this unless you want to recompile. The file bin/sadf is based on systat-10.

 $ cd /git
 $ git clone
 $ git checkout tags/v10.1.5
 $ git pull
 $ mv sysstat sysstat-10.1.5
 $ cd /git/sysstat-10.1.5
 $ ./configure
 $ make

I didn't want to run make install because I want to keep sysstat-11 for system wide.


  • Give read access to the /cases folder to apache
# semanage fcontext -a -t httpd_sys_content_t '/cases(/.*)?'
  • Give write access to the sqlite database
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nexus/app(/.*)?'
# chown -R apache:apache /var/www/nexus/db/
  • Give execute access to the binary directory
# semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/nexus/bin(/.*)?'
# semanage fcontext -a -t httpd_sys_script_exec_t '/git/citellus(/.*)?'
# chown -R apache:apache /var/www/nexus/bin/
  • Restorecon
# restorecon -R -F -v /var/www/nexus/ /cases/ /git/citellus/

Citellus Team


Nexus is a web application for the Citellus framework




No releases published


No packages published

Contributors 4

You can’t perform that action at this time.