Subiendo directorios vacíos en Git

Blue Corvette interior

Una de las características de Git es que, por defecto, los directorios vacíos no forman parte del repositorio y, por lo tanto, son silenciosamente descartados por operaciones como commit o push.

Incluso en los casos en que un directorio que previamente formaba parte de un repositorio pierda todo su contenido, este directorio directorio es silenciosamente eliminado del repositorio y no será creado en futuras operaciones de clonación.
Continuar leyendo “Subiendo directorios vacíos en Git”

Ubicar ficheros abiertos por un proceso

Indian bike

Configurando un sistema comencé a recibir errores como el siguiente:

syslog-ng[1091]: Error suspend timeout has elapsed, attempting to write again; fd='11'

El problema era que el proceso de syslog no era capaz de escribir sobre el fichero que había abierto con el file descriptor 11 pero no tenía referencias acerca de cuál era ese fichero como para comprobar por qué se producía el error.
Continuar leyendo “Ubicar ficheros abiertos por un proceso”

Captura de paquetes WiFi en Linux

Martillo hidráulico

Como explican el wiki de Wireshark, en el modo normal de funcionamiento, la captura de tráfico a través de interfaces WiFi se encuentra filtrada por el hardware que implementa el protocolo IEEE 802.11, quedando restringida al SSID en el que nos encontremos asociados y, dentro de ese SSID, a los paquetes dirigidos hacia la dirección MAC de nuestro interfaz, más los paquetes dirigidos a los grupos multicast a los que nuestro equipo se haya asociado y a los paquetes de tipo broadcast.
En el caso que necesitemos analizar el tráfico completo(packet sniffing) de un canal WiFi deberemos reconfigurar el interfaz en modo monitor como se muestra a continuación.
Continuar leyendo “Captura de paquetes WiFi en Linux”

Visualización de ficheros markdown desde GitWeb

Miles Falcon Six M3C

Los usuarios de GitHub están acostumbrados a escribir un fichero README.md en la raíz del repositorio que se visualiza desde la web proporcionando información del proyecto.

La extensión .md del proyecto indica que el mismo está escrito con el lenguaje de marcación Markdown (para más detalles, consultar esta guía rápida sobre uso del lenguaje Markdown).

Dado que tengo mi propio servicio de repositorios Git, quería incorporarle mi propio procesador de ficheros markdown e integrarlo con la consulta vía GitWeb. Por suerte, encontré este hack de Stack Overflow que me dió todas las pistas para conseguirlo.
Continuar leyendo “Visualización de ficheros markdown desde GitWeb”

Visualizando los repositorios Git mediante GitWeb

HA-220 Super Saeta

GitWeb es una aplicación web que permite visualizar los repositorios Git publicados en un servidor.
En este tutorial se muestra la configuración de GitWeb compatible con las instalaciones desarrolladas en Cómo instalar un servidor Git sobre Nginx e Instalar servidor para el protocolo Git. Esto quiere decir que los usuarios que posean credenciales válidas para el servidor podrán acceder a la consulta de la totalidad de los repositorios mediante la URL https://crossforests.com/gitweb mientras que el resto de los usuarios podrá consultar únicamente los repositorios públicos mediante la URL https://crossforests.com/gitweb (nótese que en un caso se utiliza el protocolo seguro HTTPS mientras que en el otro el acceso es vía HTTP) como se muestra en el ejemplo a continuación:

Continuar leyendo “Visualizando los repositorios Git mediante GitWeb”

Cómo instalar un servidor Git sobre Nginx

North American T-6 Texan

Así es como he incluido un repositorio Git en mi servidor web sobre Nginx.
Para este tutorial se utilizará un servidor genérico configurado para el dominio example.org.

En mi caso particular utilicé de base el servidor WordPress instalado según el tutorial cómo instalar wordpress sobre nginx y gestionando los certificados como se muestra en certificados HTTPS gratuitos con let’s encrypt.

El servicio resultante permite el acceso seguro vía HTTPS restringido a usuarios autenticados. Los usuarios validados poseerán permisos de lectura y escritura sobre todos los repositorios del servidor.

Adicionalmente, se define un área /pub donde los repositorios alojados dentro de esa área son también publicados con el protocolo HTTP para usuarios anónimos aunque, los usuarios que acceden vía HTTP, sólo poseerán permisos de lectura sobre los repositorios así publicados.
Continuar leyendo “Cómo instalar un servidor Git sobre Nginx”