Datos · 6 min de lectura

Publicamos AxiDB: una base de datos libre que es una carpeta, pensada para hostings con pocos recursos

AxiDB es una base de datos documental libre para PHP que se copia como una carpeta y funciona en hostings de pocos recursos, sin servidor de base de datos, con los datos a la vista en tu propio alojamiento y cifrado opcional.

Lámina técnica de AxiDB: una carpeta de datos con archivos JSON, cifrado en reposo y sin servidor de base de datos
Lámina técnica de AxiDB: una carpeta de datos con archivos JSON, cifrado en reposo y sin servidor de base de datos

¿Qué es AxiDB?

AxiDB es una base de datos documental, embebida y basada en archivos para PHP. Se copia la carpeta axidb dentro del proyecto, se carga con un require y se empieza a guardar información. No hay que instalar ni mantener un servidor de base de datos, no necesita Composer y no depende de librerías de terceros.

La hemos construido en GestasAI y la publicamos como código abierto con licencia Apache 2.0, que permite usarla libremente, también en proyectos comerciales. El código está en GitHub y la presentación del proyecto en axidb.com.

¿Qué es una base de datos embebida y en qué se diferencia de MySQL?

MySQL o PostgreSQL son servidores: un programa aparte que está siempre encendido, escucha conexiones y necesita usuario, contraseña, copias y mantenimiento. Una base de datos embebida, en cambio, vive dentro de la propia aplicación. No abre puertos ni ocupa un proceso propio: la aplicación lee y escribe directamente en sus archivos.

SQLite es el ejemplo más conocido de base de datos embebida, pero es relacional: trabaja con tablas, esquemas y migraciones. AxiDB también es embebida, pero es documental: guarda documentos sin esquema fijo, parecidos a una ficha, y añade índices, consultas y SQL cuando hacen falta.

AxiDB frente a SQLite y MySQL en un proyecto pequeño
AspectoAxiDBSQLiteMySQL
Servidor aparteNoNo
Modelo de datosDocumentos sin esquemaTablas con esquemaTablas con esquema
Qué necesitaPHP 8.1+ y la extensión jsonLa extensión SQLite de PHPUn servicio instalado y activo
Datos legibles a simple vistaSí, en formato de archivos JSONNo, archivo binarioNo
Velocidad brutaMenorMuy altaMuy alta

¿Se puede tener base de datos en un hosting compartido sin MySQL?

Sí. Algunos alojamientos económicos limitan el número de bases de datos, no dan acceso por terminal o reservan poca memoria para cada proceso. AxiDB está pensada para ese escenario: se instala copiando una carpeta, arranca sin extensiones de PHP adicionales y sin carpeta vendor, y su repositorio incluye pruebas que la arrancan en esas condiciones y límites para que una consulta no tumbe un alojamiento de 128 MB.

  1. Copia la carpeta axidb/ en tu proyecto. Por FTP o desde el panel del hosting.
  2. Cárgala con un require. require 'axidb/core/axidb.php';
  3. Indica dónde guardar los datos. $db = axidb(__DIR__ . '/datos');
  4. Empieza a guardar documentos. $db->insert('clientes', [...]);

La guía de cinco minutos del repositorio explica el recorrido completo, de una carpeta vacía a crear, leer, actualizar y borrar datos.

¿Por qué interesa a una pequeña empresa que quiere tener sus datos?

Para una pequeña empresa, la pregunta importante no suele ser qué motor es más rápido, sino dónde están sus datos, quién puede verlos y qué pasa si algo falla. Con AxiDB la respuesta es sencilla de comprobar:

  • Están en tu alojamiento. Los datos son una carpeta dentro de tu propio servidor o hosting, no un servicio externo.
  • Se pueden ver. En el formato de archivos, cada documento es un JSON que se abre con cualquier editor de texto, se revisa y, si hace falta, se corrige a mano.
  • Se pueden copiar. Incluye copias de seguridad completas e incrementales, con restauración y exportación a JSON y CSV.
  • No dependen de un proveedor. Es código abierto: puedes leerlo, auditarlo o llevarlo a otro alojamiento sin pedir permiso a nadie.
  • Menos piezas que mantener. Sin servidor de base de datos no hay un servicio más que actualizar, vigilar y proteger.

Encaja en proyectos como una web corporativa, una tienda pequeña, un panel interno, un blog, un sistema de presupuestos o el estado de un agente de IA.

¿Qué seguridad ofrece AxiDB y qué no protege?

