Files
scoreko-electron-dev/README.md
T
2026-02-21 18:22:46 +01:00

114 lines
3.6 KiB
Markdown

# 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
```text
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`
## Roadmap de refactor recomendado
Si quieres una propuesta detallada de refactorización, limpieza y mejoras sin romper funcionalidad, revisa: `docs/refactor-roadmap.md`.