Tutorial Raspberry Pi - Cómo publicar una web mediante Git

Tutorial Raspberry Pi - Cómo publicar una web mediante Git

Después instalar la Raspberry Pi, montar nuestro servidor, y trastear un poco con él, puede que se nos ocurra montar nuestra propia web.

Ya que desde Geeky Theory os recomendamos siempre buenas prácticas, en este tutorial os enseñamos cómo desarrollar y publicar nuestra web con Git.

La idea es que en desarrollo (on-line) nunca se debe editar nada, se debe hacer en local y sólo subir los cambios cuando realmente esté todo listo. Esto lo podemos hacer muy cómodamente creando un repositorio dentro de nuestra Raspberry Pi.

Antes de nada, si no lo tenemos ya, instalamos Git:

sudo apt-get install git-core
Como recomendación, cread un usuario para el repositorio, no utilicéis vuestro acceso. En nuestro caso lo llamaremos "git".

Yo prefiero tener el repositorio dentro del home de ese usuario, y luego publicarlo en el servidor automáticamente en cada commit. Creamos un directorio dentro del home y generamos un repositorio vacío:

cd /home/git/
mkdir miweb.git
cd miweb.git
git init --bare

Ya tenemos nuestro repositorio creado, ahora vamos a hacer que se publiquen directamente los cambios a la raíz del servidor (que si usamos Apache por ejemplo, estará en "/var/www").

cd /hooks/
sudo nano post-receive
Y añadimos lo siguiente:
#!/bin/sh
GIT_WORK_TREE=/var/www git checkout -f
Nos aseguramos que tenga los permisos correspondientes:
chmod +x post-receive

Ahora solamente tendremos que añadir el repositorio a nuestro gestor Git local. Si utilizáis un gestor gráfico añadirlo con "git@urldelserver.com:miweb.git" o si preferís la consola:

 git remote add production git@urldelserver.com:miweb.git
 git push production +master:refs/heads/master

De aquí en adelante los cambios los haremos en nuestro ordenador, y publicaremos nuestra web haciendo push de los cambios.

3 comentarios


faker16972 · Hace 1 año

Si añado "#!/bin/sh GIT_WORK_TREE=/var/www git checkout -f" Eso afectaría a todos los repositorios? Porque quiero hacer este repositorio conjuntamente con otros para proyectos. Pero este trabajar en la carpeta var www, y el resto en sus carpetas respectivas.

Alex · Hace 2 años

Y si alguien va a utilizar gitweb/cgit, cgit es mucho más rápido de acuerdo con esta benchmark: http://blog.everpi.net/2014/04/raspberry-pi-git-cgit-gitweb-benchmark.html

Sebas; · Hace 3 años

La idea es buena, pero hay que remarcar que esto se puede hacer en cualqueir server, no tiene porque ir ligado a un Raspberry (este tutorial por ejemplo se limita a Debian, pero puede aplicarse en cualquier otro entorno Linux). También habría que remarcar que esto está bien para trastear y hacer pruebas locales, pero que a ningún mortal se le ocurra utilizar esta técnica para un servidor de producción. Ya lo habéis dicho en la entrada, pero lo remarcaría aún más y lo grabaría con fuego. Otra cosa que estaría bien, sería indicar que se puede crear un alias en el httpd.conf del apache, de forma que se aplique el directorio que quiera el usuario, sin necesidad de publicar sí o sí en el directorio /var/www Saludos :-)

Miguel Catalan Bañuls · Hace 3 años

Buenas Sebas, tienes toda la razón, lo he puesto en la sección de Raspberry porque he utilizado la mía para hacer el tutorial, pero como bien dices funcionaria para cualquier Debian. Publicar a producción con Git es más que recomendable, pero por supuesto, habría que añadir bastantes matizaciones, como darle bastante cera al tema de seguridad, de la misma manera que aprovechar diferentes ramas y un largo etc. Lo del alias está estupendo, pero siempre intento simplificar al máximo los tutoriales. Un saludo =D

Deja un comentario