jueves, 31 de julio de 2025

馃殌 C贸mo Desplegar Proyectos de GitHub en tu Hosting cPanel (Gu铆a Completa 2025)

Si eres desarrollador web, seguramente sabes lo tedioso que puede ser subir archivos manualmente por FTP cada vez que realizas cambios en tu proyecto. Hoy en d铆a, GitHub y cPanel son dos herramientas clave para automatizar este proceso y trabajar de manera profesional.

En este art铆culo aprender谩s, paso a paso, c贸mo desplegar tus proyectos directamente desde GitHub a tu hosting con cPanel, optimizando tu flujo de trabajo y asegurando actualizaciones r谩pidas y seguras. Adem谩s, te presentaremos el Hosting de PortalPBX, una soluci贸n pensada para desarrolladores que buscan rendimiento, seguridad y automatizaci贸n con integraci贸n GitHub incluida.


馃敼 1. ¿Por qu茅 desplegar tus proyectos con GitHub y cPanel?

Cuando trabajas en desarrollo web, el tiempo y la fiabilidad son esenciales. Conectar GitHub a tu hosting trae ventajas clave:

  • Despliegues r谩pidos: cada vez que hagas un git push en tu repositorio, tu sitio puede actualizarse en segundos.
  • Control total de versiones: vuelve a versiones anteriores en caso de errores o problemas en producci贸n.
  • Menos errores manuales: evitas subir archivos por FTP y olvidar cambios importantes.
  • Profesionalismo y escalabilidad: ideal para proyectos Laravel, PHP, WordPress, aplicaciones Node.js y m谩s.
  • Integraci贸n continua: facilidad para automatizar pruebas y despliegues sin intervenci贸n manual.

馃敼 2. Beneficios de usar el Hosting Optimizado de PortalPBX

Si bien puedes usar cualquier hosting con cPanel, el Hosting de PortalPBX est谩 dise帽ado especialmente para desarrolladores y empresas que necesitan entornos estables, seguros y con soporte t茅cnico experto en Git y Laravel.

✅ Ventajas exclusivas de PortalPBX Hosting:

  • Soporte para Git nativo y conexi贸n SSH segura.
  • Compatibilidad con PHP 8.2, Composer y Node.js.
  • Alto rendimiento gracias a servidores optimizados para aplicaciones modernas.
  • Certificado SSL gratuito y protecci贸n avanzada contra ataques.
  • Planes escalables para proyectos personales, empresariales y multisitio.
  • Soporte t茅cnico especializado en Laravel, Migraciones y despliegues autom谩ticos.

馃巵 Promoci贸n limitada: Si contratas tu plan de Hosting PortalPBX hoy, obtienes:

  • 馃敼 20% de descuento en tu primer a帽o de servicio.
  • 馃敼 Configuraci贸n gratuita de despliegue autom谩tico GitHub → cPanel.
  • 馃敼 Asesor铆a personalizada para optimizar tu proyecto y mejorar el tiempo de carga.

馃憠 Haz clic aqu铆 para contratar Hosting PortalPBX y activar tu descuento


馃敼 3. Requisitos previos para desplegar desde GitHub

Antes de comenzar, aseg煤rate de contar con lo siguiente:

  • Un hosting con cPanel y acceso SSH (PortalPBX recomendado).
  • Un repositorio en GitHub (puede ser p煤blico o privado).
  • Git instalado en el servidor (PortalPBX ya lo incluye).
  • Composer y/o Node.js si tu proyecto requiere dependencias.
  • Un dominio o subdominio apuntando a tu hosting.

馃敼 4. Pasos para desplegar tu proyecto desde GitHub en cPanel

馃搶 4.1 Con茅ctate al servidor v铆a SSH

ssh usuario@tudominio.com

Esto te permitir谩 ejecutar comandos directamente en tu hosting.

馃搶 4.2 Clona tu repositorio

cd public_html
git clone https://github.com/usuario/mi-proyecto.git

Si tu repositorio es privado, deber谩s configurar llaves SSH para autenticarte sin pedir credenciales en cada actualizaci贸n.

馃搶 4.3 Configura la rama principal

cd mi-proyecto
git checkout main

Aseg煤rate de estar en la rama de producci贸n (por ejemplo, main o master).

