Installation

This guide describes how you can install SimProv.

Note

If you just want to use SimProv, we recommend using our quickstart template.

Getting the Source

You can download the current version of SimProvWeb from Github:

$ git clone git@github.com:MosiSimprov/SimProv.git

Python Version

We recommend using the latest version of Python. SimProv supports Python 3.10 and newer.

These packages will be installated automatically when installing SimProv:

  • PyYAML implements a YAML parser.

  • Flask is a micro web framework.

  • Flask-CORS extends Flask to handle Cross Origin Resource Sharing (CORS).

  • Flask-SocketIO implements bi-directional communications between the clients and the FLASK server.

  • Eventlet is a concurrent networking library.

  • NetworkX is library providing data structures and algorithms for working with graphs.

Method 1 - Manual Installation

To install SimProv, simply run this simple command in your terminal after entering simprov directory:

$ cd simprov
$ pip install .

We recommend installing SimProv in its own virtual environment to prevent any conflicts with already installed Python libraries.

After the installation, you should get the following output when trying to start SimProv:

$ simprov -h

SIMPROV
usage: simprov [-h] [--state-file STATE_FILE] pattern_specification rule_specification

Starts the SimProv provenance builder.

positional arguments:
  pattern_specification
                        The path to the pattern specification file (YAML)
  rule_specification    The path to the rule specification file (PYTHON).

options:
  -h, --help            show this help message and exit
  --state-file STATE_FILE
                        The path to the file storing the provenance information. Will be written using pickle.

Method 2 - Build a Docker Image

Alternatively, you can build a Docker image that contains SimProv via:

$ docker build -t simprov .

Afterwards, you can verify your Docker image by running:

$ docker run simprov simprov -h

SIMPROV
usage: simprov [-h] [--state-file STATE_FILE] pattern_specification rule_specification

Starts the SimProv provenance builder.

positional arguments:
  pattern_specification
                        The path to the pattern specification file (YAML)
  rule_specification    The path to the rule specification file (PYTHON).

options:
  -h, --help            show this help message and exit
  --state-file STATE_FILE
                        The path to the file storing the provenance information. Will be written using pickle.

Method 3 - Download Pre-build Docker Image

Finally, you can also download a pre-build Docker image:

$ docker pull andreasruscheinski/simprov

Afterwards, you can verify your Docker image by running:

$ docker run andreasruscheinski/simprov simprov -h

SIMPROV
usage: simprov [-h] [--state-file STATE_FILE] pattern_specification rule_specification

Starts the SimProv provenance builder.

positional arguments:
  pattern_specification
                        The path to the pattern specification file (YAML)
  rule_specification    The path to the rule specification file (PYTHON).

options:
  -h, --help            show this help message and exit
  --state-file STATE_FILE
                        The path to the file storing the provenance information. Will be written using pickle.

Note

This installation only provides SimProv as it is.

If you want to use SimProv with addtional dependencies, e.g., libraries used by the rules to extract information from the event, you should use our quickstart image.