Recetas
Una receta es el conjunto de parámetros del motor de transferencia que usa un despliegue — compresión, tamaño de chunk, transporte, timeouts, acción tras el despliegue, etc. La página Recetas (barra lateral → Recetas) es donde las creas, las afinas y las reutilizas.
Disposición

Un árbol de carpetas a la izquierda organiza las recetas igual que Imágenes e Infraestructura — crear, renombrar, mover, bloquear, buscar y eliminar carpetas arrastrando o con el botón derecho. La tabla de la derecha lista todas las recetas con sus parámetros clave de un vistazo y un conjunto de acciones por fila.
| Acción | Qué hace |
|---|---|
| ★ / ☆ | Marca una receta como predeterminada — la que sale preseleccionada al abrir el modal de despliegue. Solo una receta puede ser predeterminada a la vez. |
| Duplicar | Abre el editor precargado con esta receta, listo para guardar como una nueva. |
| Editar | Abre el editor sobre esta receta. |
| Exportar | Descarga esta receta como JSON. |
| Eliminar | Elimina la receta (con confirmación). |
Una barra de acciones masivas aparece en cuanto seleccionas más de una fila, permitiendo exportar o eliminar varias recetas a la vez. Nueva receta abre el editor completo (más abajo); su desplegable también ofrece Nueva receta con asistente — una alternativa guiada por preguntas, descrita más abajo — y una forma de crear una carpeta nueva.
El editor de recetas, pestaña a pestaña

Básico
-
Nombre (obligatorio) y Descripción (opcional).
-
Imagen base — Sin imagen (el máster sirve lo que haya en su disco en vivo — nada que elegir de antemano) o Con imagen (una imagen del catálogo se elige en el momento del despliegue, o se fija más abajo).
- Al usar una imagen, la descompresión de imagen controla cómo sirve el máster una imagen comprimida: al vuelo (descomprime mientras transmite, manteniendo una caché de chunks configurable en RAM — 2048 chunks por defecto) o predescomprimida (se descomprime a un fichero en crudo temporal antes de servirla).
-
Recurso del despliegue — decidir la imagen, o el máster desde el que clonar, al desplegar (por defecto), o fijarlo ya en la propia receta para que todos los despliegues que la usen tomen siempre el mismo origen.
-
Transportes de despliegue — P2P (el por defecto; los peers se redistribuyen bloques entre sí, al estilo BitTorrent) o Multicast (UDP, un solo envío llega a todos los que escuchan en el segmento — ver la pestaña Multicast más abajo).
-
Diff incremental — compara el disco actual de cada cliente con el máster por hash y solo transfiere los bloques que realmente han cambiado; ideal para redesplegar un parche de sistema operativo en vez de una imagen completa.
-
Simulación (dry run) — recibe y descomprime todo con normalidad pero nunca escribe en disco, para probar una receta sin tocar los datos de ningún cliente.
-
Opciones avanzadas (plegadas por defecto):
Campo Valores Para qué sirve Compresión lz4(rápido, por defecto) /zstd(mejor ratio)Equilibrio entre CPU y uso de red/disco. Nivel Depende del algoritmo (p. ej. lz4 1–12, zstd 1–22) Más alto = salida más pequeña, más CPU. Hash blake3(rápido, por defecto) /sha256(compatible)Algoritmo de comprobación de integridad para los bloques y la verificación de disco. Tamaño de chunk Número + unidad ( 4Mpor defecto)Chunks más pequeños se reparten más rápido entre los peers P2P; chunks más grandes van mejor en redes rápidas y estables. Selección de chunk random(por defecto) /rarest/sequentialQué bloque pide un cliente a continuación — máxima diversidad, el más escaso primero (bueno en redes inestables), o en orden (más suave con discos lentos). Descubrimiento del máster mdns(por defecto) /staticLos clientes encuentran el máster automáticamente, o se conectan directamente a una dirección fija. Métricas de diagnóstico activado/desactivado Recoge telemetría detallada por nodo (percentiles de latencia de disco, CPU/RAM, RTT/retransmisiones TCP, errores de NIC) mostrada en vivo durante el despliegue. Guardar telemetría en disco desactivado / .jsonl/.csvPersiste esa telemetría para analizarla después. La lista exacta de algoritmos de compresión, algoritmos de hash y estrategias de selección de chunk que se ofrecen aquí siempre coincide con lo que realmente admite el binario
netddinstalado — Stranola lo sondea una vez al arrancar y adapta el formulario en consecuencia.

