Hoy en día, los desarrolladores de WordPress confían en Git para facilitar el desarrollo y permitir que varias personas trabajen en el mismo proyecto sin pisarse unas a otras.

Bitbucket es una plataforma Git muy popular, pero no basta con tener tu código allí — también necesitas una forma de conectar este repositorio a tu servidor. De esta forma, las actualizaciones enviadas a Bitbucket pueden desplegarse automáticamente en tu servidor, manteniendo tu sitio de WordPress actualizado sin pasos manuales y repetitivos.

Ahí es donde entran en juego los Pipelines de Bitbucket. Bitbucket Pipelines te permite configurar un flujo de trabajo para el despliegue continuo, de modo que las actualizaciones de tu repositorio se desplieguen automáticamente en tu sitio. Si utilizas Kinsta como alojamiento, puedes utilizar SSH y Bitbucket Pipelines para que todo el proceso sea totalmente automático.

Este artículo explica cómo configurar el despliegue continuo para tu sitio WordPress alojado en Kinsta utilizando Bitbucket Pipelines.

Requisitos previos

Antes de configurar el despliegue continuo para tu sitio de WordPress en Kinsta, asegúrate de que tienes preparado lo siguiente:

  1. Tu sitio de WordPress ya debe estar alojado en Kinsta.
  2. Acceso local a los archivos de tu sitio de WordPress.
  3. Una cuenta Bitbucket donde almacenarás y enviarás el código de tu sitio.
  4. Familiaridad básica con Git, como enviar código (hacer push) y trabajar con un archivo .gitignore.

Configura tu sitio de WordPress en Bitbucket

Como usuario de Kinsta, tienes dos formas sencillas de acceder a los archivos de tu sitio de WordPress. Puedes transferir tu sitio desde el servidor Kinsta a DevKinsta, que te permite trabajar localmente, o puedes crear una copia de seguridad descargable directamente desde tu panel MyKinsta. Para esta guía, utilizaremos el método de copia de seguridad.

Descarga los archivos de tu sitio de WordPress

Para descargar una copia de tus archivos de WordPress desde Kinsta, sigue estos pasos:

  1. Ve a tu sitio en el panel de control de MyKinsta.
  2. En la barra lateral izquierda, haz clic en Copias de seguridad para acceder a las copias de seguridad del entorno de tu sitio.
  3. Ve a la pestaña Descarga y crea una copia de seguridad descargable.
  4. Una vez que la descarga esté lista, guárdala en tu PC local.

Esta copia de seguridad será un archivo comprimido. Descomprímelo para acceder a todos tus archivos de WordPress.

Configura tu proyecto para Git y crea un repositorio en Bitbucket

Abre la carpeta que contiene los archivos de tu sitio en tu editor de código preferido. Para evitar subir archivos innecesarios del core de WordPress, subir archivos multimedia o información sensible, añade un archivo .gitignore al directorio raíz de tu proyecto.

Puedes utilizar una plantilla estándar, copiar su contenido y guardarlo para asegurarte de que sólo se rastrean los archivos esenciales.

Tus archivos locales de WordPress están ahora preparados para Git. En Bitbucket, ve a tu espacio de trabajo y crea un nuevo repositorio sin archivos. (No incluyas un archivo .gitignore, puesto que ya hemos creado uno localmente).

Configura la autenticación SSH y envía a Bitbucket

Para conectarte de forma segura a tu repositorio de Bitbucket, debes configurar la autenticación SSH y luego enviar tu código.

  1. Genera un par de claves SSH en tu máquina local. Utiliza tu propia dirección de correo electrónico en el siguiente comando:
    ssh-keygen -t ed25519 -C "[email protected]"

    Guarda el par de claves en una ubicación que puedas consultar fácilmente (por ejemplo, ~/.ssh/id_rsa_bitbucket).

  2. Copia la clave pública (~/.ssh/id_rsa_bitbucket.pub) y añádela a Configuración Personal de Bitbucket > Claves SSH. Esto autoriza a tu máquina a enviar código de forma segura.
    Añade la clave SSH a Bitbucket.
    Añade la clave SSH a Bitbucket.

  3. Con la clave SSH añadida, utiliza los siguientes comandos para enviar tu código a Bitbucket:
    # Initialize a new Git repository
    git init
    # Stage all files for the first commit
    git add .
    # Commit the files with a message
    git commit -m "Initial commit of WordPress site files"
    # Add the Bitbucket repository as the remote origin
    git remote add origin [email protected]:your-username/your-repo.git
    # Push the files to Bitbucket
    git push -u origin main

    Sustituye your-username y your-repo por tu nombre de usuario de Bitbucket y el nombre del repositorio.

