SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
#jdmad19
Convierte tu Joomla! a estático
haciéndola inhackeable y ultrarrápido
Javier Olivares
SOBRE MÍSOBRE MÍ
Ingeniero de Teleco e Informática
11 años de experiencia como desarrollador web
8 años de experiencia alojando páginas web
Actualmente CTO en staging4all/deploy2static
Javier Olivares
javi@staging4all.com
@j44z / @staging4all
SOBRE ESTA CHARLASOBRE ESTA CHARLA
1. Definición: Página estática
2. Un poco de historia de la web
3. Ventajas de las páginas estáticas
4. Qué puede hacer y qué no una página estática
5. Idea: Usando Joomla como generador estático
6. Del dicho al hecho: ¿Cómo podemos hacerlo?
DEFINICIÓN:DEFINICIÓN:
¿QUÉ ENTENDEMOS POR UNA PÁGINA¿QUÉ ENTENDEMOS POR UNA PÁGINA
ESTÁTICA?ESTÁTICA?
Ficheros HTML
"Activos" (assets)
CSS
Javascript
Media (Imágenes, vídeos, PDFs, etc)
NO hay lenguajes interpretados de servidor
(PHP, Ruby, Python, etc)
Sin base de datos
AL PRINCIPIO DE LOS TIEMPOSAL PRINCIPIO DE LOS TIEMPOS
HABÍA PÁGINAS ESTÁTICAS...HABÍA PÁGINAS ESTÁTICAS...
PÁGINAS ESTÁTICAS:PÁGINAS ESTÁTICAS:
LAS PRIMERAS PÁGINAS WEBLAS PRIMERAS PÁGINAS WEB
Conocimientos técnicos
Páginas simples
Sin interacción
Tediosas de modificar
Se trabaja sólo cuando hay cambios en contenido
Tareas: desarrollo = diseño
APARECEN LENGUAJES INTERPRETADOSAPARECEN LENGUAJES INTERPRETADOS
PHP (PERSONAL HOME PAGE)PHP (PERSONAL HOME PAGE)
Conocimientos más técnicos aún (lenguaje de
programación)
Páginas algo más complejas
Con algo de interacción (formularios, búsquedas)
Bases de datos
Organización del contenido - bases para separación
diseño / estructura
Algo menos tediosas de modificar
Tareas: desarrollo = diseño, mantenimiento de contenido
LA ERA DEL CMSLA ERA DEL CMS
¿EL SISTEMA PERFECTO?¿EL SISTEMA PERFECTO?
Muy pocos conocimientos técnicos
Fáciles de usar
Páginas complejas
La interacción es universal (formularios, búsquedas,
comentarios, foros, blogs)
Frontend/Backend
Multiusuario
Temas/plantillas
Extensiones
El cliente actualiza su web de forma autónoma
CON EL TIEMPO...CON EL TIEMPO...
DESVENTAJAS DE LOS CMSDESVENTAJAS DE LOS CMS
Lentos/pesados
Difíciles (y caros) de escalar
Riesgo de hackeo (Zero Days, exploits)
Muchos plugins/extensiones... con el tiempo se
convierten en una carga
Actualizar PHP o la versión muchas veces deja webs
atrás...
Requieren mantenimiento técnico
Tareas: desarrollo, diseño, mantenimiento de contenido,
mantenimiento técnico
NADIE CUESTIONA QUENADIE CUESTIONA QUE
ACTUALIZAR EL PHP ES DIFÍCILACTUALIZAR EL PHP ES DIFÍCIL
Datos de developers.joomla.org, wordpress.org, w3techs.com
PORQUE ACTUALIZAR, PUEDEPORQUE ACTUALIZAR, PUEDE
ROMPER TU WEB...ROMPER TU WEB...
SOLUCIONESSOLUCIONES
Sistemas de Backup
(Akeeba, BackupMonkey, Watchful...)
Sistemas de actualizaciones automáticas/en masa
(MyJoomla/mySites, Watchful, softaculous...)
Sistemas de checkeo de integridad - hackeos
(SecurityCheck, AdminTools, SiteLock...)
Sistemas de Monitorado
(UptimeRobot, StatusCake, Pingdom...)
Sistemas de Staging
(Siteground, softaculous, staging4all...)
ACTUALIZAMOS MÁS A MENUDOACTUALIZAMOS MÁS A MENUDO
EL CMS EN SÍ QUE EL CONTENIDO...EL CMS EN SÍ QUE EL CONTENIDO...
HOY EN DÍAHOY EN DÍA
LA WEB SIGUE EVOLUCIONANDOLA WEB SIGUE EVOLUCIONANDO
SERVERLESSSERVERLESS
&&
RENACIMIENTO DE SITIOSRENACIMIENTO DE SITIOS
ESTÁTICOSESTÁTICOS
RESURGIR DE PÁGINAS ESTÁTICASRESURGIR DE PÁGINAS ESTÁTICAS
Porque son:
Rápidas - La velocidad mejora el SEO
Superfáciles de escalar (y baratas)
No hackeables - seguras
NO requieren mantenimiento técnico
LAS PÁGINAS ESTÁTICAS REVISITADAS (1/2)LAS PÁGINAS ESTÁTICAS REVISITADAS (1/2)
EXPLOSIÓN DE GENERADORES ESTÁTICOSEXPLOSIÓN DE GENERADORES ESTÁTICOS
Por simplicidad de mantenimiento
(blogs usando markdown, etc)
Por velocidad de carga y escalado
Por sencillez de despliegue (git)
Por seguridad
Para usarlos como base con stacks JAM (Javascript,
APIs, Markup)
Frameworks modernos de Javascript (React, Vue, etc)
+ de 250 generadores de páginas estáticas modernos
https://staticgen.com
LAS PÁGINAS ESTÁTICAS REVISITADAS (2/2)LAS PÁGINAS ESTÁTICAS REVISITADAS (2/2)
ALOJAMIENTOS WEB ESTÁTICOSALOJAMIENTOS WEB ESTÁTICOS
¿HAY SITIO PARA NUESTRO CMS EN UN¿HAY SITIO PARA NUESTRO CMS EN UN
MUNDO ESTÁTICO?MUNDO ESTÁTICO?
CONVERTIR UNA WEB A ESTÁTICOCONVERTIR UNA WEB A ESTÁTICO
MANUALMENTE:MANUALMENTE:
MUCHAS HERRAMIENTAS:MUCHAS HERRAMIENTAS:
Generar versión estática (ficheros)
Subir los ficheros manualmente y reemplazar la web
Cyotek Webcopy, Website Downloader, Offline Explorer,
SiteSucker, Teleport Pro, WebScrapbook...
CONVERTIR UNA WEB A ESTÁTICO:CONVERTIR UNA WEB A ESTÁTICO:
proceso unidireccional e irreversible
Pero...
queremos una solución que sea sencilla y
que nos permita trabajar de forma fluida
¿QUÉ PASARÍA SI...¿QUÉ PASARÍA SI...
USAMOS JOOMLA! COMO GENERADORUSAMOS JOOMLA! COMO GENERADOR
ESTÁTICO?ESTÁTICO?
EL CONCEPTO DESEADOEL CONCEPTO DESEADO
 
