Diese Skript erstellt eine lokale Dynexite-Orbit Infrastruktur mit Version 2.7:
Der erste Start kann etwa eine Minute dauern. Im Anschluss sind die Server lokal über Port 4200 (Dozenten) und Port 4400 (Studierende) erreichbar.
Sie können sich zu Beginn über die Benutzer
admin@dynexite: admin
manager@dynexite: manager
author@dynexite: author
user@dynexite: user
anmelden.
version: '2'
services:
orbit-mysql:
image: mariadb:10.5
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ___________PASSWORD___________
MYSQL_DATABASE: dynexite
MARIADB_EXTRA_FLAGS:--alter_algorithm=COPY --max_allowed_packet=32M
# Enable this for persistent storage!
# volumes:
# - /srv/docker/dynexite-my-domain/mysql:/var/lib/mysql
http-print-service:
image: registry.dynexite.de/dynexite/http-print-service:v5.2.1
restart: unless-stopped
http-asset-converter:
image: registry.dynexite.de/dynexite/http-asset-converter:latest
restart: unless-stopped
http-python-generator:
image: registry.dynexite.de/dynexite/http-python-generator:v4.1.0
restart: unless-stopped
orbit-teacher-backend:
image: registry.dynexite.de/dynexite/orbit-teacher-backend:v2.6
restart: unless-stopped
# Probably do not include this in your regular deployment.
# It loosly ensures that the database container is up.
entrypoint: "/bin/sh"
command: -c "sleep 10 && /srv/orbit-teacher"
depends_on:
- orbit-mysql
# ~
environment:
ADDRESS: :8200
ALLOWED_ORIGINS: "*"
APPLICATION_URL: :4200 # e.g. "https://dynexite.rwth-aachen.de/"
ASSET_FOLDER: /opt/assets
CACHE_FOLDER: /opt/cache
LEARNER_URL: http://localhost:4400/
DEBUG: 1
MYSQL_HOST: mysql:3306
MYSQL_NAME: dynexite
MYSQL_USER: root
MYSQL_PASSWORD: ___________PASSWORD___________
SECRET: ___________SECRET___________
SERVICES_CONVERTER: http://http-asset-converter:16974
SERVICES_PRINTER: http://http-print-service:3000
SERVICES_RUNNER: http://http-python-generator:7449
SMTP_HOST: my-mail-host:25
SMTP_SENDER: my-domain@my-mail-host.de
HOSTNAME: ""
ports: # This should be replaced by an tls termination service
- 8200:8200
volumes:
- /srv/docker/dynexite-my-domain/assets:/opt/assets
links:
- orbit-mysql:mysql
- http-asset-converter
- http-python-generator
- http-print-service
orbit-learner-backend:
image: registry.dynexite.de/dynexite/orbit-learner-backend:v2.6
restart: unless-stopped
# Probably do not include this in your regular deployment.
# It loosly ensures that the database container is up.
entrypoint: "/bin/sh"
command: -c "sleep 10 && /srv/orbit-teacher"
depends_on:
- orbit-mysql
# ~
environment:
ADDRESS: :8400
APPLICATION_URL: :4400 # e.g. "https://dynexite.rwth-aachen.de/"
ASSET_FOLDER: /opt/assets
CACHE_FOLDER: /opt/cache
TEACHER_URL: http://localhost:4200/
DEBUG: 1
MYSQL_HOST: mysql:3306
MYSQL_NAME: dynexite
MYSQL_USER: root
MYSQL_PASSWORD: ___________PASSWORD___________
SECRET: ___________SECRET___________
SERVICES_CONVERTER: http://http-asset-converter:16974
SERVICES_PRINTER: http://http-print-service:3000
SERVICES_RUNNER: http://http-python-generator:7449
SMTP_HOST: my-mail-host:25
SMTP_SENDER: my-domain@my-mail-host.de
HOSTNAME: ""
ports: # This should be replaced by an tls termination service
- 8400:8400
volumes:
- /srv/docker/dynexite-my-domain/assets:/opt/assets
links:
- orbit-mysql:mysql
- http-asset-converter
- http-python-generator
- http-print-service
orbit-worker:
image: registry.dynexite.de/dynexite/orbit-worker:v2.6
restart: unless-stopped
environment:
SECRET: ___________SECRET___________
ASSET_FOLDER: /opt/assets
CACHE_FOLDER: /opt/cache
LEARNER_URL: http://localhost:4400/
TEACHER_URL: http://localhost:4200/
DEBUG: 1
MYSQL_HOST: mysql:3306
MYSQL_NAME: dynexite
MYSQL_USER: root
MYSQL_PASSWORD: ___________PASSWORD___________
APPLICATION_URL: :4400
SMTP_HOST: ""
SMTP_SENDER: ""
SERVICES_CONVERTER: http://http-asset-converter:16974
SERVICES_PRINTER: http://http-print-service:3000
SERVICES_RUNNER: http://http-python-generator:7449
volumes:
- /srv/docker/dynexite-my-domain/assets:/opt/assets
links:
- orbit-mysql:mysql
- http-asset-converter
- http-python-generator
- http-print-service
orbit-learner:
image: registry.dynexite.de/dynexite/orbit-learner:v2.6
restart: unless-stopped
environment:
BASE_HREF: /
GATEWAY_URL: :8400
ports: # This should be replaced by an tls termination service
- 4400:80
orbit-teacher:
image: registry.dynexite.de/dynexite/orbit-teacher:v2.6
restart: unless-stopped
environment:
BASE_HREF: /
GATEWAY_URL: :8200
ports: # This should be replaced by an tls termination service
- 4200:80
Der Orbit besteht aus mehreren Teilen, welche Aufgrund von strukturellen, technischen und logischen Gründen getrennt wurden. So gibt werden Assets beispielsweise nicht auf dem Hauptsystem
Die existenz der Dienste wird zur Zeit noch ungefragt angenommen und interne Funktionen werden noch nicht geblockt, sollte diese nicht vorhanden sein. Daher kann es noch zu unerwarteten Fehlermeldungen beim Hochladen von Bilder, o.Ä. kommen.
Zur Zeit ist es noch nötig Emails zu verschenken, wenn Benutzer in das System eingeladen werden! Daher muss ein SMTP Dienst verbunden sein. Wenn kein Email Versand erwünscht ist, so muss ein SMTP Dump zur Verfügung stehen.
Die Dienste von Version 1.0.0 nutzen einen PUSH-Mechanismus und haben kein Wissen über ihre Umwelt. Daher ist es ausreichend, den Container auf einer verfügbaren Maschine zu starten und einen zum orbit-backend offenen HTTP Port bereit zu stellen.
Dienst | Port |
---|---|
registry.dynexite.de/dynexite/http-asset-converter | 16974 |
registry.dynexite.de/dynexite/http-print-service | 3000 |
registry.dynexite.de/dynexite/http-python-generator | 7449 |
Diese Dienste werden dann in der Konfiguration des orbit-teacher-backends, bzw. orbit-learner-backends konfiguriert und angesprochen.
Anmerkung: Es ist problemlos möglich einen Lastverteilung vor die Dienste zu schalten, falls man mit einer erhöhten Last rechnen muss.
Der Orbit-Teacher besteht aus 2 Teilen:
In Arbeit
In Arbeit: Volumes, Beispiel für Docker-Compose
ENV | Beispielwert | Erläuterung |
---|---|---|
ADDRESS | ":8000" | Port auf welchem gelauscht werden soll |
ALLOWED_ORIGINS | "https://dynexite.rwth-aachen.de/, 137.226.2.123" | Einstellung für CORS |
ALLOW_COOKIE_SUBDOMAIN | TRUE | Erlaubt CORS Subdomains |
APPLICATION_URL | https://dynexite.rwth-aachen.de | Basis-URL der Installation, nötig für Einladungsemails |
ASSET_FOLDER | /opt/assets | |
CACHE_FOLDER | /opt/cache | |
COOKIE_DOMAIN | dynexite.rwth-aachen.de | Name der Domäne für die Cookies des Systems |
DEBUG | 0 | Erlaubt besseren Debug durch Stack-Informationen in Fehlermeldungen |
HOSTNAME | #Leer# | Erlaubt das erzwingen eines Hostnames für Asset-Pfad-Generierung |
MYSQL_HOST | 10.0.0.155:3306 | Adresse und Port zum Datenbankserver |
MYSQL_NAME | dynexite | Name der Datenbank |
MYSQL_USER | ||
MYSQL_PASSWORD | ||
SECRET | #Zufälliger Text# | Ein individuell zufällig gewählter Wert, um kryptographisch wichtige Mechanismen zu initialisieren. |
SERVICES_CONVERTER | http://name-of-converter:49856 | URL des Asset-Converter Dienstes (wichtig kein / am Ende) |
SERVICES_PRINTER | http://name-of-printer:49856 | URL des Asset-Converter Dienstes (wichtig kein / am Ende) |
SERVICES_RUNNER | http://10.159.159.55:49856 | URL des Asset-Converter Dienstes (wichtig kein / am Ende) |
SESSION | memory | Typ der Session - aktuell wird nur noch memory unterstützt |
SMTP_HOST | mein-smtp-host.de:25 | SMTP Host um Emails zu versenden |
SMTP_SENDER | no-reply@meine-url.de | SMTP Absenderadresse |
Für die Services kann sowohl ein Name (eine Verlinkung des Services notwendig) als auch eine IP Verwendet werden. Wichtig ist nur die Angabe des vollen Pfades inklusive
http://
oderhttps://
, wobei das abschließende/
zur Zeit nicht gesetzt werden darf.
Der learner ist nicht zwingend notwendig und stellt eine Erweiterung des Orbit-Systems da, welche genutzt werden kann um Übungen und Hausübungen durchzuführen.
Der Orbit-Learner besteht aus 2 Teilen:
In Arbeit
In Arbeit: Volumes, Beispiel für Docker-Compose
ENV | Beispielwert | Erläuterung |
---|---|---|
ADDRESS | :8200 | |
HOSTNAME | #Leer# | |
IS_DEVELOPMENT | TRUE | |
SECRET | #Zufällige Zeichenkette# | |
ASSET_FOLDER | /opt/assets | |
CACHE_FOLDER | /opt/cache | |
ALLOWED_ORIGINS | * | |
ALLOW_COOKIE_SUBDOMAIN | FALSE | |
MYSQL_HOST | 127.0.0.1:3306 | |
MYSQL_USER | root | |
MYSQL_PASSWORD | ||
MYSQL_NAME | dynexite2 | |
SESSION | memory | |
SMTP_HOST | localhost:25 | Für Emailversand |
SMTP_SENDER | no-reply@localhost | Für Emailversand |
APPLICATION_URL | localhost:4200 | Basisurl für Emailversand |
DEBUG | 1 | |
SERVICES_RUNNER | http://localhost:7449 | |
SERVICES_PRINTER | http://localhost:3000 | |
SERVICES_CONVERTER | http://dev.dynexite.rwth-aachen.de:49856 |