Despliegue aislado de la red y sin conexión
Cada hoja de estilos, script, fuente e icono se sirve desde tu instalación, en las 14 plantillas incluidas las de inicio de sesión y registro. Verificado en vivo con 62 peticiones, cero externas.
Potato sirve cada hoja de estilos, script, fuente e icono desde su propia instalación. Una máquina sin ruta a internet muestra la misma interfaz que una con conexión rápida. Verificado en vivo sobre una página de anotación renderizada: 62 peticiones, cero externas, incluidas las páginas de inicio de sesión y registro.
Esto importa en entornos de investigación protegidos, contextos clínicos, despliegues de campo y cualquier máquina detrás de un proxy estricto. Es tanto una propiedad de privacidad como de disponibilidad.
Recursos servidos desde la instalación
Fabric.js (el lienzo de imagen), jQuery, Bootstrap, Font Awesome, la tipografía de interfaz Outfit, three.js (nubes de puntos), OpenSeadragon (zoom profundo), d3, Peaks.js (formas de onda de audio), PDF.js, y todo el CSS y JavaScript propios de Potato.
Dos de ellos son necesarios, no cosméticos. Sin jQuery la anotación de spans no funciona en absoluto. Sin Fabric.js el lienzo de imagen nunca se inicializa, así que las herramientas de dibujo aparecen pero no se puede dibujar nada.
La fuente era una fuga de privacidad
styles.css empezaba con un @import de Google Fonts. Además de romper el uso sin conexión, eso enviaba la dirección IP y el User-Agent de cada anotador a un tercero en cada carga de página, desde una herramienta que la gente autoaloja precisamente para que sus datos no salgan de su infraestructura.
Había sobrevivido a tres auditorías de aislamiento previas, porque cada control revisaba <script src> y <link href> en las plantillas, y un @import dentro de una hoja de estilos no es ninguno de los dos. La tipografía ahora se incluye bajo la SIL Open Font License.
Un favicon de terceros en las páginas de inicio de sesión y registro se eliminó por la misma razón: una petición a los servidores de otra empresa desde la página donde los usuarios escriben sus credenciales.
Cobertura en las 14 plantillas
La cobertura incluye ahora inicio de sesión, registro, restablecimiento de contraseña y páginas de error. Son las páginas que una auditoría de aislamiento revisa con menos probabilidad y en las que más suele importar.
Los archivos incluidos se verifican por suma de comprobación
Todo lo incluido se verifica contra el hash que publica su CDN, y se rechaza si no coincide. Los archivos incluidos se versionan, así que una descarga sin verificar llegaría a todos los usuarios de esa versión.
Ambas listas de permitidos de los controles están vacías, y los controles fallan si una entrada deja de coincidir con algo, de modo que una excepción no puede volverse permanente en silencio.
Qué significa «aislado de la red» con precisión
La aplicación no necesita red. Los modelos son una transferencia única: ejecuta potato download-models en una máquina conectada y copia el directorio. Cualquier endpoint de IA alojado que configures, como OpenAI, Anthropic o Gemini, evidentemente necesita salida.
Así que la formulación exacta es «aislado de la red una vez que los pesos están en la máquina», no «aislado de la red sin configuración alguna».