馃搶 4.4 Actualiza tu proyecto

git pull origin main

Con este comando obtendr谩s los 煤ltimos cambios del repositorio.

馃搶 4.5 Instala dependencias

Si es un proyecto Laravel o PHP con Composer:

composer install --no-dev --optimize-autoloader

Para proyectos con Node.js:

npm install
npm run build

馃搶 4.6 Configura permisos de archivos

chmod -R 755 storage bootstrap/cache

Esto evita errores de escritura en Laravel y otros frameworks PHP.

馃搶 4.7 Configura tu dominio

Desde el panel de cPanel, apunta tu dominio a la carpeta public de tu proyecto para que tu aplicaci贸n sea accesible.


馃敼 5. Automatizaci贸n con Webhooks de GitHub

Para no conectarte manualmente cada vez que hagas un cambio, puedes usar Webhooks en GitHub:

  1. En tu repositorio, ve a Settings → Webhooks.
  2. Agrega una URL hacia tu hosting (por ejemplo https://tudominio.com/deploy.php).
  3. Crea un archivo deploy.php en tu servidor con el siguiente contenido:
<?php
shell_exec('cd /home/usuario/public_html/mi-proyecto && git pull origin main 2>&1');
echo "✅ Despliegue completado";
?>

As铆, cada vez que hagas un push a GitHub, tu proyecto se actualizar谩 autom谩ticamente.


馃幆 Oferta Especial de PortalPBX

Con el Hosting de PortalPBX tendr谩s:

  • 馃殌 Despliegue autom谩tico desde GitHub sin configuraciones complejas.
  • 馃攼 Certificados SSL y seguridad avanzada incluidos.
  • ⚡ Servidores optimizados para m谩xima velocidad y rendimiento.
  • 馃摓 Soporte t茅cnico 24/7 especializado en Laravel, PHP y VoIP.
  • 馃捀 20% de descuento por tiempo limitado + instalaci贸n gratuita del flujo GitHub → cPanel.

馃挕 Tip: Si contratas tu plan hoy mismo, nuestro equipo se encarga de todo el proceso de configuraci贸n inicial, dej谩ndote tu proyecto funcionando sin esfuerzo.

馃敟 Contrata tu Hosting PortalPBX con 20% de Descuento


馃搶 Conclusi贸n

Integrar GitHub con tu hosting cPanel es una de las mejores decisiones para trabajar de manera profesional, r谩pida y sin errores. Si adem谩s lo combinas con Hosting PortalPBX, no solo automatizas tu flujo de trabajo, sino que aseguras rendimiento, seguridad y soporte experto a un precio promocional.

Ya no pierdas tiempo con subidas manuales. ¡P谩sate a un sistema de despliegue moderno y lleva tu proyecto al siguiente nivel!

jueves, 17 de julio de 2025

馃洝️ C贸mo usar Wrappers en C para gestionar Asterisk, Servidores de Correo e Inteligencia Artificial desde la Web

馃洝️ C贸mo usar Wrappers en C para gestionar Asterisk, Servidores de Correo e Inteligencia Artificial desde la Web

Cuando desarrollamos sistemas que necesitan interactuar con Asterisk (PBX), servidores de correo como Postfix/Dovecot, o incluso ejecutar modelos de inteligencia artificial, muchas veces nos encontramos con una limitaci贸n importante:

馃敀 PHP o tu app web no puede ejecutar comandos privilegiados directamente.

Por temas de seguridad, el usuario www-data de Apache/Nginx no tiene permisos para borrar correos, reiniciar servicios o ejecutar modelos de IA desde el sistema. ¿La soluci贸n? ➤ Un wrapper en C controlado con sudo.

馃З ¿Qu茅 es un wrapper en este contexto?

Un wrapper es un programa en C (o Bash/Python) que act煤a como intermediario seguro entre tu aplicaci贸n web y el sistema operativo. Lo usas para:

  • Borrar buzones de forma segura
  • Ejecutar comandos como postmap, dovecot reload, etc.
  • Recargar configuraciones de Asterisk (module reload, dialplan reload)
  • Ejecutar modelos de IA (como un clasificador en Python o C++)

馃洜️ Proyecto completo: sistema_wrapper.c

Este wrapper m谩s avanzado permite ejecutar diferentes operaciones del sistema de forma controlada:

馃摝 Funcionalidades del wrapper:

  • ✅ Eliminar un buz贸n de correo
  • ✅ Recargar Asterisk
  • ✅ Ejecutar un modelo IA
  • ✅ Registrar todo en un log seguro
  • ✅ Validar argumentos
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>

const char *LOG_PATH = "/var/log/sistema_wrapper.log";

void registrar_log(const char *operacion, const char *detalle) {
    FILE *log = fopen(LOG_PATH, "a");
    if (log) {
        time_t ahora = time(NULL);
        char *tiempo = ctime(&ahora);
        tiempo[strcspn(tiempo, "\n")] = 0;
        fprintf(log, "[%s] [%s] %s\n", tiempo, operacion, detalle);
        fclose(log);
    }
}

void eliminar_buzon(const char *email) {
    if (strstr(email, "..") || strchr(email, ';')) {
        registrar_log("ERROR", "Entrada maliciosa en email");
        printf("Entrada inv谩lida.\n");
        return;
    }

    char comando[512];
    snprintf(comando, sizeof(comando), "rm -rf /var/mail/vhosts/%s", email);

    int r = system(comando);
    if (r == 0) {
        registrar_log("BUZON", email);
        printf("Buz贸n %s eliminado.\n", email);
    } else {
        registrar_log("ERROR", "Fallo al eliminar buz贸n.");
        printf("Error al eliminar buz贸n.\n");
    }
}

void recargar_asterisk() {
    int r = system("asterisk -rx 'module reload'");
    if (r == 0) {
        registrar_log("ASTERISK", "Recarga de m贸dulos completada");
        printf("Asterisk recargado.\n");
    } else {
        registrar_log("ERROR", "Fallo al recargar Asterisk");
        printf("Error recargando Asterisk.\n");
    }
}

void ejecutar_modelo_ia() {
    int r = system("python3 /opt/ia/clasificador.py /tmp/mensaje.txt >> /tmp/resultado.txt");
    if (r == 0) {
        registrar_log("IA", "Modelo ejecutado con 茅xito");
        printf("Modelo IA ejecutado.\n");
    } else {
        registrar_log("ERROR", "Fallo al ejecutar IA");
        printf("Error en ejecuci贸n de IA.\n");
    }
}

void mostrar_uso() {
    printf("Uso: sistema_wrapper [comando] [argumento]\n");
    printf("Comandos:\n");
    printf("  eliminar-buzon email@dominio.com\n");
    printf("  recargar-asterisk\n");
    printf("  ejecutar-ia\n");
}

int main(int argc, char *argv[]) {
    if (argc < 2) {
        mostrar_uso();
        return 1;
    }

    if (strcmp(argv[1], "eliminar-buzon") == 0 && argc == 3) {
        eliminar_buzon(argv[2]);
    } else if (strcmp(argv[1], "recargar-asterisk") == 0) {
        recargar_asterisk();
    } else if (strcmp(argv[1], "ejecutar-ia") == 0) {
        ejecutar_modelo_ia();
    } else {
        mostrar_uso();
        return 1;
    }

    return 0;
}

⚙️ Compilaci贸n y permisos

gcc -o /usr/local/bin/sistema_wrapper sistema_wrapper.c
chmod +x /usr/local/bin/sistema_wrapper

馃攼 Seguridad v铆a sudoers

sudo visudo

Agrega esta l铆nea:

www-data ALL=(ALL) NOPASSWD: /usr/local/bin/sistema_wrapper

馃寪 Llamada desde Laravel o PHP

// Eliminar buz贸n
shell_exec("sudo /usr/local/bin/sistema_wrapper eliminar-buzon jose@midominio.com");

// Recargar Asterisk
shell_exec("sudo /usr/local/bin/sistema_wrapper recargar-asterisk");

// Ejecutar modelo IA
shell_exec("sudo /usr/local/bin/sistema_wrapper ejecutar-ia");

馃搳 Log generado

Contenido t铆pico en /var/log/sistema_wrapper.log:

[2025-07-17 10:23:44] [BUZON] jose@midominio.com
[2025-07-17 10:24:01] [ASTERISK] Recarga de m贸dulos completada
[2025-07-17 10:25:05] [IA] Modelo ejecutado con 茅xito

馃殌 Conclusi贸n

Los wrappers en C son herramientas extremadamente 煤tiles para permitir que tu sistema web realice tareas privilegiadas de forma controlada, segura y auditada. Ya sea para administrar Asterisk, Postfix o ejecutar modelos IA, puedes confiar en este enfoque cuando los permisos o la seguridad del sistema sean una prioridad.

s谩bado, 28 de junio de 2025

馃 Gemini-CLI vs Claude para desarrollo de c贸digo: ¿cu谩l te conviene m谩s?

La inteligencia artificial est谩 transformando la forma en que desarrollamos software. Hoy ya no basta con hacer un curso o leer un tutorial: ahora puedes tener un asistente de c贸digo con IA que te ayuda en tiempo real.
Pero… ¿cu谩l elegir?

En este post te explico las diferencias entre gemini-cli (la IA de Google) y Claude (de Anthropic), c贸mo los he utilizado personalmente, y c贸mo pueden ayudarte a mejorar tu flujo de trabajo como desarrollador.

馃殌 ¿Qu茅 es Gemini CLI?

gemini-cli es una herramienta oficial de Google que permite interactuar con Gemini desde la terminal. Puedes usarla para:

  • Revisar y corregir autom谩ticamente archivos de c贸digo.
  • Aplicar buenas pr谩cticas en tiempo real (React, Next.js, Tailwind, Node, etc.).
  • Refactorizar componentes o funciones.
  • A帽adir documentaci贸n y comentarios.
  • Reescribir fragmentos en otro lenguaje.

馃搶 Todo desde tu terminal o VSCode, directamente sobre tu proyecto real.

馃 ¿Qu茅 es Claude Code?

Claude es una IA desarrollada por Anthropic. Su modo Claude Code permite trabajar con grandes cantidades de c贸digo fuente, entender estructuras complejas, generar soluciones completas, y responder con precisi贸n sobre dise帽o de software, patrones y arquitectura.

Puedes usar Claude Code desde:

  • Chat web (Claude.ai)
  • Integraciones en IDE como Cursor o VSCode
  • API en modo program谩tico

⚖️ Gemini-CLI vs Claude Code: comparaci贸n real

Caracter铆stica gemini-cli Claude Code (Anthropic)
⚡ Velocidad de edici贸n R谩pida y directa en el archivo Lenta en edici贸n directa, pero precisa
馃洜 Aplicaci贸n sobre c贸digo real S铆, directo en tu proyecto (.tsx, .js, etc.) No directamente (salvo integraciones)
馃 Entendimiento de contexto Muy bueno con proyectos peque帽os-medianos Excelente para estructuras grandes
馃搨 Edici贸n m煤ltiple de archivos S铆 (autofix app components) No directo, requiere guiarlo manualmente
馃摎 Formaci贸n Buenas pr谩cticas de Google 脡tica, dise帽o, precisi贸n conceptual
馃捇 Requiere entorno local S铆 (Node.js, terminal) No necesariamente
馃‍馃彨 Estilo de ayuda Mentor tipo "copiloto de c贸digo" Tutor experto con explicaciones largas

馃捀 Comparativa de precios

Plan / Uso Gemini (Google) Claude (Anthropic)
Plan Gratuito ✅ S铆 (gemini-1.5-flash, muy capaz) ✅ S铆 (Claude 3 Sonnet / Haiku)
Plan pago Gemini Pro: $20/mes Claude Pro: $20/mes
Acceso por API ✅ S铆 (AI Studio) ✅ S铆 (Anthropic Console)
Costos por token API Desde $0.000125 por 1k tokens Desde $0.0008 por 1k tokens (Haiku)
L铆mite de contexto Hasta 1M tokens (Gemini Pro) Hasta 200k tokens (Claude 3 Opus)

馃摑 Ambas herramientas ofrecen planes gratuitos suficientes para la mayor铆a de casos reales.

馃懆‍馃捇 Mi experiencia personal con Gemini-CLI

En lo personal, he utilizado la versi贸n gratuita de Gemini CLI en proyectos reales de desarrollo, y me ha sorprendido lo bien que funciona incluso sin pagar. Es r谩pida, entiende el contexto de mis archivos, y ha sido de gran ayuda para corregir funciones, refactorizar componentes y aplicar buenas pr谩cticas sin complicarme.

Eso s铆, como programadores, siempre es importante revisar lo que hace la IA. Aunque Gemini corrige muchas cosas, debemos validar, probar y ajustar seg煤n nuestra l贸gica y estilo de proyecto. La IA no reemplaza al desarrollador, pero s铆 lo potencia.

✅ ¿Cu谩l te conviene usar?

  • Usa Gemini-CLI si…
    Quieres corregir y mejorar tu proyecto mientras lo codificas. Trabajas con Next.js, React, Tailwind, y quieres rapidez y edici贸n directa. Deseas automatizar limpieza y refactorizaci贸n.
  • Usa Claude Code si…
    Tienes dudas complejas de arquitectura o dise帽o. Quieres explicaciones profundas y razonamientos. Necesitas entender o redise帽ar sistemas grandes.

馃И ¿Y si usas los dos?

馃挕 ¡Lo ideal es combinarlos!

  • gemini-cli: para corregir y mejorar directamente el c贸digo.
  • Claude: para consultas profundas, explicaciones o redise帽o arquitect贸nico.

馃殌 C贸mo empezar con Gemini CLI

npm install -g @google/gemini-cli

Autent铆cate con tu API Key de Google y ejecuta:

gemini autofix app components --yes --prompt "Corrige todo el c贸digo aplicando buenas pr谩cticas en React y Tailwind"

馃幆 Conclusi贸n

Ya no necesitas elegir entre aprender o producir: con Gemini y Claude puedes hacer ambas al mismo tiempo. Son aliados para desarrolladores que buscan productividad real con aprendizaje continuo.

¿Te gustar铆a una gu铆a paso a paso para integrarlos en tu flujo de trabajo? ¿O un video tutorial desde cero? Escr铆beme.

馃摡 Contacto: joseareche@portalpbx.com
馃寪 Sitio: https://portalpbx.com

s谩bado, 21 de junio de 2025

C贸mo implementar un Cloudflare Worker

馃殌 C贸mo implementar un Cloudflare Worker paso a paso (Gu铆a pr谩ctica para clientes finales)

En un mundo cada vez m谩s digital, optimizar el rendimiento, seguridad y personalizaci贸n de tu sitio web puede marcar la diferencia entre un cliente satisfecho y uno frustrado. Por eso, hoy te ense帽aremos a implementar un Cloudflare Worker, una herramienta poderosa que te permite ejecutar c贸digo personalizado en la red de Cloudflare, sin necesidad de servidores.

✅ ¿Qu茅 es un Cloudflare Worker?

Un Worker es una funci贸n JavaScript que se ejecuta en los bordes (edge) de la red de Cloudflare, permitiendo interceptar, modificar y responder a solicitudes HTTP antes de que lleguen a tu servidor.

Beneficios clave:

  • Mejorar tiempos de carga.
  • Aplicar reglas personalizadas (como redirecciones o filtros).
  • Cachear contenido din谩mico.
  • Proteger APIs o endpoints vulnerables.
  • Hacer A/B testing sin cambiar tu servidor.

馃洜️ Paso a paso para implementar tu primer Worker

1. Crea una cuenta en Cloudflare

Si a煤n no la tienes, reg铆strate gratis en Cloudflare.

2. Accede a la secci贸n Workers

Desde el panel, busca “Workers & Pages” > “Workers” y haz clic en “Create a Worker”.

3. Edita el c贸digo base

Cloudflare te da una plantilla b谩sica como esta:

export default {
  async fetch(request, env, ctx) {
    return new Response('¡Hola desde tu Worker de Cloudflare!', {
      headers: { 'content-type': 'text/plain' },
    });
  },
};

Puedes modificar el contenido seg煤n tu necesidad.

馃И Casos pr谩cticos

馃煛 Caso 1: Redirecci贸n inteligente seg煤n pa铆s

export default {
  async fetch(request) {
    const country = request.cf.country;
    if (country === 'PE') {
      return Response.redirect('https://tuweb.pe', 302);
    }
    return fetch(request);
  },
};

馃數 Caso 2: Bloqueo de bots por User-Agent

export default {
  async fetch(request) {
    const ua = request.headers.get('User-Agent') || '';
    if (ua.includes('bot') || ua.includes('crawler')) {
      return new Response('Acceso denegado', { status: 403 });
    }
    return fetch(request);
  },
};

馃煝 Caso 3: Cache personalizado para APIs

export default {
  async fetch(request) {
    const cacheUrl = new URL(request.url);
    const cacheKey = new Request(cacheUrl.toString(), request);
    const cache = caches.default;

    let response = await cache.match(cacheKey);
    if (!response) {
      response = await fetch(request);
      response = new Response(response.body, response);
      response.headers.append('Cache-Control', 's-maxage=60');
      await cache.put(cacheKey, response.clone());
    }

    return response;
  },
};

馃挕 ¿Cu谩ndo usar un Worker?

  • Cuando necesitas automatizar respuestas (sin sobrecargar tu servidor).
  • Cuando deseas personalizar reglas de seguridad o performance.
  • Para filtrar tr谩fico, cachear din谩micamente o generar respuestas personalizadas.

馃 ¿Necesitas ayuda con Workers?

Si deseas implementar Cloudflare Workers pero no sabes por d贸nde comenzar, PortalPBX como Partner de Cloudflare puede ayudarte.

馃懆‍馃捇 Jos茅 Areche y el equipo de PortalPBX est谩n listos para:

  • Asesorarte t茅cnicamente
  • Dise帽ar reglas avanzadas
  • Implementar soluciones personalizadas para tu negocio

馃摟 Escr铆benos o visita: https://portalpbx.com


¡Aprovecha la potencia de Cloudflare con inteligencia!

viernes, 13 de junio de 2025

Servicios Cognitivos en la Nube: M谩s f谩cil que nunca

馃 Servicios Cognitivos en la Nube: M谩s f谩cil que nunca

Hace solo unos a帽os, construir una aplicaci贸n que reconozca im谩genes, traduzca voz en tiempo real o analice sentimientos en textos requer铆a equipos de investigadores, infraestructura robusta y meses de desarrollo.

Hoy, todo eso est谩 al alcance de cualquiera con conexi贸n a internet y una cuenta en la nube.


馃寪 ¿Qu茅 son los servicios cognitivos?

Los servicios cognitivos son APIs que permiten a nuestras aplicaciones "pensar" o "entender" como lo har铆a un humano. Algunos ejemplos:

  • 馃 Reconocimiento facial
  • 馃棧 Transcripci贸n y s铆ntesis de voz
  • 馃柤 Clasificaci贸n de im谩genes
  • 馃挰 An谩lisis de sentimientos
  • 馃實 Traducci贸n autom谩tica

Y lo mejor: ¡no necesitas ser experto en inteligencia artificial! Solo tienes que hacer una solicitud HTTP y recibir谩s una respuesta con datos estructurados.


馃敐 Principales proveedores en 2025

Proveedor Servicios destacados Lenguajes soportados
Microsoft Azure Face API, Text Analytics, Speech to Text +30 idiomas
Google Cloud AI Vision AI, Translation, Dialogflow Multilenguaje
AWS (Amazon) Rekognition, Comprehend, Polly, Transcribe Espa帽ol incluido
IBM Watson NLP, Tone Analyzer, Language Translator Ingl茅s y m谩s
OpenAI API GPT para redacci贸n, an谩lisis, clasificaci贸n Multiling眉e

馃И ¿Qu茅 tan f谩cil es usar uno?

Un ejemplo simple con Azure Text Analytics (an谩lisis de sentimientos):

curl -X POST https://<endpoint>/text/analytics/v3.1/sentiment \
  -H "Ocp-Apim-Subscription-Key: TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"documents":[{"id":"1","language":"es","text":"Estoy feliz con el servicio"}]}'

馃搳 Resultado:

{
  "documents": [
    {
      "id": "1",
      "sentiment": "positive"
    }
  ]
}

¡Listo! Con solo unas l铆neas, tu app ya puede entender emociones humanas. 馃挕


馃洜 Casos de uso reales

  • Atenci贸n al cliente con bots (ChatGPT, Dialogflow, Lex)
  • Sistemas de llamadas que entienden al usuario (Transcribe + AI)
  • Aplicaciones m贸viles con lectura de texto en voz alta (Amazon Polly, Azure Speech)
  • Validaci贸n de identidad con reconocimiento facial (Rekognition, Face API)

馃殌 ¿Por qu茅 deber铆as probarlos?

  • ✅ Ahorro de tiempo y recursos
  • ✅ Acceso a tecnolog铆as avanzadas sin ser experto
  • ✅ Modelos entrenados por gigantes tecnol贸gicos
  • ✅ Precios accesibles y gratuitos en pruebas

馃挰 Si a煤n no lo has intentado, el momento es ahora. Desde portales educativos hasta empresas peque帽as pueden integrar estas capacidades en minutos.

¿Quieres que te comparta ejemplos paso a paso con alguno en especial?
Escr铆belo en los comentarios. 馃憞

Automatizando con Name.com: Primeros pasos con su API para resellers

馃敆 Automatizando con Name.com: Primeros pasos con su API para resellers

Muchos t茅cnicos y desarrolladores que reci茅n se convierten en resellers en Name.com suelen enfrentar cierta confusi贸n al momento de comenzar con la API. La documentaci贸n es clara, pero a veces falta ver ejemplos aplicados.

Aqu铆 te dejo una gu铆a real y funcional, usando Postman, para consultar, registrar y configurar un dominio autom谩ticamente.


馃煛 Paso 1: Consultar disponibilidad de un dominio


馃摛 Endpoint:

POST https://api.name.com/v4/domains:checkAvailability

馃摝 Body (JSON):

{
  "domainNames": ["portalsgi.com"]
}

✅ Este paso sirve para verificar si el dominio est谩 libre.
Si la respuesta contiene "available": true, puedes proceder a comprarlo.


馃煝 Paso 2: Comprar el dominio



馃摛 Endpoint:
POST https://api.name.com/v4/domains

馃摝 Body (JSON):

{
  "domain": {
    "domainName": "portalsgi.com"
  },
  "purchasePrice": 12.99
}

馃挕 Importante: El valor de purchasePrice debe coincidir con el valor retornado por el paso anterior, o de lo contrario dar谩 error.


馃數 Paso 3: Asignar los Nameservers



馃摛 Endpoint:
POST https://api.name.com/v4/domains/portalsgi.com:setNameservers

馃摝 Body (JSON):

{
  "nameservers": [
    "ns1.compuservic.com",
    "ns2.compuservic.com"
  ]
}

Esto permite apuntar tu dominio al hosting o infraestructura deseada.


馃洝️ Autenticaci贸n: Basic Auth



Para todas las solicitudes necesitas autenticarte. En este ejemplo se utiliza Basic Auth, donde debes ingresar:

  • Username: Tu usuario reseller en Name.com
  • Password: Tu API Token generado desde tu panel de control

馃攼 Postman lo gestiona autom谩ticamente al elegir “Basic Auth” en la pesta帽a Authorization:



✅ Resumen del flujo

  1. Consultar si el dominio est谩 disponible
  2. Comprar el dominio (con el precio correcto)
  3. Asignar DNS personalizados
  4. Usar Basic Auth con tu usuario + token para autenticaci贸n

馃搶 Este es solo el inicio. En pr贸ximos posts te mostrar茅 c贸mo:

  • Crear registros DNS autom谩ticamente (A, CNAME, etc.)
  • Configurar dominios por lotes
  • Integrar con tu propio panel o CRM

¿Te interesa? S铆gueme y comenta qu茅 m谩s necesitas saber.
Nos leemos pronto 馃懆‍馃捇

Nunca es tarde para volver a empezar

 Han pasado a帽os desde la 煤ltima vez que escrib铆 por aqu铆. La vida sigui贸 su curso, llegaron nuevas responsabilidades, cambios inesperados y aprendizajes profundos. A veces, dejamos cosas que amamos en pausa... pero nunca es tarde para volver a empezar.

Hoy regreso a este espacio con m谩s experiencias, nuevas ideas y la misma pasi贸n por compartir. Porque cada etapa de la vida trae algo valioso, y siempre hay algo que decir, algo que escribir.

Si t煤 tambi茅n tienes un proyecto olvidado, un sue帽o en espera o una historia por contar… este es tu recordatorio: el mejor momento para volver es ahora.