Configuración inicial
Instalar el módulo Tome y activar los submódulos Tome base y Tome static
composer install drupal/tome
drush en tome_base tome_static
Configurar el repositorio en Github para usar páginas estáticas.
Crear repositorio gh-pages
git branch gh-pages
En el repositorio > Settings
- Source: Deploy from a branch
- Branch: gh-pages y /root
En Custom domain poner el dominio final donde alojaremos la web, ya sea el propio de github o uno propio.
Cuando nos permita (suele tardar un par de horas o más) activamos el https
Script para automatizar el despliegue
Cambiar <tusitioweb.com> con el dominio deseado
#!/bin/bash
set -e
echo "--------------------------------"
echo "Cambiando a la rama main..."
echo "--------------------------------"
git checkout main
echo "--------------------------------"
echo "Limpiando carpeta html existente..."
echo "--------------------------------"
rm -rf html
echo "--------------------------------"
echo "Generando sitio estático con Drush Tome..."
echo "--------------------------------"
ddev drush tome:static -l <https://tusitioweb.com>
echo "--------------------------------"
echo "Añadiendo cambios..."
echo "--------------------------------"
git add .
echo "--------------------------------"
echo "Haciendo commit..."
echo "--------------------------------"
git commit -m "Actualizar sitio estático" || true
# Haciendo push a la rama main
echo "--------------------------------"
echo "Haciendo push a la rama main..."
echo "--------------------------------"
git push origin main
# Cambiar a la rama gh-pages
echo "--------------------------------"
echo "Cambiando a la rama gh-pages..."
echo "--------------------------------"
git checkout gh-pages
# Guardar solo el archivo CNAME si existe
echo "--------------------------------"
echo "Preservando archivo CNAME..."
echo "--------------------------------"
if [ -f "CNAME" ]; then
CNAME_CONTENT=$(cat CNAME)
PRESERVE_CNAME=true
else
CNAME_CONTENT="<tusitioweb.com>"
PRESERVE_CNAME=false
fi
# Limpiar TODO en gh-pages excepto CNAME
echo "--------------------------------"
echo "Limpiando directorio raíz (excepto CNAME)..."
echo "--------------------------------"
# Método seguro: eliminar todo excepto .git y CNAME
find . -maxdepth 1 ! -name '.' ! -name '.git' ! -name 'CNAME' -exec rm -rf {} + 2>/dev/null || true
# Restaurar/Crear CNAME
echo "--------------------------------"
echo "Restaurando archivo CNAME..."
echo "--------------------------------"
echo "$CNAME_CONTENT" > CNAME
# Copiar la carpeta html desde main
echo "--------------------------------"
echo "Copiando archivos estáticos desde main..."
echo "--------------------------------"
git checkout main -- html
# Mover contenido de html a la raíz
echo "--------------------------------"
echo "Moviendo archivos a la raíz..."
echo "--------------------------------"
if [ -d "html" ]; then
mv html/* . 2>/dev/null || true
rmdir html 2>/dev/null || true
fi
# Añadir los cambios
echo "--------------------------------"
echo "Añadiendo cambios a gh-pages..."
echo "--------------------------------"
git add .
# Hacer commit de los cambios en gh-pages
echo "--------------------------------"
echo "Haciendo commit del sitio estático..."
echo "--------------------------------"
git commit -m "Publicando sitio estático $(date '+%Y-%m-%d %H:%M:%S')"
# Hacer push a la rama gh-pages
echo "--------------------------------"
echo "Haciendo push a la rama gh-pages..."
echo "--------------------------------"
git push origin gh-pages
# Volver a main (opcional)
echo "--------------------------------"
echo "Volviendo a la rama main..."
echo "--------------------------------"
git checkout main
echo "--------------------------------"
echo "✅ ¡Sitio publicado!"
echo "🌐 Disponible en: <https://tusitioweb.com/>"
echo "--------------------------------"Guardar el script como deploy.sh y ejecutar:
./deploy.sh