- Python 54.5%
- Svelte 21.5%
- TypeScript 19.7%
- JavaScript 2%
- Shell 1.3%
- Other 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .githooks | ||
| core | ||
| docs | ||
| licenses | ||
| modules | ||
| products/websuite | ||
| src | ||
| static | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .gitleaksignore | ||
| .trivyignore.yaml | ||
| components.json | ||
| conftest.py | ||
| COPYRIGHT.md | ||
| dev.sh | ||
| get.sh | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| pytest.ini | ||
| README.md | ||
| SECURITY.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
WebSuite
Vertrieb, Kunden, Tickets, Projekte und Buchhaltung in einer Oberfläche — selbst gehostet, neben Libre Workspace oder für sich allein. Gebaut auf modulstack.app, einem Core für modulare Business-Apps: SvelteKit vorne, Django hinten, jede Funktion ein Modul.
Entwickelt wird auf Forgejo; die Doku liegt
unter docs/.
Sicherheitslücken bitte nicht als Issue, sondern wie in SECURITY.md beschrieben melden.
Module
| Modul | Was es tut |
|---|---|
| CRM | Organisationen, Kontakte, Leads, Anrufe; Abgleich mit NocoDB und Frappe CRM |
| Tickets | Anliegen mit Verlauf und Anhängen; Abgleich mit Frappe Helpdesk und Nextcloud Deck |
| Kunden-Portal | Kunden legen Tickets an, antworten und laden Dateien hoch |
| Projekte | Projekte mit Tickets und Kunden |
| Buchhaltung | Rechnungen und offene Posten aus ERPNext |
| Kampagnen | Werbekampagnen und ihre Leads |
| Webseiten | Kundenwebseiten verwalten |
| Skript | Gesprächsskripte als Baum, mit Lerntrainer |
| Dashboard, Desktop, Store, Doku | Startseite, Fenster, Module installieren, Handbuch |
| Libre Workspace | Benutzer, Apps und Server von Libre Workspace in der WebSuite |
Welche Module ein Produkt mitbringt, steht in products/websuite/product.json; im
Betrieb unter Einstellungen → Module.
Aufbau
Nach dem White Paper: der Core in core/, jedes Modul in modules/<name>/
(seine Erweiterungen darin unter extensions/), die Produkte in products/. Welche Module laufen, steht in
products/websuite/product.json. Der Baum und die Regeln:
docs/ordnerstruktur.md. Die ganze Doku baut MkDocs —
siehe docs/doku.md.
Entwicklung
Alle Befehle an einer Stelle: docs/befehle.md.
npm install
python3 -m venv .venv && .venv/bin/pip install -r core/backend/requirements.txt
./dev.sh # Django auf 8000, Vite auf 5173
npm run check # Typen, Svelte und die Schichtregeln
npm test # Vitest: Lernlogik, Einstellungen, Design, Registry
.venv/bin/pytest # Backend, von der Repo-Wurzel aus
npm run docs # Doku-Vorschau auf 127.0.0.1:8001
npm run build
Die Lernlogik liegt bewusst in reinen Funktionen unter modules/scripts/frontend/lib/
(review, cueLevels, chain, gist, mistakes, chunkSize, fillers)
und ist dort getestet — Staffeln und Score-Übergänge kann man nicht
anschauen, nur durchrechnen.
Daten
Alles liegt auf dem Server — Django mit SQLite in core/data/, der Code in core/backend/ und
modules/*/backend/. Der Browser
spricht über core/frontend/api/db.ts einen Ausschnitt des PostgREST-Dialekts
(.from().select().eq()); welche Tabellen und Spalten er dabei erreicht, meldet
jedes Modul an einer Stelle an — für „Skript üben" in modules/scripts/backend/tables.py.
Sicherung und Wiederherstellung unter /settings im Reiter Daten — als ZIP
mit backup.json plus den Aufnahmen, oder als JSON nur mit den Metadaten.
Dieselbe Datei liest auch core/backend/manage.py import_backup von der Kommandozeile.
Für Tests liegt unter core/frontend/api/testing/ ein Doppel derselben
Abfragesprache über IndexedDB. Es ist kein zweiter Betriebsmodus: die App
läuft nur gegen den Server.
Lizenz
WebSuite und modulstack.app — Copyright (C) 2026 Dustin Ludwig — stehen unter der GNU Affero General
Public License, Version 3 oder später (AGPL-3.0-or-later). Vollständiger Text:
LICENSE; Urheber und fremder Code: COPYRIGHT.md; zusätzliche
Bedingungen nach Abschnitt 7: licenses/ADDITIONAL-TERMS.md.
Der Code ist offen, der Name nicht: WebSuite ist eine Marke und nicht Teil dieser Lizenz. Wer den Code verändert weitergibt, gibt ihm einen anderen Namen und ein anderes Logo: Markenrichtlinie, Partnermodell (beides Entwürfe).