LO MEJOR DE LOS DOS MUNDOS:LO MEJOR DE LOS DOS MUNDOS:
Fáciles de actualizar
Sin conocimientos técnicos
Multiusuario
El cliente actualiza su web de forma autónoma
100% seguras
Superrápidas
Fáciles y baratas de escalar
Sin mantenimiento técnico
¿ESTA VEZ, EL SISTEMA PERFECTO?¿ESTA VEZ, EL SISTEMA PERFECTO?
¿QUÉ PIERDO AL CONVERTIR MI WEB A ESTÁTICA?¿QUÉ PIERDO AL CONVERTIR MI WEB A ESTÁTICA?
Todo tipo de procesamiento en el servidor
Procesos complejos
Publicación programada, etc
Procesos a medida del usuario
Sistemas en los que el visitante modifica la página
(foros, etc)
Áreas privadas, intranets...
¿Interactividad?
¿QUÉ PÁGINAS PODRÍAN¿QUÉ PÁGINAS PODRÍAN
BENEFICIARSE DE ESTO?BENEFICIARSE DE ESTO?
Presencia online
Corporativas
Blogs
Portfolio
Noticias
Catálogos
¿Otras?
¿QUÉ OCURRE CON LA INTERACCIÓN?¿QUÉ OCURRE CON LA INTERACCIÓN?
¿QUÉ MÁS HA CAMBIADO¿QUÉ MÁS HA CAMBIADO
DESDE LOS 90S?DESDE LOS 90S?
1. Javascript
2. Filosofía: Monolito vs. delegación
¿Y qué podemos hacer con eso?
INTERACCIÓNINTERACCIÓN
FORMULARIOS DE CONTACTOFORMULARIOS DE CONTACTO
Serverless function (lambda, GCP, etc)
Servicios externos/de terceros (POST, Javascript)
Mautic (open source, self hosted or cloud)
Formspree.io
Getform.io
Formden.com
Wufoo.com
...
Requisitos: notificar/enviar email, filtrado de spam
NEWSLETTERSNEWSLETTERS
Servicios externos/de terceros (POST, Javascript)
Mautic (open source, self hosted or cloud)
phplists (open source)
mailchimp.com
sendgrid.com
mailjet.com
...
Requisitos: notificar/enviar email, filtrado de spam
COMENTARIOSCOMENTARIOS
Serverless function -> integrarlo con el backend
Servicios externos/de terceros mediante Javascript
disqus.com
isso (open source, self hosted)
Commento.io
...
Necesitan: moderación, notificar/enviar email, filtrado de
spam
BÚSQUEDABÚSQUEDA
Plugins Javascript
Servicios externos/de terceros mediante Javascript
google.com
algolia.com
elasticsearch
...
COOKIE BANNERSCOOKIE BANNERS
Mediante Javascript
https://github.com/dobarkod/cookie-banner -
(open source)
cookiebot.com
websitepolicies.com
...
ECOMMERCEECOMMERCE
Servicios externos/de terceros mediante Javascript
snipcart.com
reactioncommerce.com
apicart.net
moltin.com
chargebee.com - suscripciones
recurly.com - suscripciones
...
Directamente a través de las pasarelas de pago
paypal.com
stripe.com
mollie.com
...
¿Y ENTONCES, CÓMO LO¿Y ENTONCES, CÓMO LO
HACEMOS?HACEMOS?
 
