Ir al contenido

Tecnofilm

🟢 Producción Web pública Astro Cloudflare Workers Admin de catálogo Criticidad media

Tecnofilm es una web pública desarrollada en Astro y desplegada en Cloudflare Workers, dentro de la cuenta Cloudflare del cliente. Este activo incluye panel administrativo, catálogo persistido en Cloudflare KV, medios en Cloudflare R2 y formularios públicos integrados con Resend y Turnstile.

CampoValor
EstadoProducción
FQDNtecnofilm.pe
URL producciónhttps://tecnofilm.pe
URL desarrollohttps://tecnofilm-www.tecnofilm.workers.dev/
Último despliegue16 de mayo de 2026, 05:06 a. m.
Repositoriohttps://github.com/iz-soporte/tecnofilm-www.git
StackAstro / TypeScript / Cloudflare Workers
Versión de AstroÚltima estable
PlataformaCloudflare Workers
Cuenta CloudflareCliente
PublicaciónWrangler CLI
Salida del builddist
Proyecto / Workertecnofilm-www
Modo Astrooutput: server
Adapter@astrojs/cloudflare
CatálogoCloudflare KV PRODUCTS_KV
MediosCloudflare R2 PRODUCTS_BUCKET
Bucket R2tecnofilm-media
FormulariosPOST /api/forms
AntispamCloudflare Turnstile
Email transaccionalResend
CriticidadMedia
Clasificación de datosPúblico + datos enviados por formularios

Interzone mantiene el código y el despliegue técnico de la web.
La infraestructura Cloudflare pertenece al cliente, por lo que cambios en DNS, Workers, KV, R2, secretos o dominios deben coordinarse con los accesos del cliente.

El alcance operativo incluye:

  • mantenimiento del código Astro;
  • despliegue mediante Wrangler CLI;
  • soporte del panel administrativo;
  • validación de catálogo y medios;
  • validación de formularios públicos;
  • coordinación de secretos y recursos Cloudflare con el cliente.
Visitante
tecnofilm.pe
Cloudflare Workers
Astro server output + static assets
├─ Catálogo desde PRODUCTS_KV
├─ Imágenes y archivos desde PRODUCTS_BUCKET / R2
├─ Formularios públicos vía POST /api/forms
└─ Panel admin protegido por sesión
ComponenteDescripción
Sitio públicoPáginas comerciales, catálogo, detalle de productos, contacto y trabaja con nosotros.
Panel adminAdministración privada de productos, categorías y medios.
CatálogoPersistido en Cloudflare KV mediante el binding PRODUCTS_KV.
MediosImágenes y archivos almacenados en Cloudflare R2 mediante PRODUCTS_BUCKET.
FormulariosEndpoint único POST /api/forms para contacto, productos y CV.
EmailEnvío transaccional mediante Resend.
AntispamValidación mediante Cloudflare Turnstile.
RutaUso
/Home
/nosotrosInformación institucional
/productosCatálogo de productos
/productos/[slug]Detalle de producto
/contactoFormulario de contacto
/trabaja-con-nosotrosFormulario de envío de CV
/adminLogin administrativo
/admin/dashboardPanel privado
/admin/productosGestión de productos
/admin/categoriasGestión de categorías
/admin/mediaSubida y listado de medios en R2
/cdn/<carpeta>/<archivo>Acceso público a archivos publicados desde R2
DatoUbicación
Catálogo de productosCloudflare KV PRODUCTS_KV
Respaldo local de catálogosrc/content/products.json
Imágenes de productosCloudflare R2 PRODUCTS_BUCKET
Archivos CVR2, carpeta cv/
URLs públicas de medios/cdn/<carpeta>/<archivo>
Sesión adminCookie firmada con ADMIN_SESSION_SECRET

Los formularios públicos usan un único endpoint:

POST /api/forms

El campo oculto type define el destino lógico:

TypeUsoDestino
contactContacto generalCONTACT_TO_EMAIL
productConsulta o solicitud de productoORDER_TO_EMAIL
cvTrabaja con nosotrosCV_TO_EMAIL

El CV no se adjunta al email. Se guarda en R2 dentro de cv/ y el correo enviado a RRHH incluye el enlace público generado.

ConfiguraciónValor
sitehttps://tecnofilm.pe
outputserver
Adapter@astrojs/cloudflare
Session KVPRODUCTS_KV
Image servicepassthrough
ConfiguraciónValor
Workertecnofilm-www
Main@astrojs/cloudflare/entrypoints/server
Assets bindingASSETS
Assets directory./dist
KV bindingPRODUCTS_KV
R2 bindingPRODUCTS_BUCKET
Buckettecnofilm-media
ObservabilityHabilitada
Ventana de terminal
npx wrangler secret put ADMIN_USER
npx wrangler secret put ADMIN_PASSWORD
npx wrangler secret put ADMIN_SESSION_SECRET
Ventana de terminal
npx wrangler secret put RESEND_API_KEY
npx wrangler secret put EMAIL_FROM
npx wrangler secret put CONTACT_TO_EMAIL
npx wrangler secret put ORDER_TO_EMAIL
npx wrangler secret put CV_TO_EMAIL
npx wrangler secret put TURNSTILE_SECRET_KEY
npx wrangler secret put PUBLIC_SITE_URL
PUBLIC_TURNSTILE_SITE_KEY

No se deben versionar .dev.vars, contraseñas, API keys ni secretos de Cloudflare.

Ventana de terminal
npm install
npm run dev

Abrir:

http://localhost:4321/admin
Ventana de terminal
npx wrangler dev

Abrir:

http://localhost:8787/admin

Usar Wrangler cuando se necesite probar comportamiento cercano al runtime real de Cloudflare Workers, especialmente KV y R2.

El despliegue se realiza con:

Ventana de terminal
npm run deploy

Ese comando ejecuta:

Ventana de terminal
astro build && wrangler deploy
PasoAcción
1Validar cambios en local.
2Ejecutar build.
3Publicar con Wrangler en la cuenta Cloudflare del cliente.
4Validar home, productos y detalle de producto.
5Validar login de admin.
6Validar carga de imágenes en R2 si aplica.
7Validar publicación de catálogo en KV.
8Validar formularios públicos.
Riesgo operativo medio. Aunque la web es pública, existe panel administrativo, formularios públicos, almacenamiento R2, KV y secretos en Cloudflare.
ControlRevisión
AdminCredenciales configuradas como secretos de Cloudflare.
SesiónCookie firmada con ADMIN_SESSION_SECRET.
CatálogoKV protegido por acceso del Worker.
R2Subida de archivos solo desde admin autenticado.
FormulariosTurnstile configurado cuando aplique.
EmailResend API Key como secreto.
Archivos locales.dev.vars no debe subirse al repositorio.
ClienteCloudflare, DNS, KV, R2 y secretos dependen de la cuenta del cliente.
ValidaciónEstado esperado
Home carga correctamenteOK
/productos carga catálogoOK
Detalle de producto carga por slugOK
/admin permite loginOK
Productos se pueden editarOK
Cambios se publican en KVOK
Imágenes se suben y listan desde R2OK
/cdn/<key> sirve archivosOK
Formulario de contacto envía correoOK
Formulario de producto envía correoOK
CV se guarda en R2 y se envía enlaceOK
Turnstile valida correctamente si está activoOK
No hay errores visibles en consolaOK
PendientePrioridad
Confirmar repositorio oficial del proyectoAlta
Confirmar responsables del acceso Cloudflare del clienteAlta
Confirmar si Turnstile está activo en producciónMedia
Confirmar política de respaldo/exportación de KVMedia
Confirmar política de retención de archivos en R2Media
Confirmar monitoreo y alertas en CloudflareMedia
Confirmar límites/tamaño máximo de archivos CVMedia