Máster
Ajustes para la máquina (o el propio servidor) que actúa como origen de la transferencia.
| Campo | Por defecto | Para qué sirve |
|---|---|---|
| Mbps máx. | 0 (ilimitado) | Limita el ancho de banda total de salida del máster. |
| Concurrencia máx. | 0 (ilimitado) | Limita a cuántos clientes sirve el máster directamente a la vez. |
| Reparto justo (fair-share) | desactivado | Reparte el ancho de banda del máster de forma equitativa para que ningún cliente rápido acapare el resto. |
| Penalización justa (ms) | 10 | Retraso aplicado a un cliente que excede su cuota de reparto justo. |
| Super-seed | desactivado | Cada bloque lo envía el máster una sola vez en total, confiando en el P2P para propagarlo — convierte un tráfico de disco N× en aproximadamente 1×. |
| Reserva de super-seed (s) | 30 | Cuánto esperar antes de volver a servir un bloque que ningún cliente ha confirmado haber recibido; 0 = no volver a servirlo nunca. |
| Disperso (sparse) | activado | Salta los bloques de disco vacíos en vez de transferirlos — normalmente ahorra un 30-60% de tráfico en discos parcialmente vacíos. |
| Al terminar (máster) | Ninguna | No hace nada, reinicia, apaga, o ejecuta un comando de shell personalizado cuando termina la parte del máster. |
| Timeout sin clientes (s) | 0 (esperar para siempre) | Termina el despliegue si ningún cliente se ha conectado en este tiempo. |
| Clientes concurrentes máx. | 0 (ilimitado) | Limita a cuántos clientes se sirve en paralelo. |

Red
| Campo | Por defecto | Para qué sirve |
|---|---|---|
| Límite de recepción por cliente (MB/s) | 0 (ilimitado) | Limita la velocidad total de descarga de un cliente (máster + P2P combinados), útil para proteger subidas lentas. |
| Timeout TCP (ms) | 10000 | Cuánto puede estancarse una conexión antes de considerarse muerta. |
| DSCP/QoS | 0 (sin marcar) | Marca los paquetes salientes para priorización a nivel de red (46 = máxima prioridad, EF). |
| Intervalo de monitorización (s) | 2 | Cada cuánto se muestrea la salud de la red durante el despliegue. |
| Umbral de error (%) | 1.0 | Tasa de error por encima de la cual un enlace se marca como degradado. |
| Umbral de colisión (%) | 0.5 | Tasa de colisión por encima de la cual un enlace se marca como degradado. |

Cliente
| Campo | Por defecto | Para qué sirve |
|---|---|---|
| Verificar tras escribir | activado | Calcula el hash de todo el disco tras clonar y lo compara con el origen. |
| Tit-for-tat | desactivado | Prioriza subir datos a los peers que más te están devolviendo, desincentivando a los que solo reciben. |
| Sin reanudación | desactivado | Ignora cualquier estado de reanudación previo y empieza la transferencia desde cero. |
| Tiempo de seed (s) | 0 (se va al terminar) | Cuánto tiempo sigue un cliente terminado sirviendo datos a otros peers antes de desconectarse. |
| RTT local (ms) | 0.5 | Tiempo de ida y vuelta por debajo del cual dos peers se tratan como si estuvieran en el mismo switch, habilitando una tubería (pipeline) más profunda entre ellos. |
| Retraso de reserva al máster (ms) | 50 | Periodo de gracia dado a los peers P2P antes de recurrir a pedirle directamente al máster. |
| Profundidad de pipeline | 16 | Cuántas peticiones de chunk mantiene un cliente en vuelo a la vez. |
| Timeout de estancamiento (s) | 0 (60s por defecto interno) | Aborta la transferencia si no llega ningún chunk en este tiempo. |
| Ubicación del máster | descubrimiento automático | Opcionalmente fija directamente el host:puerto del máster en vez de descubrirlo. |
| Al terminar (cliente) | Ninguna | No hace nada, reinicia, apaga, verifica el disco, o ejecuta un comando de shell personalizado cuando un cliente termina. |

