WebSuite - Community
  • Python 54.5%
  • Svelte 21.5%
  • TypeScript 19.7%
  • JavaScript 2%
  • Shell 1.3%
  • Other 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Dustin Ludwig 112d0230fc
Some checks failed
sicherheit / geheimnisse-und-luecken (push) Failing after 6s
WebSuite v1.3.1
2026-11-07 11:43:24 +01:00
.forgejo/workflows WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
.githooks WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
core WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
docs WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
licenses WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
modules WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
products/websuite WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
src WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
static WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
.gitignore WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
.gitleaks.toml WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
.gitleaksignore WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
.trivyignore.yaml WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
components.json WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
conftest.py WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
COPYRIGHT.md WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
dev.sh WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
get.sh WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
LICENSE WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
package-lock.json WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
package.json WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
pytest.ini WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
README.md WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
SECURITY.md WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
tsconfig.json WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
vite.config.ts WebSuite v1.3.1 2026-11-07 11:43:24 +01:00
vitest.config.ts WebSuite v1.3.1 2026-11-07 11:43:24 +01:00

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).