CONVERTIR TU SITIO A ESTÁTICO (1/5)CONVERTIR TU SITIO A ESTÁTICO (1/5)
ENTORNOS DE DESARROLLO:ENTORNOS DE DESARROLLO:
Locales
Cloud/online
Multiusuario
Siempre disponibles
Permiten al cliente a gestionar su propia web
como con el CMS
CONVERTIR TU SITIO A ESTÁTICO (2/5)CONVERTIR TU SITIO A ESTÁTICO (2/5)
OPCIONES DE CONVERSIÓN:OPCIONES DE CONVERSIÓN:
Hazlo tú mismo
Requiere conocimientos técnicos (scripts)
Servicios de terceros
Acceso más universal (soluciones 1 click)
HAZLO TÚ MISMOHAZLO TÚ MISMO
CONVERTIR TU SITIO A ESTÁTICO (3/5)CONVERTIR TU SITIO A ESTÁTICO (3/5)
HAZLO TU MISMO:HAZLO TU MISMO:
Actualizar el contenido
Realizar la conversión a estático
Despliegue: subir el sitio al alojamiento web
Automatización: scripts, git hooks, rsync, FTP, etc
Contenido dinámico: soluciones propias o de
terceros
CONVERTIR TU SITIO A ESTÁTICO (3/5)CONVERTIR TU SITIO A ESTÁTICO (3/5)
HAZLO TÚ MISMO:HAZLO TÚ MISMO:
Software:
Joomla Plugins
wget
Httrack
Headless Chrome/Puppeteer
Se pueden integrar en un flujo de trabajo
automático o semi-automático
JOOMLA PLUGINSJOOMLA PLUGINS
Static content
Con un click, generar el sitio como estático
Estado actual: abandonado
¿Oportunidad?
https://github.com/juliopontes/staticcontent
WGETWGET
Solo CLI
Software maduro (1996)
Muchas opciones
Único comando, simple
https://www.gnu.org/software/wget/manual/wget.html
wget --mirror --convert-links --page-requisites https://mywebsite.com
HTTRACKHTTRACK
UI + CLI
Software maduro (1998)
Muchísimas opciones
Único comando, simple
http://www.httrack.com
httrack -I0 -sN0 -N1 https://mywebsite.com
HEADLESS CHROME + PUPPETEERHEADLESS CHROME + PUPPETEER
Sólo CLI/scripts
Nuevo
Muchas opciones
Complejo de poner en marcha
https://fettblog.eu/scraping-with-puppeteer/
page.on('response', async (response) => {
const url = new URL(response.url());
let filePath = path.resolve(`./output${url.pathname}`);
if (path.extname(url.pathname).trim() === '') {
filePath = `${filePath}/index.html`;
}
await fse.outputFile(filePath, await response.buffer());
});
SCRIPTS/AUTOMATIZACIÓN:SCRIPTS/AUTOMATIZACIÓN:
Trigger: git hook, webhooks, command line, cronjob
Scripts de conversión
Scripts de despliegue
Se pueden incorporar a un flujo CI/CD
SOLUCIONES DESOLUCIONES DE
TERCEROSTERCEROS
CONVERTIR TU SITIO A ESTÁTICO (4/5)CONVERTIR TU SITIO A ESTÁTICO (4/5)
INTEGRADAS CON EL ALOJAMIENTO:INTEGRADAS CON EL ALOJAMIENTO:
Proveedores: (sólo WordPress :( )
HardyPress.com
getshifter.io
Northstack.com (beta)
Strattic.com (beta)
Contenido dinámico
Formularios integrados
Búsqueda con plugins
CÓMO FUNCIONAN:CÓMO FUNCIONAN:
CMS en entorno privado (subdominio o docker)
Cuando se actualiza el contenido, se regenera y
publica
Los formularios se gestionan desde el panel de
control
Potencialmente compatibles con Joomla!
Suscripción mensual
Implica cambiar de alojamiento
CONVERTIR TU SITIO A ESTÁTICO (5/5)CONVERTIR TU SITIO A ESTÁTICO (5/5)
SOLUCIONES EXTERNAS:SOLUCIONES EXTERNAS:
Proveedores:
staging4all.com
mystatic.website (próximamente)
deploy2static.com (próximamente)
STAGING4ALL:STAGING4ALL:
Compatible con Joomla! y WordPress
CMS en entorno de staging privado (subdominio
protegido por contraseña)
Cuando se actualiza el contenido, se regenera y
publica
Los formularios se gestionan desde el panel de
control
Multiusuario
Suscripción mensual
No necesita cambiar de alojamiento
https://staging4all.com
MYSTATIC.WEBSITE:MYSTATIC.WEBSITE:
Compatible con Joomla!
Dirigido a sitios Joomla! Legacy (versiones antiguas)
A través de empresas de hosting
CMS en entorno de staging privado (docker)
Cuando se actualiza el contenido, se regenera y
publica
Suscripción mensual
No necesita cambiar de alojamiento
https://mystatic.website
DEPLOY2STATIC:DEPLOY2STATIC:
Compatible con cualquier CMS (externo)
Regenera la versión estática directamente sobre
producción (no sobreescribe)
Dos modos: dinámico (CMS) y estático
Para actualizar el contenido hay que conmutar a
CMS primero
Cuando se actualiza el contenido, se regenera y
publica
Formularios: integrados en panel de control
Sistema de créditos (pago por despliegue)
No necesita cambiar de alojamiento
https://deploy2static.com
¡USA JOOMLA! COMO UN¡USA JOOMLA! COMO UN
GENERADOR ESTÁTICOGENERADOR ESTÁTICO
Y HAZ TUS SITIOSY HAZ TUS SITIOS
INHACKEABLES Y ULTRARRÁPIDOS!INHACKEABLES Y ULTRARRÁPIDOS!
PREGUNTASPREGUNTAS
¡MUCHAS GRACIAS!¡MUCHAS GRACIAS!
Javier Olivares
javi@staging4all.com
@j44z / @staging4all

Contenu connexe

Tendances (16)

Presentacion
PresentacionPresentacion
Presentacion
 
Susir
SusirSusir
Susir
 
Susir
SusirSusir
Susir
 
PRESENTACION JOOMLA
PRESENTACION JOOMLAPRESENTACION JOOMLA
PRESENTACION JOOMLA
 
Web
WebWeb
Web
 
Blogging con Joomla - JoomlaDay Zaragoza 2011
Blogging con Joomla - JoomlaDay Zaragoza 2011Blogging con Joomla - JoomlaDay Zaragoza 2011
Blogging con Joomla - JoomlaDay Zaragoza 2011
 
Introducción a Joomla - CISL Madrid 2011
Introducción a Joomla - CISL Madrid 2011Introducción a Joomla - CISL Madrid 2011
Introducción a Joomla - CISL Madrid 2011
 
Plataformas web carlos
Plataformas web carlosPlataformas web carlos
Plataformas web carlos
 
Curso Joomla
Curso JoomlaCurso Joomla
Curso Joomla
 
Nestcape navigator
Nestcape navigatorNestcape navigator
Nestcape navigator
 
Joomla y Wordpress
Joomla y WordpressJoomla y Wordpress
Joomla y Wordpress
 
Wordpress
WordpressWordpress
Wordpress
 
T8 cgi applets...
T8 cgi applets...T8 cgi applets...
T8 cgi applets...
 
CMS Mambo
CMS MamboCMS Mambo
CMS Mambo
 
Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11
 
Comparativo de Navegadores Web
Comparativo de Navegadores WebComparativo de Navegadores Web
Comparativo de Navegadores Web
 

Similaire à Convierte tu Joomla! a estático, haciéndola inhackeable y ultrarrápida - Javier Olivares

PresentacióN Final Tecno Azte K Mobile Store
PresentacióN  Final  Tecno Azte K  Mobile  StorePresentacióN  Final  Tecno Azte K  Mobile  Store
PresentacióN Final Tecno Azte K Mobile Storedaniel.sierra
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiGuillermo Nassi
 
Investigación y comparativa cms
Investigación y comparativa cmsInvestigación y comparativa cms
Investigación y comparativa cmspsvasir
 
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectosJoomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectosJordi Catà
 
Tecnologias web (Prestashop)
Tecnologias web (Prestashop)Tecnologias web (Prestashop)
Tecnologias web (Prestashop)Erick Hernandez
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
Plataformas del comercio electronico
Plataformas del comercio electronicoPlataformas del comercio electronico
Plataformas del comercio electronicovickisitha
 
Taller+de+wordpress+avanzado+2
Taller+de+wordpress+avanzado+2Taller+de+wordpress+avanzado+2
Taller+de+wordpress+avanzado+2mrjahemi
 
Progressive web apps
Progressive web apps Progressive web apps
Progressive web apps Biko
 
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)Lucía Marín
 

