Es muy probable que tengas plugins o themes para clientes que no son públicos, o código que usas para alguno de tus sitios, que está en Github, y que quieres que se haga un deploy de forma automática.
Este tutorial ha sido creado en un VPS de Clouding.io. Puedes crear tu propio VPS desde 3€/mes.
Además, tienes la posibilidad de crear tu VPS con la imagen de WordPress en un clic.
COLABORACIÓN
Lo primero que necesitamos es un repositorio en Github (o Gitlab).

Esta plataforma, en su sección de Settings
incluye una subsección llamada Deploy keys
.

Para añadir una nueva clave necesitaremos ponerle un nombre e incluir su clave.
Así que lo primero que hemos de hacer es ir al servidor donde vamos a publicar el contenido de repositorio y crear una.
Entraremos por SSH en el servidor de la web y crearemos una clave. Por favor, revisa la cuenta de correo y pon la tuya (es recomendable que sea la misma de Github).
ssh-keygen -t rsa -b 4096 -C wordpress@example.com
Primero te preguntará dónde quieres dejar tu clave (puedes dejarla en la carpeta que te recomiende) o crear una clave para tu plugin en concreto (vamos a usar /root/.ssh/mi-plugin.id_rsa
)
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Posteriormente te pedirá una contraseña. En este caso no pondremos ninguna. El propio servidor será la contraseña.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Esto creará tu clave y la guardará, generando dos ficheros, la clave privada (id_rsa
) y la clave pública (id_rsa.pub
).
Your identification has been saved in /root/.ssh/mi-plugin.id_rsa
Your public key has been saved in /root/.ssh/mi-plugin.id_rsa.pub
Finalmente se generará un identificador único:
The key fingerprint is:
SHA256:0c7GNvve9cXvzZ0uCcyXncAVNHZXCmumyWLGbXbUuHg wordpress@example.com
Puedes revisar que se han creado las dos. Primero veremos la clave privada.
cat /root/.ssh/mi-plugin.id_rsa
Y posteriormente la clave pública.
cat /root/.ssh/mi-plugin.id_rsa.pub
Este último código que aparece por pantalla es el que deberemos incluir en Github. Para ello, en el Add new Deploy key
, pondremos un nombre (por ejemplo, Plugin mi-plugin en servidor1).
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDMCNTqCtJEAQGnIgFlzeATKvAyezbbSOO0Di7NlRIpVsqm2zGoygnGlLIvLXzIs5IzAGwWLHJkdK8Pm5KvbgrToH2eq1BI8pfpFcI4HwiyjV871QzGcpJbtXnj6tRkmp2eJeFBVdZn8gFfIhlKW8n94yQLQb8OTEm57yiBxPpx97tsT/AAOM/q2KC+KACb1cve31dVAA6vkzOA47curc008iRslWLRdM7ybT/1gUWMmI/10329kYZscd0ZDFtdpfz99Z+Jz0BN/3O6OrUtYmMQKXOGoGTL10n/W9E8KjPzXB4u7tHzzCOIF1tqUD/vhn7CksT25/Pi82jX3aFJh55WuUObtBCd9oRwcF8Th1VZLaV3WEpzroZu1b883rdMDo1+O96lK17zz2oEGZ7OOmm03bnpSdY1/5js/WmdQ7LYnh9tSroSFGVighcrgwPmiJbLXAYWBB79eVqSjt0pX50igl3BnToQy0d5o2ZgrpnPP77RrTlwmCqQxw5H+uR2FH0nKvP8IWTcYHmAeWiajzPo0rhvy8HV2Hvi4seXmpDWax90KB1QdzsHNWIu0gH1OExY2ibcrlRFuaSsfAh0JH6UJSvFfjRt9LYFAb92gwJ/V/82x1GOVNjxLjgrTfxFL3k2trgwFxzioRf7mQveaRChR8IpO7tyc3/kH5mfv/ECRw== wordpress@example.com
Es importante que no marquemos la opción de Modo escritura
, ya que no es el objetivo de esta clave, que es sólo lectura.
Lo siguiente que haremos es añadir una configuración en el servidor.
vim ~/.ssh/config
E incluiremos algo tal que así.
Host mi-plugin
Hostname github.com
User git
IdentityFile /root/.ssh/mi-plugin.id_rsa
IdentitiesOnly yes
Iremos a la carpeta del sitio web en el que queremos hacer el deploy.
cd /webs/www.example.com/wp-content/plugins/
Y lanzaremos la primera sincronización.
git clone git@mi-plugin:wpsysadmin/mi-plugin.git carpeta-plugin
Deberemos aceptar la primera conexión para que se guarde la confianza entre los servidores.
Una vez acabado, veremos que hay una carpeta creada, tal y como la hemos llamado previamente.
cd carpeta-plugin/
Allí tendremos ya la primera descarga del repositorio.
A partir de aquí, podemos actualizar ejecutando, en esa carpeta, la siguiente llamada.
git pull origin main
A partir de aquí se puede plantear automatizar la descarga y sincronización según se necesite.
Sobre este documento
Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.