Installation Aleksis

Hallo zusammen,

letztens las ich etwas über die LDAP-Anbindung von AlekSIS und dachte, ich schaue mir das an.

Hat jemand das am Laufen und kann mir vielleicht auf die Sprünge helfen?
Beide Installationswege (pip3 und docker) führen nicht zu einer erreichbaren Seite.
Bei der Installation ohne Docker bricht die Datenbankmigration ab („has no school_id_untis“), bei Docker finde ich nur leere Log-Dateien…

Und ein Hilfeforum o.ä. finde ich bisher auch nicht. Vielleicht ist ja hier schon jemand weiter.

Viele Grüße
Thomas

Hi,

Auf der Projekt-Website gibt es Informationen, wo man Support bekommt. Darüberhinaus haben wir eine Mailingliste und einen Chatraum, allerdings aktuell nicht öffentlich (da wir aktuell nur AlekSIS-Pilotschulen betreuen).

Aber auch in einem „Forum“ wäre der erste Schritt, eine Fehlermeldung im Original und vollständig zu posten statt bruchstückhaft aus der Erinnerung ;). Wenn du das machst, können wir gerne hier schauen, was da Problem ist.

Hallo Natureshadow,

wie Du meiner Frage entnehmen kannst, ging es mir erst einmal darum, hier zu fragen, ob sich überhaupt irgendjemand mit dem Thema beschäftigt. Und vielleicht ähnliche Erfahrungen gemacht hat und den entscheidenden Kniff hätte mitteilen können. Ich hatte nicht vor, hier ausführliches AlekSIS-Debugging zu betreiben.

Und so richtig schlau geworden bin ich unter aleksis.org nicht, wo ich denn da Hilfe bekomme - aber ich schließe nicht aus, das übersehen zu haben.

Aber gerne schreibe ich auch hier kurz, was der Stand bei mir ist:

Proxmox, CT als Testumgebung mit Ubuntu 22.04er (auch getestet 20.04er) Template hinter einem NGINX im gleichen Netzsegment - so laufen zahlreiche Dienste wie Moodle/Nextcloud/… bei uns.

Installation via Docker

keine Fehler bei der Installation laut Handbuch. Nach erstem docker-compose up -d fehlte nach docker-ps dann die Maschine, die den Port 8000 als 80 freigibt. Nach einem Neustart erschien dann auch diese:

2e3b39261da7   registry.edugit.org/aleksis/official/aleksis:2022.6   "/usr/bin/dumb-init …"   5 hours ago   Up 4 seconds   8000/tcp                                aleksis_worker_1
f8d776d94da6   registry.edugit.org/aleksis/official/aleksis:2022.6   "/usr/bin/dumb-init …"   5 hours ago   Up 4 seconds   8000/tcp                                aleksis_scheduler_1
9be03f0ccfc4   registry.edugit.org/aleksis/official/aleksis:2022.6   "/usr/bin/dumb-init …"   5 hours ago   Up 5 seconds   0.0.0.0:80->8000/tcp, :::80->8000/tcp   aleksis_app_1
203240634ecb   postgres:14                                           "docker-entrypoint.s…"   5 hours ago   Up 7 seconds   5432/tcp                                aleksis_db_1
c01b629e0f6c   redis:latest                                          "docker-entrypoint.s…"   5 hours ago   Up 7 seconds   6379/tcp                                aleksis_redis_1

Unter keinem der Ports (auf Port 80 oder intern getunnelt Port 8000) erreiche ich irgendetwas - timeout. Ich habe mich (ganz kurz) in den Docker-Containern umgeschaut, finde da bisher aber nur leere oder ältere Log-Dateien.

Installation vial pip3

Zunächst mal nehme ich die Anleitung von edugit, da in der PDF-Datei der entscheidende Block (S. 41 unten vermutlich) bei mir nicht angezeigt wird.

Hier hat zunächst weder unter 20.04 noch 22.04 „chromium“ einen Installations-Kandidaten - aber chromium-browser (sowohl mit snap also auch als deb aus dem Chromium-Beta-Repo probiert) gibt es.

Das lässt sich dann alles installieren. Danach folgt die Installation mit pip3 install aleksis. Das schlägt fehl:

Collecting mysqlclient<3.0.0,>=2.0.0
  Downloading mysqlclient-2.1.1.tar.gz (88 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.1/88.1 KB 3.7 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]
      /bin/sh: 1: mysql_config: not found
      /bin/sh: 1: mariadb_config: not found
      /bin/sh: 1: mysql_config: not found
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-le1mfi12/mysqlclient_cf87f436754147dabea5ff678c39fdf4/setup.py", line 15, in <module>
          metadata, options = get_config()
        File "/tmp/pip-install-le1mfi12/mysqlclient_cf87f436754147dabea5ff678c39fdf4/setup_posix.py", line 70, in get_config
          libs = mysql_config("libs")
        File "/tmp/pip-install-le1mfi12/mysqlclient_cf87f436754147dabea5ff678c39fdf4/setup_posix.py", line 31, in mysql_config
          raise OSError("{} not found".format(_mysql_config_path))
      OSError: mysql_config not found
      mysql_config --version
      mariadb_config --version
      mysql_config --libs
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Da ja Postgres verwendet wird, habe ich ein wenig gesucht und bin auf den Passus zur Untis-Anbindung gestoßen. Dafür ist die Installation von libmariadb-dev notwendig - das habe ich einfach mal versucht. Dann lief die Installation der Pakete durch.

