Desplegando almacenamiento autohospedado con Docker Allure 3
Ejecuta Allure Report Storage en un contenedor en cualquier máquina que pueda ejecutar Docker.
- Inicia el servicio.
- Valida que está en ejecución.
- Usa almacenamiento compatible con S3 en lugar del sistema de archivos (opcional).
Requisitos
1. Inicia el servicio
Usando el archivo compose.yaml del repositorio:
docker compose up --buildPor defecto, esto almacena los archivos de reporte en disco local y los metadatos en una base de datos SQLite incluida, sin necesidad de una base de datos externa ni un bucket. Dos variables de entorno son importantes:
| Variable | Propósito |
|---|---|
ACCESS_TOKEN | Token bearer de arranque: genera tokens de acceso al reporte y establece la rama principal de un proyecto |
SECRET | Secreto de firma para los tokens de acceso al reporte que emite el servicio |
Ambas son cadenas de texto simples que eliges tú mismo, no un valor generado ni de formato fijo; elige algo largo y difícil de adivinar. Su uso es limitado: ACCESS_TOKEN solo autoriza la generación de un token de acceso al reporte (POST /api/token) y el establecimiento de la rama principal de un proyecto, nada más; SECRET nunca se envía a ningún lado, solo firma los tokens de acceso al reporte emitidos desde esas solicitudes de ACCESS_TOKEN. Ninguna de estas es lo que entregas directamente a Allure 3: ese es un token ars1.<payload>.<signature> recién generado, cubierto en Conectando Allure 3 al servicio de almacenamiento.
TIP
compose.yaml incluye valores predeterminados de ejemplo (change-me / change-me-secret) para que el servicio funcione de inmediato en una prueba rápida. Reemplaza ambos por valores únicos y difíciles de adivinar para cualquier uso más allá de eso.
2. Valida que está en ejecución
curl http://localhost:3000/api/pingUna respuesta {"pong":true,...} confirma que el servicio está activo. Desde aquí, conecta Allure 3 al servicio de almacenamiento.
3. Usa almacenamiento compatible con S3 en lugar del sistema de archivos
Establece STORAGE_BACKEND=s3 para almacenar los archivos de reporte en un bucket compatible con S3 en lugar de en disco local. Los metadatos permanecen en SQLite en ambos casos.
| Variable | Requerido | Propósito |
|---|---|---|
S3_BUCKET | Sí | Nombre del bucket |
S3_REGION | Sí | Región del bucket (auto para Cloudflare R2) |
S3_ENDPOINT | Sí | URL del endpoint compatible con S3 |
S3_ACCESS_KEY_ID | No* | Clave de acceso |
S3_SECRET_ACCESS_KEY | No* | Clave secreta |
S3_FORCE_PATH_STYLE | Sí | true para la mayoría de servidores S3 autohospedados (por ejemplo, MinIO), false para R2 |
S3_SESSION_TOKEN | No | Token de sesión, para credenciales temporales |
S3_PREFIX | No | Prefijo aplicado a cada clave de objeto |
S3_REPORTS_PREFIX | No | Prefijo para archivos de reporte (por defecto files) |
S3_ASSETS_PREFIX | No | Prefijo para recursos compartidos (por defecto assets) |
* Si se omite, se utiliza la cadena de proveedores de credenciales predeterminada del SDK de AWS.
Ejemplo para Cloudflare R2:
STORAGE_BACKEND=s3
S3_BUCKET=allure-report-storage
S3_REGION=auto
S3_ENDPOINT=https://<cloudflare-account-id>.r2.cloudflarestorage.com
S3_ACCESS_KEY_ID=<access-key>
S3_SECRET_ACCESS_KEY=<secret-key>
S3_FORCE_PATH_STYLE=falseLos endpoints específicos por bucket de R2 (<bucket>.<account-id>.r2.cloudflarestorage.com) se normalizan internamente a la forma por cuenta mostrada arriba.
Consulta Almacenamiento autohospedado para saber cómo usarlo: publicación, ramas, historial y eliminación de reportes.