# Requisitos

> Lo que necesitan el servidor de InfraWard, la red y los servidores gestionados antes de instalar.

## Servidor de InfraWard

| | Mínimo | Recomendado |
|---|---|---|
| Sistema operativo | Cualquier Linux x86 de 64 bits (`linux/amd64`) que ejecute Docker Engine. Las imágenes publicadas no están construidas para ARM. | Una versión LTS actual (Debian 13, Ubuntu 24.04 o posterior, RHEL 9 o posterior) |
| Motor de contenedores | Docker Engine 24 o posterior con el plugin Compose v2 | La última versión estable de Docker Engine |
| CPU | 2 vCPU | 4 vCPU si escaneas muchas imágenes grandes |
| Memoria | 4 GB | 8 GB con más de una réplica del worker |
| Disco | 20 GB libres | 50 GB o más en SSD |

En qué se va el espacio:

- **Caché de Trivy**: unos 3 GB en `data/worker`, compartidos por todas las réplicas del worker.
- **Escaneo de imágenes**: cada imagen se exporta a `data/worker/scan` mientras se analiza. Se aceptan imágenes de hasta 4 GiB (`TRIVY_MAX_IMAGE_SIZE`), así que deja al menos ese espacio libre.
- **Base de datos**: crece con el número de assets, SBOM y snapshots. Una instalación de prueba con tres servidores y cuatro contenedores ocupa unos 200 MB.

En reposo, los siete contenedores usan unos 500 MB de RAM. El consumo sube durante los escaneos de imágenes grandes.

> **Podman**
>
> InfraWard también funciona con Podman y `podman compose`. Los comandos de estas páginas usan `docker compose`; con Podman, cámbialo por `podman compose` y ejecuta `init.sh` como `CONTAINER_ENGINE=podman ./init.sh`. En hosts con SELinux en modo enforcing (Fedora, RHEL), puede que los montajes necesiten la opción `:Z`.
## Red

| Desde | Hacia | Puerto | Para qué |
|---|---|---|---|
| Navegadores de los usuarios | Proxy inverso delante de `web` | 443 | Interfaz web y API |
| Servidores gestionados | `INFRAWARD_PUBLIC_URL` | 443 | Descarga del script de alta (solo durante el alta) |
| Contenedores `worker` y `gateway` | Servidores gestionados | 22 (o el puerto SSH que indiques) | Recolección, escaneos y terminal web |
| Contenedor `worker` | Internet | 443 | Base de datos de Trivy (`mirror.gcr.io`, `ghcr.io`), CISA KEV, FIRST EPSS, API de Cloudflare, RDAP |

El worker necesita salida HTTPS directa para descargar los datos de vulnerabilidades. `KEV_URL` y `EPSS_URL` pueden apuntar a espejos propios o quedarse vacías para desactivar esas fuentes, pero la base de datos de Trivy siempre se descarga de sus registros públicos. Consulta [Vulnerabilidades](/es/docs/vulnerabilities.md#redes-restringidas).

Los servidores que no pueden llegar a InfraWard (detrás de NAT o de una VPN sin ruta de vuelta) se pueden dar de alta con el modo de **script embebido**, que no necesita conexión del servidor a InfraWard. El worker, en cambio, siempre tiene que llegar al servidor por SSH.

## Nombre de dominio y TLS

Fuera de `localhost`, InfraWard tiene que servirse por HTTPS:

- La cookie de sesión usa el prefijo `__Host-` y la marca `Secure`, así que los navegadores la descartan por HTTP en cualquier host que no sea `localhost`.
- En producción, la API no arranca si `PUBLIC_URL` no es `https` (salvo en direcciones de loopback).

Prepara un nombre DNS (por ejemplo `infraward.example.com`) y un proxy inverso que termine el TLS. Consulta [HTTPS y proxy inverso](/es/docs/reverse-proxy.md).

## Servidores gestionados

| Requisito | Detalles |
|---|---|
| Linux con servidor OpenSSH | sshd debe incluir `/etc/ssh/sshd_config.d/*.conf` (lo normal en Debian, Ubuntu y RHEL 9 o posterior). El modo con certificados escribe ahí su configuración. |
| `sudo` | El usuario `inventory` ejecuta un único ayudante con `sudo -n`. Proxmox VE no trae `sudo`: marca **Instalar sudo si falta** al generar el comando y el script lo instala. Se admite `sudo-rs` (Ubuntu 25.10 y posteriores). |
| `python3` | Lo necesita Ansible para la recolección. Los CT de Proxmox también necesitan `python3` para inventariarse. |
| `bash` y `curl` | Para ejecutar el comando de alta. En el modo embebido, `base64` y `gunzip` en lugar de `curl`. |
| Reloj sincronizado | En el modo con certificados, el script se detiene si el reloj del servidor va más de 5 minutos atrasado. Usa NTP o `systemd-timesyncd`. |
| Acceso root una vez | El comando de alta se ejecuta como root. Después, InfraWard no vuelve a usar credenciales de root. |

## Navegador

Una versión actual de Chrome, Edge, Firefox o Safari. Si pruebas en `http://localhost` con Safari, consulta [Solución de problemas](/es/docs/troubleshooting.md#safari-no-mantiene-la-sesión-en-localhost).

## Antes de seguir

- [ ] Docker Engine y el plugin de Compose están instalados (`docker compose version`).
- [ ] Tienes un nombre DNS y una forma de obtener un certificado TLS para él.
- [ ] El servidor de InfraWard llega a tus servidores por su puerto SSH.
- [ ] Tienes una app de autenticación para la verificación en dos pasos del administrador.

Siguiente: [Instalar con Docker Compose](/es/docs/installation.md).

---

Página HTML: https://infraward.net/es/docs/requirements/
