Labstream 922299e2a5 Envoltorio de escritorio Windows (Tauri 2) para Labstream OS
Cliente delgado que abre os.labstreamsas.com en su propia ventana.
Incluye build por GitHub Actions y guía de versionado.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 14:14:03 -05:00

Labstream OS — App de escritorio (Windows)

Envoltorio de escritorio para Labstream OS. Es un cliente delgado hecho con Tauri 2: abre una ventana propia (sin barra de navegador) que carga el servidor de Labstream OS que corre en el NAS (https://os.labstreamsas.com).

No contiene la app: el backend, la base de datos, OnlyOffice, etc. siguen en el NAS. Esto solo le da al equipo un ícono y una ventana propia en Windows.

El servidor objetivo se configura en src-tauri/tauri.conf.json → app.windows[0].url.


Prerrequisitos (solo para construir)

Quien instala el .exe no necesita nada (WebView2 ya viene en Windows 10/11). Para construir el instalador hacen falta:

  • Node.js 20+
  • Rust (incluye cargo)
  • En Windows: las "Visual Studio Build Tools" con el componente de C++.

⚠️ Importante: el .exe de Windows se construye en Windows. Tauri no compila de forma cruzada desde macOS de manera fiable. Por eso lo normal es dejar que GitHub Actions lo construya (ver más abajo). Si quieres hacerlo a mano, usa una PC o máquina virtual con Windows.


Construir el instalador con GitHub Actions (recomendado)

El flujo no requiere tener Windows a mano:

  1. Sube este proyecto a su propio repositorio (ej. Labstream2026/labstream-desktop).
  2. Cambia la versión en dos sitios (deben coincidir):
    • src-tauri/tauri.conf.json → "version"
    • src-tauri/Cargo.toml → version
    • (opcional) package.json → "version"
  3. Crea y publica la etiqueta de versión:
    git commit -am "Versión 1.1.0"
    git tag v1.1.0
    git push origin main --tags
    
  4. GitHub Actions construye el .exe y lo publica en Releases. El equipo lo descarga desde ahí: https://github.com/Labstream2026/labstream-desktop/releases.

También puedes lanzarlo a mano sin etiqueta desde la pestaña Actions → Build instalador Windows → Run workflow (el .exe queda como artifact).


Construir en local (en una PC Windows)

npm install
npm run build      # genera iconos + compila el instalador

El instalador queda en:

src-tauri/target/release/bundle/nsis/Labstream OS_<versión>_x64-setup.exe

Para desarrollo con recarga en caliente: npm run dev.


Versiones (SemVer)

Se usa MAYOR.MENOR.PARCHE:

Cambio Ejemplo
Corrección / arreglo 1.0.0 → 1.0.1
Función nueva compatible 1.0.1 → 1.1.0
Cambio grande / incompatible 1.1.0 → 2.0.0

La versión del envoltorio es independiente de la de la app web (labstream-os). Como la ventana siempre apunta al mismo servidor, casi nunca chocan; documenta aquí si en algún momento una versión del envoltorio exige una versión mínima del backend.


Actualización automática (opcional, recomendable a futuro)

Hoy, para actualizar, el equipo descarga el nuevo .exe del Release y lo reinstala encima. Para que las apps ya instaladas se actualicen solas, Tauri trae un updater. Para activarlo (paso futuro):

  1. Genera el par de claves de firma:
    npm run tauri signer generate -- -w ~/.tauri/labstream.key
    
  2. Añade el plugin-updater y la clave pública en tauri.conf.json, y guarda la clave privada como secret en GitHub (TAURI_SIGNING_PRIVATE_KEY).
  3. Apunta el updater al latest.json que publica el Release.

Se deja sin activar a propósito para que la primera versión compile sin configuración extra.


Aviso de SmartScreen (instalación interna)

Como el instalador no está firmado con un certificado de pago, Windows mostrará una pantalla azul "Windows protegió su PC" la primera vez. Es normal para apps internas:

Más información → Ejecutar de todos modos

Si en el futuro se distribuye a clientes externos, conviene un certificado de code signing (~150–400 USD/año) para quitar ese aviso.


Estructura

labstream-desktop/
├── app-icon.png                 fuente del ícono (1024×1024)
├── dist/index.html              pantalla de respaldo (requerida por Tauri)
├── package.json                 scripts de build
├── src-tauri/
│   ├── tauri.conf.json          nombre, versión, URL del servidor, instalador
│   ├── Cargo.toml               dependencias Rust + versión
│   ├── build.rs
│   ├── capabilities/default.json
│   ├── icons/                   se generan desde app-icon.png
│   └── src/{main.rs,lib.rs}
└── .github/workflows/build-windows.yml   build automático del .exe
Descripción
App de escritorio de Labstream OS (Tauri 2, Windows y macOS)
Readme 378 KiB
Languages
Rust 96.5%
JavaScript 3.5%