Una vez hecho esto, ya tienes todo configurado en Bitbucket. A continuación, puedes configurar tu servidor Kinsta para recibir actualizaciones de tu repositorio de Bitbucket.

Configura tu servidor Kinsta para despliegues automatizados

Para habilitar los despliegues automatizados desde Bitbucket, establecerás el acceso SSH a Bitbucket y luego configurarás Git para usar SSH en el servidor Kinsta.

Paso 1: Configurar el acceso SSH a Bitbucket para conexiones seguras

Para que el servidor de Kinsta pueda extraer código de Bitbucket, debes generar una clave SSH en el servidor y añadir su clave pública a tu cuenta de Bitbucket.

Accede mediante SSH a tu servidor Kinsta utilizando el comando de terminal SSH disponible en tu panel MyKinsta:

Comando de terminal SSH de MyKinsta.
Comando de terminal SSH de MyKinsta.

A continuación, genera una nueva clave SSH (omite este paso si ya tienes una):

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 clave pública SSH.
Generar clave pública SSH.

A continuación, tendrás que añadir la clave pública a Bitbucket. Para acceder a la clave, utiliza este comando:

cat ~/.ssh/id_rsa.pub

Copia todo el resultado, luego ve a Configuración de Bitbucket > Claves SSH en tu cuenta de Bitbucket y añade la clave pública. Esto autorizará al servidor Kinsta a acceder a tu repositorio de Bitbucket de forma segura.

Paso 2: Configura Git para usar SSH en el servidor Kinsta

Navega al directorio activo de tu sitio en el servidor Kinsta ejecutando el siguiente comando:

cd /www/your-site/public

Puedes encontrar esta ruta en la sección Detalles del entorno del panel de control de tu sitio MyKinsta, como se muestra a continuación:

Ruta del servidor del sitio WordPress.
Ruta del servidor del sitio WordPress.

A continuación, inicializa el directorio como repositorio Git y configura la URL remota para utilizar SSH:

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

Sustituye your-username y your-repo por tu nombre de usuario de Bitbucket y el nombre del repositorio, respectivamente.

Confirma que la configuración SSH funciona ejecutando:

ssh -T [email protected]

Si tiene éxito, deberías ver un mensaje como: «autenticado mediante clave SSH. Puedes utilizar git para conectarte a Bitbucket. El acceso Shell está deshabilitado»

Con esta configuración, tu servidor Kinsta ya está listo para recibir y desplegar actualizaciones desde Bitbucket directamente a través de los pipelines de Bitbucket.

Configurar Bitbucket Pipelines para el despliegue automatizado

Bitbucket Pipelines es una herramienta de integración y entrega continua (CI/CD) que te permite automatizar tareas cuando envías cambios a tu repositorio. En esta instalación, configuraremos un pipeline que desencadene un despliegue en Kinsta cada vez que haya un nuevo envío a la rama main.

Añade las variables de entorno necesarias

Antes de configurar el pipeline, necesitarás configurar algunas variables de entorno en Bitbucket para almacenar información sensible de forma segura. Ve a Configuración del repositorio > Variables del repositorio en Bitbucket y añade lo siguiente con su valor correspondiente:

  • KINSTA_USERNAME: Este es tu nombre de usuario SSH para el servidor Kinsta. Lo utiliza Bitbucket Pipelines para iniciar sesión y ejecutar comandos de despliegue.
  • KINSTA_SERVER_IP: Esta es la dirección IP de tu servidor Kinsta. Permite a Bitbucket Pipelines saber a qué servidor conectarse para el despliegue.
  • PORT: Este es el puerto SSH utilizado por tu servidor Kinsta. Los servidores Kinsta utilizan un puerto personalizado, por lo que debes especificarlo aquí. Puedes encontrar estos detalles en la página de Información de tu sitio en tu panel de MyKinsta.

    Detalles STFP/SSH de MyKinsta.
    Detalles STFP/SSH de MyKinsta.

  • SSH_PRIVATE_KEY: Esta es tu clave privada SSH codificada en base64 desde tu máquina local. Bitbucket Pipelines utilizará esta clave para autenticarse en tu servidor Kinsta. Para codificar tu clave privada en base64, ejecuta:
    cat ~/.ssh/id_rsa | base64

    Copia el resultado y añádelo como valor para SSH_PRIVATE_KEY.

Configuración de Bitbucket Pipeline

