Integración con GitHub Actions

Para usuarios avanzados, GitHub CI/CD (Integración Continua/Entrega Continua o Despliegue Continuo) puede desplegar automáticamente cambios de código en tu sitio Kinsta cada vez que se envíe un nuevo commit a la rama designada. Esta configuración permite el despliegue de código sin problemas desde tu entorno local a través de SSHGitHub Actions, lo que permite actualizaciones continuas de tu sitio.

Para seguir estos pasos, debes tener un sitio existente alojado en Kinsta y una cuenta de GitHub.

1. Descarga una copia de seguridad de tu sitio

Puedes descargar una copia de seguridad de tu sitio para configurar el repositorio de GitHub y trabajar en él localmente. Alternativamente, puedes utilizar DevKinsta para extraer tu sitio del servidor Kinsta y trabajar en él localmente.

En MyKinsta, ve a Sitios > nombre del sitio > Copias de seguridad > Descargar > Crear copia de seguridad ahora.

Crear una copia de seguridad descargable en MyKinsta.
Crear una copia de seguridad descargable en MyKinsta.

Cuando tu copia de seguridad esté lista, haz clic en Descargar, guárdala en tu ordenador local y descomprime los archivos en una carpeta.

2. Configura el repositorio de GitHub

Abre la carpeta que contiene los archivos de tu sitio en tu editor de código preferido. Para evitar que se suban archivos innecesarios del core de WordPress, archivos multimedia o información confidencial, añade un archivo .gitignore al directorio raíz de tu proyecto. Puedes usar una plantilla de .gitignore estándar de WordPress, copiar su contenido y guardarlo para asegurarte de que solo se rastrean los archivos esenciales.

Crea un repositorio GitHub y envía los archivos de tu sitio a GitHub.

3. Configurar los secretos de GitHub para Kinsta

Para automatizar los despliegues desde GitHub a Kinsta, necesitas algunos datos clave de SSH, como tu nombre de usuario, contraseña, puerto y dirección IP. Como se trata de información confidencial, debes guardarla de forma segura como secretos de GitHub.

Dentro de GitHub, ve a tu repositorio, haz clic en Configuración > Secretos y variables > Acciones > Nuevo secreto del repositorio.

Añade las siguientes claves utilizando los datos del usuario principal de SFTP/SSH que encontrarás en la página Información de tu sitio en MyKinsta:

Nombre del secretoSecreto
KINSTA_SERVER_IPHost e.g. 12.34.56.78
KINSTA_USERNAMEUsername e.g. kinstahelp
PASSWORDPassword
PORTPort e.g. 12345
Información SSH para añadir secretos a GitHub.
Información SSH para añadir secretos a GitHub.

4. Genera una clave SSH en tu servidor Kinsta

Abre un nuevo terminal y accede mediante SSH a tu servidor Kinsta utilizando el comando terminal SSH desde la página de Información de tu sitio en MyKinsta.

Comando de terminal SSH para tu sitio.
Comando de terminal SSH para tu sitio.

Introduce la contraseña de tu sitio y, a continuación, genera una nueva clave SSH utilizando el siguiente comando, sustituyendo [email protected] por tu dirección de correo electrónico:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Pulsa Intro para guardar la clave en la ubicación predeterminada y deja la frase de contraseña en blanco cuando se te solicite.

Generar una clave SSH.
Generar una clave SSH.

5. Añade la clave SSH a GitHub

Accede al contenido del archivo de la clave pública (por ejemplo, ~/.ssh/id_rsa.pub), con el siguiente comando:

cat ~/.ssh/id_rsa.pub

En GitHub, ve a Configuración > Claves SSH y GPG > Nueva clave SSH, introduce un título (por ejemplo, «Clave de servidor Kinsta»), asegúrate de que el Tipo de clave es Clave de autenticación, pega la clave pública en Clave y haz clic en Añadir clave SSH. Si eres miembro de una organización que utiliza claves de despliegue, debes añadir tu clave SSH como clave de despliegue. Para más detalles, consulta la documentación de GitHub sobre claves de Despliegue.

6. Configura Git para utilizar SSH en el servidor Kinsta

En MyKinsta, en la página de Información, copia la Ruta desde Detalles del entorno.

Ruta en la página de Información de tu sitio.
Ruta en la página de Información de tu sitio.

En el terminal, navega al directorio activo de tu sitio con el siguiente comando, sustituyendo /www/your-site/public por la ruta copiada de MyKinsta.

