Sign inSign up

ubadeu/chemselect

By ubadeu

•Updated 5 months ago

A screening tool to evaluate and compare chemicals in terms of sustainability.

Image
Integration & delivery
0

1.7K

ubadeu/chemselect repository overview

⁠Was ist ChemSelect?

Das deutsche Umweltbundesamt stellt der Öffentlichkeit neben dem bereits länger verfügbaren „Leitfaden für nachhaltige Chemikalien“ die Webanwendung ChemSelect zur Seite.

Unternehmen können mit diesem Screening-Tool auf eine wenig aufwändige Art und Weise sowohl Stoffe als auch Gemische bezüglich ihrer Nachhaltigkeit bewerten und vergleichen. Neben Aspekten der Gefährlichkeit von Chemikalien werden Umweltwirkungen, wie die CO2-Emissionen betrachtet. Hierfür sind keine vertieften Kenntnisse der Chemikalienbewertung notwendig; allerdings wird ein Grundwissen über z.B. die Einstufung vorausgesetzt. ChemSelect ist eine gute Hilfestellung, um problematische Chemikalien zu erkennen und aus einer Reihe von Alternativen diejenigen auszuwählen, welche am nachhaltigsten sind.

ChemSelect wird einer breiten und internationalen Öffentlichkeit über das Internet frei zugänglich gemacht. Es werden die Sprachen deutsch, englisch, französisch, spanisch, portugiesisch, polnisch, estnisch, litauisch, lettisch und arabisch unterstützt.

ChemSelect gibt es nicht nur als Online-Applikation⁠, sondern es kann auch als Docker-Image oder als Debian-Programmpaket heruntergeladen werden. Diese Möglichkeit kann für Unternehmen, die ihre Daten nicht im Internet gespeichert und verarbeitet wissen möchten, attraktiv sein. Wenn das Unternehmen eine geeignete IT-Umgebung hat, kann es ChemSelect auf seinem eigenen Server installieren.

Mit der Entwicklung der Software hat das UBA die Firma Ökopol GmbH⁠ beauftragt, die in Kooperation mit dem Ökoinstitut Freiburg⁠ und Frank Hintsch IT Consulting⁠ auftritt.

⁠Wie das Image benutzt wird

Das Image kann standalone benutzt werden. Es hat alle notwendigen Services an Bord, darunter die Datenbank MariaDB und Postfix, um Mails zu verschicken.

Das Tag latest zeigt auf die letzte stabile Version.

⁠Minimale Konfiguration

Das Image kann man einfach ausprobieren mit:

$ docker run -d -p 9443:443 ubadeu/chemselect:latest chemselect

Wenn man nun im Browser die Adresse https://mein_server:9443 eingibt, dann sollte man den Startbildschirm sehen können:

Chemselect Startbildschirm

Mit dieser Minimalkonfiguration kann man das Tool interaktiv ausprobieren, aber es werden keine Daten dauerhaft gespeichert, denn die Datenbank ist noch nicht als Volume konfiguriert.

⁠Mit docker-compose

Ein Muster für eine vollständige Konfiguration zeigt diese Beispieldatei docker-compose.yml :

version: '3.8'

networks:
  frontend1:
  backend1:

services:
  csProd:
    image: ubadeu/chemselect:latest
    ports:
      - 9020:443
    hostname: chemselect.sample.org
    container_name: chemselect_prod
    entrypoint: chemselect
    volumes:
      - /etc/apache2/ssl:/etc/apache2/ssl
      - ./hooks/mariadb.cnf:/etc/mysql/mariadb.conf.d/90-chemselect.cnf:ro
      - ./hooks/postfix.sh:/etc/chemselect/hooks/postfix.sh:ro
      - ./docs/Privacy.html:/etc/chemselect/local/Privacy.html:ro
      - ./docs/Imprint.html:/etc/chemselect/local/Imprint.html:ro
      - idChemselect:/var/lib/chemselect
      - dbChemselect:/var/lib/mysql
    environment:
      - TZ=Europe/Berlin
      - REALHOST=https://chemselect.sample.org
      - [email protected] 
      - CERTPEM=/etc/apache2/ssl/sample.org.pem
      - CERTKEY=/etc/apache2/ssl/sample.org.key
    networks:
      - frontend1
      - backend1

  adminer:
    image: adminer
    ports:
      - 9040:8080
    networks:
      - backend1

