Docker y los permisos en directorios compartidos

He estado jugando bastante con Docker últimamente. He aprendido un montón y he tenido que solucionar varios problemas intentando armar un ambiente real de producción de una aplicación X.

El último problema que tuve fue con los permisos de los famosos volumes o directorios. El asunto es que Docker por defecto al montar el directorio, mantiene los permisos que tiene definido ese directorio en tu máquina host.

Sigue leyendo “Docker y los permisos en directorios compartidos”

Anuncios

Torrent box con Raspberry Pi

deluge_raspberry

Hace ya bastante tiempo que tengo en mi casa una Raspberry Pi como centro de descargas torrent. Anoche, quien sabe por qué, algo salió mal y me veo en la obligación de re-instalar todo nuevamente. Así que bien, voy a aprovechar de documentar y explicar un poco el proceso por si alguien más se anima.

La ventaja de tener una Raspberry Pi en vez de tener tu computador encendido todo el día es enorme: consume ~3W, es silenciosa, no genera calor y se ve bonita. Todo funcionando bajo Raspbian como OS y Deluge como cliente torrent.

QUÉ VAMOS A LOGRAR

  • Tener un cliente torrent siempre on-line listo para descargar
  • Acceso remoto vía web para controlar el cliente torrent con DNS dinámico
  • Realizar las descargas en un disco duro externo para su posterior extracción

REQUISITOS

  • Raspberry Pi
  • Un case bonito. No queremos que se llene de polvo o le caiga algún líquido, cierto?
  • Una fuente de poder de al menos 3A para evitar futuros problemas. Algunos HDD consumen más que otros y si van a conectar otros periféricos a la Raspberry Pi es mejor estar preparados
  • Una tarjeta microSD de al menos 2GB (recomendado >= 4GB)
  • Un HDD externo a elección
  • Una conexión a internet… no me digas

Sigue leyendo “Torrent box con Raspberry Pi”

Docker: Conectarse al servidor MySQL de tu máquina host

Hace unos días empecé a trabajar con Docker para un proyecto personal. Actualmente estoy acostumbrado a trabajar con Vagrant, así que le di la oportunidad a Docker para probar algo nuevo, ya que había leído muy buenos comentarios de esta herramienta.

Lo que voy a detallar a continuación es una nota mental para dejar registro de como finalmente logré conectarme desde un contenedor de Docker a mi servidor MySQL que tengo corriendo en mi máquina local (o host como llaman en el mundo Docker). Perdí muchas horas en esto y no quiero volver a pasar por lo mismo.

Sigue leyendo “Docker: Conectarse al servidor MySQL de tu máquina host”

Barra de progreso al importar o exportar en MySQL

Es muy común importar o exportar una base de datos desde la línea de comandos:

# Exportar una base de datos
mysqldump -u usuario -p nombre_db > db.sql

# Importar una base de datos
mysql -u usuario -p nombre_db < db.sql

Pero muchas veces la DB es tan pesada que toma demasiado tiempo y uno se vuelve un poco paranoico por saber si todo va bien o si falta mucho para que termine. Esta última pregunta se puede responder gracias al comando Pipe-Viewer  pv.

Sigue leyendo “Barra de progreso al importar o exportar en MySQL”

Synergy: comparte tu teclado y mouse en distintos ordenadores

synergy

Hace un año atrás en el trabajo tuvimos que trabajar – valga la redundancia – un par de días desde la casa. La empresa me entregaba un notebook, el cual lo utilizaba en ese entonces con Ubuntu, ya que era un ambiente netamente de desarrollo. Recuerdo que el primer día al llegar a casa e instalar el notebook, lo primero que hice fue conectar el teclado y mouse de mi computador de escritorio al notebook. Es ahí cuando recuerdo que el notebook de los 2 puertos USB que tenía, uno estaba malo – bueno, luego lo arreglé – por lo que sólo podía conectar o el teclado o el mouse. Ya que no me gustaba como funcionaba del trackpad, conecté solo el teclado. Hasta ahí, todo bien…. por unos minutos.

Sigue leyendo “Synergy: comparte tu teclado y mouse en distintos ordenadores”

Añadir firmas de correo automáticamente en Postfix

