Niklas974 / hackschule

Informatikunterricht für zu Hause

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hackschule

Voraussetzungen: docker, docker-compose, ruby.

Development Umgebung

Zum lokal ausprobieren einfach folgende Variable in ~/.bashrc setzen:

export QTS_DEVELOPMENT=1

Dann die credentials.template.rb unter credentials.rb speichern und eigene Werte einsetzen. Außerdem muss die src/ruby/invitations.template.txt als src/ruby/invitations.txt gespeichert werden und es sollte auch eine E-Mail-Adresse drinstehen.

Start mit:

./config.rb build
./config.rb up

config.rb schreibt die Datei docker-compose.yaml und ruft anschließend docker-compose mit den übergebenen Argumenten auf. Die Seite läuft dann unter http://localhost:8020, Neo4j unter http://localhost:8021.

In einer Development Umgebung werden zum Einloggen keine E-Mails verschickt. Stattdessen werden die E-Mails auf der Kommandozeile ausgegeben, so kann der normale Login Prozess getestet werden. Alternativ können auch die folgenden Credentials genutzt werden:

Nutzername: fs@hackschule.de
Code: 123456

Anleitung: Hackschule im Testbetrieb unter Ubuntu 20.04 installieren

Im Folgenden eine Schritt für Schritt Anleitung, wie das hackschule Projekt unter einem frisch installierten Ubuntu 20.04 installiert wird.

Zunächst müssen ein paar Abhängigkeiten installiert werden:

sudo apt update && sudo apt install git docker-compose ruby

Danach kann das aktuelle Hackschulen Repository geklont werden:

git clone https://github.com/specht/hackschule.git

Dadurch wird der gesamte Code heruntergeladen und im aktuellen Verzeichnis unter hackschule abgelegt. Damit hackschule im Entwicklungsmodus (Development) ausgeführt wird, muss dies entsprechend konfiguriert werden. Dafür wird eine Umgebungsvariable genutzt. Um diese Umgebungsvariable automatisch zu setzen, wird sie in die Konfigurationsdatei .bashrc geschrieben:

echo "export QTS_DEVELOPMENT=1" >> ~/.bashrc

Alternativ kann diese Umgebungsvariable auch jedes mal von Hand gesetzt werden, dann entfällt der Eintrag in die .bashrc. Als nächstes müssen die beiden Konfigurationsdateien erstellt und ggf. angepasst werden. Wir wechseln zunächst ins hackschule Verzeichnis:

cd hackschule 

und kopieren dort die mitgelieferten Vorlagen:

cp credentials.template.rb credentials.rb

und

cp src/ruby/invitations.template.txt src/ruby/invitations.txt

In der credentials.rb können die notwenidigen Einstellungen für den E-Mail Versand, und die Einstellungen zum automatischen Beschaffen eines letsencrypt TLS Zertifikats konfiguriert werden. Beides ist für den Betrieb im Development Modus nicht erforderlich.

In der invitations.txt kann konfiguriert werden, wer Zugriff auf die lokale Instanz der hackschule haben soll. Für den Testbetrieb ist auch dies zunächst nicht notwendig, da Development Modus feste Zugangsdaten zur Verfügung stehen:

Nutzername: fs@hackschule.de
Code: 123456

Die hackschule nutzt mehrere docker container. Um diese vom aktuellen Nutzer aus verwalten zu können, muss dieser in die docker Gruppe aufgenommen werden:

sudo usermod -aG docker $(whoami)

Diese Änderung wird erst nach einem Aus- und Wiedereinloggen des Nutzers aktiv.

Danach kann die hackschule in Betrieb genommen werden. Beim ersten Aufruf muss sich diese zunächst selbst konfigurieren und die benötigten docker Container aufsetzen. Dies wird durch den Befehl

./config.rb build

angestoßen. Nach einiger Zeit ist die hackschule nun bereit für das erste Ausführen:

./config.rb up

Nach kurzer Zeit sollte die hackschule gestartet sein. Sie ist dann unter localhost:8020 über den Webbrowser erreichbar.

About

Informatikunterricht für zu Hause


Languages

Language:JavaScript 98.2%Language:CSS 0.8%Language:Ruby 0.4%Language:HTML 0.3%Language:Python 0.0%Language:LiveScript 0.0%Language:Makefile 0.0%Language:Zeek 0.0%Language:Dockerfile 0.0%Language:Kotlin 0.0%Language:Java 0.0%Language:Objective-C 0.0%Language:PLpgSQL 0.0%Language:R 0.0%Language:ASL 0.0%Language:Nix 0.0%Language:LSL 0.0%Language:HCL 0.0%Language:Liquid 0.0%Language:Red 0.0%Language:TypeScript 0.0%Language:Blade 0.0%Language:Scala 0.0%Language:Pascal 0.0%Language:TeX 0.0%Language:Haml 0.0%Language:Raku 0.0%Language:Shell 0.0%Language:ActionScript 0.0%Language:Groovy 0.0%Language:Csound 0.0%Language:ABAP 0.0%Language:FreeMarker 0.0%Language:Lua 0.0%Language:Forth 0.0%Language:VBScript 0.0%Language:Tcl 0.0%Language:VHDL 0.0%Language:C++ 0.0%Language:Clojure 0.0%Language:Sass 0.0%Language:Slim 0.0%Language:Twig 0.0%Language:Crystal 0.0%Language:AutoHotkey 0.0%Language:Fortran 0.0%Language:Perl 0.0%Language:Gherkin 0.0%Language:Elixir 0.0%Language:Stylus 0.0%Language:Go 0.0%Language:Common Lisp 0.0%Language:Logtalk 0.0%Language:Mask 0.0%Language:Pug 0.0%Language:Scheme 0.0%Language:Less 0.0%Language:OCaml 0.0%Language:G-code 0.0%Language:Cirru 0.0%Language:GLSL 0.0%Language:Haskell 0.0%Language:Assembly 0.0%Language:Rust 0.0%Language:Dart 0.0%Language:Elm 0.0%Language:Erlang 0.0%Language:NSIS 0.0%Language:Vala 0.0%Language:Swift 0.0%Language:Haxe 0.0%Language:QML 0.0%Language:Vim Snippet 0.0%Language:Wollok 0.0%Language:PowerShell 0.0%Language:CoffeeScript 0.0%Language:SCSS 0.0%Language:F# 0.0%Language:Eiffel 0.0%Language:Nim 0.0%Language:PHP 0.0%Language:OpenSCAD 0.0%Language:D 0.0%Language:Csound Score 0.0%Language:PigLatin 0.0%Language:Verilog 0.0%Language:Batchfile 0.0%Language:Julia 0.0%Language:MATLAB 0.0%Language:Csound Document 0.0%Language:Handlebars 0.0%Language:Io 0.0%Language:XQuery 0.0%Language:Ada 0.0%Language:ColdFusion 0.0%Language:C# 0.0%Language:COBOL 0.0%Language:JSONiq 0.0%