volumes:
  idChemselect:
  dbChemselect:

Eine Musterdatei ist im Container enthalten und kann mit

docker cp $CONTAINER:/etc/chemselect/docker/docker-compose.yml.template ./docker-compose.yml 

geladen werden.

⁠Die Parameter

⁠hooks/mariadb.cnf

Die Datenbank ist Teil des chemselect Containers und so konfiguriert, dass sie Verbindungen nur von localhost annimmt. Mit diesem Hook kann man die Standard-Konfiguration ändern. Beispiel:

[mysqld]
bind-address = 0.0.0.0

So kann man adminer benutzen, um die Datenbank zu inspizieren.

Adminer Anmeldung

Der Server entspricht dem container_name. Der Benutzer ist "chemselect". Das Passwort ist nur innerhalb des Containers bekannt. Es kann mit dem Script svcGetpw.sh angezeigt werden. Dieses Script ist im Container enthalten und kann mit

docker cp $CONTAINER:/etc/chemselect/docker/svcGetpw.sh .

geladen werden.

⁠hooks/postfix.sh

Alle Mail, die innerhalb des Containers anfällt, landet beim Postfix-Service des Containers. Dieser Service kann mit dem postfix.sh Hook konfiguriert werden. Eine Beispiel-Konfiguration ist im Container enthalten und kann mit

docker cp $CONTAINER:/etc/chemselect/docker/postfix.template ./postfix.sh

geladen werden.

So sieht das Template aus:

#!/usr/bin/env bash
#
# if postfix is not configured
[email protected]
pw='*******'
host=your.smtpserver.de
port=587
[email protected]
tfrom="Chemselect System"
if ! grep -q '^root:' /etc/aliases; then
  echo "postmaster: root\nadministrator: root\nroot: $to" >/etc/aliases
  echo "$host ${to}:${pw}" >/etc/postfix/sasl_passwd
  chmod 400 /etc/postfix/sasl_passwd
  echo "/.+/    $tfrom <${efrom}>" >/etc/postfix/sender_canonical_maps
  echo "/From:.*/ REPLACE From: $tfrom <${efrom}>" >/etc/postfix/header_check
  cat >/etc/postfix/main.cf.tmp <<!
smtp_sasl_security_options=noanonymous
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_tls_security_level=encrypt
smtp_use_tls=yes
relayhost=${host}:${port}
smtp_tls_note_starttls_offer=yes
sender_canonical_classes=envelope_sender,header_sender
sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps
mynetworks=127.0.0.0/8
myorigin=\$myhostname
smtp_header_checks=regexp:/etc/postfix/header_check
smtpd_relay_restrictions=permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
!
  mv /etc/postfix/main.cf.tmp /etc/postfix/main.cf
  postmap /etc/postfix/sasl_passwd
  /usr/bin/newaliases
  service postfix restart
fi
⁠docs/Privacy.html

Sie können eine eigene Datenschutzerklärung anstelle der vorinstallierten Erklärung einsetzen. Ein Muster für diese Datei finden Sie im Container-Verzeichnis /usr/share/chemselect.

⁠docs/Imprint.html

Sie können eine eigenes Impressum anstelle der vorinstallierten Erklärung einsetzen. Ein Muster für diese Datei finden Sie im Container-Verzeichnis /usr/share/chemselect.

⁠Zertifikate

Die ChemSelect Webapplikation wird über https betrieben und benötigt deshalb ein SSL-Zertifikat. Dieses Zertifikat ist nicht Bestandteil des Containers, sondern wird mit den Variablen CERTPEM und CERTKEY in den Container injiziert.

⁠REALHOST

ChemSelect verschickt Emails mit Callback-Links. Die richtige Zieladresse versucht ChemSelect vom Hostnamen abzuleiten. Wenn dies nicht gelingt, z.B. weil der Host nur über einen speziellen Port erreichbar ist, kann die Variable REALHOST angegeben werden. Das Format ist SCHEME://HOST:PORT.

⁠AdminEmail

Innerhalb von ChemSelect gibt es einen oder mehrere Administratoren. Der erste der Administratoren, der auch andere Anwender zu Administratoren machen kann, wird mit dieser Vraiablen benannt.

Tag summary

Content type

Image

Digest

sha256:72c93243a…

Size

340 MB

Last updated

5 months ago

docker pull ubadeu/chemselect