La seguridad forma parte del motor y está probada: el repositorio ejecuta más de 560 ataques que deben fallar, dentro de una batería de más de 3.000 comprobaciones sobre PHP 8.1, 8.2, 8.3 y 8.4, en Linux y Windows.

  • Cifrado en reposo. Cada colección puede cifrarse con AES-256-GCM. Quien se lleve el disco o una copia de seguridad se lleva datos ilegibles; incluso los nombres de los índices se protegen con HMAC.
  • Escrituras atómicas. Los cambios se aplican enteros o no se aplican, también tras un corte de luz, con recuperación y bloqueo para que varios procesos no se pisen.
  • Inyección y rutas. En AxiSQL un valor nunca se convierte en instrucción, y los nombres no pueden salir del directorio de datos.

Y lo que no hace, dicho con la misma claridad: AxiDB no es un servidor, así que la autenticación, los roles, el acceso de red y el TLS los pone la aplicación que la usa. El cifrado protege frente a un disco o una copia robados, no frente a alguien que controle el servidor en funcionamiento. Algunos metadatos, como el identificador o las fechas del documento, quedan sin cifrar, por lo que no conviene guardar secretos en el identificador. Todo está documentado en su política de seguridad.

¿Qué más puede hacer?

Consultas y AxiSQL
Filtros, orden, límites y uniones encadenadas, y un SQL propio con JOIN, agregados, GROUP BY, subconsultas, vistas y EXPLAIN.
Dos formatos de almacenamiento
Archivos JSON legibles uno a uno, o un formato empaquetado que escribe mucho más rápido cuando la colección crece.
Búsqueda por significado
Búsqueda vectorial para recuperar información por su sentido, con un resultado medido de 45 ms sobre 10.000 documentos.
Uso desde el navegador
Un puente HTTP con tokens y CORS, y axi.js, un cliente JavaScript sin dependencias.
Agentes de IA
Una vista controlada de la base de datos con permisos, registro de lo que hacen y control de parada.

¿Cuándo no conviene usar AxiDB?

Preferimos decirlo antes que las virtudes. AxiDB no es la opción adecuada si necesitas:

  • decenas de millones de documentos;
  • el máximo rendimiento bruto: en el banco de pruebas del proyecto, con 10.000 documentos, SQLite hace 1.000 lecturas en 3 ms frente a 21 ms de AxiDB en formato empaquetado;
  • aislamiento entre transacciones: las transacciones son atómicas, pero otro proceso puede leer cambios a medio aplicar durante unos milisegundos;
  • subconsultas correlacionadas.

Además, está en la versión 0.8.0: la API todavía puede cambiar antes de la 1.0.

Conclusión

AxiDB nace de una idea sencilla: en muchos proyectos pequeños, montar un servidor de base de datos pesa más que el propio problema. Una carpeta que se copia, datos que se pueden abrir y leer, cifrado cuando hace falta y ninguna dependencia externa permiten a una pequeña empresa guardar su información en su propio alojamiento y entender dónde está.

No pretende sustituir a MySQL ni a SQLite en todo, y lo dice. Si tu proyecto encaja, puedes probarla desde axidb.com o revisar el código en GitHub.

Preguntas frecuentes

¿Puedo usar una base de datos en un hosting compartido sin MySQL?

Sí. AxiDB funciona dentro de la aplicación PHP y guarda los datos en archivos, así que no necesita un servidor de base de datos aparte. Basta con PHP 8.1 o superior y la extensión json, que viene con PHP.

¿AxiDB es gratuita?

Es código abierto con licencia Apache 2.0, que permite usarla libremente, también con fines comerciales y en productos cerrados.

¿Dónde se guardan los datos?

En una carpeta de tu propio alojamiento. Con el formato de archivos, cada documento es un JSON que se puede abrir, revisar y copiar. Las colecciones grandes pueden usar un formato empaquetado.

¿Mis datos están cifrados?

Puedes cifrar cada colección en reposo con AES-256-GCM. Protege frente al robo del disco o de una copia; no protege si alguien controla el servidor en funcionamiento. La autenticación, los roles y el TLS los pone tu aplicación.

¿AxiDB sustituye a MySQL o PostgreSQL?

No en todos los casos. Encaja en webs, tiendas pequeñas, paneles internos, blogs y agentes de IA. Para decenas de millones de documentos, máximo rendimiento o aislamiento entre transacciones conviene otro motor.

¿Necesito Composer o acceso por terminal?

No. Se instala copiando la carpeta axidb en el proyecto y cargándola con un require. Está pensada para alojamientos compartidos sin línea de comandos.

Fuentes

  1. AxiDB: base de datos documental embebida para PHP · GestasAI
  2. Repositorio de AxiDB (README, rendimiento y estado) · GitHub
  3. Política de seguridad de AxiDB · GitHub
  4. Guía de cinco minutos: de carpeta vacía a CRUD · GitHub
  5. Apache License, Version 2.0 · Apache Software Foundation
  6. About SQLite · SQLite

← Volver al cuaderno