582 - De mudanzas con WordPress, Docker y Traefik
Sobre como cambiar un hosting #wordpress por un #vps con #docker y #traefik de una manera sencilla para exprimir al máximo el mundo #selfhosted
Actualmente tengo algunos sitios alojados en hosting WordPress, y otros en distintos proveedores. Uno de los que me quedan todavía es precisamente este sitio que estás leyendo. Sin embargo, la mudanza de este sitio, la dejo para el mes de Mayo, es desde luego el que mas miedo me da, pero mas que nada por el SEO, incluso te diría que me da algo de morriña. Pero vamos, en Junio estaremos en un nuevo sitio. Así, en esta primera parte de migraciones te voy a intentar contar como han ido las mudanzas con WordPress, Docker y Traefik a un nuevo hogar.
De mudanzas con WordPress, Docker y Traefik
Sobre la situación actual
Actualmente tengo varios sitios alojados en contenedores, pero todavía me quedan algunos otros en distintas situaciones. En concreto en dos situaciones diferentes.
Hosting WordPress
Por un lado, uno de los dos está en un hosting WordPress. Es decir, toda la parte de la infraestructura la gestiona el proveedor. Esto es una ventaja y una desventaja. La cuestión es que esto es algo mas caro que utilizar un VPS. Mejor dicho, tiene un precio mas alto. Y este precio mas alto se justifica porque te dan un servicio adicional.
Aquí no hay magia, a partir de ahora este servicio en lugar de darlo el proveedor, lo voy a dar yo. Es decir, que no ahorramos mucho, porque el tiempo es el que invierto yo en realizar el mantenimiento.
Sin embargo, tenemos la ventaja de que podemos hacer muchas mas cosas. Podemos añadir otros servicios complementarios, como puede ser un servicio de analítica web propio, sin depender de un tercero, un alojamiento sencillo para los archivos y mas servicios que nos van a dar muchas mas posibilidades.
Sin Docker
Por otro lado, el otro está alojado en otro proveedor y montado sobre la propia máquina, es decir, tiene MariaDB, y PHP directo. El objetivo es simplificar el proceso de mantenimiento y meterlo en un contenedor Docker. Realmente serán varios contenedores Docker al igual que en el caso anterior.
Si te preguntas porque cambio de un proveedor a otro, es simplemente por precio y prestaciones. El proveedor que utilizo habitualmente tiene mejores prestaciones a un precio menor, con lo que blanco y en botella.
Sobre el cambio
Para realizar el cambio, en ambos casos he utilizado un plugin de WordPress, conocido como Duplicator que realmente me ha puesto las cosas bastante fáciles, al menos en el primero de los dos que tenía un tamaño de 350 MB aproximadamente.
En este primer caso, el problema ha sido al reconstruir con Duplicator, que intenta escribir en el config.php
y no ha podido ser. Sin embargo, he cambiado los credenciales, de acceso a la base de datos y todo ha arrancado de maravilla.
En el segundo de los casos con casi 4 GB, la cuestión se está complicando. Sin embargo, como está en un VPS, simplemente he hecho un dump de la base de datos, y copia de archivos para llevarla al otro VPS.
La instalación
Aquí viene el primer problema con la instalación, y es que al contrario de lo que me sucede habitualmente, en este caso han tardado un par de días en darme los dos VPS. No se exactamente cual ha sido la razón para esto.
El siguiente problema ha sido el acceso. No tengo claro si me he equivocado con la contraseña o con el usuario o con que, pero lo cierto es que me ha bloqueado y no podía acceder a ninguno de los nuevos servidores, y sin embargo, si que podía acceder a los otros VPS que ya tengo configurados. Algo muy raro, entiendo que ha sido un bloqueo a nivel del propio proveedor. Por un momento, estaba bastante despistado, y no sabía que hacer.
Sin embargo, en un momento de lucidez he caído que podía acceder desde otro de los VPS que tengo, porque lo que estaba baneado era la IP. Y efectivamente esa ha sido la solución. Desde otro de los VPS que tengo he accedido y he comenzado con las tareas habituales,
- Crear un usuario por defecto.
- Copiar la clave pública al servidor para acceder con clave público privada.
- Modificar la configuración para restringir el acceso con contraseña, y algunas cuestiones similares, que dificultan el acceso.
- Configurar y habilitar el firewall, para dejar solo abiertos el puerto 80 y el 443.
A Docker
Lo siguiente ha sido, por supuesto, instalar Docker. Aquí como hacía mucho tiempo que no lo hacía me he llevado alguna sorpresa. Te dejo a continuación los pasos que he seguido para hacerlo.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt upgrade
sudo apt-cache policy docker-ce
sudo apt install docker-ce
sudo usermod -aG docker ${USER}
su - ${USER}
exit
Y con esto ya tenía instalado Docker
y también su plugin compose
. Porque recuerda que ahora compose