Ir al contenido

Concerto Local (on-premise)

Concerto Local (precio a medida: habla con ventas) despliega Shara en tu propia infraestructura: la base de datos, los agentes y el modelo principal (Concerto) corren en tu servidor. Esta guía explica qué necesitas, cómo se instala, cómo se conecta con tu cuenta de Shara y cómo se mantiene.

Hay dos maneras, y las dos están incluidas en el contrato:

  • Te lo instalamos nosotros. La instalación va incluida al contratar Concerto Local. La hacemos presencialmente o en remoto y la dejamos funcionando y conectada a Shara. No tienes que hacer nada de lo que sigue.
  • Lo instala tu equipo de IT. Si tu empresa tiene IT y prefiere hacerlo él, es un instalador de un solo comando sobre Docker. El resto de esta guía va paso a paso, con frases cortas y comandos que se copian tal cual.

Para instalar por tu cuenta necesitas tres datos que AIGiner entrega con el contrato: la dirección de descarga (<URL>), el token de descarga (<TOKEN>) y, si procede, la dirección del fichero de modelos (<URL-MODELOS>). Sin ellos no se puede instalar. Si no los tienes, escribe a hola@aiginer.com.

Concerto Local es para un servidor de empresa con GPU y funciona en Linux x86_64 (no en ARM). Es un solo servidor, con estos requisitos:

Requisito Mínimo
Gráfica 8 GPU de clase NVIDIA H200 (141 GB cada una) o superior (B200 o B300)
Memoria Al menos 512 GB de RAM
Procesador 64 núcleos
Disco 2 TB NVMe libres
Sistema Linux con Docker y el driver de NVIDIA
  • Por debajo de estos requisitos el instalador no instala.
  • También admitimos despliegues en nube privada (AWS, Azure o GCP), con máquinas de GPU dedicadas dentro de tu propia cuenta.
  • Docker 24 o superior con el plugin Compose. Si falta, el instalador lo instala (con --si) o lo puedes instalar tú antes.
  • Driver de NVIDIA y NVIDIA Container Toolkit. Si falta, el instalador lo dice y se detiene antes de tocar nada.
  • Disco libre en /opt: al menos 2 TB NVMe.
  • El servidor sale a Internet (la primera vez baja la imagen y los pesos del modelo).
  • Los puertos 80 y 443 están libres.
  • Un nombre para entrar (por ejemplo shara.empresa.com) apuntando al servidor. Sin nombre público también vale: el instalador usa el nombre interno del equipo y los navegadores avisarán del certificado.

Entra por SSH y mira cuatro cosas:

Qué Comando Qué buscas
Sistema uname -sm Debe decir Linux x86_64.
Memoria free -g La cifra de «total» debe ser de 512 GB o más.
Tarjeta gráfica nvidia-smi Deben salir 8 GPU de clase H200 o superior. Si falla, no hay driver o tarjeta NVIDIA.
Disco libre df -h /opt Al menos 2 TB NVMe libres.

Y que los puertos 80 y 443 están libres: este comando no debe devolver nada.

sudo ss -ltnp | grep -E ':80 |:443 '

Para ver si el servidor cumple los requisitos, sin instalar nada:

curl -fsSL <URL>/instalar.sh | bash -s -- --solo-comprobar

Las líneas que importan son RAM_GB=... y GPU_NUM=.... Si el servidor no cumple los requisitos, el instalador lo dice y no instala.

Cambia <URL>, <TOKEN>, <URL-MODELOS> (los datos del contrato), el dominio y el correo:

curl -fsSL <URL>/instalar.sh | sudo SHARA_IMAGEN_URL=<URL>/imagen.tar.zst SHARA_PAQUETE_URL=<URL>/paquete.tar.zst SHARA_MODELOS_URL=<URL-MODELOS> SHARA_DESCARGA_TOKEN=<TOKEN> bash -s -- --dominio shara.empresa.com --email ti@empresa.com --si
  • --dominio y --email sirven para el certificado. Si los quitas, usa el nombre del equipo.
  • --si contesta «sí» a las preguntas (por ejemplo, instalar Docker si falta). Quítalo si prefieres que pregunte.
  • --dir /opt/shara mueve la instalación a otra carpeta.

