mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-06 05:32:06 +00:00
69 lines
2.5 KiB
Markdown
69 lines
2.5 KiB
Markdown
# scoreko-electron
|
|
|
|
Windows desktop installer for Scoreko. The packaged app includes Electron, NodeCG, the compiled `scoreko-dev` bundle, and the production modules needed to run it, so end users do not need Node.js, pnpm, or a cloned repository.
|
|
|
|
## Build on a development machine
|
|
|
|
From the repository root:
|
|
|
|
```powershell
|
|
pnpm install
|
|
```
|
|
|
|
Then from `scoreko-electron-dev`:
|
|
|
|
```powershell
|
|
npm install
|
|
npm run dist:win
|
|
```
|
|
|
|
The installer is written to `scoreko-electron-dev/release/Scoreko-setup-0.1.0.exe`.
|
|
|
|
## What the build does
|
|
|
|
- Builds the parent `scoreko-dev` bundle with `pnpm build`.
|
|
- Creates `scoreko-electron-dev/lib/nodecg` with a small NodeCG runtime.
|
|
- Installs production runtime modules into that runtime.
|
|
- Rebuilds `better-sqlite3` for Electron before creating the installer.
|
|
- Packages the runtime as an Electron extra resource outside the app archive.
|
|
|
|
## Runtime behavior
|
|
|
|
On first launch, Scoreko copies the packaged NodeCG runtime to the user's app data folder and then relaunches itself before starting NodeCG. This keeps `cfg`, `db`, and `logs` writable on Windows even when the app is installed under `Program Files`, and avoids transient startup failures caused by freshly copied runtime files.
|
|
|
|
## Useful scripts
|
|
|
|
- `npm run start`: build everything and run Electron locally.
|
|
- `npm run prepare:runtime`: recreate `lib/nodecg` from the parent bundle.
|
|
- `npm run rebuild:native`: rebuild NodeCG native modules for Electron.
|
|
- `npm run dist:win`: create the Windows installer.
|
|
- `npm run doctor`: check the prepared runtime and the configured port.
|
|
|
|
## Updates from Gitea
|
|
|
|
Scoreko can check a Gitea release feed without forcing the user to update. Edit `static/updates.json` before building:
|
|
|
|
```json
|
|
{
|
|
"enabled": true,
|
|
"apiUrl": "http://gitea.local/api/v1/repos/OWNER/REPO/releases/latest",
|
|
"releasePageUrl": "http://gitea.local/OWNER/REPO/releases",
|
|
"assetPattern": "Scoreko-setup-.*\\.exe$"
|
|
}
|
|
```
|
|
|
|
For each release, bump `package.json` version, build with `npm run dist:win`, create a Gitea release tagged like `v0.2.0`, and attach `release/Scoreko-setup-0.2.0.exe`. When Scoreko sees a newer tag, it asks whether to download and install it.
|
|
|
|
## Configuration
|
|
|
|
The defaults match the parent bundle:
|
|
|
|
- `NODECG_BUNDLE_NAME=scoreko-dev`
|
|
- `NODECG_PORT=9090`
|
|
- `SCOREKO_DASHBOARD_ROUTE=dashboard/scoreko-dev/main.html?standalone=true`
|
|
- `SCOREKO_LOADING_ROUTE=dashboard/loading/main.html?standalone=true`
|
|
- `SCOREKO_UPDATES_ENABLED=true`
|
|
- `SCOREKO_UPDATE_ASSET_PATTERN=Scoreko-setup-.*\.exe$`
|
|
|
|
Copy `.env.example` only if you need local overrides while developing.
|