Files
scoreko-electron-dev/README.md
T

3.4 KiB

scoreko-electron-dev

Wrapper de Electron para empaquetar una instalación de NodeCG que incluya el bundle scoreko-dev, inspirado en opeik/runback-electron pero actualizado a Electron + TypeScript moderno.

Requisitos clave

  • Electron fijado en 39.5.1.

Qué hace

  • Arranca lib/nodecg/index.js como proceso hijo desde Electron.
  • Muestra la ruta de dashboard de carga del bundle (/bundles/<bundle>/dashboard/loading.html) servida por NodeCG mientras inicia.
  • Carga el dashboard del bundle en http://localhost:<puerto>/bundles/<bundle>/<ruta-dashboard>.
  • Empaqueta NodeCG + assets dentro de la app final con electron-builder.

Estructura esperada

scoreko-electron-dev/
├─ lib/
│  └─ nodecg/
│     ├─ index.js
│     ├─ node_modules/
│     └─ bundles/
│        └─ scoreko-dev/
├─ src/main/main.ts
├─ static/icons/
└─ package.json

Scripts

  • npm run dev: modo desarrollo.
  • npm run build: compila TypeScript y copia assets.
  • npm run start: build y ejecución local.
  • npm run pack: genera app sin instalador.
  • npm run dist: genera instalador.
  • npm run rebuild:native: rebuild nativo auxiliar en lib/nodecg.

Variables de entorno útiles

  • NODECG_BUNDLE_NAME (default: scoreko-dev)
  • NODECG_PORT (default: 9090)
  • SCOREKO_DASHBOARD_ROUTE (default: dashboard/example/main.html?standalone=true)
  • SCOREKO_LOADING_ROUTE (default: dashboard/loading/main.html?standalone=true)
  • SCOREKO_APP_TITLE (default: Scoreko)
  • SCOREKO_APP_USER_MODEL_ID (default: com.scoreko.desktop)
  • SCOREKO_APP_ICON_PATH (default: búsqueda automática en static/icons/icon.ico y static/icons/icon.png)
  • ELECTRON_LOAD_DELAY_MS (default: 10000)
  • NODECG_STARTUP_TIMEOUT_MS (default: 30000)
  • NODECG_KILL_TIMEOUT_MS (default: 2500)

Assets de íconos incluidos

Se incluye static/icons/ con placeholder editable:

  • static/icons/icon.svg

En este repo no se versionan binarios. Para distribución final agrega localmente static/icons/icon.ico (Windows) y/o static/icons/icon.png (Linux/macOS runtime).

Personalización (Windows / Electron)

1) Título de la app

  • Runtime (ventanas): SCOREKO_APP_TITLE.
  • Build (instalador y ejecutable): build.productName.

2) Ícono en barra de tareas y esquina superior

Electron toma automáticamente el primer archivo existente en este orden:

  1. SCOREKO_APP_ICON_PATH (si lo defines)
  2. static/icons/icon.ico
  3. static/icons/icon.png
  4. static/icon.ico
  5. static/icon.png

3) Ícono del .exe y accesos directos

Quedó configurado en package.json con build.win.icon + build.nsis.installerIcon/uninstallerIcon.

4) Nombre/autor del popup de Firewall de Windows

Ese diálogo usa metadata del ejecutable firmado:

  • Nombre de app: normalmente build.productName y metadata del binario.
  • Publisher/autor: certificado de firma de código (si no firmas puede verse Unknown publisher).

Campos clave a revisar:

  • description
  • author
  • build.productName
  • build.win.executableName
  • build.appId

Además, firma el .exe con certificado (CSC_LINK / CSC_KEY_PASSWORD en electron-builder).

Checklist de personalización extra

  • build.appId
  • build.artifactName
  • build.win.executableName
  • build.win.icon
  • build.nsis (nombre del setup, íconos, shortcut)
  • build.mac.icon
  • build.linux.icon
  • SCOREKO_APP_USER_MODEL_ID
  • SCOREKO_APP_ICON_PATH