- Python 73%
- Dockerfile 27%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .github/workflows | ||
| config | ||
| docs | ||
| scripts | ||
| .dockerignore | ||
| Dockerfile | ||
| README.md | ||
| tool.yaml | ||
Stop Motion — MekoTools
Fertiges Abbild der Web-Fassung von Eagle Animation für den MekoTools-Katalog.
- Werkzeug im Katalog: https://stopmotion.mekotools.de
- Original: Eagle Animation, Brick à Brack — https://eagle-animation.com
- Quelltext des Originals: https://github.com/brick-a-brack/eagle-animation
- Lizenz des Originals: GPL-3.0 (die
LICENSE-Datei im Quellbaum wurde gelesen, nicht die Kennung der Plattform geglaubt)
Was dieses Repo enthält
| Datei | Zweck |
|---|---|
Dockerfile |
baut die Web-Fassung aus dem festgeschriebenen Quelltext-Abzug |
scripts/anpassen.py |
die Änderungen am Original, jede mit Ankerprüfung |
config/default.conf |
nginx-Regeln (eine Seite, Zwischenspeicher, CSP) |
.github/workflows/abbild-bauen.yml |
baut und schiebt ghcr.io/mekotools/stopmotion |
tool.yaml |
Katalogeintrag (Schema im Katalog-Repo) |
docs/ |
Anleitung, Didaktik, Unterrichtsentwurf |
Festgeschriebener Stand
Gebaut wird aus dem Archiv-Abzug des Originals, nicht aus einer Zweigspitze:
- Zweig
master, Kennung8624b035ca5951d28cfceaf89931141cb3e1aac9(2026-10-06) - Fassung laut
package.jsonin diesem Stand: 2.18.4 (erscheint in der Oberfläche unten links, dort zusammen mit der Baukennung, z. B.web-8624b03)
Warum master: die amtliche Web-Fassung des Projekts wird genau aus diesem
Zweig gebaut (der Bau-Ablauf des Originals lädt die Web-Ausgabe nur bei einem
Lauf auf master hoch). Die Veröffentlichungsmarke v2.19.0 gehört zur
Android-Linie und liegt nicht auf master — der Stand dort nennt weiterhin
2.18.4.
Beim Nachziehen einer neuen Fassung: Kennung im Dockerfile an beiden Stellen
(QUELLE, FASSUNG) ändern, Bau laufen lassen, Werkzeugseite und
Katalogeintrag mit dem neuen Prüfdatum versehen.
Änderungen gegenüber dem Original
Es gibt genau drei Änderungen, alle in scripts/anpassen.py mit
Ankerprüfung (Trefferzahl wird geprüft, sonst bricht der Bau ab):
- Analyse abgeschaltet. In
src/config.jswird die PostHog-Kennung auf einen leeren Wert gesetzt. Damit läuftposthog.init()nie, und die Oberfläche sprichtus.i.posthog.comnicht an. Das Projekt selbst beschreibt diesen Weg in seiner README (Abschnitt „Telemetry"). - Vier deutsche Beschriftungen groß geschrieben. Auf der Startseite stand
im Original „projekte", „fotos", „der animation", „favoriten" — im Deutschen
sind das Substantive. Geändert werden nur diese vier Werte in
resources/i18n/de.json. - Sprachkennung des Dokuments beim Start. Das Original setzt
<html lang>erst beim Wechsel der Sprache in den Einstellungen; bei deutscher Oberfläche stand bis dahin „en" im Dokument, was Vorlesehilfen in die falsche Sprache führt. Ergänzt wird eine Zeile am Ende vonsrc/renderer/i18n.js.
Die deutsche Sprachdatei ist vollständig: alle im Quelltext benutzten Beschriftungen haben eine deutsche Fassung. Die acht Schlüssel, die nur im englischen Bestand stehen, werden an keiner Stelle im Quelltext verwendet (geprüft) und brauchen keine Übersetzung.
Der Name des Programms bleibt stehen (Titel, Logo, Fußzeile): wir liefern das Original aus, keine umbenannte Kopie. Der Hinweis auf das Original ist Teil der GPL-Pflicht und der Ehrlichkeit gegenüber den Machern.
Keine Fremdaufrufe zur Laufzeit
Geprüft im Quelltext (nicht in der Beschreibung):
- Analyse: siehe oben, abgeschaltet.
- Partnerschnittstelle
api.brickfilms.com: im Quelltext nur als Voreinstellung der „Workshop"-Funktionen vorhanden; sie wird nur benutzt, wenn diese Funktion eingeschaltet ist (Vorgabe: aus) und die FähigkeitBACKGROUND_SYNCvorhanden ist. Die Web-Fassung kennt diese Fähigkeit nicht (src/backend-web/actions/index.js,APP_CAPABILITIES) — die Felder erscheinen in den Einstellungen also gar nicht. - Schriftarten und Symbole kommen aus dem eigenen Paket.
- Die Kamera wird über den Browser angesprochen (
getUserMedia); der „Toucan Camera Server" des Originals wird im Browser nur benutzt, wenn die Adresse beim Bau mitgegeben wird — wir geben keine mit. config/default.confsetzt zusätzlich eine KopfzeileContent-Security-Policymitconnect-src 'self', die Fremdaufrufe verbietet. Das ist am ausgelieferten Werkzeug nachprüfbar.
Bauen und ausrollen
# Bau (lokal, nur zur Prüfung der Bauvorschrift):
docker build -t stopmotion:test .
# In der CI: Push auf main im GitHub-Repo (github.com/mekotools/stopmotion)
# oder von Hand anstoßen (workflow_dispatch) -> ghcr.io/mekotools/stopmotion
# Auf flip (Haushost):
# /poolio/docker/mekotools-stopmotion/docker-compose.yml
# docker compose up -d --pull always
Auf dem Zielhost wird nicht gebaut; dort läuft nur das Abbild.
Wo die Daten der Nutzenden liegen
Alles bleibt im Browser: Die Anwendung legt Projekte und Bilder in einer Datenbank im Browser ab (IndexedDB) und bedient die Bildabfragen über einen Service Worker. Es gibt keinen Serveranteil, keine Anmeldung und keine Übertragung von Aufnahmen. Folge für den Unterricht: ein Projekt liegt auf einem Gerät in einem Browserprofil — exportieren ist das Sichern.
Herkunft und Danksagung
- Programm: Eagle Animation von Brick à Brack (GPL-3.0), Quelltext über den Forge-Host des Projekts.
- Das Logo stammt von Nishant Shukla, die Klangdateien aus https://zapsplat.com/ (Angaben aus der README des Originals). Sie werden unverändert mit dem Programm ausgeliefert, wie im Original.