Scoreko Desktop
This is the Windows desktop wrapper for Scoreko. It bundles Electron, NodeCG, and our custom scoreko-dev bundle into a single standalone executable. Users just double-click the installer and everything works—no Node.js, pnpm, or command line required.
Local Development
If you're working on the app locally, start by installing dependencies at the repository root:
pnpm install
Then, move into the wrapper folder:
cd scoreko-electron-dev
npm install
Useful Commands
npm run start: Builds the bundle and launches Electron locally for testing.npm run dist:win: Packages everything and creates the.exeWindows installer in therelease/folder.npm run prepare:runtime: Extracts a fresh NodeCG runtime from the parent bundle (useful if you changed dependencies).npm run rebuild:native: Rebuilds native Node modules (like SQLite) specifically for Electron's V8 engine.npm run doctor: Runs a quick sanity check to verify your local configuration and port availability.
How it works under the hood
When you build the installer, the script automatically compiles the main scoreko-dev bundle, provisions a lightweight NodeCG runtime in lib/nodecg, and packages it as an external asset alongside the Electron app.
When a user runs Scoreko for the first time, the app copies this NodeCG runtime directly into their local AppData folder. This is a deliberate choice: it ensures that databases, configs, and logs remain fully writable, even if the user installed the app in restricted directories like Program Files.
Auto-Updates via Gitea
Scoreko supports seamless, opt-in updates through your Gitea instance.
Before building your production installer, check static/updates.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$"
}
To ship an update:
- Bump the version in
package.json. - Run
npm run dist:winto generate the new installer. - Create a new release tag in Gitea (e.g.,
v0.2.0) and attach the.exe. - The app will detect the new version, notify the user, and handle the installation safely.
Environment Configuration
The app ships with sensible defaults that match our development bundle:
NODECG_BUNDLE_NAME=scoreko-devNODECG_PORT=9090SCOREKO_DASHBOARD_ROUTE=dashboard/scoreko-dev/main.html?standalone=trueSCOREKO_LOADING_ROUTE=dashboard/loading/main.html?standalone=trueSCOREKO_UPDATES_ENABLED=trueSCOREKO_UPDATE_ASSET_PATTERN=Scoreko-setup-.*\.exe$
You only need to mess with .env.example if you want to override these values locally while testing.