aleksis-admin yarn install und ... collectstatic ebenfalls ohne Fehlermeldung.

Der Fehler, an dem ich nicht weiter komme, tritt dann beim nächsten Befehl aleksis-admin migrateauf:

...
  Applying untis.0001_initial... OK
  Applying untis.0002_auto_20200820_1542... OK
  Applying untis.0003_guess_school_id...Traceback (most recent call last):
  File "/usr/local/bin/aleksis-admin", line 8, in <module>
    sys.exit(aleksis_cmd())
  File "/usr/local/lib/python3.10/dist-packages/aleksis/core/__main__.py", line 14, in aleksis_cmd
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 89, in wrapped
    res = handle_func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/commands/migrate.py", line 244, in handle
    post_migrate_state = executor.migrate(
  File "/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 227, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/usr/local/lib/python3.10/dist-packages/django/db/migrations/migration.py", line 126, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/usr/local/lib/python3.10/dist-packages/django/db/migrations/operations/special.py", line 190, in database_forwards
    self.code(from_state.apps, schema_editor)
  File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/untis/migrations/0003_guess_school_id.py", line 16, in guess_school_id
    school_id = vr.school_id_untis
AttributeError: 'NoneType' object has no attribute 'school_id_untis'

Viele Grüße
Thomas

Hallo zusammen,
Ich habe zwar aleksis bei uns nicht laufen, aber ich finde das Projekt sehr interessant.
Die Unterhaltung beobachte ich sehr interessiert. Insofern finde ich das hier nicht fehl am Platz. Auch dass Aleksis hinter nginx läuft ist toll. Ich würde das genauso versuchen.
Gruß,
Mathias

Die Pipeline für das AlekSIS-Distributions-Release 2022.6.1 mit ein paar Bugfixes, einschließlich einem für obiges Problem, läuft. Auf PyPI ist das Artefakt schon, das entsprechende Docker-Image sollte auch gleich verfügbar sein.

Update mit pip (ggf. im venv): pip3 install -U aleksis==2022.6.1

Willst du die Untis-Anbindung denn nutzen?

Es gibt aktuell offiziell nur Support für unsere Pilot-Partnerschulen sowie bezahlten Support von zwei Partner-Unternehmen. Community-Support in der Breite können wir aktuell nicht leisten.

Das ändert sich aber denke ich so langsam, tatsächlich dank Leuten wie @Supergamer, die sich selber auch in kniffligere Dinge einarbeiten und sich z.B. hier im Linuxmuster-Forum austauschen. Ich denke, dass es dann langsam Zeit für ein AlekSIS-Discourse wird, sobald da eine Handvoll Leute neben den Kernentwicklern mitschreiben können.

Ich werde hier die Tage mal eine kurze Einführung zu AlekSIS posten, jetzt wo es auch im Linuxmuster-Handbuch erwähnt wird.

Hallo @thoschi , hallo @Natureshadow und @Supergamer ,

wir stehen auch vor der Einführung und dann Evaluation eines digitalen Klassenbuches.

  1. FeatureCheck: Meine Aufgabe, ist zu checken, ob Aleksis das kann, was bei uns den Entscheidern mit WebUntis so vorschwebt. (das kann man auch community-mäßig hier oder in einem Diskurs bei aleksis machen, es betrifft ja sicherlich einige)
  2. Abwägung: Was sind funktionelle Vorteile und Nachteile (siehe 1., wenn WebUntis in manchen Dingen besser funktioniert).
  • Ein Vorteil, den ich sehe: weil es Open Source ist, kann ich daran anflanschen. Sei es eine Userliste für den Informatik-Biber, sei es eine Re-Gruppierung von Schüler:innen, um daraus Moodle-Kurse/Kohorten/Einschreibungen zu generieren, usw.
  • weiterhin: wir haben einen Matrix-Server etabliert…
  1. Datenstrom-Analyse: Welche Konnektoren gibt es, was muss manuell gemacht werden, was ist zukünftig zu erwarten, welche menschlichen Faktoren sind zu beachten (z.B. Schulleiter:in trägt immer Kürzel „Kü“ in Formular X ein, Stellvertreter:in trägt immer „Kül“ ein… irgendwo knallt es immer…)
  2. Hosting, Installation, Wartung: Wer kann das machen? Support+Bezahlung von Firmen? Support+Bezahlung von Aleksis? Oder doch selbst hosten?

Ich würde mich bei 1.) auch über einen zeitnahen Austausch freuen. Ich habe da so eine GLK am Mittwoch, wo ich jetzt was zu Aleksis sagen soll… wie toll! Aber hej, wer braucht ein Wochenende?

LG, Tobias

Ich würde mich bei 1.) auch über einen zeitnahen Austausch freuen. Ich habe da so eine GLK am Mittwoch, wo ich jetzt was zu Aleksis sagen soll… wie toll! Aber hej, wer braucht ein Wochenende?

Wir können gerne zwischen 16 und 18 Uhr telefonieren. Schreib mir eine PN, wenn du magst.