Installation Guide
The platform with all it’s modules can be easily installed on a server or on the local machine using Docker Compose. Additionally all modules can be installed manually but this is still work-in-progress and not recommended.
Installation with Docker Compose
The simplest way to install Cinnamon is by running the provided Docker Compose file.
Prerequisites
- Docker
- Docker Compose
Installation
Download the docker-compose.yml and .env.example from Cinnamon’s repository.
Rename the .env.example
to .env
and set the password of the database user in the PostgreSQL container by setting the PG_PASSWORD
variable inside the .env
file.
# .env
PG_PASSWORD=
For a local installation for development or testing purposes, no further configuration is required. Place both files into the desired directory and run the following command in the same directory to start all modules:
docker-compose up -d
The website can be accessed by opening the address http://localhost:8080 in the browser.
Configuration
If you want to install Cinnamon for productive usage, further configuration may be required.
- Mount the database
In order to persist the database, mount the data directory from PostgreSQL to your machine:
# docker-compose.yml
services:
cinnamon-db:
volumes:
- </path/on/machine>:/var/lib/postgresql/data
- (Optional) Configure demo server
Cinnamon has build in support for running the platform as a demonstration instance.
This enables a daily database reset and displays a disclaimer at the top of each page.
To enable the demonstration mode, set the IS_DEMO_INSTANCE
variable in the .env
file to true
.
# .env
IS_DEMO_INSTANCE=true
- (Optional) Configure the workflow
In case you want to change the default workflow or use your own algorithms see the Configuring Cinnamon section for advanced configurations.
Manual Installation
A manual installation of all the modules is possible but not recommended. This guide is still work-in-progress and will be improved in the future.
Currently prebuild packages for a standalone installation are not available and have to be build manually.
Configuration of the platform is only possible by modifying the application.properties
before building.
This will be improved later by adding an external configuration file.
Prerequisites
The following software is required for a manual installation:
- Java 17
- Python 3.10
- Tomcat 10
- PostgreSQL 16.2
Cinnamon has been tested to work with the specified version, but other versions may work as well.
Build
First, clone the Cinnamon repository from GitHub.
Build the Cinnamon Platform and Cinnamon Anonymization modules
If you want to change the configuration of the platform you have to do so before building.
You can change the application.properties
inside cinnamon-platform/src/main/resources
.
For example, in order to set the password of the database, change the value of spring.datasource.password
.
Both modules use Maven as their build system. You can use Maven integrated in your IDE or the provided Maven wrapper.
Compiling the anonymization requires to install arx first.
mvn install:install-file -Dfile=cinnamon-anonymization/src/main/resources/lib/libarx-3.9.1.jar -DgroupId=org.deidentifier -DartifactId=arx -Dversion=3.9.1 -Dpackaging=jar
Then both modules can be build with the following command, which creates two .war
files for the anonymization and platform modules.
mvn clean install
Installation
- Set up the database
Cinnamon Platform requires a database user and a database in PostgreSQL. The following snippet can be used as an example.
CREATE ROLE cinnamon_user WITH PASSWORD 'changeme' LOGIN;
CREATE DATABASE cinnamon_db OWNER cinnamon_user;
The database schema will be created automatically when the application starts.
- Start the platform and the anonymization modules
Move the .war
files into the desired directories inside the webapps
folder.
Please read the official Tomcat 10 documentation for further information.
- Start the synthetization module
Instructions will be added in the future.
- Start the evaluation module
Instructions will be added in the future.
- Start the risk assessment module
Instructions will be added in the future.