Registry di plugin self-hosted. Costruito con Bun, Elysia, SvelteKit e Drizzle ORM.
🌐 Nella tua lingua: English · Deutsch · Español · Français · Italiano · 中文
📚 Documentazione: tabularium.wiki
Una directory di plugin (o di qualsiasi artefatto distribuito via release) con UI web, flusso di submission OAuth, superficie OpenAPI e CMS integrato. Gli autori collegano il loro account GitHub / GitLab / Gitea, scelgono un repo e Tabularium installa il webhook delle release — ogni nuovo tag diventa una release nel registry.
- 🧩 Submission multi-provider — GitHub, GitLab, Gitea, Forgejo (qualsiasi istanza), con anteprima del manifest alla selezione del repo
- 🔐 Release firmate — ogni release ingerita viene hashata (SHA-256) e firmata con la chiave Ed25519 del registry; JWKS su
/.well-known/registry-key.json. Le attestation di build-provenance di GitHub vengono inoltrate quando presenti. - 📨 Richieste di plugin — gli utenti possono richiedere plugin, votarli e reclamarli su
/requests(disattivabile) - 🔁 Trasferimenti di plugin — i proprietari possono trasferire la titolarità di un plugin tra account da
/settings - 🌐 README multilingua — il campo
readmes:del manifest mappa lingue a percorsi di README; il registry serve il README corrispondente via?locale= - 📱 Handoff verso app desktop — gli operatori possono registrare schemi URL tipo
tabularis://; la pagina di dettaglio del plugin mostra una CTA "Apri nell'app" - 🏷 Tipi di plugin — tassonomia definita dall'admin (temi, snippet, template SQL, …) con sottopagine pubbliche opt-in per tipo
- 🪄 Wizard di installazione — form DB strutturato (host/porta/utente/password + test di connessione), password bootstrap nei log, login automatico in
/admindopo il riavvio - 📝 CMS integrato — pagine markdown con widget e traduzioni per lingua
- 🎨 Branding — nome, colori, logo, favicon, analytics, policy di indicizzazione
- 🌍 6 lingue — English, Deutsch, Español, Français, Italiano, 中文 — configurabile dall'admin
- 🗄 Multi-dialetto — SQLite, Postgres o MySQL (auto-rilevato da
DATABASE_URL) - 🚦 Feature toggle — disattiva submission o richieste senza redeploy
- 🪵 Audit log — ogni azione admin con autore + IP + target
git clone https://codeberg.org/NewtTheWolf/Tabularium
cd Tabularium
bun install
just dev # avvia minikube + tilt up (postgres + dragonfly + api + frontend)Apri http://localhost:5180 — il wizard ti guida nella configurazione del database, esegue le migration, semina le pagine CMS di default e promuove l'account bootstrap ad admin reale.
La password bootstrap viene stampata al primo avvio:
==========================================
Tabularium install wizard
→ http://localhost:3000/welcome
Bootstrap login:
admin@example.com
<password-auto-generata>
==========================================
| Layer | Tech |
|---|---|
| Runtime | Bun (≥ 1.3) |
| HTTP | Elysia + TypeBox |
| DB | Drizzle ORM — sqlite / postgres-js / mysql2 |
| Cache | Bun.redis (compatibile con Dragonfly) o in memoria |
| Frontend | SvelteKit (SPA) + Eden Treaty tipi end-to-end |
| i18n | Paraglide JS |
| Docs | Docsify — nessuno step di build |
apps/
backend/ API Elysia + wizard di installazione
frontend/ SPA SvelteKit
packages/
client/ @tabularium/client — client Eden Treaty tipizzato (TypeScript)
manifest/ @tabularium/manifest — validatore puro + primitive di integrità (su npm)
cli/ @tabularium/cli — `tabularium validate` lato autore (su npm)
tabularium-rs/ tabularium-sdk — client Rust asincrono (su crates.io)
tsconfig/ tsconfig condiviso
deploy/ manifest k3s (build dell'immagine in `.forgejo/workflows/docker-build.yml`)
docs/ contenuti Docsify (guide integrity, deploy, ecc.)
.forgejo/ Workflow Codeberg Forgejo Actions
Docs completi su tabularium.wiki.
- 🚀 Guida al deploy — Docker, variabili, reverse proxy
- 🛠 Internals del wizard
- 🔌 Riferimento API — spec OpenAPI su
/openapi/json
Apache 2.0 — vedi LICENSE.
Issue e PR benvenute su Codeberg. Per modifiche grandi, apri prima una discussion.