Juan Pablo Prado

Software Engineer

  • Home
  • About
  • Contact

Connect

  • Github
  • Linkedin
  • Twitter

Juan Pablo Prado © 2021

Backups Automáticos para tu sitio WordPress

septiembre 17, 2016 By Juan Prado 2 Comments

Es esencial realizar copias de seguridad con regularidad. Es inevitable que en algún momento en el futuro tendrás que restaurar la base de datos – ya sea debido a un error del usuario, corrupción o una violación de seguridad. Nunca se sabe lo que podría salir mal, por lo que tener una copia de seguridad reciente a la mano realmente puede hacernos la vida más fácil.

Yo en lo personal realizo las copias de seguridad de un solo sitio todos los lunes por la mañana, pero es posible que desees realizarlas con mayor frecuencia dependiendo de que tan seguido se actualiza el contenido de tu sitio.

Para configurar las copias de seguridad de un solo sitio, primero creamos un nuevo directorio dentro del directorio raíz del sitio.

sudo mkdir backups
sudo chown -R $USER:$USER /var/www/backups

Notarás lo limpio que se ve la estructura del directorio.

backup1

Ahora crearemos un archivo nuevo llamado backup.sh.

sudo nano backup.sh

Pega el siguiente contenido en el archivo, Asegurándote de actualizar el path apuntando a tu sitio.

Presiona Ctrl X seguido de Y para guardar el archivo.

sudo chown -R $USER:$USER backup.sh

backup2

Asegúrate de que el archivo recién creado tiene permisos de ejecución.

chmod u+x backup.sh

El último paso es programar el backup script para correr a una hora determinada. Comencemos abriendo el crontab.

crontab -e

Agrega la siguiente línea al final del archivo.

0 5 * * 0 sh /var/www/backup.sh

Esto ejecutará las copias de seguridad cada lunes por la mañana a las 05:00, hora del servidor. Con esto estamos listo para el día del juicio. Si manejas las copias de seguridad de manera diferente, házmelo saber en los comentarios.

Filed Under: Uncategorized Tagged With: Backup, Cron, Digital Ocean, Hosting, Linode, Linux, Server, Ubuntu, WordPress, WordPress Development Tips

Cómo configurar una Implementación Automática con Git y un VPS

septiembre 11, 2016 By Juan Prado Leave a Comment

A photo by Steven Wei. unsplash.com/photos/g-AklIvI1aI

Introducción

En esta guía, vamos a explorar la idea de los hooks en Git y demostrar cómo configurar una Implementación Automática con Git y un VPS. Vamos a utilizar un servidor Ubuntu 16.04, esto funcionara de una manera muy similar con cualquier sistema que pueda ejecutar comandos Git.

Cuando se utiliza Git, generalmente el flujo de trabajo es solamente hacia el control de versiones. Tienes un repositorio local en el cual trabajas y un repositorio remoto en el que se mantiene todo sincronizado y puedes trabajar con un equipo y máquinas diferentes. Solo que también se puede utilizar Git para mover nuestra aplicación a producción.

Configuración del servidor

Nuestro espacio de trabajo ficticio:

Directorio de tu servidor en vivo: /var/www/html

Tu repositorio del servidor: /var/repo/site.git

¿Qué debemos hacer si queremos hacer push a site.git y que al mismo tiempo, todo el contenido este disponible en /var/www/html?

Creando nuestro repositorio

Inicia sesión a tu VPS desde la línea de comandos y escribe lo siguiente (asegúrate de no estar conectado como root):

cd /var
sudo mkdir repo && cd repo
sudo mkdir site.git && cd site.git
sudo git init --bare

--bare significa que nuestra carpeta no tendrá código fuente, sólo el control de versiones.

 sudo chown -R $USER:$USER /var/repo/site.git

$USER es la variable de entorno del usuario con el que hemos iniciado sesión.

Hooks

Los repos en Git tiene una carpeta llamada hooks. Esta carpeta contiene algunos archivos de ejemplo para posibles acciones que se pueden enganchar y llevar a cabo acciones personalizadas establecidas por ti.

La documentación de Git define tres posibles hooks de servidor: pre-receive, post-receive y update.

  • pre-receive es ejecutado tan pronto como el servidor recibe un push
  • update es similar pero se ejecuta una vez para cada rama
  • post-receive se ejecuta cuando un push está completamente terminado. Y es este el que nos interesa.

En nuestro repositorio:

ls -F

Verás algunos archivos y carpetas, incluyendo la carpeta hooks, iremos a esa carpeta:

cd hooks

Ahora, creemos el archivo post-receive escribiendo:

cat > post-receive

Cuando ejecutas este comando, tendrás un línea en blanco indicando que todo lo que escribas se guardará en este archivo. Así que escribamos:

#!/bin/sh
git --work-tree=/var/www/html --git-dir=/var/repo/site.git checkout -f

-f Cuando se cambia de ramas, continua incluso si el índice o el árbol de trabajo difiere de HEAD. Esto se utiliza para tirar a la basura los cambios locales.

Cuando hayas terminado de escribir, presione “Control-D ‘para guardar. Con el fin de ejecutar el archivo, tenemos que establecer los permisos apropiados que utilizan:

chmod +x post-receive

Se puede ver en la documentación que git-dir es la ruta de acceso al repositorio. Con work-tree, se puede definir un camino diferente a donde los archivos serán transferidos.

El archivo post-receive se ejecuta cada vez que se completa un push y está diciendo que los archivos deben estar en /var/www/html.

Máquina local

Si estás dentro de un VPS, simplemente escribe:

exit

Dentro de tu repo local Git, dile a Git que agregue un remote llamado live:

git remote add live ssh://user@example.com/var/repo/site.git

Para verificar que el remote se agrego, escribe:

git remote --verbose

Y cuando decidas hacer push al servidor live, simplemente:

git push live master

Conclusion

Ahora puedes hacer push a live cuando quieras hacer deploy de tu aplicación y continuar haciendo push a tu repo remoto GitHub sin ningún problema, comunmente mediante git push origin master

Filed Under: Uncategorized

Dropwizard 1.0.0

septiembre 5, 2016 By Juan Prado Leave a Comment

dropwizard-things

Dropwizard siempre se vendió como un conjunto de librerías maduras… Desde hace poco tiempo lanzaron la versión 1.0.0, con lo cual ya puedes optar con más seguridad a usar Dropwizard en tus proyectos como una alternativa a Spring Boot, dicho eso, hay un proyecto que puede interesarte si quieres desarrollar una JSON API, el proyecto se llama Elide y se encuentra en GitHub, viene de la mano de los desarrolladores en Yahoo.

Ahora te presento una opción más, JSON Schema, existe un módulo que soporta la creación de JSON Schema(v3) para Jackson, me llamo la atención por que viene de la persona que desarrollo Jackson, así que puedes echarle un vistazo aquí.

Mientras tanto explora algunas de las especificaciones:

  • HAL Specification
  • ALPS spec
  • JSON Schema

Próximamente veremos qué es y cómo hacer uso de JSON Schema.

Filed Under: Uncategorized

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Next Page »

Categorías

  • Uncategorized