Installation: Unterschied zwischen den Versionen

Aus Letto-Wiki
Zur Navigation springen Zur Suche springen
 
(89 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Allgemeines =
= Allgemeines =
Der Letto-Server wurde in Java für JavaEE [https://www.oracle.com/technetwork/java/javaee/overview/index.html] Server entwickelt. Prinzipiell sollte Letto auf jedem JavaEE-Server unter Windows oder Linux lauffähig sein.  
Der LeTTo-Server wurde in Java für JavaEE [https://www.oracle.com/technetwork/java/javaee/overview/index.html] Server entwickelt. Prinzipiell sollte LeTTo auf jedem JavaEE-Server unter Windows oder Linux lauffähig sein. Wir haben jedoch als Serverumgebung nur Ubuntu-Server mit TomEE getestet und empfehlen deshalb auch diese Laufzeitumgebung.
Wir haben jedoch als Severumgebung nur Ubuntu-Server getestet mit Glassfish 4.1 [https://javaee.github.io/glassfish/download] getestet und empfehlen deshalb auch diese Laufzeitumgebung.


Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der Glassfish läuft. Es ist jedoch auch mögliche einen zentralen MySQL-Server zu verwenden welcher im LAN zur Verfügung steht.
Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der TomEE läuft. Es ist jedoch auch mögliche einen zentralen MySQL-Server zu verwenden welcher im LAN zur Verfügung steht.


= Installation des Ubuntu Servers =
=== siehe auch ===
* [[Administration]]
* [[Anforderungen]]
* [[Migration LeTTo zu Docker]]
* [[Dockerinstallation Erstkonfiguration]]
* [[Verzeichnisse und Docker-Volumes]]
* [[Container Struktur]]
* [[Setup-Service]]
* [[Datensicherung-Docker]]


Der Server kann entweder direkt auf einer PC-Hardware oder in einer virtuellen Umgebung installiert werden. Wir gehen hier nur auf die Direktinstallation ein, virtuelle Systeme sollten aber analog dazu installiert werden können.
= Installation des Servers =


== Installation unter Ubuntu 18.04 ==
== Installation auf einem Ubuntu/Debian-Server mit Docker-Containern (empfohlen) ==
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/18.04/release/] (Vorsicht nicht die Live-DVD verwenden!) und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Installation von Ubuntu 22.04 Server oder Debian 11 ohne apache webserver (Port 80,443 und 9096 müssen frei sein!)
* Installation mit einem Benutzer letto
** !! '''Docker aus den Ubuntu oder Debian-Quellen darf nicht installiert sein''', bzw. muss vor dem Installationsscript deinstalliert werden. Das Install-Script installiert Docker aus den original Docker-Quellen !!
* Installation der benötigten Packete:
* Einrichten der Namensauflösung dass der Server aus dem Internet über seinen Namen erreichbar ist
<pre># Repository für Java
* Download des Installationsscripts von [http://letto.at/download/letto/install-letto-ubuntu-docker.sh http://letto.at/download/letto/install-letto-ubuntu-docker.sh]
apt-add-repository -y ppa:webupd8team/java
  <pre>wget http://letto.at/download/letto/install-letto-ubuntu-docker.sh</pre>
apt-get -y update
* start des Installationsscripts als '''root'''
  <pre>bash ./install-letto-ubuntu-docker.sh</pre>
* Nach der Installation ist das Setup-Service über einen Browser auf dem https-Port 9096 erreichbar.
* Alle weiteren Konfigurationen erfolgen dann im [[Setup-Service]]
** Beim [[Dockerinstallation Erstkonfiguration|ersten Start]] muss eine allgemeine Information des Servers für den Lizenzserver und die Passwörter für den MySQL-Server angegeben werden.
** Dann kann die Schule angelegt werden. Es wird dabei vom Lizenzserver eine beschränkte Demolizenz angefordert. Das Schulkürzel welches bei der Einrichtung agegeben wird erscheint immer als Kennung der Schule am Server (auch in der URL) und kann später nicht mehr geändert werden!
** Nach der Installation der Schule bitte mit uns in Verbindung setzen, dass wir eine angepasste Demolizenz vergeben können.
 
== Installation auf anderen Host-Systemen mit Docker-Containern ==
* Prinzipiell ist natürlich jeder Server für die Docker-Installation von LeTTo verwendbar. Es existiert lediglich nur für Ubuntu ein fertiges Installationsscript für die Installation. Für andere Host-Betriebssysteme bitte ebenfalls das Installationsscript für Ubuntu herunterladen jedoch nicht direkt ausführen sondern an das Betriebssystem anpassen bzw. schrittweise angepasst die Installation händisch durchführen. Den Großteil der Installation übernimmt das Setup-Programm lettosetup.jar welches nach der Installation direkt am Host am https-Port 9096 läuft.
* Unter Windows gibts es nur ein sehr experimentelles Basis-Script nachdem noch einige undokumentierte Anpassungen notwendig sind [https://letto.at/download/letto/install-letto-windows-docker.bat https://letto.at/download/letto/install-letto-windows-docker.bat]
 
== Installation unter Ubuntu (unterstützt bis September 2023) ==
* getestet für die LTS-Version 18.04, 20.04 und 22.04
* VIDEO-Anleitung: [https://www.dropbox.com/s/pyljp9g8pwt4zfp/Letto-Installation.mp4?dl=0 Installation] [https://www.dropbox.com/s/fimmw23l4s6zc6z/Letto-Installation-fertigstellung.mp4?dl=0 Fertigstellung]
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/22.04/release/]und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Installation mit einem Benutzer '''letto'''
* Bei der Installation nur den '''OpenSSH Server''' mit installieren
* Der Server sollte über eine '''funktionierende Namensauflösung''' aus dem '''Internet''' erreichbar sein.
* Eine gegebenenfalls vor dem Server sitzende Firewall sollte ins Internet mindestens folgende Ports freischalten:
** Eingehend TCP: 80(HTTP), 443(HTTPS)
** Eingehend ICMP: echo(ping)
** Ausgehend TCP: 80(HTTP), 443(HTTPS)
** Ausgehend UDP: 53(DNS)
** Ausgehend ICMP: echo(ping)
** Und natürlich alle Antworten auf ausgehende Anfragen
** Falls eine Authentifizierung über LDAP gewünscht wird muss natürlich der LDAP oder AD-Server mit den notwendigen Ports erreichbar sein.
 
* falls der Server nicht auf aktuellem Stand ist, die Updates einspielen und den Server neu starten
<pre>
  sudo apt-get -y update
  sudo apt-get -y upgrade
  sudo apt-get -y dist-upgrade
  sudo apt-get -y autoremove
  sudo apt-get -y install -f
  sudo reboot
</pre>
* Konfiguration des Servers
** Starten des Servers
** Wechseln zu Benutzer root.<pre>sudo su</pre>
** Wechsel in das Verzeichnis opt<pre>cd /opt</pre>
** '''Download''' des Installationsscripts<pre>wget https://letto.at/download/letto/install-letto-ubuntu.sh</pre>
** Script in einem Editor '''konfigurieren''' <pre>nano install-letto-ubuntu.sh</pre>
*** Wenn gewünscht, setzen von DNS-Namen, Passwörtern, Email und Heap-Speicher. Notwendíge Einstellungen werden interaktiv abgefragt wenn sie nicht angegeben werden.
*** Mit <Strg>-O und Enter das Script speichern
*** Mit <Strg>-X den Editor verlassen
** Setzen von Ausführungsrechten <pre>chmod 755 install-letto-ubuntu.sh</pre>
** Script '''starten''' <pre>./install-letto-ubuntu.sh</pre> Die Ausführung des Scripts wird je nach Server-Hardware zwischen 20 und 60 Minuten dauern, da die notwendige Installation von LaTeX und Inkscape relativ lange dauert. Falls das Script während der Ausführung abbricht sollte es (ggf. nach Behebung des Fehlers) einfach nochmals gestartet werden.
 
* Zertifikat für den Server installieren:<br>Bei der Standardeinstellung wurde noch das selbstsignierte Zertifikat vom Apache2 in der Datei /etc/apache2/sites-enabled/letto.conf eingebunden. Dieses Zertifikat kann nun durch ein eigenes gültiges Zertifikat für den Server-DNS-Namen ersetzt werden. <br> Falls kein eigenes Zertifikat vorhanden ist, kann auch mit dem Certbot ein selbstzertifiziertes Zertifikat installiert werden. Hierzu kann wie folgt vorgegangen werden:
** Starten des certbot als root-Benuter <pre>certbot --apache -d meinedomain.at</pre>
*** Hierbei müssen einige Fragen wie email etc. beantwortet werden.
** Eintragen des certbot in einen Cronjob wie zB. in der Datei /etc/crontab <pre>05 05 * * * root certbot renew</pre>
 
* Datensicherung einrichten: <br>Die Datensicherung wird durch das Script so eingerichtet, das täglich in das Verzeichnis /sicherung gesichert wird. Diese Verzeichnis sollte nun auf eine externe Hardware regelmäßig mit einem sinnvollen Archivierungskonzept gesichert werden.
 
* Konfiguration von LeTTo : <br> Nun kann der Server über seine URL erreicht und konfiguriert werden. <br>
* globalen Administrator anlegen: <br> :[[Datei:ClipCapIt-211209-151804.PNG|600px]]
** Der Ping zum Lizenzserver muss OK sein damit der Server am Lizenzserver eingetragen werden kann
** Die Webadresse muss die Adresse sein, mit welcher der Server vom Browser auch erreicht wird, da daran die Lizenz gebunden wird!
** Der globale Administrator ist für die Administration des Servers zuständig. Für die Verwaltung der Klassen,Lehrer und Schüler gibt es einen getrennten Schuladministrator, welcher bei der Anlage der Schule erstellt wird.
** Daten speichern und weiter ist nur möglich wenn der Lizenzserver erreichbar ist.


# letzte Updates einspielen
* als globaler Administator eine Schule anlegen: <br> :[[Datei:ClipCapIt-211209-135032.PNG|600px]] <br> <br> :[[Datei:ClipCapIt-211209-135555.PNG|600px]] <br> Durch "Schule anlegen und Probelizenz anfordern" wird die Schule erzeugt und vom Lizenzserver eine Demolizenz geladen.
apt-get -y upgrade
* als Schuladministrator eine Abteilung anlegen: <br> :[[Datei:ClipCapIt-211209-140145.PNG|600px]]
apt-get -y dist-upgrade


# Java installieren
== Installation unter Ubuntu 18.04 ==
apt-get install -y oracle-java8-installer
* Wir empfehlen ausdrücklich die Installation unter Ubuntu 20.04. Das Installationsscript für 18.04 wird ab 2021 nicht mehr gewartet.
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/18.04/release/] und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Die weitere Vorgehensweise ist gleich wie bei Ubuntu 20.04 nur sollte das Script '''install-letto-ubuntu.sh''' statt install-letto-ubuntu-20.04.sh verwendet werden <pre>wget https://letto.at/download/letto/install-letto-ubuntu.sh</pre>


# Maxima,Inkscape,komprimierer
= Migration einer bestehenden LeTTo-Installation auf eine Docker-Installation =
apt-get install -y maxima inkscape arj zip unzip
== Migration einer Linux-basierten LeTTo-Installation direkt auf den bestehenden Server ==
Besteht bereits eine lokale Installation auf einem Linux Server (idealerweise Ubuntu 18.04,20.04,22.04 oder Debian 11) dann kann direkt auf diesem Server eine dockerbasierte Installation vorgenommen und dabei die bestehenden Daten übernommen werden.


# Tex
[[Migration_LeTTo_zu_Docker#Migration_einer_Linux-basierten_LeTTo-Installation_direkt_auf_den_bestehenden_Server|Migration Linux Installation auf Docker am gleichen Server]]
apt-get install -y tex-common texinfo texlive-latex-extra fig2ps ttm texlive-full texlive-plain-extra


# Samba und cifs für die Autentifizierung am einer Windows Domain
== Migration einer bestehenden LeTTo-Installation auf einen neuen Linux-Server als Docker-Installation ==
apt-get install -y samba realmd sssd adcli libwbclient-sssd krb5-user sssd-tools samba-common packagekit samba-common-bin samba-libs
Liegt eine LeTTo-Installation auf einem beliebigen System vor, so kann sie wie hier beschrieben in eine Docker-Installation auf einem Linux-Server übertragen werden.


# Installation von MySQL, wenn es am Server installiert wird
[[Migration_LeTTo_zu_Docker#Migration_einer_bestehenden_LeTTo-Installation_auf_einen_neuen_Linux-Server_als_Docker-Installation|Migration LeTTo Installation auf Docker]]
apt-get install -y apache2 php mysql-server mysql-client phpmyadmin
</pre>


= Einrichten der Datenbank =
== Migration einer bestehenden LeTTo-Installation auf einen neuen Windows-Server als Docker-Installation ==
* Die Konfiguration kann über phpmyadmin,den mysql Konsolen-Client, MySQLWorkbench, oder irgend ein anderes Admin-Tool für die MySQL-Datenbank erfolgen.
[[Migration_LeTTo_zu_Docker#Migration_einer_bestehenden_LeTTo-Installation_auf_einen_neuen_Windows-Server_als_Docker-Installation|Migration zu Docker auf Windows]]
* Anlegen eines Benutzers "letto" mit Zugriffsrecht auf die Datenbank "letto"
* Anlegen einer leeren Datenbank "letto"
* Den Rest erledigt der Letto-Server


= Installation Glassfish Server=
== Migration einer bestehenden LeTTo-Installation auf einen neuen MAC-Server als Docker-Installation ==
* Aktionen durchführen als user "letto"
[[Migration_LeTTo_zu_Docker#Migration_einer_bestehenden_LeTTo-Installation_auf_einen_neuen_MAC-Server_als_Docker-Installation|Migration zu Docker auf einem Mac]]
* Download der glassfish-4.1.2.zip [https://javaee.github.io/glassfish/download], entpacken der zip und verschieben nach /opt
<pre>wget http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip
unzip glassfish-4.1.2.zip
sudo mv glassfish4 /opt/
</pre>
* Kontrolle ob der Benutzer "letto" alle Recht im Verzeichnis /opt/glassfish4 hat
* Glassfish Secure Admin starten und Admin-Passwort setzen (altes Passwort ist nach einer Neuinstallation leer!)
<pre>/opt/glassfish4/glassfish/bin/asadmin --port 4848 change-admin-password
</pre>
* Glassfish Server starten als Benutzer "letto"
<pre>/opt/glassfish4/glassfish/bin/asadmin start-domain
</pre>
* Secure-Admin aktivieren
<pre>/opt/glassfish4/glassfish/bin/asadmin --port 4848 enable-secure-admin
</pre>
* MySQL Database-Connector [https://dev.mysql.com/downloads/connector/j/] herunterladen und ins Glassfish-Verzeichnis kopieren:
<pre>wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.zip
unzip mysql-connector-java-5.1.47.zip
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47.jar /opt/glassfish4/glassfish/domains/domain1/lib/
</pre>
* Im Webbrowser die Glassfish-Admin-Konsole am Port 4848 öffnen und nun die Admin-Konsole konfigurieren
== Glassfish Konfiguration in der Admin-Konsole ==
=== Einrichten der JPA-Datenbank-Verbindung ===
* Resources - JDBC - JDBC Connection Pools - New
<pre>Pool Name: letto
Resource Type: java.sql.Driver
Database Driver Vendor: MySql
</pre>
-> Next
<pre>URL: jdbc:mysql://localhost/letto
user: letto
password: Passwort welches am MySQL-Server für den Benutzer letto angelegt wurde
</pre>
-> Finish
*Resources - JDBC - JDBC Resources - New
<pre>
JNDI-Name: jdbc/letto
Pool-Name: letto
</pre>
-> ok
=== Heap-Speicher setzen ===
Der Heap-Speicher sollte maximal so groß gesetzt werden, dass noch genug RAM für Linux übrig bleibt (zB. 70-80% das verfügbaren RAM-Speichers)
* Configuration - Server config - JVM settings - JVM Options
<pre>-Xmx8192m
</pre>
== Einrichten des Security-Managers für das SourceCode-Plugin ==
* Von der Konsole aus die Datei /opt/glassfish4/glassfish/domains/domain1/config/server.policy bearbeiten
* Am Ende anfügen:
<pre>grant {
      permission java.util.PropertyPermission "java.security.policy", "write";
      permission java.lang.RuntimePermission "createSecurityManager";
      permission java.lang.RuntimePermission "setSecurityManager";
      permission java.security.SecurityPermission "getPolicy";
      permission java.security.SecurityPermission "setPolicy";
      permission java.lang.RuntimePermission "accessDeclaredMembers";     
      permission java.lang.RuntimePermission "setIO";
      permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
</pre>
* Suche nach
<pre>permission java.io.FilePermission      "<<ALL FILES>>", "read,write";
</pre>
wenn es gefunden wurde -> ändern auf:
<pre>permission java.io.FilePermission "<<ALL FILES>>","read";
</pre>
== Nach den Konfigurationen Glassfish neu starten ==
* Glassfish Server starten als Benutzer "letto"
<pre>/opt/glassfish4/glassfish/bin/asadmin stop-domain
/opt/glassfish4/glassfish/bin/asadmin start-domain
</pre>


= letto.war deployen =
= globale Konfiguration =
* Die aktuelle Version von letto als Datei letto.war auf einem Client herunterladen
Folgende Einstellungen sollte der [[Globaler Administrator|globale Administrator]] vornehmen:
* Im Webbrowser die Glassfish-Admin-Konsole am Port 4848 öffnen
* Anpassen der notwendigen Systemeinstellungen in der '''[[Globale Konfiguration|globalen Konfiguration]]'''.
* Applications - Deploy
** [[Globale Konfiguration#Parameter für den Active-Directory-Login|Parameter]] für die Active-Directory oder LDAP Authentifikation
* Das war-File eintragen und ok
** [[Globale Konfiguration#Parameter für den Serverbetrieb|Parameter]] für den Server-Betrieb
* Nun sollte auf Port 8080 der http und auf Port 8181 der https-Server im Verzeichnis /letto zugreifbar sein
** Wenn nur eine Schule vorhanden ist, die Konfiguration der [[Globale Konfiguration#Parameter der Schule|Schul-Parameter]]
* Beim Ersten Zugriff auf den Server muss der [[Globaler Administrator|globale Administrator]] gesetzt werden.
** Konfiguration des [[Globale Konfiguration#Allgemeine Konfiguration des Serververhaltens|Serververhaltens]]
:[[Datei:ClipCapIt-190125-224854.PNG]]
* Konfiguration des [[Schultypen|Schultyps]]
* Danach kann man mit dem globalen Administrator einloggen und den Server weiter konfigurieren
* Anlegen einer neuen [[Schul-Konfiguration|Schule]]
* Konfiguration der [[Globale Konfiguration#Parameter der Schule|Schul-Parameter]]


= Lizenz-Key einspielen =
= Lizenz-Key einspielen =
* Der [[Lizenz-Key]] wird einfach in das Feld "Lizenz-Key" kopiert und mit "Lizenz übernehmen" bestätigt
* Im Regelfall wird die Lizenz automatisch bei der Konfiguration als globaler Administrator als Demolizenz angelegt.
* Wird der Lizenz-Key korrekt angenommen, so ist letto danach einsatzbereit
* Bitte danach mit dem LeTTo-Team in Verbindung setzen damit wir die Demolizenz verlängern oder ein Angebot für eine Lizenz legen können.


= Einspielen der Daten =  
= Einspielen der Daten =  
* Das [[Datenimport|Einspielen der Daten]] wird bei einer Letto-Admin-Schulung erklärt
* Das [[Datenimport|Einspielen der Daten]] wird bei einer LeTTo-Admin-Schulung erklärt


= Konfiguration der globalen Einstellungen =
= Konfiguration der globalen Einstellungen =
:[[Datei:ClipCapIt-190121-191552.PNG]]
:[[Datei:ClipCapIt-190121-191552.PNG|200px]]
* Im Dialog "[[Globale Konfiguration]]" müssen noch die Parameter für Server, AD-Login und Schule eingestellt werden.
* Im Dialog "[[Globale Konfiguration]]" müssen noch die Parameter für Server, AD-Login und Schule eingestellt werden.
* Als globaler Administrator kann man mit dem Menüpunkt "[[AD-check]]" die Authentifikation an einem LDAP-Server oder an einem Active-Directory konfigurieren.
* Als globaler Administrator kann man mit dem Menüpunkt "[[AD-check]]" die Authentifikation an einem LDAP-Server oder an einem Active-Directory konfigurieren.


= letzte wichtige Server-Konfigurationen =
= Letzte wichtige Server-Konfigurationen =
Folgende Konfigurationen sollten noch vorgenommmen werden, werden aber in diesem Wiki nicht explizit beschrieben, sondern sollten von einem Linux/Unix-Fachmann vorgenommen werden.
Folgende Konfigurationen sollten noch vorgenommmen werden, werden aber in diesem Wiki nicht explizit beschrieben, sondern sollten von einem Linux/Unix-Fachmann vorgenommen werden.
* Letto beim Systemstart automatisch starten
* [[Datensicherung-Docker#Datensicherung|Datensicherung]] einrichten  
* Datensicherung einrichten
* Firewall einrichten
* Firewall einrichten
* Zertifikat für den Glassfish für https
* Verlinkungen und Weiterleitungen auf den Server einrichten


[[Kategorie:Administration]]
[[Kategorie:Administration]]

Aktuelle Version vom 22. September 2023, 12:03 Uhr

Allgemeines

Der LeTTo-Server wurde in Java für JavaEE [1] Server entwickelt. Prinzipiell sollte LeTTo auf jedem JavaEE-Server unter Windows oder Linux lauffähig sein. Wir haben jedoch als Serverumgebung nur Ubuntu-Server mit TomEE getestet und empfehlen deshalb auch diese Laufzeitumgebung.

Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der TomEE läuft. Es ist jedoch auch mögliche einen zentralen MySQL-Server zu verwenden welcher im LAN zur Verfügung steht.

siehe auch

Installation des Servers

Installation auf einem Ubuntu/Debian-Server mit Docker-Containern (empfohlen)

  • Installation von Ubuntu 22.04 Server oder Debian 11 ohne apache webserver (Port 80,443 und 9096 müssen frei sein!)
    • !! Docker aus den Ubuntu oder Debian-Quellen darf nicht installiert sein, bzw. muss vor dem Installationsscript deinstalliert werden. Das Install-Script installiert Docker aus den original Docker-Quellen !!
  • Einrichten der Namensauflösung dass der Server aus dem Internet über seinen Namen erreichbar ist
  • Download des Installationsscripts von http://letto.at/download/letto/install-letto-ubuntu-docker.sh
wget http://letto.at/download/letto/install-letto-ubuntu-docker.sh
  • start des Installationsscripts als root
bash ./install-letto-ubuntu-docker.sh
  • Nach der Installation ist das Setup-Service über einen Browser auf dem https-Port 9096 erreichbar.
  • Alle weiteren Konfigurationen erfolgen dann im Setup-Service
    • Beim ersten Start muss eine allgemeine Information des Servers für den Lizenzserver und die Passwörter für den MySQL-Server angegeben werden.
    • Dann kann die Schule angelegt werden. Es wird dabei vom Lizenzserver eine beschränkte Demolizenz angefordert. Das Schulkürzel welches bei der Einrichtung agegeben wird erscheint immer als Kennung der Schule am Server (auch in der URL) und kann später nicht mehr geändert werden!
    • Nach der Installation der Schule bitte mit uns in Verbindung setzen, dass wir eine angepasste Demolizenz vergeben können.

Installation auf anderen Host-Systemen mit Docker-Containern

  • Prinzipiell ist natürlich jeder Server für die Docker-Installation von LeTTo verwendbar. Es existiert lediglich nur für Ubuntu ein fertiges Installationsscript für die Installation. Für andere Host-Betriebssysteme bitte ebenfalls das Installationsscript für Ubuntu herunterladen jedoch nicht direkt ausführen sondern an das Betriebssystem anpassen bzw. schrittweise angepasst die Installation händisch durchführen. Den Großteil der Installation übernimmt das Setup-Programm lettosetup.jar welches nach der Installation direkt am Host am https-Port 9096 läuft.
  • Unter Windows gibts es nur ein sehr experimentelles Basis-Script nachdem noch einige undokumentierte Anpassungen notwendig sind https://letto.at/download/letto/install-letto-windows-docker.bat

Installation unter Ubuntu (unterstützt bis September 2023)

  • getestet für die LTS-Version 18.04, 20.04 und 22.04
  • VIDEO-Anleitung: Installation Fertigstellung
  • Download von Ubuntu Server [2]und Erzeugung eines Boot Mediums [3] (zB. DVD)
  • Installation mit einem Benutzer letto
  • Bei der Installation nur den OpenSSH Server mit installieren
  • Der Server sollte über eine funktionierende Namensauflösung aus dem Internet erreichbar sein.
  • Eine gegebenenfalls vor dem Server sitzende Firewall sollte ins Internet mindestens folgende Ports freischalten:
    • Eingehend TCP: 80(HTTP), 443(HTTPS)
    • Eingehend ICMP: echo(ping)
    • Ausgehend TCP: 80(HTTP), 443(HTTPS)
    • Ausgehend UDP: 53(DNS)
    • Ausgehend ICMP: echo(ping)
    • Und natürlich alle Antworten auf ausgehende Anfragen
    • Falls eine Authentifizierung über LDAP gewünscht wird muss natürlich der LDAP oder AD-Server mit den notwendigen Ports erreichbar sein.
  • falls der Server nicht auf aktuellem Stand ist, die Updates einspielen und den Server neu starten
  sudo apt-get -y update 
  sudo apt-get -y upgrade
  sudo apt-get -y dist-upgrade
  sudo apt-get -y autoremove
  sudo apt-get -y install -f
  sudo reboot
  • Konfiguration des Servers
    • Starten des Servers
    • Wechseln zu Benutzer root.
      sudo su
    • Wechsel in das Verzeichnis opt
      cd /opt
    • Download des Installationsscripts
      wget https://letto.at/download/letto/install-letto-ubuntu.sh
    • Script in einem Editor konfigurieren
      nano install-letto-ubuntu.sh
      • Wenn gewünscht, setzen von DNS-Namen, Passwörtern, Email und Heap-Speicher. Notwendíge Einstellungen werden interaktiv abgefragt wenn sie nicht angegeben werden.
      • Mit <Strg>-O und Enter das Script speichern
      • Mit <Strg>-X den Editor verlassen
    • Setzen von Ausführungsrechten
      chmod 755 install-letto-ubuntu.sh
    • Script starten
      ./install-letto-ubuntu.sh
      Die Ausführung des Scripts wird je nach Server-Hardware zwischen 20 und 60 Minuten dauern, da die notwendige Installation von LaTeX und Inkscape relativ lange dauert. Falls das Script während der Ausführung abbricht sollte es (ggf. nach Behebung des Fehlers) einfach nochmals gestartet werden.
  • Zertifikat für den Server installieren:
    Bei der Standardeinstellung wurde noch das selbstsignierte Zertifikat vom Apache2 in der Datei /etc/apache2/sites-enabled/letto.conf eingebunden. Dieses Zertifikat kann nun durch ein eigenes gültiges Zertifikat für den Server-DNS-Namen ersetzt werden.
    Falls kein eigenes Zertifikat vorhanden ist, kann auch mit dem Certbot ein selbstzertifiziertes Zertifikat installiert werden. Hierzu kann wie folgt vorgegangen werden:
    • Starten des certbot als root-Benuter
      certbot --apache -d meinedomain.at
      • Hierbei müssen einige Fragen wie email etc. beantwortet werden.
    • Eintragen des certbot in einen Cronjob wie zB. in der Datei /etc/crontab
      05 05 * * * root certbot renew
  • Datensicherung einrichten:
    Die Datensicherung wird durch das Script so eingerichtet, das täglich in das Verzeichnis /sicherung gesichert wird. Diese Verzeichnis sollte nun auf eine externe Hardware regelmäßig mit einem sinnvollen Archivierungskonzept gesichert werden.
  • Konfiguration von LeTTo :
    Nun kann der Server über seine URL erreicht und konfiguriert werden.
  • globalen Administrator anlegen:
     :
    • Der Ping zum Lizenzserver muss OK sein damit der Server am Lizenzserver eingetragen werden kann
    • Die Webadresse muss die Adresse sein, mit welcher der Server vom Browser auch erreicht wird, da daran die Lizenz gebunden wird!
    • Der globale Administrator ist für die Administration des Servers zuständig. Für die Verwaltung der Klassen,Lehrer und Schüler gibt es einen getrennten Schuladministrator, welcher bei der Anlage der Schule erstellt wird.
    • Daten speichern und weiter ist nur möglich wenn der Lizenzserver erreichbar ist.
  • als globaler Administator eine Schule anlegen:
     :

     :
    Durch "Schule anlegen und Probelizenz anfordern" wird die Schule erzeugt und vom Lizenzserver eine Demolizenz geladen.
  • als Schuladministrator eine Abteilung anlegen:
     :

Installation unter Ubuntu 18.04

  • Wir empfehlen ausdrücklich die Installation unter Ubuntu 20.04. Das Installationsscript für 18.04 wird ab 2021 nicht mehr gewartet.
  • Download von Ubuntu Server [4] und Erzeugung eines Boot Mediums [5] (zB. DVD)
  • Die weitere Vorgehensweise ist gleich wie bei Ubuntu 20.04 nur sollte das Script install-letto-ubuntu.sh statt install-letto-ubuntu-20.04.sh verwendet werden
    wget https://letto.at/download/letto/install-letto-ubuntu.sh

Migration einer bestehenden LeTTo-Installation auf eine Docker-Installation

Migration einer Linux-basierten LeTTo-Installation direkt auf den bestehenden Server

Besteht bereits eine lokale Installation auf einem Linux Server (idealerweise Ubuntu 18.04,20.04,22.04 oder Debian 11) dann kann direkt auf diesem Server eine dockerbasierte Installation vorgenommen und dabei die bestehenden Daten übernommen werden.

Migration Linux Installation auf Docker am gleichen Server

Migration einer bestehenden LeTTo-Installation auf einen neuen Linux-Server als Docker-Installation

Liegt eine LeTTo-Installation auf einem beliebigen System vor, so kann sie wie hier beschrieben in eine Docker-Installation auf einem Linux-Server übertragen werden.

Migration LeTTo Installation auf Docker

Migration einer bestehenden LeTTo-Installation auf einen neuen Windows-Server als Docker-Installation

Migration zu Docker auf Windows

Migration einer bestehenden LeTTo-Installation auf einen neuen MAC-Server als Docker-Installation

Migration zu Docker auf einem Mac

globale Konfiguration

Folgende Einstellungen sollte der globale Administrator vornehmen:

Lizenz-Key einspielen

  • Im Regelfall wird die Lizenz automatisch bei der Konfiguration als globaler Administrator als Demolizenz angelegt.
  • Bitte danach mit dem LeTTo-Team in Verbindung setzen damit wir die Demolizenz verlängern oder ein Angebot für eine Lizenz legen können.

Einspielen der Daten

Konfiguration der globalen Einstellungen

  • Im Dialog "Globale Konfiguration" müssen noch die Parameter für Server, AD-Login und Schule eingestellt werden.
  • Als globaler Administrator kann man mit dem Menüpunkt "AD-check" die Authentifikation an einem LDAP-Server oder an einem Active-Directory konfigurieren.

Letzte wichtige Server-Konfigurationen

Folgende Konfigurationen sollten noch vorgenommmen werden, werden aber in diesem Wiki nicht explizit beschrieben, sondern sollten von einem Linux/Unix-Fachmann vorgenommen werden.