clarity-h2020 / csis

Management Project for coordinating the Climate Service co-creation process of the CLARTIY CSIS. High-level tasks (issues) are defined in this repository and then broken down into concrete implementable issues in different sub repositories.
https://csis.myclimateservice.eu/
3 stars 0 forks source link
co-creation management product-backlog

CLARTIY Climate Services Information System

Management Project for coordinating the co-creation process of the CLARITY Climate Services Information System (CSIS). High-level tasks (issues) are defined in this repository and then broken down into concrete implementable issues in different sub repositories and project boards.

The CLARTIY CSIS as such consists of a set of docker-containers and is deployed as production and development of two virtual serves managed by Austrian Institute Of Technology.

CSIS Development System

The CSIS Development System is deployed at virtual server csis-dev.ait.ac.at and is reachable under the URL csis-dev.myclimateservice.eu. Each subfolder of the /docker/ directory contains a docker-compose.yml file to control the respective service groups. For each service groups, a respective GitHub repository exists in organisation clarity-h2020. It contains a readme.md file that provides more information regarding implementation, configuration, backups, upgrading, etc.

csis-dev.ait.ac.at

hoster

A simple etc/hosts file injection tool to resolve names of local Docker containers on the host. Instead of exposing ports of a container on the docker host (localhost), you can access the container by its name directly, e.g. csis-postgis:5432 for accessing the CSIS Drupal 8 PostGIS database running in csis-postgis container.

ngnix-proxy

The nginx reverse proxy is used to expose several internal docker services of CLARITY's Climate Services Information System (CSIS) on myclimateservice.eu subdomains.

csis

CSIS Drupal 8 Instance of the development system with PostGIS 10 as backend.

Currently, the following custom modules and integrated apps ([Building Blocks]()) are deployed together with the Drupal 8 system:

ckan

CKAN is CLARITY's online meta-data catalogue that reports on all datasets produced and used within the project and thus represents a 'living' Data Management Plan.

Access to CKAN password protected. Refer to the CLARTIY mailing list or /docker/readme.md for further information.

duplicity

duplicity is backup tool that can be used to perform incremental backups of CSIS container's data volumes.

CSIS Production System

The CSIS Production System is deployed at virtual server csis.ait.ac.at and is reachable under the URL csis.myclimateservice.eu. Synchronisation between deployment and production system is described in Synchronisation between DEV and PROD.

csis.ait.ac.at

For most service groups that are deployed at the production virtual server, separate development and production branches exist in the respective GitHub repository. The name of the branches are dev and master or csis-dev.ait.ac.at and csis.ait.ac.at. Refer to docker-duplicity and map-component for an example.

hoster

See hoster @ development system.

ngnix-proxy

See ngnix-proxy @ development system.

The public endpoint is csis.myclimateservice.eu. The production configuration is maintained in branch csis.ait.ac.at.

csis

See csis @ development system.

The public endpoint is csis.myclimateservice.eu. The actual production and development Drupal site configuration is stored in the separate private clarity-csis-drupal repository. The custom modules and integrated apps are usually deployed from the master branch.

duplicity

See duplicity @ development system.

The production configuration is maintained in branch csis.ait.ac.at.

Other services

The CSIS relies on several external services and application that are not deployed as docker containers on csis.ait.ac.at or csis-dev.ait.ac.at virtual servers.

myclimateservices profile service

TODO @fgeyer16: Please update readme.md and provide a description for profiles service and single-sign-on. See ckan or docker-drupal for an example.

The myclimateservices profile service is the central place for the administration of user and organisation data. This is the page on which the user registers for all other services of myclimateservices.eu (CSIS, events, marketplace) and maintains his profile and the profile of his organisation(s). profile.myclimateservices.eu is also the point of Single Sign On (SSO) for all services of myclimateservices.eu. The single pages will only receive the data of the users profile, which are needed for that service.

Implementation

The profile service is implemented as Drupl 8 instance. To provide the Single Sign On functionality the contributed Drupal 8 CAS server module is used. So the other services implemented in Drupal 8 can use the Drupal CAS module to participate on the Single Sign On. The parts of the user profile needed for a specific Service can be exposed to the service

Deployment

The profile service is deployed as composer project. The only requirement is a LAMP system (Linux Apache Mysql PHP web server) with installed php package manager composer. Please prepare a website in the webservers configuration. You will need access credentials to the composer repository of myclimateservices.eu

Installing the code base

Only code dedicated to the profile service is located in the repository. All other code is managed by composer packages. To get the whole code for running the Drupal website:

cd /path/to/website
git clone https://gitlab.com/smart-cities-consulting/mcs-profile.git ./
composer install
composer drupal:scaffold
Install Drupal

Create a database for the System:

mysql -u root -p
CREATE DATABASE <databasename>;
GRANT ALL PRIVILEGES on <databasename>.* to "<dbuser>"@"localhost" IDENTIFIED BY "<password>";

Open a web browser and visit the url of the page. Follow the install wizard of Drupal 8 and enter your database credentials when asked

import Drupals configuration
cd /path/to/website
vim web/sites/default/setting.php  -> $config_directories['sync'] = '../config/sync';
vendor/bin/drush cim 
vendor/bin/drush cr

AIT EMIKAT

TODO @humer: Please update emikat/readme.md and csis/readme.md and provide implementation and deployment description for EMIKAT. See ckan or docker-drupal for an example.

ATOS GeoServer

TODO @DanielRodera: Please update readme.md and provide deployment description for ATOS GeoServer. See ckan or docker-drupal for an example.

METEOGRID Transport Application

TODO @ghilbrae: Please update readme.md and provide a description for the Transport Application. See ckan or docker-drupal for an example.

The Transport Module aims to incorporate natural risks in the context of Climate Change into the design and management of the transport infrastructure; it is meant to provide the user with a tool that facilitates the risk assessment of a road project in the face of climate variability and change. It addresses the needs of several types of potential users who in turn will demand different climate information with a different focus.

It has been developed as an external tool that has been integrated into the CSIS. It can be accessed from within the CSIS and exchanges information with it to ensure that the users have a seamless experience when using the tool for their transport studies.

Implementation

The Transport Module architecture follows a traditional MVC model using the Django web framework as base technology along with:

The integration with the CSIS is made using an API that has been developed using the existing Django infrastructure.

Deployment

The deployment of the TM needs a Linux-based OS in which the following packages must be installed:

Once available, the application can be obtained from the repository on any directory that the administrator deems suitable.

git clone ssh://git@gitlab.meteogrid.com:20023/meteogrid/emmet.git
cd emmet

Then it is needed to set up the database:

sudo su - postgres
createuser [USERNAME]
createdb -O [USERNAME] emmet_beta
psql emmet
 create extension postgis;
exit

A python virtual environment is then set up:

mkvirtualenv --system-site-packages --python=/usr/bin/python3 emmet
workon emmet
pip install -r requirements.txt

and the javascript packages needed are installed and built using npm:

npm install
npm run-script build

The next step is to configure the Django application. To do that a local settings file is needed in which the information regarding the database, and other local paths must be supplied. A copy of this file can be found in the repository: local_settings.py. More information on this file and its options can be found in Django documentation pages: Settings

Lastly the database needs to be set up from an existing dump in which all the necessary data for the TM to work has already been set. The dump file is available in the repository as a json file and can be imported into the freshly installed system by using:

python manage.py loaddata < dumped_data.json

A web server is also needed to serve the application. The TM will work with either Apache HTTP Server or Nginx. The configuration of any of these web servers will depend on the system in which it is being installed and the best approach is to follow the documentation of the selected web server.