Drivers de almacenamiento
Un driver de almacenamiento decide dónde guarda un backend self-hosted su historial de solicitudes, sus replays y sus datos de sandbox, como los pagos que crean tus pruebas. El backend elige uno al arrancar, según STORAGE_TYPE. Sin nada definido, guarda todo en memoria.
Los drivers
- Memory: el predeterminado. Nada que correr, y no queda nada cuando el contenedor se detiene.
- Redis
- SQLite: un archivo en un volumen. Nada que correr.
- PostgreSQL
- MySQL / MariaDB
- SQL Server
- Oracle
- CockroachDB
- MongoDB
- DynamoDB: una tabla en tu cuenta de AWS, sin ningún servidor que correr. El backend toma sus credenciales de AWS de los lugares de siempre: variables de entorno, un archivo de configuración o el rol de la máquina donde corre.
Todos los drivers están incluidos en el precio.
Elegir qué drivers tiene una imagen
Abre la Configuración del backend y selecciona los drivers en Drivers de almacenamiento. Un cambio vale desde el próximo build.
- Sin ninguno seleccionado, la imagen tiene todos los drivers.
- Memory y Redis están en todas las imágenes.
Una imagen puede tener varios drivers, por ejemplo SQLite para una laptop y PostgreSQL para CI. Para ver lo que tiene una imagen:
docker run --rm <image> storage driversAquí <image> es tu imagen con su versión, como <tu-org>.registry.mockzilla.org/ci-payments:v2026.09.23.3.
Configurar uno
Abre la pestaña Drivers de almacenamiento del backend y elige un driver. La pestaña muestra las versiones en las que se probó, cómo conectarse y cada variable que lee.
Para PostgreSQL:
docker run -d --name ci-payments --restart unless-stopped -p 2200:2200 \
-e STORAGE_TYPE=postgres \
-e POSTGRES_URL=postgres://mockzilla:secret@db.internal:5432/mockzilla \
<image>La imagen lista las mismas variables:
docker run --rm -e STORAGE_TYPE=postgres <image> storage settingsEl esquema
Un driver de base de datos necesita sus tablas. Memory y Redis no necesitan ninguna.
De forma predeterminada, el backend crea el esquema en su primer arranque y lo actualiza cuando pasas a una versión nueva. Es seguro en cada arranque, y también cuando varias copias arrancan a la vez. Para eso necesita permiso para crearlas: un usuario de base de datos que pueda crear tablas, o credenciales de AWS que puedan crear la tabla de DynamoDB.
Sin ese permiso, instala el esquema tú mismo:
- Define
STORAGE_INSTALL=falseen el backend. Entonces solo revisa el esquema. Si falta o está desactualizado, el backend no arranca y dice qué aplicar. - Instala el esquema una vez, como un usuario que puede crearlo. La imagen lo hace y termina.
Para el segundo paso, corre la imagen con storage install y la configuración del driver:
docker run --rm \
-e STORAGE_TYPE=postgres \
-e POSTGRES_URL=postgres://admin:secret@db.internal:5432/mockzilla \
<image> storage installCon una base de datos SQL, en cambio puedes pasarle el SQL a tu DBA. La imagen lo imprime:
docker run --rm -e STORAGE_TYPE=postgres <image> storage print > mockzilla-postgres.sqlParte del SQL es solo para ciertas versiones del servidor. Agrega --server-version con la tuya a storage print, y solo imprime lo que corresponde. Los mismos archivos SQL también van junto a la imagen, en su carpeta storage.
La tabla de DynamoDB también la puedes crear tú, por ejemplo con Terraform. Dale la clave de partición pk y la clave de ordenación sk, las dos de tipo string, y activa el TTL en el atributo ttl. Después define STORAGE_INSTALL=false.
Cuando pasas a una versión nueva, instala su esquema antes de cambiar. Un backend con el esquema desactualizado no arranca.