Preflight
Una prueba de red opcional que se ejecuta contra todos los clientes antes de que empiece el clonado real, para detectar cableado defectuoso, enlaces en semidúplex o ancho de banda insuficiente pronto en vez de a mitad de despliegue.
| Campo | Por defecto |
|---|---|
| Activar preflight | desactivado |
| Duración de prueba por cliente (s) | 10 |
| Tasa de error máx. (%) | 2.0 |
| Excluir clientes lentos por debajo de (Mbps) | 0 (no excluir) |

Multicast
Se muestra al elegir Multicast como transporte del despliegue en la pestaña Básico. En vez de que cada cliente pida los datos individualmente, el máster envía cada bloque una vez a un grupo multicast y el switch de red lo replica a todos los que escuchan — el ancho de banda del máster deja de ser el cuello de botella a medida que añades más clientes.
| Campo | Por defecto | Para qué sirve |
|---|---|---|
| Grupo multicast | — | p. ej. 239.0.0.1 (se recomienda el rango 239.x.x.x). |
| Puerto de datos | 7100 | |
| Puerto NACK | 7101 | Lo usan los clientes para pedir la retransmisión de bloques perdidos. |
| TTL | 1 | 1 mantiene el tráfico en el segmento de red local. |
| Velocidad máx. (Mbps) | 400 | 0 quita el límite (no recomendado — se muestra un aviso). |
| Interfaz multicast | automática | |
| Corrección de errores FEC | desactivado | Corrección de errores Reed-Solomon (forward error correction) — repara paquetes perdidos sin pedir retransmisión. |
| Redundancia FEC (%) | 10 | Solo se muestra con FEC activado; valores más altos toleran más pérdida a costa de más ancho de banda. |
| Modo híbrido | activado | Mantiene vivo el camino P2P/TCP junto al multicast, como mecanismo de reparación y para clientes que se unen tarde o tienen problemas — se recomienda dejarlo siempre activado. |
| Buffer RX (MB) | 32 | Tamaño del buffer de recepción del kernel; súbelo en redes más rápidas (10GbE → ~96, 25GbE+ → ~192). |
| Lote RX | 64 | Tamaño de lote de recepción de paquetes. |
| Lote TX | 64 | Tamaño de lote de envío de paquetes. |
El asistente inteligente
Nueva receta con asistente te construye una receta haciendo preguntas sencillas en vez de que ajustes los parámetros directamente — un buen punto de partida si no estás seguro de qué cambiar.

- Hardware — tipo de disco del cliente (SSD / HDD rápido / HDD lento / desconocido), RAM por máquina, entorno (físico / virtual / mixto), y aproximadamente cuántas máquinas cliente hay.
- Red — velocidad del enlace, estabilidad, si hay varios switches involucrados, si son gestionados, y cuánto espacio libre tiene el disco del máster.
- Objetivo — primer clonado, actualización incremental, simulación, o solo verificar; y qué hacer cuando un cliente termina (nada, reiniciar, apagar, verificar disco).
- Ajuste fino — un conjunto de interruptores opcionales: mantener la velocidad estable en SSDs SATA, aplicar contrapresión ante congestión de disco/enlace, abortar si SMART reporta un disco fallando, diagnóstico en vivo, cifrar el tráfico, ejecutar una prueba preflight, reciprocidad tit-for-tat, verificar tras escribir — más una elección de algoritmo de hash y un temporizador de auto-apagado para el máster.
- Resumen — nombra la receta, revisa una explicación en lenguaje llano de lo que se ha elegido y por qué, opcionalmente despliega los parámetros resultantes exactos, y genera la receta.
El asistente es un motor de reglas determinista independiente — no llama a ningún servicio de IA, y produce una receta normal que después puedes seguir abriendo y afinando en el editor completo.
Exportar e importar

Exportar (desde la barra de herramientas, para todas las recetas, o por fila/selección para solo algunas) descarga un fichero JSON plano con todos los parámetros de la receta — todo lo específico de esta instalación en concreto (IDs internos, referencias a imágenes) se omite a propósito para que el fichero sea portable.
Importar lee ese fichero y crea recetas nuevas a partir de él. Cualquier cosa específica de la instalación se genera siempre de nuevo al importar (nunca se toma del fichero), y una colisión de nombre se gestiona automáticamente — si "Windows 11 base" ya existe, la copia importada se convierte en "Windows 11 base (2)", y así sucesivamente — así que importar nunca sobrescribe una receta existente por accidente.