Ahora, vamos a escribir el archivo de configuración, bitbucket-pipelines.yml, para automatizar los despliegues. Este archivo define el pipeline, especificando cuándo debe ejecutarse, qué comandos ejecutar y cómo conectar con tu servidor Kinsta. Puedes hacerlo localmente en tu IDE.

Aquí tienes la configuración completa:

pipelines:
  branches:
    main:
      - step:
          name: Deploy to Kinsta
          script:
            - pipe: atlassian/ssh-run:0.8.1
              variables:
                SSH_USER: $KINSTA_USERNAME
                SERVER: $KINSTA_SERVER_IP
                PORT: $PORT
                COMMAND: |
                  cd /www/your-site/public &&
                  git fetch origin main &&
                  git reset --hard origin/main
                SSH_KEY: $SSH_PRIVATE_KEY
                DEBUG: 'true'

Un vistazo más detallado a la configuración de este pipeline

Este pipeline está configurado para automatizar los despliegues en tu servidor Kinsta cada vez que haya un nuevo envío a la rama  main. Aquí tienes un desglose de lo que hace cada parte:

  • Activación de pipeline: La sección pipelines está configurada para activarse con los envíos a la rama main. Esto significa que cualquier nuevo commit a main iniciará automáticamente el despliegue.
  • Paso: El paso se denomina «Despliegue en Kinsta» para mayor claridad. Este paso contiene las principales acciones de despliegue.
  • Pipe SSH-run: Utilizamos la atlassian/ssh-run que permite a Bitbucket conectarse a tu servidor Kinsta a través de SSH y ejecutar comandos de forma remota. Este pipe simplifica el proceso de establecer una sesión SSH, ejecutar los comandos y cerrar la sesión, por lo que no es necesario gestionar los detalles SSH manualmente en el script.
  • Comandos de despliegue: El bloque COMMAND contiene los comandos que despliegan el código más reciente en tu sitio de WordPress. Esto es lo que hace cada comando
    • El primer comando navega hasta el directorio en producción donde está alojado WordPress.
    • El segundo comando ejecuta git fetch origin main para extraer el último código de la rama main de Bitbucket.
    • El último comando actualiza el sitio en producción con el último código de la rama principal.

Esta configuración gestiona todos los aspectos del despliegue — desde la conexión a Kinsta hasta la actualización de los archivos de tu sitio — de modo que tu sitio de WordPress en Kinsta se mantendrá actualizado automáticamente con cada envío a main.

Prueba el pipeline

Guarda el archivo bitbucket-pipelines.yml en el directorio raíz de tu repositorio y confirma los cambios. Cuando lo envíes a la rama main, el pipeline se activará automáticamente e iniciará el proceso de despliegue.

Puedes controlar el progreso del despliegue en el panel de Bitbucket Pipelines. Si todo está configurado correctamente, Bitbucket se conectará a tu servidor Kinsta, obtendrá el código más reciente y lo desplegará en tu sitio en producción.

Registros del pipeline de Bitbucket.
Registros del pipeline de Bitbucket.

Para solucionar problemas, comprueba los registros del pipeline en Bitbucket, especialmente si DEBUG está configurado como "true". Los registros proporcionan información detallada sobre cada paso, lo que puede ayudar a identificar cualquier problema de conexión o configuración.

Resumen

Configurar despliegues automatizados desde Bitbucket a Kinsta es una forma eficaz de mantener actualizado tu sitio de WordPress sin la molestia de las actualizaciones manuales. Tras conectar Bitbucket Pipelines y tu servidor Kinsta, cada actualización de tu repositorio se refleja inmediatamente en tu sitio en producción, minimizando el tiempo de inactividad y reduciendo los errores de despliegue.

Recuerda que DevKinsta ofrece una opción más sencilla para los desarrolladores que trabajan solos. DevKinsta te permite enviar tu entorno de desarrollo local directamente a Kinsta con un solo clic, evitando la necesidad de configurar un pipeline. Una ventaja añadida de este enfoque es que también se pueden incluir los cambios en tu base de datos, manteniendo sincronizados sin esfuerzo tanto tu código como tu contenido.

¿Qué te parece este proceso? ¿Tienes preguntas o algún problema? ¡Comparte tu opinión o pregunta en los comentarios a continuación!

Joel Olawanle Kinsta

Joel es un desarrollador Frontend que trabaja en Kinsta como Editor Técnico. Es un formador apasionado enamorado del código abierto y ha escrito más de 200 artículos técnicos, principalmente sobre JavaScript y sus frameworks.