En la actualidad, estoy a cargo del sitio de la empresa de mi madre, que más bien es una empresa familiar donde cada uno ayuda cuando y como puede. El sitio tiene muy poco flujo y comparte servidor con la Comunidad de Laravel en Español. Para los que no saben, este servidor es un VPS alojado en DigitalOcean en el cual tengo instalado zPanel, un panel de web-hosting gratuito  – creo que ya está muerto, ahora existe un fork llamado Sentora -. Pero bien, el tema puntual era que mi madre y las otras persona con las que trabaja, no tenían una firma oficial de la empresa y cada uno se creaba la suya, a gusto propio. Me encargó la tarea de poder tener una firma con el mismo formato para todos. Ella lo veía simple, crear la firma y ya está… pero yo no. En el caso de mi madre, ella utiliza el cliente de correos de su celular, el cliente de correos en su portátil y el cliente web cuando está en otra computadora. Como ella no es muy amiga de la tecnología, no puedo sólo enviarle el HTML de la firma y decirle “ahí va la firma, mamá, la configuras y ya está“. De seguro me llamaría devuelta diciendo que no tiene idea de como hacer eso y que vaya a la casa cuando pueda a ayudarle y configurar sus 3 clientes de correo. Si multiplicamos eso por la cantidad de gente que trabaja en la empresa, se convierte en un infierno.

Como no es primera vez que me sucede algo así, me puse a investigar una forma en la que nadie tenga que configurar nada y que toda la magia se produzca en el servidor. Si alguien de la empresa envía un correo, éste llega al servidor, identifica al remitente, busca la firma correspondiente y la añade al final del mensaje. Recuerdo haber intentando hacerlo hace unos 6 meses, pero luego de investigar un par de días no encontré nada de información útil como punto de partida. Pero como ahora ya me lo estaban pidiendo, no quedó remedio que darle otra vuelta o perder mucho tiempo configurando clientes de correos de cada una de las personas que trabaja con mi madre.

Sigue leyendo “Añadir firmas de correo automáticamente en Postfix”

Cygwin: Abrir consola desde el menú contextual

Suponiendo que han seguido los otros post respecto a Cygwin, esta vez vengo a compartir una forma de poder abrir rápidamente una ventana de ConsoleZ desde un directorio haciendo clic derecho.

Muchos sabrán que Windows por defecto incluye esta opción en el menú contextual, pero de manera oculta. Basta presionar Shift + clic derecho sobre una carpeta o dentro de un espacio vacío en la ventana de una carpeta para que en el menú contextual se despliegue una opción llamada “Open command window here” o “Abrir ventana de comandos aquí” (o similar).

win-contextual-command-prompt

Bien, mi idea, más bien deseo era poder hacer lo mismo pero en ConsoleZ, y que si tenía abierta la consola, me agregará la nueva consola en una nueva pestaña. Hace unos buenos meses encontré la solución y la vengo ocupando desde entonces, por lo que la comparto con ustedes y la dejo como documentación para mi uso propio.

Sigue leyendo “Cygwin: Abrir consola desde el menú contextual”

Importar/exportar base de datos MySQL con gzip

Encontré este truco buscando un atajo para poder importar una base de datos MyQSL que estaba en formato gzip, y por casualidad me sirvió para un caso en que estaba en un servidor donde debía exportar una base de datos y no tenía espacio suficiente en el disco. Estos comandos me permitieron comprimir y descomprimir la base de datos, que bien todos sabemos, comprimida en gzip su tamaño disminuye enormemente. Entonces:

Para exportar

mysqldump -u user -p database | gzip > database.sql.gz

Para importar

gunzip < database.sql.gz | mysql -u user -p database

Fuente: Using gzip and gunzip with mysql to import/export backups

Cygwin: integración con Sublime Text y algunos tips

En este tercer post respecto a Cygwin, voy a compartir un par de cosas que he aprendido, y como integrar Cygwin dentro de Sublime Text para poder abrir una consola dentro del directorio del proyecto que estamos trabajando de manera automática.

Antes de seguir adelante, si no conocen Cygwin, les recomiendo revisar mis dos entradas anteriores al respecto:

Sigue leyendo “Cygwin: integración con Sublime Text y algunos tips”

Editar archivos remotamente en Sublime Text vía SSH

Soy bien amigo de nano para ediciones rápidas de archivos en el servidor, pero muchas veces me quedaba corto. En especial cuando las ediciones se volvían más complejas y tenías que saltar de una línea a otra. Se supone que este tipo de cambios y parches no se deberían realizar nunca en el servidor y menos en producción, pero soy sincero, muchas veces el tiempo apremia y lo hago (shame on me). También, hay otros casos en los cuales se editan archivos de configuración del servidor, que suelen ser de un largo considerable, y uno echa de menos trabajarlos sobre un editor que te haga la vida más fácil como Sublime Text.

Y bien, para estos casos encontré navegando (de forma desesperada) una solución que me cayó como anillo al dedo: rmate.

Sigue leyendo “Editar archivos remotamente en Sublime Text vía SSH”