Comprobar registro TXT _acme-challenge desde la terminal de nuestro Linux o Mac

Si estamos instalando un SSL con let’s encrypt y nos pide que añadamos a las DNS el registro _acme-challenge de tipo TXT.

Solamente con abrir la terminal y teclear (cambiando «nuestrodominio.com» pos nuestro dominio):

Si es correcto nos devolverá nuestro registro:


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Borrar un certificado Certbot

Tan solo tenemos que ejecutar en consola:

Y nos devolverá nuestra lista de certificados:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

Which certificate(s) would you like to delete?
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: ejemplo.com-0001
2: ejemplodos.com
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter ‘c’ to cancel): 1

Seleccionamos el número que queremos y pulsamos «Enter».


También podríamos ejecutar directamente:

Y listo!


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Contar las letras que aparecen en un string con Javascript

Si queremos contar las letras que aparecen en una cadena de texto con Javascript podemos utilizar la siguiente función:

Podemos verlo funcionando y probar cosas en:


Si no quisiéramos diferenciar las minúsculas de las mayúsculas deberíamos añadir «.toLowerCase()» :


Si no quisiésemos contar los espacios podemos hacerlo de varias maneras, por ejemplo, podríamos eliminar todos los espacios antes de empezar a recorrer la frase con

Nos quedaría:


Un ejemplo de uso de la función sería:

En el primer ejemplo los devolvería el siguiente objeto:

Saludosss!


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Solucionar 413 Request Entity Too Large Nginx

Este error es provocado porque el servidor intenta servir un archivo más grande de lo «seteado».

Para ello editamos el archivo de conf de Nginx con:

Dentro de http añadimos (donde 100M será el tamaño que nosotros necesitemos. Si queremos deshabilitarlo podemos introducir un «0«):

Nos quedaría algo:

(Los 3 puntos sería el resto del archivo y de nuestras configuraciones)

Y reiniciaremos el servicio:


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Instalar SSL en nginx – Let’s Encrypt y Ubuntu

Si queremos añadir un nuevo certificado SSL a nuestro servidor nginx debemos seguir los siguientes pasos:

Primero añadimos certbot al repositorio de nuestro linux:

Hacemos un update de los respositorios:

Instalamos certbot en nuestro Linux:

Creamos el certificado para el sitio que queramos:

Si no lo hemos seleccionado automáticamente a la hora de crear el certificado, lo deberemos editar manualmente de los sites-available (no está explicado aquí porque este minipost se basa en instalar SSL, nada más).

Reiniciamos nginx y a funcionar:

Probamos a ver si se renueva automáticamente:

Si es así lo añadimos a nuestro crontab (con sudo)

Y añadimos la linea:


Más info sobre certbot: https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx
Más info sobre Let’s Encrypt: https://letsencrypt.org/es/


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Utilizar ZSH en Mac OS X

Buenasss…

Por defecto Catalina ya trabaja con ZSH en lugar de BASH como la shell por defecto así que si tenemos a Catalina no debemos de hacer nada, ya estaremos trabajando con ZSH, pero, en el caso que esto no sea así, en macOS ya viene instalado ZSH por defecto.

Si no sabemos qué está ejecutando por defecto podemos comprobarlo ejecutando «echo $0» como expliqué en el post de «Mi terminal ejecuta bash o zsh»

No me extenderé mucho en las mejoras que trae zsh frente a bash porque hay miles de posts que lo explican mucho mejor que yo.

Si abrimos las preferencias de la app Terminal.app, en la pestaña «General» veremos con qué se abre la Shell, o por omisión o por comando. Si queremos utilizar zsh deberemos seleccionar la opción «Comando (ruta completa)» y poner la ruta

En cambio, si queremos que la terminal utilice bash introduciremos la ruta:

*Quizás, por algún motivo no tengamos bash o zsh en la ruta que he descrito antes, en este caso, ejecutad por consola «which bash» o «which zsh» y os devolverá el path que tendréis que poner.


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Recibir menos emails de Odoo 12

Si somos admins de Odoo 12 y estamos cansados de recibir emails / notificaciones de correo de cada acción que hacen nuestros empleados podemos deshabilitar el envío de emails. ¿Cómo?

Eligiendo «Manejo por Odoo» en las preferencias de email.

Click en nuestro usuario (arriba a la derecha) > Preferencias > Preferencias de email > Gestión de notificación > Manejo por Odoo


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Sockets io con SSL, Apache, Ubuntu

Primero desplegamos nuestro servidor de Sockets.io Node con Node.

Escenario:

La app de node sale por el puerto 8101.
Partimos de que tenemos el SSL correctamente configurado con Let’s Encrypt.
PHP 5.6
Apache/2.4.29 (Ubuntu)

Lo que vamos a hacer es redirigir mediante Apache proxy el tráfico del puerto 443 (SSL) al puerto 8101 (Por donde sale nuestro server de Node).

Para ellos, desplegamos nuestra app de Node en nuestro servidor y la corremos (Enlace para correr nuestro servidor de Node en segundo plano en nuestro Linux).

Clonamos nuestra app node desde nuestro repositorio:

Nos dirigimos a nuestro directorio:

Instalamos dependencias:

Arrancamos nuestra app con Forever (Tutorial en el link del párrafo anterior):

Creamos el sitio en apache:

Y escribimos en este (cambiando el puerto 8101 por el que nosotros saquemos nuestro servidor de Node/Sockets):

Comprobamos que la sintaxis de nuestro sitio es correcta con:

Nos debería de responder: Syntax OK

Habilitamos el sitio:

Nos cercionamos que tenemos los siguientes módulos de Apache habilitados:

ssl
headers
proxy
proxy_http
proxy_wstunnel

Podemos listarlos con:

O podemos habilitarlos:

En caso de que ya estuvieran habilitados, no pasaría nada. Apache nos avisaría que ya está «enabled» y a marchar.

Reiniciamos nuestro apache:

Y a funcionar!

En caso de fallo, podemos pegarle un vistazo a Log, seguramente nos arroje algo de luz:


NOTA:

El cliente Socket se conectaría de la siguiente manera:

No apuntaríamos al puerto por el que sale nuestra app de node (8101 en mi caso), ya que estamos redirigiendo el tráfico del 443 (ssl) al 8101 para nuestro subdominio de sockets.

También sería válido:

Saludossss 💃🏻


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Correr una aplicación de node en background, Linux

De manera «nativa» podemos ejecutar nuestra app de node en linux con nohup.

Pero tenemos una magnifica tool de para node llamada Forever (https://github.com/foreversd/forever). Lo instalaremos mediante:

Y os dejo algunos comandos básicos.

Para iniciar la app:

Pararla:

Reiniciar:

Etc etc…

Para ver las apps en ejecución:

Para ver más:


Para parar procesos de Node podemos…

Buscar procesos de node:

Matar el proceso por su número de PID:


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Que cada subdomino de Odoo 12 apunte a una base de datos

Esta es para mi la guía definitiva de cómo tener varios Odoo’s o bases de datos de Odoo bajo nombre de dominio diferente.

Partimos del escenario en el que las bases de datos que tenemos son:

ejemplo_erp
erp_demo

Vamos a trabajar con el dominio erp_demo, haríamos lo mismo para erp_ejemplo

En el en el archivo de odoo.conf tenemos que modificar los siguiente parámetros: db_name, dbfilter y proxy_mode:

Si no sabemos donde se encuentra el archivo podemos buscarlo con

Y editamos el archivo:

Los parámetros de mi instalación de Odoo (y funcionando) eran:

db_name = False
dbfilter =
proxy_mode = false

Los modificamos a:

db_name = False
dbfilter = %d
proxy_mode = True

En algunos casos recomiendan utilizar para dbfilter la expresión regular:

dbfilter = ^%d$

A mi, solo con %d me funciona.

dbfilter = %d

En el archivo rc.local no tengo ninguna redirección, sería conveniente que le peguéis un ojo por si alguna redirección está actuando por ahí.

Para leer el archivo:

Creamos el certificado SSL para nuestro nuevo subdominio:

Mas info en al web de certbot: https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx

Bien, vayamos para NGINX!

Creamos o editamos el sitio web:

Y escribimos:

No olvidemos editar el server_name de los dos «server» Y la ubicación de los certificados de letsencrypt en los parámetros ssl_certificate, ssl_certificate_key y ssl_trusted_certificate

Si creásemos otro sitio, no olvidéis cambiar los «upstream«. De todos modos si al arrancar NGINX o al reiniciarlo no los hemos cambiado, no arrancará correctamente y nos lazará un error, para verlo nos sugiere que escribamos el comando: «sudo systemctl status nginx.service»

Habilitamos sitio:

Reiniciamos NGINX:

Reiniciamos Odoo:

Y a funcionar, accedemos a «erp_demo.ekiketa.com» y debería de funcionar 👀


👀
Ojo, con el cambio del dbfilter hay algo que es importante. Puede que al intentar imprimir un «Report» (Facturas, pedidos de compra, etc) Odoo 12 pierda la sesión y la factura se imprima sin estilos. Recordemos qué hacer si Odoo imprime mal las facturas, tocábamos un parámetro del sistema de Odoo llamado «report.url«. (Click en el enlace anterior para ver el tutorial).
Pues con el dbfilter activado, tenemos que hacer una pequeña modificación en este parámetro y en el archivo «/etc/hosts» de la máquina donde está Odoo 12 instalado.

Para ello, vamos a editar el archivo hosts de el servidor donde tenemos nuestro Odoo.

(Puede que se redundante que mencione tanto nuestro máquina donde está Odoo, nuestro servidor de Odoo, etc… Pero es importante no perder el contexto en estos puntos)

Y añadimos un nombre «local» para nuestros dominios, por ejemplo:

Ahora, desde nuestro navegador «local» (Donde se encuentra nuestro Odoo) deberemos acceder a éste mediante: http://erp_demo.ekiketa.local:8069 y… deberemos cambiar en Odoo el parámetro «report.url» de los Parámetros del sistema.

Y ya, ahora sí que estará todo al sitio.

¡Saludos!


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?