Ir al contenido principal

Entradas

Instalar GOWA con Docker Compose

GOWA: WhatsApp mediante API REST con Docker Instalar GOWA con Docker Compose, conectar WhatsApp y utilizarlo desde la consola mediante una API REST. GOWA es una aplicación escrita en Go que permite conectar una cuenta de WhatsApp y utilizarla mediante una API REST. Esto permite que una aplicación externa pueda enviar y recibir mensajes de WhatsApp utilizando peticiones HTTP. Aplicación / Consola │ │ HTTP REST ▼ GOWA │ ▼ WhatsApp En este tutorial instalaremos GOWA utilizando Docker Compose y posteriormente utilizaremos curl desde la consola para conectarnos a la API y enviar mensajes. 1. Requisitos Necesitamos tener instalados: Docker Docker Compose Git Podemos comprobar la instalación: docker --version docker compose version git --version 2. Descargar GOWA Crearemos el directorio donde almacenaremos el proyecto: mkdir -p /home/docker cd /home/docker Descargamos el proy...
Entradas recientes

Instalar GOWA: API REST de WhatsApp con Go, Docker y SQLite

Instalación de GOWA 3.4.0 para conectar aplicaciones Python, Django o Java con WhatsApp mediante una API REST. ¿Qué vamos a instalar? En este tutorial instalaremos GOWA, una implementación de WhatsApp Web basada en Go y whatsmeow , utilizando Docker y SQLite para almacenar los datos de las sesiones. 1. Arquitectura La idea es utilizar GOWA como una capa intermedia entre nuestra aplicación y WhatsApp. Nuestra aplicación no necesita comunicarse directamente con el protocolo de WhatsApp. ┌──────────────────────────┐ │ Django / Python / Java │ │ Tu aplicación │ └────────────┬─────────────┘ │ │ HTTP REST API ▼ ┌──────────────────────────┐ │ GOWA │ │ Puerto 3000 │ └────────────┬─────────────┘ │ │ whatsmeow ▼ ┌──────────────────────────┐ │ WhatsApp │ └──────────────────────────┘ Esta arquitectura permite que nuestra aplicac...

Instalar Go desde go.dev en Ubuntu

Instalar Go en Ubuntu desde go.dev Instalación de Go utilizando el paquete oficial descargado directamente desde go.dev , sin utilizar el paquete de Go proporcionado por Ubuntu. Método utilizado: instalación oficial de Go mediante el archivo .tar.gz . Este procedimiento es especialmente útil cuando necesitamos una versión de Go más reciente que la disponible en los repositorios de Ubuntu. 1. Comprobar la versión actual de Go Antes de realizar cambios, podemos comprobar si Go ya está instalado: go version Por ejemplo: go version go1.22.2 linux/amd64 También podemos comprobar dónde está instalado: which go Si fue instalado mediante los paquetes de Ubuntu, podemos encontrar algo similar a: /usr/bin/go 2. Comprobar la versión disponible mediante APT Ubuntu puede proporcionar una versión de Go más antigua que la disponible oficialmente en go.dev . Podemos comprobar qué versión proporciona APT: apt policy golang-go P...

Tutorial: GWMS + PostgreSQL 16 + Docker

Instalar GWMS con Docker y PostgreSQL 16 Guía paso a paso para instalar Go WhatsApp Multi-Session REST API (GWMS) utilizando Docker y una instalación nativa de PostgreSQL 16. Entorno utilizado: GWMS ejecutándose en Docker y PostgreSQL 16.14 instalado directamente en Ubuntu. 1. Arquitectura utilizada En esta instalación no utilizaremos un contenedor independiente para PostgreSQL. GWMS funcionará dentro de Docker y se conectará al PostgreSQL instalado directamente en el sistema. ┌──────────────────────────────┐ │ Ubuntu │ │ │ │ ┌────────────────────────┐ │ │ │ PostgreSQL 16.14 │ │ │ │ Puerto: 5432 │ │ │ │ Base: gwms │ │ │ └───────────▲────────────┘ │ │ │ │ │ │ │ │ ┌───────────┴────────────┐ │ │ │ Docker │ │ │ │ │ │ │ │ GWMS │ │ │ │ Puerto: 7001 ...

Diseñando un servidor de IA stateless para un ERP: LLM, memoria y conversaciones

Una arquitectura sencilla para integrar modelos de lenguaje con aplicaciones empresariales sin convertir al LLM en el dueño del estado de la aplicación. Cuando comenzamos a integrar modelos de lenguaje en una aplicación empresarial, es fácil terminar colocando demasiada lógica alrededor del LLM. El modelo interpreta preguntas, decide qué función ejecutar, consulta información, mantiene el contexto y finalmente genera una respuesta. Sin embargo, no es necesario que todo eso viva dentro del servidor de IA. En este artículo voy a plantear una arquitectura diferente: el modelo de lenguaje permanece stateless, el servidor de IA también puede ser stateless y la aplicación empresarial mantiene la conversación, el estado y la memoria. El resultado es una arquitectura especialmente interesante para un ERP, donde la lógica de negocio y los datos deben permanecer bajo el control de la aplicación. 1. El LLM es stateless Primero hay que entender algo fundamental s...

La Anatomía del Frontend Moderno

Si estás migrando sistemas legacy o simplemente quieres construir aplicaciones web robustas y escalables, el panorama ha cambiado drásticamente. Ya no hablamos de archivos HTML sueltos; hablamos de una cadena de suministro de software altamente eficiente. Aquí te presento los 4 eslabones que definen el estándar de la industria hoy: 1. El Motor (Runtime): Bun Todo comienza aquí. El motor es el entorno donde viven tus herramientas de desarrollo. Mientras que Node.js es el estándar histórico, Bun es la vanguardia: escrito en Zig, es un motor "todo en uno" que instala paquetes al instante y consume mucha menos memoria. 2. El Empaquetador (Bundler): Vite vs. Rsbuild El navegador no entiende el código moderno directamente. Necesitas una "fábrica" que tome tus archivos y los convierta en HTML, JS y CSS estáticos. Vite: El estándar de oro. Equilibrio perfecto entre facilidad y ecosistema. Rsbuild: El competidor de alto rendimien...

Guía Maestra: Configuración de Ruby y Gestión de Proyectos

Esta guía detalla el proceso desde la preparación del sistema hasta la gestión avanzada de gemas (librerías) para tus proyectos de Sinatra. Resumen de Arquitectura: Estamos usando rbenv para el motor de Ruby y Bundler para las librerías. 1. Preparación del Sistema (Ubuntu/Debian) Instalamos las dependencias necesarias para compilar Ruby desde el código fuente: sudo apt update && sudo apt install -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev git curl 2. Instalación de rbenv Configuramos el gestor de versiones para manejar múltiples entornos de Ruby: # Clonar rbenv y ruby-build git clone https://github.com/rbenv/rbenv.git ~/.rbenv git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build # Configurar variables de entorno echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"...