El instalador, en orden: comprueba el servidor, instala Docker si falta, crea la configuración con claves aleatorias, carga la imagen de Shara, arranca todo y espera a que responda. Después instala el arranque automático y la orden shara-local.

La primera vez tarda. Descarga los pesos del modelo, unos 760 GB: un par de horas con fibra de 1 Gb/s y bastante más con una línea más lenta, y va sacando puntos en pantalla. Si el SSH se corta, la instalación sigue; entra de nuevo y comprueba el estado. Repetir el comando es seguro: no cambia las claves ni toca los datos.

shara-local estado

Debe acabar con «Todo está en marcha.» y la línea de la versión. Los servicios shara-migrate y concerto-bootstrap salen como «Exited (0)»: es normal, solo trabajan al arrancar.

Después, desde un navegador:

  1. Abre https://<tu-dominio>/livez. Debe mostrar {"status":"alive"}.
  2. Abre https://<tu-dominio>. Debe salir la pantalla de entrada de Shara.

El servidor firma con su propia autoridad y la app de escritorio fija el certificado la primera vez que se conecta. Comprueba que es el tuyo. En el servidor:

sudo shara-local estado

imprime una línea «Huella del certificado: FF:DE:…:A0» (SHA-256 en hexadecimal, mayúsculas, separado por dos puntos). En la app, al elegir «Servidor de mi empresa», se muestra otra huella: tienen que ser idénticas, carácter por carácter. Si no lo son, no sigas: alguien puede estar en medio de la conexión.

  • El certificado es propio, de 10 años, y lo crea el instalador una sola vez en /opt/shara/nginx/certs/. No cambia al reiniciar ni al actualizar.
  • No borres esa carpeta: la app lo vería como un servidor distinto y bloquearía la conexión.
  • La app solo acepta https (y http únicamente hacia localhost).
  • Si el navegador avisa del certificado y no hay dominio público, es lo esperado. Pide a TI que instale el certificado raíz, o pon un certificado de la empresa.

Prueba también el reinicio con sudo reboot. A los pocos minutos, shara-local estado tiene que decir lo mismo, sin que hagas nada.

El servidor funciona solo, pero para que tu cuenta de Shara lo vea y lo gestione hay que conectarlo.

  1. Entra en la aplicación de Shara con la cuenta de dueño o administrador, abre la sección Plan Local y pide un código de conexión.
  2. Sale un código de 8 caracteres (XXXX-XXXX). Vale 15 minutos y una sola vez. Si pides otro, el anterior deja de valer.
  3. En el servidor:
sudo shara-local conectar XXXX-XXXX

Si sale «Conectado», ya está. La conexión queda guardada en /opt/shara/conexion/conexion.json (solo la lee root) y, en menos de 30 segundos, Shara muestra el servidor como conectado.

Si falla:

Mensaje Qué significa
«no acepta ese código» No existe, ya se usó o pasaron 15 minutos. Crea uno nuevo en Shara.
«Demasiados intentos» Espera un minuto y repite.
«respuesta 404» El servicio de activación aún no está disponible. No es fallo tuyo: avisa a AIGiner.
«no he podido llegar» El servidor no sale a Internet.

Desde ese momento el servicio shara-conector mantiene la conexión para siempre: avisa a Shara cada 30 segundos, renueva la licencia solo y, si se cae Internet o la nube, reconecta por su cuenta (espera 1 s, 2 s, 4 s… hasta un máximo de 5 minutos entre intentos). shara-local estado dice cómo va, y shara-local logs shara-conector lo cuenta con detalle. Sin Internet no se puede iniciar sesión ni renovar la sesión, porque pasan por la nube de Shara. El servidor aguanta con la licencia 30 días de gracia (ver abajo); tus datos, los agentes y el modelo se quedan en tu servidor.

Desconectar. Desde Shara, en la sección Plan Local, con la opción de desconectar el servidor. El conector lo registra en el log («4401») y deja de reintentar; el servidor sigue funcionando en local. Para volver a conectarlo, genera un código nuevo y usa shara-local conectar: no hace falta reiniciar nada. Repetir conectar es seguro, sobrescribe la conexión anterior.

  • La licencia vale 7 días y el conector la renueva a diario.
  • Si caduca (por ejemplo, porque el servidor lleva días sin Internet), hay 30 días de gracia. En gracia la app avisa con la cabecera X-Shara-Licencia y en GET /v1/plan-local/estado-local.
  • Pasada la gracia, o sin licencia, el servidor sigue dejando leer y exportar los datos (/tenants/me/export, /me/data-export), pero rechaza con 402 licencia_caducada todo lo que escribe o ejecuta agentes, también por WebSocket.
  • Recuperar la conexión basta para volver a la normalidad: el conector renueva la licencia solo.

