Sitio web para evaluación de medidas legislativas, construido con Astro 6 + Keystatic.
- Node.js 22+
- pnpm
pnpm installpnpm run devAdmin UI: http://localhost:4321/keystatic Homepage: http://localhost:4321
El sitio gestiona 7 colecciones:
| Colección | Formato | Descripción |
|---|---|---|
categorias |
YAML | Categorías temáticas (ej: Libertad de expresión) |
instrumentos |
YAML | Tipos de instrumentos legales |
indicadores |
YAML | Indicadores de evaluación (relacionados a categoría e instrumento) |
medidas |
MDOC | Medidas/eventos legislativos evaluados |
boletines |
YAML | Boletines con PDF y fecha |
posts |
MDOC | Contenido editorial |
alertas |
MDOC | Alertas para envío masivo por correo |
Los esquemas se definen en src/content.config.ts (Astro) y keystatic.config.ts (CMS). Ambos deben mantenerse sincronizados.
La página
/alertasmuestra estado deshabilitado (503). El envío se realiza vía API o CLI.
- Ir a
/keystatic→ colección Alertas - Completar: título, mensaje, contenido, URL, y destinatarios (correos separados por comas)
- Guardar
Vía API (POST):
POST /api/enviar-alerta/{slug}
Vía CLI:
SMTP_HOST=smtp.gmail.com SMTP_PORT=587 \
SMTP_USER=tu-correo@gmail.com SMTP_PASS=tu-contraseña \
EMAIL_FROM=tu-correo@gmail.com \
node scripts/enviar-alerta.mjs nombre-de-la-alerta| Variable | Descripción |
|---|---|
SMTP_HOST |
Servidor SMTP (ej: smtp.gmail.com) |
SMTP_PORT |
Puerto SMTP (ej: 587) |
SMTP_USER |
Usuario SMTP |
SMTP_PASS |
Contraseña SMTP |
EMAIL_FROM |
Dirección de origen del correo |
Las rutas /keystatic, /alertas, y sus APIs están protegidas con HTTP Basic Auth.
Configurar la variable de entorno ADMIN_PASSWORD con una contraseña segura.
Ir a Site configuration → Environment variables → agregar ADMIN_PASSWORD.
Crear archivo .env en la raíz del proyecto:
ADMIN_PASSWORD=mi-contraseñaEl navegador mostrará un popup pidiendo usuario y contraseña al acceder a /keystatic o /alertas. El usuario puede ser cualquier valor (solo se valida la contraseña).
El proyecto usa @astrojs/netlify como adapter con output: 'static'. Configurar en Netlify:
- Build command:
pnpm run build - Publish directory:
dist/ - Environment variables:
ADMIN_PASSWORD,SMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASS,EMAIL_FROM