1. Setup a development system

To set up a development environment DATAGERRY does not need any special tools. Only the generation of a productive binary is generated by additional software (more about this later). However, it is recommended to set up third-party programs for data storage and process management independently of the development environment.

1.1. Install Python

The backend of DATAGERRY is currently using Python 3.9.x. This is also the only dependency which is absolutely necessary to start the program. Older versions than Python 3.9 may run, but are not supported. The installation of Python 3 is different depending on the operating system. Please see at the official documentation for details: Download Python | Python.org

Note

Currently Python 3.9.x is used for development, which is not compatible with Python 2.x.




1.2. Clone repository

Clone the git repository from our official mirror:

git clone https://github.com/DATAGerry/DATAGerry

1.2.1. Install requirements

We recommend generating an isolated python environment like Virtualenv To install the python requirements run:

pip install -r requirements.txt



1.3. Setting up third party dependencies

Here is an overview of of third party dependencies.

1.3.1. MongoDB

MongoDB is a document-oriented NoSQL database. It is used to store content and the program uses necessary data. See the official installation guide for details: Install MongoDB Community Edition

1.3.2. RabbitMQ

RabbitMQ is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP). See the official installation guide for details: Downloading and Installing RabbitMQ




1.4. Modify configuration file

The default configuration file can be fund at etc/cmdb.conf inside the DATAGERRY repository. The default configuration should look like this:

[Database]
host = 127.0.0.1
port = 27017
database_name = cmdb
;username = username
;password = password

[WebServer]
host = 0.0.0.0
port = 4000

[MessageQueueing]
host = 127.0.0.1
port = 5672
username = guest
password = guest
exchange = datagerry.eventbus
connection_attempts = 2
retry_delay = 6
use_tls = False

1.4.1. Database config

Configuration section for the MongoDB database.

Database config section table

Database

Description

Default value

Optional

host

IP address

127.0.0.1

port

connection port

27017

database_name

database name

cmdb

username

authentication username

only required if the MongoDB database uses a authentication method

password

authentication password

only required if the MongoDB database uses a authentication method

1.4.2. Webserver config

Configuration section for the web(rest)-server.

Webserver config section table

Webserver

Description

Default value

Optional

host

webserver host address

0.0.0.0

if you want that the rest server is only reachable over the local machine use “127.0.0.1” or “localhost”

port

connection port

4000

1.4.3. Message queueing config

Configuration section for the message queueing server.

Message queueing config section table

MessageQueueing

Description

Default value

Optional

host

RabbitMQ host adress

127.0.0.1

port

connection port

5672

username

authentication username

guest

password

authentication username

guest

exchange

used bus

datagerry.eventbus

DONT CHANGE THIS!

connection_attempts

2

retry_delay

time between connection retries

6

use_tls

using tls encryption

false




1.5. Starting the backend and frontend

For a development environment, the frontend must be started independently of the backend, since these systems are only connected during the compile process. If only the development of the backend is desired, the frontend can be ignored. This will then display only one placeholder page.

1.5.1. Starting Python backend

To start DATAGERRY you can use the following command.

./datagerry -s -d

Alternatively the backend can be started from the ROOT folder of the DATAGERRY repository with the following command

python3 -m cmdb -s -d

Note

For development it is recommended to start the system in debug mode by using the -d flag.




1.5.2. Starting Angular frontend

This frontend is developed with Angular Version 17.

1.5.2.1. Installation

Run npm install inside the app folder to install all dependencies. Angular requires node version 18 and npm version 10.

1.5.2.2. Development server

Run ng serve inside the app folder to start the frontend. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the frontend source files.

1.5.2.3. Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.