El servidor guarda el último instante que ha visto y nunca lo retrocede, para que atrasar la fecha no alargue la licencia. Por eso, si el reloj saltó hacia delante por error (pila de la placa, fecha mal puesta un rato), la licencia se daría por pasada aunque no lo esté. Para repararlo:

sudo shara-local reparar-reloj

Exige que el reloj esté sincronizado por NTP (timedatectl show -p NTPSynchronized debe decir yes), enseña el instante guardado y la hora actual, pide escribir REPARAR y deja constancia en la auditoría. Solo baja el instante a la hora actual; nunca lo sube.

No hagas nada especial. Espera 5 minutos: el servidor arranca y Shara arranca sola. Comprueba con shara-local estado. Si a los 10 minutos algo no ha vuelto:

sudo shara-local arrancar
shara-local estado

La base de datos se recupera sola de un corte. Con un SAI (UPS) el riesgo es casi cero: recomendamos tenerlo siempre.

sudo shara-local actualizar

Hace antes una copia de seguridad, carga la versión nueva y reinicia. Las migraciones de la base corren solas. Dura unos minutos y durante ese rato Shara no responde.

Hacer una ahora:

sudo shara-local copia

Se guardan en /opt/shara/copias y se borran las de más de 30 días. Copia esa carpeta a otro equipo de vez en cuando: una copia en el mismo disco no sirve si el disco muere.

Volver a una copia (sobrescribe los datos actuales, y pide confirmación antes de borrar nada):

sudo shara-local restaurar /opt/shara/copias/<fichero>.dump
sudo shara-local parar         # para Shara; los datos se conservan
sudo shara-local arrancar
sudo shara-local reiniciar
shara-local logs               # todo; Ctrl+C para salir
shara-local logs shara-backend # solo un servicio
sudo shara-local desinstalar

Pregunta antes. Quita el arranque automático y para Shara, pero conserva los datos y las copias. Para borrar también los datos (no hay vuelta atrás):

sudo shara-local desinstalar --borrar-datos

Pide además que escribas BORRAR. Sin --borrar-datos no se borra nada.

Qué ves Qué hacer
«Hace falta arquitectura x86_64» El servidor es ARM. Plan Local solo funciona en x86_64.
«Falta Docker 24+» Repite con --si y lo instala, o instálalo a mano y repite.
«Hay GPU pero falta NVIDIA Container Toolkit» Instálalo (guía de NVIDIA, «Container Toolkit») y repite.
«No tengo los pesos de Concerto…» Falta el fichero de modelos. Pasa SHARA_MODELOS_URL o copia el fichero a /opt/shara/modelos.env.
«No se pudo descargar…» Token mal copiado, o el servidor no sale a Internet. Prueba curl -I <URL>/instalar.sh.
Pasa el tiempo y «todavía no está sano» Lo normal la primera vez es esperar. Mira shara-local logs concerto-llm: si sigue descargando, espera.
shara-local estado marca algo «unhealthy» shara-local logs <servicio> y envía las últimas 50 líneas a AIGiner.
El navegador avisa del certificado Esperado sin dominio público. Mira «La huella del certificado».
El puerto 80 o 443 está ocupado Hay otro servidor web (Apache, Nginx). Páralo o instala Shara en otro equipo.
Mucho más lento de lo previsto El servidor no rinde como debería. Revisa «Qué necesitas» (GPU, memoria y disco) y consulta con AIGiner.

Cuando pidas ayuda a AIGiner (soporte@aiginer.com), manda siempre la salida de shara-local estado, la versión (cat /opt/shara/VERSION) y las últimas 50 líneas del servicio que falla. Nunca mandes el fichero .env ni la carpeta conexion/: llevan claves.

¿Quieres una propuesta a medida o un piloto? Escribe a hola@aiginer.com.