Similaire à Convierte tu Joomla! a estático, haciéndola inhackeable y ultrarrápida - Javier Olivares (20)

Joomla! v3 - Presentación
Joomla! v3 - PresentaciónJoomla! v3 - Presentación
Joomla! v3 - Presentación
 
PresentacióN Final Tecno Azte K Mobile Store
PresentacióN  Final  Tecno Azte K  Mobile  StorePresentacióN  Final  Tecno Azte K  Mobile  Store
PresentacióN Final Tecno Azte K Mobile Store
 
Pre 1
Pre 1Pre 1
Pre 1
 
De Cero a Wordpress
De Cero a WordpressDe Cero a Wordpress
De Cero a Wordpress
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y Nassi
 
Anexos
AnexosAnexos
Anexos
 
Investigación y comparativa cms
Investigación y comparativa cmsInvestigación y comparativa cms
Investigación y comparativa cms
 
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectosJoomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
 
Barron
BarronBarron
Barron
 
Barron
BarronBarron
Barron
 
Tecnologias web (Prestashop)
Tecnologias web (Prestashop)Tecnologias web (Prestashop)
Tecnologias web (Prestashop)
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
A.3 bolaños.coronel.henry.g2.ppt
A.3 bolaños.coronel.henry.g2.pptA.3 bolaños.coronel.henry.g2.ppt
A.3 bolaños.coronel.henry.g2.ppt
 
Plataformas del comercio electronico
Plataformas del comercio electronicoPlataformas del comercio electronico
Plataformas del comercio electronico
 
Php. sintaxis
Php. sintaxisPhp. sintaxis
Php. sintaxis
 
Taller+de+wordpress+avanzado+2
Taller+de+wordpress+avanzado+2Taller+de+wordpress+avanzado+2
Taller+de+wordpress+avanzado+2
 
Progressive web apps
Progressive web apps Progressive web apps
Progressive web apps
 
Joomla
JoomlaJoomla
Joomla
 
Escalabilidad de Websites
Escalabilidad de WebsitesEscalabilidad de Websites
Escalabilidad de Websites
 
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
 

Plus de joomlaes

Creando aplicaciones modernas con Joomla! y Vue.js - Roberto Segura
Creando aplicaciones modernas con Joomla! y Vue.js - Roberto SeguraCreando aplicaciones modernas con Joomla! y Vue.js - Roberto Segura
Creando aplicaciones modernas con Joomla! y Vue.js - Roberto Segurajoomlaes
 
Joomla! 4x4 - Josean Telleria
Joomla! 4x4 - Josean TelleriaJoomla! 4x4 - Josean Telleria
Joomla! 4x4 - Josean Telleriajoomlaes
 
