Billinski · Rechtliches
Open-Source- und Drittanbieter-Hinweise (Third-Party Notice)
Entwurf, vor Veröffentlichung anwaltlich prüfen lassen. Stand: 2026-10-14.
Billinski wird als Dienst betrieben und nicht an Händler ausgeliefert. Die meisten Open-Source-Lizenzen knüpfen ihre Pflichten an die Weitergabe der Software; für den reinen Betrieb genügt in der Regel das Beibehalten der Urheber- und Lizenzhinweise. Ausnahmen sind Lizenzen mit Netzwerk-Copyleft (AGPL) und kommerzielle Schriften. Dieses Dokument listet die Bestandteile, nennt die Lizenz je Bestandteil und markiert, was vor dem Go-live geklärt werden muss. Veröffentlichung unter billinski.de/lizenzen und als Link in der App.
1. Methode
- Web-App (
apps/web):cd apps/web && pnpm licenses list --json(alle Pakete) undpnpm licenses list --prod --json(nur Laufzeit), ausgeführt am 2026-10-14 mit pnpm 10.33.0 auf macOS/arm64. Plattformspezifische Pakete (*-darwin-arm64) erscheinen in der Liste; auf dem Linux-Server treten an ihre Stelle die*-linux-x64-Varianten derselben Projekte mit derselben Lizenz. - Mustang-Service (
services/mustang): Abhängigkeitsliste mitmvn -o dependency:list -DincludeScope=runtime(118 Artefakte). Das Lizenz-Plugin (license-maven-plugin) war offline nicht verfügbar; die Lizenzangaben in Abschnitt 3 stammen aus den Projekten selbst (pom-Metadaten, Projektseiten) und sind mitmvn org.codehaus.mojo:license-maven-plugin:add-third-partyonline zu bestätigen. - Systemkomponenten (Container-Images,
docker-compose.yml,services/mustang/Dockerfile,infra/deploy/): aus den Image-Angaben.
2. Web-App (apps/web, Next.js/TypeScript)
2.1 Zusammenfassung nach Lizenz
Laufzeit-Abhängigkeiten (--prod, 127 Pakete):
| Lizenz | Pakete |
|---|---|
| MIT | 75 |
| Apache-2.0 | 35 |
| ISC | 7 |
| Unlicense | 2 (postgres, fast-sha256) |
| MIT-0 | 2 (nodemailer, postal-mime) |
| LGPL-3.0-or-later | 1 (@img/sharp-libvips-*) |
| CC-BY-4.0 | 1 (caniuse-lite, Daten) |
| BSD-3-Clause | 1 (source-map-js) |
| 0BSD | 1 (tslib) |
| MIT OR GPL-3.0-or-later (Wahl: MIT) | 1 (jszip) |
| MIT AND Zlib | 1 (pako) |
Alle Pakete einschließlich Entwicklung und Test (447 Pakete): MIT 355, Apache-2.0 52, ISC 15, BSD-2-Clause 7, MPL-2.0 3 (axe-core, lightningcss, lightningcss-darwin-arm64), BSD-3-Clause 3, Unlicense 2, MIT-0 2, Python-2.0 1 (argparse), LGPL-3.0-or-later 1, CC0-1.0 1 (language-subtag-registry), CC-BY-4.0 1, BlueOak-1.0.0 1 (minimatch), 0BSD 1, MIT OR GPL-3.0-or-later 1, MIT AND Zlib 1.
2.2 Direkte Abhängigkeiten
| Paket | Version | Lizenz | Verwendung |
|---|---|---|---|
| next | 16.4.0 | MIT | Web-Framework (Admin, API) |
| react, react-dom | 19.3.0 | MIT | UI |
| drizzle-orm | 0.45.4 | Apache-2.0 | Datenbankzugriff |
| postgres | 3.4.9 | Unlicense | PostgreSQL-Treiber |
| bullmq | 6.3.14 | MIT | Warteschlangen |
| ioredis | 6.0.0 | MIT | Redis-Client |
| @aws-sdk/client-s3 | 3.1150.0 | Apache-2.0 | Objektspeicher (Object Lock) |
| nodemailer | 10.1.0 | MIT-0 | SMTP-Versand |
| resend | 6.32.1 | MIT | Resend-API |
| jose | 6.2.12 | MIT | Signierte Token (Sitzung, Links) |
| jszip | 3.10.2 | MIT OR GPL-3.0-or-later | Export-ZIPs; Billinski nutzt die MIT-Option |
| iconv-lite | 0.7.3 | MIT | Windows-1252 für DATEV |
| yaml | 2.9.1 | ISC | OpenAPI-Synchronisation |
| zod | 4.6.7 | MIT | Validierung |
| typescript | 5.9.3 | Apache-2.0 | Entwicklung |
| tailwindcss, @tailwindcss/turbopack | 4.3.3 | MIT | Styles (Build) |
| drizzle-kit | 0.31.11 | MIT | Migrationen (Entwicklung) |
| eslint, eslint-config-next | 9.39.5 / 16.4.0 | MIT | Entwicklung |
| vitest | 5.0.4 | MIT | Tests |
| @playwright/test | 1.64.0 | Apache-2.0 | Tests |
| fast-xml-parser | 5.11.2 | MIT | Tests |
| tsx | 4.23.15 | MIT | Skripte, Worker |
2.3 Hinweise zu einzelnen Paketen
@img/sharp-libvips-*(LGPL-3.0-or-later): native libvips-Bibliothek, diesharpals optionale Abhängigkeit von Next.js für die Bildoptimierung lädt. Dynamisch gelinkt, unverändert; die LGPL erlaubt diese Nutzung ohne Copyleft auf die Anwendung. Da die App nicht weitergegeben wird, entstehen keine weiteren Pflichten. Wirdsharpnicht benötigt, kann es entfallen.jszip: Doppellizenz; die Nutzung erfolgt unter MIT.caniuse-lite(CC-BY-4.0): Browserdaten, die Next.js beim Build nutzt; Namensnennung („caniuse.com, CC-BY-4.0“) ist in diesem Dokument enthalten.lightningcss,axe-core(MPL-2.0): nur Build und Tests, unverändert; MPL verpflichtet nur bei Weitergabe geänderter MPL-Dateien.- Umami-Skript: Umami ist MIT-lizenziert und läuft auf dem eigenen Server des Betreibers (
stats.storycockpit.com); die App lädt nur das Tracking-Skript.
3. Mustang-Service (services/mustang, Java 21)
Direkte Abhängigkeiten laut pom.xml und wesentliche transitive Bestandteile (118 Laufzeit-Artefakte). Lizenzen zu bestätigen (Abschnitt 1).
| Bestandteil | Version | Lizenz | Rolle |
|---|---|---|---|
Mustangproject library, validator |
2.26.0 | Apache-2.0 | ZUGFeRD-Einbettung, EN-16931-Validierung |
Apache PDFBox (pdfbox, fontbox, xmpbox, preflight, pdfbox-io) |
3.0.8 | Apache-2.0 | PDF-Verarbeitung, PDF/A-Prüfung |
veraPDF (core-jakarta, parser, pdf-model, validation-model-jakarta, verapdf-xmp-core-jakarta, feature-reporting-jakarta, metadata-fixer-jakarta) |
1.30.2 | GPL-3.0-or-later OR MPL-2.0-or-later (Doppellizenz; Wahl: MPL-2.0) | PDF/A-Validierung im Mustang-Validator |
| Saxon-HE | 12.10 | MPL-2.0 | XSLT/Schematron |
| Mozilla Rhino | 1.7.15.1 | MPL-2.0 | JavaScript-Engine (veraPDF) |
| xmlresolver | 5.3.3 | Apache-2.0 | XML-Katalog |
| Apache FOP, Batik, XML Graphics Commons | 2.11 / 1.19 / 2.11 | Apache-2.0 | Rendering (Mustang-Abhängigkeit) |
| ph-commons, ph-xml, ph-jaxb, ph-datetime, ph-cii-d16b, ph-ubl21–24, ph-xsds-, ph-schematron-, en16931-cii2ubl (Philip Helger) | 11.2.6 u. a. | Apache-2.0 | CII/UBL-Modelle, Schematron |
| Javalin | 7.2.3 | Apache-2.0 | HTTP-Server |
| Eclipse Jetty (server, http, util, io, ee10-servlet, security, session, websocket, annotations, plus, jndi, webapp, xml) | 12.1.12 | Apache-2.0 OR EPL-2.0 (Doppellizenz; Wahl: Apache-2.0) | HTTP-Server (Javalin) |
| Jakarta APIs (servlet, annotation, cdi, inject, interceptor, transaction, enterprise.lang-model) | diverse | EPL-2.0 (mit GPL-2.0 Classpath Exception als Alternative) | Schnittstellen |
jakarta.xml.bind-api, jakarta.activation-api, JAXB-Runtime (jaxb-runtime, jaxb-core, txw2, istack-commons-runtime), angus-activation |
4.x / 2.x | EDL-1.0 (BSD-3-Clause) | XML-Bindung |
Jackson (core, databind, annotations) |
2.20.x | Apache-2.0 | JSON |
| Kotlin stdlib, JetBrains annotations | 2.2.20 / 13.0 | Apache-2.0 | Javalin-Abhängigkeit |
SLF4J (api, simple) |
2.0.x | MIT | Logging |
ASM (asm, asm-commons, asm-tree) |
9.10.1 | BSD-3-Clause | Bytecode (Jetty) |
| dom4j | 2.2.0 | BSD-ähnlich (dom4j-Lizenz) | XML |
| commons-io, commons-logging | 2.22.0 / 1.3.0 | Apache-2.0 | Hilfsbibliotheken |
| qdox | 1.12 | Apache-2.0 | FOP-Abhängigkeit |
| stax-utils | 20070216 | BSD-3-Clause | XML |
| jsr305 | 3.0.2 | BSD-3-Clause | Annotationen |
| JUnit Jupiter | 5.13.4 | EPL-2.0 | nur Test |
| Eclipse Temurin JRE 21 (Basis-Image) | 21 | GPL-2.0 with Classpath Exception | Laufzeit |
| Ghostscript (Debian-Paket im Image) | 10.x | AGPL-3.0 (oder kommerzielle Lizenz von Artifex) | PDF → PDF/A-3b, siehe Abschnitt 5 |
DejaVu-Schriften (fonts-dejavu-core im Image) |
Bitstream-Vera-Lizenz (mit Public-Domain-Ergänzungen) | Fallback-Schrift für Ghostscript |
4. Systemkomponenten (Container und Server)
| Komponente | Quelle | Lizenz | Hinweis |
|---|---|---|---|
| Gotenberg | gotenberg/gotenberg:8 |
MIT | HTML → PDF über Chromium; das Image enthält außerdem LibreOffice (MPL-2.0) und weitere Werkzeuge, die Billinski nicht aufruft |
| Chromium (in Gotenberg) | BSD-3-Clause (plus Lizenzen enthaltener Bibliotheken) | Rendering | |
| PostgreSQL | postgres:16-alpine |
PostgreSQL License | Datenbank |
| Redis | redis:7-alpine |
Redis 7.2: BSD-3-Clause; ab 7.4: RSALv2 oder SSPLv1 (Doppellizenz), ab 8.0 zusätzlich AGPL-3.0 | Das Tag 7 kann auf 7.4.x zeigen; Version festlegen und Lizenz prüfen (Abschnitt 5) |
| versitygw | versity/versitygw |
Apache-2.0 | S3-kompatibler Objektspeicher mit Object Lock |
| Mailpit | axllent/mailpit |
MIT | nur Entwicklung |
| cloudflared | Cloudflare | Apache-2.0 | Tunnel-Client auf dem Server |
| Docker CE, Compose | Apache-2.0 | Laufzeit | |
| Debian / Alpine Basis-Images | diverse (GPL, LGPL, MIT, BSD …) | Betriebssystempakete, nicht weitergegeben | |
| Umami | eigener Server | MIT | Reichweitenmessung |
5. Copyleft- und prüfpflichtige Bestandteile (ausdrücklich)
| Bestandteil | Lizenz | Lage | Handlung vor Go-live |
|---|---|---|---|
| Ghostscript | AGPL-3.0 | Läuft ausschließlich serverseitig im Mustang-Service (gs wandelt das Gotenberg-PDF in PDF/A-3b, api/mustang-service.md). Die AGPL knüpft an die Interaktion über ein Netzwerk an; Artifex vertritt öffentlich die Position, dass der Einsatz „as part of a server-based application or service“ ohne Offenlegung des Quellcodes der eigenen Anwendung unter AGPL eine kommerzielle Lizenz erfordert (artifex.com/licensing). Händler interagieren nicht direkt mit Ghostscript, die Anwendung aber schon. |
Anwaltlich prüfen; Optionen: kommerzielle Lizenz von Artifex, Ersatz der PDF/A-Konvertierung (z. B. PDF/A-3 direkt aus Chromium/PDFBox-Pipeline erzeugen) oder Offenlegung des Quellcodes der Anwendung unter AGPL. Bis zur Klärung keine Veröffentlichung im App Store. |
| veraPDF | GPL-3.0-or-later OR MPL-2.0-or-later | Transitive Abhängigkeit des Mustang-Validators, unverändert | MPL-2.0 wählen und dokumentieren; keine weiteren Pflichten ohne Änderung der Dateien |
| Saxon-HE, Rhino | MPL-2.0 | unverändert, Mustang-Service | keine Pflichten ohne Änderung; Hinweis beibehalten |
| lightningcss, axe-core | MPL-2.0 | Build/Test der Web-App | keine |
| @img/sharp-libvips | LGPL-3.0-or-later | dynamisch gelinkt, optional | keine; alternativ entfernen |
| jszip | MIT OR GPL-3.0-or-later | Web-App | MIT gewählt |
| Jetty, Jakarta-APIs, JUnit | EPL-2.0 (Jetty und Jakarta mit Alternativlizenz) | unverändert | Apache-2.0 (Jetty) bzw. EPL-2.0 ohne Änderung: keine Pflichten über den Hinweis hinaus |
| Redis 7.4+ | RSALv2 / SSPLv1 | mögliche Version hinter redis:7-alpine |
Image auf redis:7.2 festlegen (BSD-3) oder auf Valkey (BSD-3) wechseln; sonst RSALv2-Bedingungen (kein Angebot von Redis als Dienst an Dritte; für die interne Warteschlange voraussichtlich unkritisch) prüfen |
| caniuse-lite | CC-BY-4.0 | Daten | Namensnennung (hier erfolgt) |
| Eclipse Temurin / OpenJDK | GPL-2.0 with Classpath Exception | Laufzeit | keine Pflichten für den Betrieb |
6. Schriften
apps/web/brand/hotait/fonts/:ABCDiatype-Light/Regular/Bold.woff2,ABCDiatypeMonoCondensed-Bold.woff2sind Trial-Schnitte von Dinamo (ABC Diatype). Trial-Lizenzen erlauben keinen Produktiveinsatz. Vor dem Go-live ist die Produktionslizenz bei abcdinamo.com zu erwerben (apps/web/brand/README.md); sie muss das Einbetten in PDFs und den serverseitigen Einsatz (App/Server-Lizenz, nicht nur Desktop/Web) abdecken, weil die Schriften in jedes Beleg-PDF des Mandanten eingebettet werden. Die Lizenz läuft auf den Händler (HOTAIT), der die Schrift in seinem Theme nutzt, oder auf den Betreiber; das ist mit Dinamo zu klären.apps/web/fonts/: vorgesehen für lizenzierte Schriften des Produkts; derzeit leer. Für die Standardvorlage ist eine Schrift mit freier Einbettung zu wählen (z. B. SIL Open Font License) oder eine Lizenz zu kaufen.- Künftiges Branding je Mandant (Logo-Upload, Schriftwahl,
docs/SCOPE.mdE9): die AGB verpflichten den Händler, nur Schriften und Logos hochzuladen, für die er die Rechte hat [in AGB Abschnitt 9 ergänzen, sobald die Funktion existiert].
7. Pflichten, die Billinski erfüllt
- Beibehalten der Urheber- und Lizenzhinweise aller Bestandteile (dieses Dokument; die Lizenztexte liegen in
node_modulesbzw. in den Maven-Artefakten und werden auf Anfrage bereitgestellt). Apache-2.0-NOTICE-Dateien werden mit den Artefakten unverändert mitgeführt. - Keine Änderungen an MPL-, EPL- oder LGPL-lizenzierten Dateien; sollten Änderungen nötig werden, werden die geänderten Dateien unter derselben Lizenz veröffentlicht.
- Klärung der AGPL-Frage zu Ghostscript und der Redis-Version vor der Veröffentlichung (Abschnitt 5).
- Erwerb der Schriftlizenzen vor dem Go-live (Abschnitt 6).
- Aktualisierung dieses Dokuments bei jeder Änderung der Abhängigkeiten; Erzeugung nach Abschnitt 1.
8. Lizenztexte
Die vollständigen Lizenztexte sind unter den folgenden Adressen abrufbar: MIT (opensource.org/license/mit), Apache-2.0 (apache.org/licenses/LICENSE-2.0), ISC (opensource.org/license/isc-license-txt), BSD-2/3-Clause (opensource.org/licenses), MPL-2.0 (mozilla.org/MPL/2.0), EPL-2.0 (eclipse.org/legal/epl-2.0), EDL-1.0 (eclipse.org/org/documents/edl-v10.php), LGPL-3.0 und AGPL-3.0 (gnu.org/licenses), GPL-2.0 with Classpath Exception (openjdk.org/legal/gplv2+ce.html), PostgreSQL License (postgresql.org/about/licence), CC-BY-4.0 (creativecommons.org/licenses/by/4.0), Unlicense (unlicense.org), MIT-0 (opensource.org/license/mit-0), 0BSD (opensource.org/license/0bsd), BlueOak-1.0.0 (blueoakcouncil.org/license/1.0.0), RSALv2 (redis.io/legal/rsalv2-agreement), SSPLv1 (mongodb.com/licensing/server-side-public-license).