Diseñar una plataforma autoalojada para administrar múltiples bases de datos desde un panel web propio, con capacidad de:
- Registrar conexiones a distintas bases.
- Guardar URLs y tokens de forma segura.
- Crear nuevas bases SQLite administradas con
libsql. - Exponer cada proyecto o base con su propio subdominio.
- Administrar esquemas, consultas, migraciones y auditoría.
- Ejecutarse en servidor local, VPS o Coolify.
El objetivo es tener una alternativa privada a Turso, pero bajo control total del usuario.
- Panel web administrativo.
- API backend segura.
- Registro de múltiples bases de datos.
- Cifrado de credenciales.
- Autenticación y permisos.
- Provisión de nuevas bases SQLite con
libsql. - Generación de URLs/subdominios por proyecto.
- Auditoría completa.
- Facturación.
- Replicación avanzada multi-región.
- Alta disponibilidad compleja.
- Soporte empresarial para múltiples proveedores cloud.
Usuario
-> Frontend Admin
-> API Backend
-> Control Plane
-> Secret Store
-> Data Plane
-> Bases SQLite/libsql
Frontend Admin: interfaz visual.API Backend: autenticación, negocio y orquestación.Domain Core: reglas del sistema.Infrastructure: persistencia, cifrado, drivers y despliegue.
Control Plane: usuarios, proyectos, permisos, sesiones, auditoría.Data Plane: consultas, tablas, esquemas, migraciones, backups.Secret Plane: URLs, tokens, llaves y credenciales cifradas.
- Separar frontend, backend y motor de datos.
- No exponer secretos al navegador.
- Tratar cada base como un recurso administrado.
- Mantener el dominio independiente de la infraestructura.
- Diseñar por DDD para escalar sin reescribir.
- Soportar local, VPS y Coolify con la misma base técnica.
Identity and AccessProject ManagementDatabase RegistryConnection ManagementSchema ManagementQuery ExecutionProvisioningAuditing
DomainApplicationInfrastructurePresentation
Contiene entidades, value objects, agregados y reglas puras.
Contiene casos de uso y coordinación entre servicios.
Contiene implementaciones concretas: BD, cifrado, logs, drivers, colas.
Contiene HTTP controllers, validadores y UI.
- Auth.
- Users.
- Roles and Permissions.
- Projects.
- Databases.
- Connections.
- Provisioning.
- Schema.
- Queries.
- Migrations.
- Audit.
- Settings.
AuthControllerUsersControllerProjectsControllerDatabasesControllerConnectionsControllerProvisioningControllerSchemaControllerQueryControllerMigrationsControllerAuditControllerSettingsController
LoginUserRefreshSessionRegisterProjectRegisterDatabaseTestDatabaseConnectionListDatabasesGetDatabaseSchemaExecuteQueryCreateProvisionedDatabaseRotateDatabaseTokenRevokeDatabaseAccess
POST /api/v1/auth/login
POST /api/v1/auth/refresh
POST /api/v1/auth/logout
GET /api/v1/me
GET /api/v1/projects
POST /api/v1/projects
GET /api/v1/projects/:id
GET /api/v1/databases
POST /api/v1/databases
GET /api/v1/databases/:id
PATCH /api/v1/databases/:id
DELETE /api/v1/databases/:id
POST /api/v1/databases/:id/test-connection
POST /api/v1/databases/:id/rotate-token
GET /api/v1/databases/:id/schema
GET /api/v1/databases/:id/tables/:table
POST /api/v1/databases/:id/query
POST /api/v1/databases/:id/migrations
POST /api/v1/provisioning/sqlite
POST /api/v1/provisioning/libsql
GET /api/v1/audit
src/
main.ts
config/
env.ts
auth.ts
security.ts
database.ts
domain/
identity/
projects/
databases/
provisioning/
auditing/
shared/
application/
identity/
projects/
databases/
provisioning/
auditing/
infrastructure/
auth/
crypto/
persistence/
databases/
logging/
jobs/
storage/
presentation/
http/
controllers/
middlewares/
validators/
routes/
presenters/
Ofrecer una experiencia tipo panel de administración profesional para operar proyectos, bases y credenciales.
- Login.
- Dashboard.
- Projects.
- Databases.
- Database detail.
- Schema browser.
- Query editor.
- Provisioning wizard.
- Tokens and secrets.
- Users and roles.
- Audit log.
- Settings.
web/
src/
app/
components/
features/
auth/
dashboard/
projects/
databases/
schema/
query-editor/
provisioning/
settings/
audit-log/
shared/
ui/
hooks/
lib/
types/
validators/
routes/
styles/
- Table.
- Search bar.
- Form dialog.
- Confirm modal.
- Drawer detail.
- SQL editor.
- Status badge.
- Database card.
- Audit timeline.
- Environment selector.
- SQLite local.
libsql.httpsremota administrada.- Futuro:
postgresy otros motores.
- Nombre.
- Tipo de motor.
- URL.
- Token o credencial.
- Estado.
- Proyecto asociado.
- Subdominio.
- Fecha de creación.
- Última validación.
- El usuario crea un proyecto.
- Registra una base o pide una nueva.
- El backend valida formato y permisos.
- El backend cifra y guarda los secretos.
- El backend prueba la conexión.
- Si todo funciona, activa la base en el panel.
- Crear proyecto.
- Crear base SQLite/libsql.
- Asignar nombre y subdominio.
- Generar token.
- Inicializar esquema.
- Registrar endpoint.
- Publicar la URL de conexión.
- Login con usuario/email y password.
- Hash fuerte (
argon2idrecomendado). access tokencorto.refresh tokenrotativo.- 2FA/TOTP para administradores.
- RBAC.
- Permisos por recurso.
- Roles sugeridos: superadmin, admin, operador, solo lectura.
- Políticas por proyecto y base.
- Nunca guardar tokens en texto plano.
- Cifrar con
MASTER_KEY. - Mantener la llave maestra fuera del repositorio.
- Permitir rotación y revocación.
- Rate limiting.
- CORS restringido.
- Headers de seguridad.
- Validación obligatoria.
- Logs sin datos sensibles.
- CSRF si hay cookies de sesión.
Validar siempre en frontend y backend.
- Email válido.
- Password con complejidad mínima.
- Subdominio único y normalizado.
- URL válida.
- Token no vacío.
- Nombre obligatorio.
- Motor permitido.
- Query permitida según rol.
- Quién hizo el cambio.
- Cuándo lo hizo.
- Desde qué IP.
- Qué recurso cambió.
- Valor anterior y nuevo.
- Logs estructurados.
- Trazas por request.
- Métricas de latencia.
- Métricas de errores.
- Estado de conexiones.
- Local.
- VPS.
- Coolify.
web.api.workeropcional.- base interna de metadatos.
- storage para backups.
panel.midominio.com.api.midominio.com.admin.midominio.com.*.midominio.compara proyectos o bases.
- Todo detrás de HTTPS.
- Variables y secretos en Coolify o secret manager.
- Backups automáticos.
- Health checks.
- Separación de entornos.
La plataforma necesita su propia base para administrar el sistema.
usersrolespermissionsuser_rolesprojectsdatabasesdatabase_secretsdatabase_endpointssessionsapi_tokensaudit_logsprovision_jobssettings
- Crear base interna.
- Implementar auth y roles.
- Registrar conexiones.
- Cifrar secretos.
- Listado de bases.
- Test de conexión.
- Vista de esquema.
- Query editor.
- Auditoría.
- Provisión de nuevas bases con
libsql. - Subdominios automáticos.
- Rotación de tokens.
- Health checks.
- Multi-entorno.
- Backups automáticos.
- Alta disponibilidad si aplica.
- Soporte para más motores.
Una plataforma autoalojada, segura y escalable que permita administrar múltiples bases de datos, crear nuevas instancias SQLite/libsql, exponerlas por URL o subdominio y operar todo desde un panel propio, igual que un Turso privado.