En seguridad, todo cuenta - Jose Antonio Luque
 En seguridad, todo cuenta - Jose Antonio Luque En seguridad, todo cuenta - Jose Antonio Luque
En seguridad, todo cuenta - Jose Antonio Luquejoomlaes
 
Accesibilidad web - Creando webs para todos - Pablo Aria
 Accesibilidad web - Creando webs para todos - Pablo Aria Accesibilidad web - Creando webs para todos - Pablo Aria
Accesibilidad web - Creando webs para todos - Pablo Ariajoomlaes
 
Búsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal Sánchez
Búsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal SánchezBúsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal Sánchez
Búsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal Sánchezjoomlaes
 
Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara
 Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara
Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámarajoomlaes
 
JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...
JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...
JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...joomlaes
 
Power SEO para Joomla!
Power SEO para Joomla!Power SEO para Joomla!
Power SEO para Joomla!joomlaes
 
Esta herramienta ¡Me pone!
Esta herramienta ¡Me pone! Esta herramienta ¡Me pone!
Esta herramienta ¡Me pone! joomlaes
 
Software libre en una web abierta
 Software libre en una web abierta  Software libre en una web abierta
Software libre en una web abierta joomlaes
 
Medidas de seguridad en Joomla!
 Medidas de seguridad en Joomla!  Medidas de seguridad en Joomla!
Medidas de seguridad en Joomla! joomlaes
 
Ingresos pasivos y olvídate de los clientes
 Ingresos pasivos y olvídate de los clientes  Ingresos pasivos y olvídate de los clientes
Ingresos pasivos y olvídate de los clientes joomlaes
 
Bienvenida + Introducción a Joomla!
 Bienvenida + Introducción a Joomla!  Bienvenida + Introducción a Joomla!
Bienvenida + Introducción a Joomla! joomlaes
 
Notas sobre tests de aceptación en Joomla!
Notas sobre tests de aceptación en Joomla!Notas sobre tests de aceptación en Joomla!
Notas sobre tests de aceptación en Joomla!joomlaes
 
Campos personalizados en Joomla!
 Campos personalizados en Joomla! Campos personalizados en Joomla!
Campos personalizados en Joomla!joomlaes
 
Crear plantillas personalizadas para joomla joomla day madrid 2017 - 03-05-...
Crear plantillas personalizadas para joomla   joomla day madrid 2017 - 03-05-...Crear plantillas personalizadas para joomla   joomla day madrid 2017 - 03-05-...
Crear plantillas personalizadas para joomla joomla day madrid 2017 - 03-05-...joomlaes
 

Plus de joomlaes (16)

Creando aplicaciones modernas con Joomla! y Vue.js - Roberto Segura
Creando aplicaciones modernas con Joomla! y Vue.js - Roberto SeguraCreando aplicaciones modernas con Joomla! y Vue.js - Roberto Segura
Creando aplicaciones modernas con Joomla! y Vue.js - Roberto Segura
 
Joomla! 4x4 - Josean Telleria
Joomla! 4x4 - Josean TelleriaJoomla! 4x4 - Josean Telleria
Joomla! 4x4 - Josean Telleria
 
En seguridad, todo cuenta - Jose Antonio Luque
 En seguridad, todo cuenta - Jose Antonio Luque En seguridad, todo cuenta - Jose Antonio Luque
En seguridad, todo cuenta - Jose Antonio Luque
 
Accesibilidad web - Creando webs para todos - Pablo Aria
 Accesibilidad web - Creando webs para todos - Pablo Aria Accesibilidad web - Creando webs para todos - Pablo Aria
Accesibilidad web - Creando webs para todos - Pablo Aria
 
Búsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal Sánchez
Búsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal SánchezBúsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal Sánchez
Búsquedas Instantáneas con Algolia en Joomla (WPO) - Anibal Sánchez
 
Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara
 Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara
Joomla: "Jaque Mate" - Andrea Gentil y Carlos Cámara
 
JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...
JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...
JoomlaES, el portal comunitario sobre Joomla! en español - JuanKa Díaz e Isid...
 
Power SEO para Joomla!
Power SEO para Joomla!Power SEO para Joomla!
Power SEO para Joomla!
 
Esta herramienta ¡Me pone!
Esta herramienta ¡Me pone! Esta herramienta ¡Me pone!
Esta herramienta ¡Me pone!
 
Software libre en una web abierta
 Software libre en una web abierta  Software libre en una web abierta
Software libre en una web abierta
 
Medidas de seguridad en Joomla!
 Medidas de seguridad en Joomla!  Medidas de seguridad en Joomla!
Medidas de seguridad en Joomla!
 
Ingresos pasivos y olvídate de los clientes
 Ingresos pasivos y olvídate de los clientes  Ingresos pasivos y olvídate de los clientes
Ingresos pasivos y olvídate de los clientes
 
Bienvenida + Introducción a Joomla!
 Bienvenida + Introducción a Joomla!  Bienvenida + Introducción a Joomla!
Bienvenida + Introducción a Joomla!
 
Notas sobre tests de aceptación en Joomla!
Notas sobre tests de aceptación en Joomla!Notas sobre tests de aceptación en Joomla!
Notas sobre tests de aceptación en Joomla!
 
Campos personalizados en Joomla!
 Campos personalizados en Joomla! Campos personalizados en Joomla!
Campos personalizados en Joomla!
 
Crear plantillas personalizadas para joomla joomla day madrid 2017 - 03-05-...
Crear plantillas personalizadas para joomla   joomla day madrid 2017 - 03-05-...Crear plantillas personalizadas para joomla   joomla day madrid 2017 - 03-05-...
Crear plantillas personalizadas para joomla joomla day madrid 2017 - 03-05-...
 

