Self-hosted Plugin-Registry. Gebaut mit Bun, Elysia, SvelteKit und Drizzle ORM.
🌐 In deiner Sprache: English · Deutsch · Español · Français · Italiano · 中文
📚 Docs: tabularium.wiki
Ein Verzeichnis für Plugins (oder beliebige Release-Artefakte) mit Web-UI, OAuth-Submission-Flow, OpenAPI-Schnittstelle und integriertem CMS. Autor:innen verbinden ihren GitHub-/GitLab-/Gitea-Account, wählen ein Repo aus, und Tabularium installiert den Release-Webhook — jeder neue Tag wird automatisch zum Release im Verzeichnis.
- 🧩 Multi-Provider-Submission — GitHub, GitLab, Gitea, Forgejo (beliebige Instanzen), mit Manifest-Vorschau bei der Repo-Auswahl
- 🔐 Signierte Releases — jedes eingelesene Release wird gehasht (SHA-256) und mit dem Ed25519-Schlüssel der Registry signiert; JWKS unter
/.well-known/registry-key.json. GitHub-Build-Provenance-Attestations werden weitergereicht, sofern vorhanden. - 📨 Plugin-Requests — Nutzer:innen können Plugins anfragen, upvoten und unter
/requestsfür sich beanspruchen (abschaltbar) - 🔁 Plugin-Transfers — Owner können Plugin-Eigentum unter
/settingszwischen Accounts übertragen - 🌐 Mehrsprachige READMEs — das Manifest-Feld
readmes:mappt Locales auf README-Pfade; die Registry liefert das passende README via?locale= - 📱 Desktop-App-Handoff — Betreiber:innen können
tabularis://-artige URL-Schemes registrieren; die Plugin-Detailseite zeigt einen „In App öffnen"-CTA - 🏷 Plugin-Arten — admin-definierte Taxonomie (Themes, Snippets, SQL-Templates, …) mit optionalen öffentlichen Katalog-Unterseiten pro Art
- 🪄 Install-Wizard — strukturiertes DB-Formular (Host/Port/User/PW + Test-Connection), Bootstrap-Passwort im Log, nach dem Restart automatischer Login in
/admin - 📝 Integriertes CMS — Markdown-Seiten mit Widgets, Übersetzungen pro Sprache
- 🎨 Branding — Name, Farben, Logo, Favicon, Analytics, Indexierungs-Policy
- 🌍 6 UI-Sprachen — English, Deutsch, Español, Français, Italiano, 中文 — vom Admin konfigurierbar
- 🗄 Multi-Dialekt — SQLite, Postgres oder MySQL (auto-erkannt aus
DATABASE_URL) - 🚦 Feature-Toggles — Submissions oder Requests ohne Redeploy abschalten
- 🪵 Audit-Log — jede Admin-Aktion mit Akteur + IP + Ziel
git clone https://codeberg.org/NewtTheWolf/Tabularium
cd Tabularium
bun install
just dev # startet minikube + tilt up (postgres + dragonfly + api + frontend)Öffne http://localhost:5180 — der Wizard führt durch die Datenbankeinrichtung, lässt Migrations laufen, seedet Default-CMS-Seiten und befördert den Bootstrap-Account zum echten Admin.
Das Bootstrap-Passwort steht im Startlog:
==========================================
Tabularium install wizard
→ http://localhost:3000/welcome
Bootstrap login:
admin@example.com
<auto-generated-password>
==========================================
| Schicht | Tech |
|---|---|
| Runtime | Bun (≥ 1.3) |
| HTTP | Elysia + TypeBox |
| DB | Drizzle ORM — sqlite / postgres-js / mysql2 |
| Cache | Bun.redis (Dragonfly-kompatibel) oder in-memory |
| Frontend | SvelteKit (SPA) + Eden Treaty end-to-end Typsicherheit |
| i18n | Paraglide JS |
| Docs | Docsify — kein Build-Step |
apps/
backend/ Elysia API + Install-Wizard
frontend/ SvelteKit SPA
packages/
client/ @tabularium/client — typisierter Eden-Treaty-Client (TypeScript)
manifest/ @tabularium/manifest — reiner Validator + Integrity-Primitives (auf npm)
cli/ @tabularium/cli — autorenseitiges `tabularium validate` (auf npm)
tabularium-rs/ tabularium-sdk — Async-Rust-Client (auf crates.io)
tsconfig/ Shared tsconfig
deploy/ k3s-Manifests (Image-Build läuft in `.forgejo/workflows/docker-build.yml`)
docs/ Docsify-Inhalte (Integrity-Guides, Deploy, etc.)
.forgejo/ Codeberg-Forgejo-Actions-Workflows
Vollständige Docs unter tabularium.wiki.
- 🚀 Deploy-Guide — Docker, Env-Variablen, Reverse Proxy
- 🛠 Install-Wizard-Internals
- 🔌 API-Referenz — OpenAPI-Spec unter
/openapi/json
Apache 2.0 — siehe LICENSE.
Issues und PRs willkommen auf Codeberg. Für größere Änderungen vorab eine Discussion starten, damit wir uns auf eine Richtung einigen.