Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 5.19 KB

File metadata and controls

98 lines (74 loc) · 5.19 KB

Tabularium

Registro de plugins auto-hospedado. Construido con Bun, Elysia, SvelteKit y Drizzle ORM.

🌐 En tu idioma: English · Deutsch · Español · Français · Italiano · 中文

📚 Documentación: tabularium.wiki


¿Qué es Tabularium?

Un directorio de plugins (o cualquier artefacto que se publique por releases) con UI web, flujo de envío vía OAuth, superficie OpenAPI y CMS integrado. Las autoras conectan su cuenta de GitHub / GitLab / Gitea, eligen un repo y Tabularium instala el webhook de releases automáticamente — cada tag nuevo se convierte en una release en el registro.

Características

  • 🧩 Envío multi-proveedor — GitHub, GitLab, Gitea, Forgejo (cualquier instancia), con previsualización del manifest al elegir repo
  • 🔐 Releases firmadas — cada release ingerida se hashea (SHA-256) y se firma con la clave Ed25519 del registro; JWKS en /.well-known/registry-key.json. Las attestations de build-provenance de GitHub se reenvían cuando están presentes.
  • 📨 Solicitudes de plugin — las personas usuarias pueden pedir plugins, votarlos y reclamarlos en /requests (desactivable)
  • 🔁 Transferencias de plugin — los propietarios pueden transferir la titularidad entre cuentas desde /settings
  • 🌐 READMEs multi-idioma — el campo readmes: del manifest mapea idiomas a rutas de README; el registro sirve el README correspondiente vía ?locale=
  • 📱 Handoff a app de escritorio — los operadores pueden registrar esquemas URL tipo tabularis://; la página de detalle del plugin muestra un CTA "Abrir en la app"
  • 🏷 Tipos de plugin — taxonomía definida por el admin (temas, snippets, plantillas SQL, …) con subpáginas públicas opcionales por tipo
  • 🪄 Asistente de instalación — formulario estructurado de BD (host/puerto/usuario/contraseña + probar conexión), contraseña bootstrap impresa en el log, autologin en /admin tras el reinicio
  • 📝 CMS integrado — páginas markdown con widgets y traducciones por idioma
  • 🎨 Branding — nombre, colores, logo, favicon, analítica, política de indexado
  • 🌍 6 idiomas — English, Deutsch, Español, Français, Italiano, 中文 — configurable por admin
  • 🗄 Multi-dialecto — SQLite, Postgres o MySQL (auto-detectado vía DATABASE_URL)
  • 🚦 Conmutadores de features — desactivar envíos o solicitudes sin redeploy
  • 🪵 Audit log — cada acción admin con actor + IP + objetivo

Inicio rápido

git clone https://codeberg.org/NewtTheWolf/Tabularium
cd Tabularium
bun install
just dev   # arranca minikube + tilt up (postgres + dragonfly + api + frontend)

Abre http://localhost:5180 — el asistente te guía por la configuración de la base de datos, ejecuta las migraciones, siembra páginas CMS por defecto y promueve la cuenta bootstrap a admin real.

La contraseña bootstrap se imprime al primer arranque:

==========================================
 Tabularium install wizardhttp://localhost:3000/welcome
 Bootstrap login:
   admin@example.com
   <contraseña-auto-generada>
==========================================

Stack

Capa Tech
Runtime Bun (≥ 1.3)
HTTP Elysia + TypeBox
DB Drizzle ORM — sqlite / postgres-js / mysql2
Caché Bun.redis (compatible con Dragonfly) o en memoria
Frontend SvelteKit (SPA) + Eden Treaty tipos end-to-end
i18n Paraglide JS
Docs Docsify — sin paso de build

Estructura

apps/
  backend/         API Elysia + asistente de instalación
  frontend/        SPA SvelteKit
packages/
  client/          @tabularium/clientcliente Eden Treaty tipado (TypeScript)
  manifest/        @tabularium/manifestvalidador puro + primitivas de integridad (en npm)
  cli/             @tabularium/cli — `tabularium validate` para autores (en npm)
  tabularium-rs/   tabularium-sdkcliente Rust asíncrono (en crates.io)
  tsconfig/        tsconfig compartido
deploy/            manifests k3s (build de imagen en `.forgejo/workflows/docker-build.yml`)
docs/              contenido Docsify (guías de integridad, despliegue, etc.)
.forgejo/          Workflows de Codeberg Forgejo Actions

Documentación

Docs completos en tabularium.wiki.

Licencia

Apache 2.0 — ver LICENSE.

Contribuir

Issues y PRs bienvenidos en Codeberg. Para cambios grandes, abre una discusión antes para alinear dirección.