> For the complete documentation index, see [llms.txt](https://public-intelligence.gitbook.io/taina-agente-ia-ogtic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://public-intelligence.gitbook.io/taina-agente-ia-ogtic/empezando-con-taina/prerrequisitos.md).

# Preparación del servidor

Esta sección cubre la preparación completa del servidor donde se ejecutará Taína. Al finalizar, tendrás un entorno listo para desplegar el agente de IA mediante Docker.

## Requisitos mínimos de hardware

Para garantizar la estabilidad del servicio en producción, el servidor debe cumplir con los siguientes requisitos:

| Recurso               | Mínimo                      | Recomendado             |
| --------------------- | --------------------------- | ----------------------- |
| **CPU**               | 2 vCPUs                     | 4 vCPUs                 |
| **RAM**               | 8 GiB                       | 16 GiB                  |
| **Almacenamiento**    | 30 GB SSD                   | 50 GB SSD               |
| **Sistema operativo** | Ubuntu 22.04 LTS            | Ubuntu 24.04 LTS        |
| **Red**               | Conexión estable a Internet | Ancho de banda dedicado |

> **¿Por qué estos recursos?** Taína ejecuta modelos de detección de voz (Silero VAD, Turn Detector) localmente y mantiene conexiones WebRTC en tiempo real. Los 8 GiB de RAM son necesarios para sostener el proceso del agente, los embeddings de ChromaDB y los workers de LiveKit simultáneamente.

## Paso 1 – Actualizar el sistema operativo

Conéctate a tu servidor vía SSH y actualiza los paquetes del sistema:

```bash
sudo apt update && sudo apt upgrade -y
```

## Paso 2 – Instalar Docker Engine

Docker permite ejecutar Taína en un contenedor aislado, sin necesidad de instalar Python ni ninguna dependencia directamente en el servidor.

### 2.1. Instalar dependencias previas

```bash
sudo apt install -y ca-certificates curl gnupg
```

### 2.2. Agregar el repositorio oficial de Docker

```bash
# Crear directorio para las llaves GPG
sudo install -m 0755 -d /etc/apt/keyrings

# Descargar la llave GPG de Docker
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Agregar el repositorio de Docker a las fuentes de APT
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualizar el índice de paquetes
sudo apt update
```

### 2.3. Instalar Docker y Docker Compose

```bash
sudo apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
```

### 2.4. Verificar la instalación

```bash
# Verificar Docker
docker --version
# Debe mostrar: Docker version 27.x.x o superior

# Verificar Docker Compose
docker compose version
# Debe mostrar: Docker Compose version v2.x.x o superior
```

### 2.5. Permitir ejecutar Docker sin `sudo` (opcional pero recomendado)

```bash
sudo usermod -aG docker $USER

# Cierra la sesión SSH y vuelve a conectarte para que el cambio surta efecto
```

Verifica que funcione sin `sudo`:

```bash
docker run --rm hello-world
```

## Paso 3 – Instalar utilidades adicionales

Estas herramientas son útiles para la administración del servidor:

```bash
sudo apt install -y git jq curl
```

| Herramienta | Propósito                                             |
| ----------- | ----------------------------------------------------- |
| `git`       | Clonar y actualizar el repositorio de Taína           |
| `jq`        | Procesar archivos JSON desde la línea de comandos     |
| `curl`      | Realizar peticiones HTTP (ej. autenticación catálogo) |

## Paso 4 – Verificar que todo está listo

Ejecuta este bloque para confirmar que tu servidor está preparado:

```bash
echo "=== Verificación del Servidor ==="
echo "Docker:         $(docker --version 2>/dev/null || echo '❌ No instalado')"
echo "Docker Compose: $(docker compose version 2>/dev/null || echo '❌ No instalado')"
echo "Git:            $(git --version 2>/dev/null || echo '❌ No instalado')"
echo "jq:             $(jq --version 2>/dev/null || echo '❌ No instalado')"
echo "RAM total:      $(free -h | awk '/^Mem:/{print $2}')"
echo "Disco libre:    $(df -h / | awk 'NR==2{print $4}')"
echo "================================="
```

Deberías ver todas las herramientas instaladas, al menos 8 GiB de RAM y 30 GB de disco libre.

## Próximo paso

Con el servidor preparado, continúa con la [configuración de credenciales y variables de entorno](/taina-agente-ia-ogtic/empezando-con-taina/configuracion-entorno.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://public-intelligence.gitbook.io/taina-agente-ia-ogtic/empezando-con-taina/prerrequisitos.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