cd /www/your-site/public

Inicializa el directorio como un repositorio Git y configura la URL remota para utilizar SSH con el siguiente comando, sustituyendo your-username y your-repo por tus credenciales git y tu repositorio:

git init
git remote add origin [email protected]:your-username/your-repo.git

Confirma que la configuración SSH funciona ejecutando el siguiente comando:

Deberías ver un mensaje similar a este: «¡Hola, tu-nombre-de-usuario! Te has autenticado correctamente, pero GitHub no ofrece acceso al shell». Tu servidor de Kinsta ya está listo para recibir e desplegar actualizaciones desde GitHub directamente a través de GitHub Actions.

7. Crea el flujo de trabajo de GitHub Actions

Este flujo de trabajo despliega los cambios en Kinsta automáticamente cada vez que realices un envío a la rama main. Para automatizar el despliegue, tienes que definir cómo se llevará a cabo mediante un archivo YAML.

En tu repositorio de GitHub, crea un nuevo directorio llamado .github/workflows dentro de este directorio, crea un nuevo archivo llamado deploy.yml y añade el siguiente contenido al archivo, sustituyendo your-site por el nombre de la carpeta de la ruta en tu sitio Kinsta:

name: Deploy to Kinsta

on:
  push:
    branches:
      - main # Trigger the workflow only when changes are pushed to the main branch

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      # Setup Node.js (only if needed for build tasks)
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'

      # Checkout the latest code from the GitHub repository
      - name: Checkout code
        uses: actions/[email protected]

      # Deploy to Kinsta via SSH
      - name: Deploy via SSH
        uses: appleboy/[email protected]
        with:
          host: ${{ secrets.KINSTA_SERVER_IP }}
          username: ${{ secrets.KINSTA_USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }} # Optional, default is 22
          script: |
            # Navigate to the live site directory
            cd /www/your-site/public

            # Pull the latest changes from the GitHub repository
            git fetch origin main
            git reset --hard origin/main  # Ensure the live site matches the latest main branch

Este flujo de trabajo hace lo siguiente

  • Disparador: El flujo de trabajo se activa cada vez que se envía código a la rama main de tu repositorio de GitHub.
  • Jobs: El flujo de trabajo contiene un job llamado deploy, que se ejecuta en una máquina virtual de Ubuntu (ubuntu-latest).
  • Comprobar código: Utiliza la acción actions/[email protected] para extraer el último código de tu repositorio de GitHub.
  • Despliega en Kinsta mediante SSH:
    • El plugin appleboy/ssh-action establece una conexión SSH con tu servidor Kinsta utilizando los secretos que has almacenado en GitHub (host, nombre de usuario, contraseña y, opcionalmente, el puerto). El script de este paso ejecuta los siguientes comandos:
    • Comandos de despliegue:
      • cd /www/your-site/private: Te lleva al directorio donde está alojado WordPress.
      • git fetch origin main: Obtiene los últimos cambios de la rama principal de tu repositorio de GitHub.
      • git reset --hard origin/main: Actualiza el sitio web con el código más reciente de la rama.

8. Prueba el flujo de trabajo

Una vez que hayas configurado el flujo de trabajo, puedes probarlo enviando un pequeño cambio a la rama main de tu repositorio de GitHub. Cada vez que envíes un cambio, GitHub Actions activará automáticamente el despliegue, descargando la última versión de tu código y desplegándola en tu sitio en producción en Kinsta.

Puedes supervisar el estado de tu Despliegue accediendo a la pestaña Acciones de tu repositorio de GitHub. Si el flujo de trabajo encuentra errores, verás registros detallados que te ayudarán a diagnosticar y solucionar los problemas.

¿Este artículo te ha resultado útil?

© 2013 - 2026 Kinsta Inc. Todos los derechos reservados. Kinsta®, MyKinsta®, DevKinsta® y Sevalla® son marcas comerciales propiedad de Kinsta Inc.La marca registrada WordPress® es propiedad intelectual de la Fundación WordPress, y las marcas registradas Woo® y WooCommerce® son propiedad intelectual de WooCommerce, Inc. El uso de los nombres WordPress®, Woo® y WooCommerce® en este sitio web sólo tiene fines identificativos y no implica la aprobación por parte de la Fundación WordPress o WooCommerce, Inc. Kinsta no está avalada ni es propiedad ni está afiliada a la Fundación WordPress ni a WooCommerce, Inc. Aviso legal