Convierte tu Joomla! a estático, haciéndola inhackeable y ultrarrápida - Javier Olivares

  • 1. #jdmad19 Convierte tu Joomla! a estático haciéndola inhackeable y ultrarrápido Javier Olivares
  • 2. SOBRE MÍSOBRE MÍ Ingeniero de Teleco e Informática 11 años de experiencia como desarrollador web 8 años de experiencia alojando páginas web Actualmente CTO en staging4all/deploy2static Javier Olivares javi@staging4all.com @j44z / @staging4all
  • 3. SOBRE ESTA CHARLASOBRE ESTA CHARLA 1. Definición: Página estática 2. Un poco de historia de la web 3. Ventajas de las páginas estáticas 4. Qué puede hacer y qué no una página estática 5. Idea: Usando Joomla como generador estático 6. Del dicho al hecho: ¿Cómo podemos hacerlo?
  • 4. DEFINICIÓN:DEFINICIÓN: ¿QUÉ ENTENDEMOS POR UNA PÁGINA¿QUÉ ENTENDEMOS POR UNA PÁGINA ESTÁTICA?ESTÁTICA? Ficheros HTML "Activos" (assets) CSS Javascript Media (Imágenes, vídeos, PDFs, etc) NO hay lenguajes interpretados de servidor (PHP, Ruby, Python, etc) Sin base de datos
  • 5. AL PRINCIPIO DE LOS TIEMPOSAL PRINCIPIO DE LOS TIEMPOS HABÍA PÁGINAS ESTÁTICAS...HABÍA PÁGINAS ESTÁTICAS...
  • 6. PÁGINAS ESTÁTICAS:PÁGINAS ESTÁTICAS: LAS PRIMERAS PÁGINAS WEBLAS PRIMERAS PÁGINAS WEB Conocimientos técnicos Páginas simples Sin interacción Tediosas de modificar Se trabaja sólo cuando hay cambios en contenido Tareas: desarrollo = diseño
  • 7. APARECEN LENGUAJES INTERPRETADOSAPARECEN LENGUAJES INTERPRETADOS PHP (PERSONAL HOME PAGE)PHP (PERSONAL HOME PAGE) Conocimientos más técnicos aún (lenguaje de programación) Páginas algo más complejas Con algo de interacción (formularios, búsquedas) Bases de datos Organización del contenido - bases para separación diseño / estructura Algo menos tediosas de modificar Tareas: desarrollo = diseño, mantenimiento de contenido
  • 8. LA ERA DEL CMSLA ERA DEL CMS ¿EL SISTEMA PERFECTO?¿EL SISTEMA PERFECTO? Muy pocos conocimientos técnicos Fáciles de usar Páginas complejas La interacción es universal (formularios, búsquedas, comentarios, foros, blogs) Frontend/Backend Multiusuario Temas/plantillas Extensiones El cliente actualiza su web de forma autónoma
  • 9.
  • 10. CON EL TIEMPO...CON EL TIEMPO... DESVENTAJAS DE LOS CMSDESVENTAJAS DE LOS CMS Lentos/pesados Difíciles (y caros) de escalar Riesgo de hackeo (Zero Days, exploits) Muchos plugins/extensiones... con el tiempo se convierten en una carga Actualizar PHP o la versión muchas veces deja webs atrás... Requieren mantenimiento técnico Tareas: desarrollo, diseño, mantenimiento de contenido, mantenimiento técnico
  • 11. NADIE CUESTIONA QUENADIE CUESTIONA QUE ACTUALIZAR EL PHP ES DIFÍCILACTUALIZAR EL PHP ES DIFÍCIL Datos de developers.joomla.org, wordpress.org, w3techs.com
  • 12. PORQUE ACTUALIZAR, PUEDEPORQUE ACTUALIZAR, PUEDE ROMPER TU WEB...ROMPER TU WEB...
  • 13. SOLUCIONESSOLUCIONES Sistemas de Backup (Akeeba, BackupMonkey, Watchful...) Sistemas de actualizaciones automáticas/en masa (MyJoomla/mySites, Watchful, softaculous...) Sistemas de checkeo de integridad - hackeos (SecurityCheck, AdminTools, SiteLock...) Sistemas de Monitorado (UptimeRobot, StatusCake, Pingdom...) Sistemas de Staging (Siteground, softaculous, staging4all...)
  • 14. ACTUALIZAMOS MÁS A MENUDOACTUALIZAMOS MÁS A MENUDO EL CMS EN SÍ QUE EL CONTENIDO...EL CMS EN SÍ QUE EL CONTENIDO...
  • 15. HOY EN DÍAHOY EN DÍA LA WEB SIGUE EVOLUCIONANDOLA WEB SIGUE EVOLUCIONANDO SERVERLESSSERVERLESS && RENACIMIENTO DE SITIOSRENACIMIENTO DE SITIOS ESTÁTICOSESTÁTICOS
  • 16. RESURGIR DE PÁGINAS ESTÁTICASRESURGIR DE PÁGINAS ESTÁTICAS Porque son: Rápidas - La velocidad mejora el SEO Superfáciles de escalar (y baratas) No hackeables - seguras NO requieren mantenimiento técnico
  • 17.
  • 18. LAS PÁGINAS ESTÁTICAS REVISITADAS (1/2)LAS PÁGINAS ESTÁTICAS REVISITADAS (1/2) EXPLOSIÓN DE GENERADORES ESTÁTICOSEXPLOSIÓN DE GENERADORES ESTÁTICOS Por simplicidad de mantenimiento (blogs usando markdown, etc) Por velocidad de carga y escalado Por sencillez de despliegue (git) Por seguridad Para usarlos como base con stacks JAM (Javascript, APIs, Markup) Frameworks modernos de Javascript (React, Vue, etc)
  • 19. + de 250 generadores de páginas estáticas modernos https://staticgen.com
  • 20. LAS PÁGINAS ESTÁTICAS REVISITADAS (2/2)LAS PÁGINAS ESTÁTICAS REVISITADAS (2/2) ALOJAMIENTOS WEB ESTÁTICOSALOJAMIENTOS WEB ESTÁTICOS
  • 21. ¿HAY SITIO PARA NUESTRO CMS EN UN¿HAY SITIO PARA NUESTRO CMS EN UN MUNDO ESTÁTICO?MUNDO ESTÁTICO?
  • 22. CONVERTIR UNA WEB A ESTÁTICOCONVERTIR UNA WEB A ESTÁTICO MANUALMENTE:MANUALMENTE: MUCHAS HERRAMIENTAS:MUCHAS HERRAMIENTAS: Generar versión estática (ficheros) Subir los ficheros manualmente y reemplazar la web Cyotek Webcopy, Website Downloader, Offline Explorer, SiteSucker, Teleport Pro, WebScrapbook...
  • 23. CONVERTIR UNA WEB A ESTÁTICO:CONVERTIR UNA WEB A ESTÁTICO: proceso unidireccional e irreversible
  • 24. Pero... queremos una solución que sea sencilla y que nos permita trabajar de forma fluida
  • 25. ¿QUÉ PASARÍA SI...¿QUÉ PASARÍA SI... USAMOS JOOMLA! COMO GENERADORUSAMOS JOOMLA! COMO GENERADOR ESTÁTICO?ESTÁTICO?
  • 26. EL CONCEPTO DESEADOEL CONCEPTO DESEADO  
  • 27. LO MEJOR DE LOS DOS MUNDOS:LO MEJOR DE LOS DOS MUNDOS: Fáciles de actualizar Sin conocimientos técnicos Multiusuario El cliente actualiza su web de forma autónoma 100% seguras Superrápidas Fáciles y baratas de escalar Sin mantenimiento técnico
  • 28. ¿ESTA VEZ, EL SISTEMA PERFECTO?¿ESTA VEZ, EL SISTEMA PERFECTO?
  • 29. ¿QUÉ PIERDO AL CONVERTIR MI WEB A ESTÁTICA?¿QUÉ PIERDO AL CONVERTIR MI WEB A ESTÁTICA? Todo tipo de procesamiento en el servidor Procesos complejos Publicación programada, etc Procesos a medida del usuario Sistemas en los que el visitante modifica la página (foros, etc) Áreas privadas, intranets... ¿Interactividad?
  • 30. ¿QUÉ PÁGINAS PODRÍAN¿QUÉ PÁGINAS PODRÍAN BENEFICIARSE DE ESTO?BENEFICIARSE DE ESTO? Presencia online Corporativas Blogs Portfolio Noticias Catálogos ¿Otras?
  • 31. ¿QUÉ OCURRE CON LA INTERACCIÓN?¿QUÉ OCURRE CON LA INTERACCIÓN?
  • 32. ¿QUÉ MÁS HA CAMBIADO¿QUÉ MÁS HA CAMBIADO DESDE LOS 90S?DESDE LOS 90S? 1. Javascript 2. Filosofía: Monolito vs. delegación ¿Y qué podemos hacer con eso?
  • 34. FORMULARIOS DE CONTACTOFORMULARIOS DE CONTACTO Serverless function (lambda, GCP, etc) Servicios externos/de terceros (POST, Javascript) Mautic (open source, self hosted or cloud) Formspree.io Getform.io Formden.com Wufoo.com ... Requisitos: notificar/enviar email, filtrado de spam
  • 35. NEWSLETTERSNEWSLETTERS Servicios externos/de terceros (POST, Javascript) Mautic (open source, self hosted or cloud) phplists (open source) mailchimp.com sendgrid.com mailjet.com ... Requisitos: notificar/enviar email, filtrado de spam
  • 36. COMENTARIOSCOMENTARIOS Serverless function -> integrarlo con el backend Servicios externos/de terceros mediante Javascript disqus.com isso (open source, self hosted) Commento.io ... Necesitan: moderación, notificar/enviar email, filtrado de spam
  • 37. BÚSQUEDABÚSQUEDA Plugins Javascript Servicios externos/de terceros mediante Javascript google.com algolia.com elasticsearch ...
  • 38. COOKIE BANNERSCOOKIE BANNERS Mediante Javascript https://github.com/dobarkod/cookie-banner - (open source) cookiebot.com websitepolicies.com ...
  • 39. ECOMMERCEECOMMERCE Servicios externos/de terceros mediante Javascript snipcart.com reactioncommerce.com apicart.net moltin.com chargebee.com - suscripciones recurly.com - suscripciones ... Directamente a través de las pasarelas de pago paypal.com stripe.com mollie.com ...
  • 40. ¿Y ENTONCES, CÓMO LO¿Y ENTONCES, CÓMO LO HACEMOS?HACEMOS?  
  • 41.
  • 42. CONVERTIR TU SITIO A ESTÁTICO (1/5)CONVERTIR TU SITIO A ESTÁTICO (1/5) ENTORNOS DE DESARROLLO:ENTORNOS DE DESARROLLO: Locales Cloud/online Multiusuario Siempre disponibles Permiten al cliente a gestionar su propia web como con el CMS
  • 43. CONVERTIR TU SITIO A ESTÁTICO (2/5)CONVERTIR TU SITIO A ESTÁTICO (2/5) OPCIONES DE CONVERSIÓN:OPCIONES DE CONVERSIÓN: Hazlo tú mismo Requiere conocimientos técnicos (scripts) Servicios de terceros Acceso más universal (soluciones 1 click)
  • 44. HAZLO TÚ MISMOHAZLO TÚ MISMO
  • 45. CONVERTIR TU SITIO A ESTÁTICO (3/5)CONVERTIR TU SITIO A ESTÁTICO (3/5) HAZLO TU MISMO:HAZLO TU MISMO: Actualizar el contenido Realizar la conversión a estático Despliegue: subir el sitio al alojamiento web Automatización: scripts, git hooks, rsync, FTP, etc Contenido dinámico: soluciones propias o de terceros
  • 46. CONVERTIR TU SITIO A ESTÁTICO (3/5)CONVERTIR TU SITIO A ESTÁTICO (3/5) HAZLO TÚ MISMO:HAZLO TÚ MISMO: Software: Joomla Plugins wget Httrack Headless Chrome/Puppeteer Se pueden integrar en un flujo de trabajo automático o semi-automático
  • 47. JOOMLA PLUGINSJOOMLA PLUGINS Static content Con un click, generar el sitio como estático Estado actual: abandonado ¿Oportunidad? https://github.com/juliopontes/staticcontent
  • 48. WGETWGET Solo CLI Software maduro (1996) Muchas opciones Único comando, simple https://www.gnu.org/software/wget/manual/wget.html wget --mirror --convert-links --page-requisites https://mywebsite.com
  • 49. HTTRACKHTTRACK UI + CLI Software maduro (1998) Muchísimas opciones Único comando, simple http://www.httrack.com httrack -I0 -sN0 -N1 https://mywebsite.com
  • 50. HEADLESS CHROME + PUPPETEERHEADLESS CHROME + PUPPETEER Sólo CLI/scripts Nuevo Muchas opciones Complejo de poner en marcha https://fettblog.eu/scraping-with-puppeteer/ page.on('response', async (response) => { const url = new URL(response.url()); let filePath = path.resolve(`./output${url.pathname}`); if (path.extname(url.pathname).trim() === '') { filePath = `${filePath}/index.html`; } await fse.outputFile(filePath, await response.buffer()); });
  • 51. SCRIPTS/AUTOMATIZACIÓN:SCRIPTS/AUTOMATIZACIÓN: Trigger: git hook, webhooks, command line, cronjob Scripts de conversión Scripts de despliegue Se pueden incorporar a un flujo CI/CD
  • 53. CONVERTIR TU SITIO A ESTÁTICO (4/5)CONVERTIR TU SITIO A ESTÁTICO (4/5) INTEGRADAS CON EL ALOJAMIENTO:INTEGRADAS CON EL ALOJAMIENTO: Proveedores: (sólo WordPress :( ) HardyPress.com getshifter.io Northstack.com (beta) Strattic.com (beta) Contenido dinámico Formularios integrados Búsqueda con plugins
  • 54. CÓMO FUNCIONAN:CÓMO FUNCIONAN: CMS en entorno privado (subdominio o docker) Cuando se actualiza el contenido, se regenera y publica Los formularios se gestionan desde el panel de control Potencialmente compatibles con Joomla! Suscripción mensual Implica cambiar de alojamiento
  • 55. CONVERTIR TU SITIO A ESTÁTICO (5/5)CONVERTIR TU SITIO A ESTÁTICO (5/5) SOLUCIONES EXTERNAS:SOLUCIONES EXTERNAS: Proveedores: staging4all.com mystatic.website (próximamente) deploy2static.com (próximamente)
  • 56. STAGING4ALL:STAGING4ALL: Compatible con Joomla! y WordPress CMS en entorno de staging privado (subdominio protegido por contraseña) Cuando se actualiza el contenido, se regenera y publica Los formularios se gestionan desde el panel de control Multiusuario Suscripción mensual No necesita cambiar de alojamiento https://staging4all.com
  • 57. MYSTATIC.WEBSITE:MYSTATIC.WEBSITE: Compatible con Joomla! Dirigido a sitios Joomla! Legacy (versiones antiguas) A través de empresas de hosting CMS en entorno de staging privado (docker) Cuando se actualiza el contenido, se regenera y publica Suscripción mensual No necesita cambiar de alojamiento https://mystatic.website
  • 58. DEPLOY2STATIC:DEPLOY2STATIC: Compatible con cualquier CMS (externo) Regenera la versión estática directamente sobre producción (no sobreescribe) Dos modos: dinámico (CMS) y estático Para actualizar el contenido hay que conmutar a CMS primero Cuando se actualiza el contenido, se regenera y publica Formularios: integrados en panel de control Sistema de créditos (pago por despliegue) No necesita cambiar de alojamiento https://deploy2static.com
  • 59. ¡USA JOOMLA! COMO UN¡USA JOOMLA! COMO UN GENERADOR ESTÁTICOGENERADOR ESTÁTICO Y HAZ TUS SITIOSY HAZ TUS SITIOS INHACKEABLES Y ULTRARRÁPIDOS!INHACKEABLES Y ULTRARRÁPIDOS!
  • 61. ¡MUCHAS GRACIAS!¡MUCHAS GRACIAS! Javier Olivares javi@staging4all.com @j44z / @staging4all