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.