Windows Installer Builder for Actors avatar

Windows Installer Builder for Actors

Under maintenance

Pricing

from $10.00 / installer built

Go to Apify Store
Windows Installer Builder for Actors

Windows Installer Builder for Actors

Under maintenance

Turns a Node.js actor's source code (.zip) into a Windows installer that runs the actor as a Windows service, managed from a local web console at https://localhost.

Pricing

from $10.00 / installer built

Rating

0.0

(0)

Developer

Tin

Tin

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Categories

Share

Turns the source code of a Node.js Apify actor into a Windows installer (.exe). The installed actor runs as a Windows service and is managed from a local web console at https://localhost, which works much like Apify Console: input form, runs, live log, results and exports, stored files, abort, rerun and settings.

How to use it

  1. Download your actor's source code as a .zip (for example from the actor's Source tab in Apify Console), or have the URL of one ready (for example a GitHub archive link).
  2. Start this actor and upload the zip in Actor source code. Optionally set the application name, version and service name.
  3. When the run finishes, download the installer from the run's Storage tab: key-value store record <ServiceName>-Setup-<version>.exe. The dataset item has the same link plus the bundled Node.js and browser versions and any warnings.

A build takes about 5 to 15 minutes, mostly compressing the installer. The installer for a browser actor is about 200 MB.

Pricing

This Actor is priced per event: you pay a fixed price for each installer it builds and saves (the Installer built event). The price is shown on the Actor's page in Apify Store. A run that fails, for example because the source is not a Node.js actor, is not charged for an installer.

If the run's Maximum cost per run is lower than the price of one installer, the run stops right away instead of building something it cannot deliver.

What goes into the installer

PartSource
The actor's filesThe zip, filtered by its .dockerignore like the Apify Docker build. TypeScript actors are built with npm run build.
npm packagesnpm install --omit=dev --os=win32 --cpu=x64, so platform-specific packages are the Windows builds.
Node.jsOfficial Windows x64 build from nodejs.org, checksum verified. By default the major version from the actor's Dockerfile, raised to the oldest supported LTS when that one is end-of-life or too old for the packages.
BrowserPuppeteer actors get the Chrome build their Puppeteer version expects. Playwright actors get Playwright's Chromium, plus Firefox or WebKit when the source mentions them. Other actors get no browser.
Web consoleNode.js only, no extra packages.
Service wrapperWinSW 2.12.0, checksum verified.

The start command comes from the Dockerfile's CMD and the matching package.json script, for example npm start → node src/main.js. Set Start command if the actor starts differently.

What the installer does on Windows

  • Needs 64-bit Windows 10, Windows Server 2016 or later, and an administrator account.
  • Installs to C:\Program Files\<Application name> and keeps data (runs, results, settings, logs) in C:\ProgramData\<Service name>, readable only by administrators and the service.
  • Registers a service that starts automatically and runs under the low-privilege LocalService account.
  • Creates a certificate for localhost and trusts it on the machine, so the console opens without a browser warning. The console listens on this computer only and has no login.
  • Adds a Start menu shortcut to the console.

Upgrade

Run a newer installer over the old one. It keeps the folder, port, certificate and all data, and re-registers the service. Runs in progress are aborted; the interactive installer asks first. The service name identifies the installation, so keep it the same across versions.

Unattended install and uninstall

MyActor-Setup-1.0.0.exe /S /PORT=8443
"C:\Program Files\My Actor\uninstall.exe" /S # keeps the data
"C:\Program Files\My Actor\uninstall.exe" /S /PURGE # also deletes the data

Exit code 10 means the files were installed but the service could not be configured, and 2 means the port was invalid or in use. Details are in C:\ProgramData\<Service name>\logs\setup.log.

Limits

  • Only Node.js actors (JavaScript or TypeScript). Python actors are not supported.
  • Packages with native code that is compiled or downloaded during installation (for example better-sqlite3 or sharp without Windows prebuilds) will probably fail on Windows. The run lists them as warnings.
  • The installed actor stores its data locally, not in Apify storage. Features that need the Apify platform (calling other actors, webhooks, Standby mode) do not work without extra setup.
  • Apify Proxy works outside the platform only if your Apify plan includes "Proxy external access". Otherwise use your own proxies in the actor's input.

Running the builder on your own computer

The builder runs on Linux or Windows with Node.js 20 or newer and NSIS (makensis):

npm install
# INPUT.json may also point to a local .zip or folder instead of a URL.
echo '{ "sourceZip": "/path/to/actor-source.zip" }' > storage/key_value_stores/default/INPUT.json
MAKENSIS=/path/to/makensis npm start

The installer is written to dist/. On Windows, set WORK_DIR to a short folder such as C:\build, because node_modules paths get long. KEEP_WORK_DIR=1 keeps the staged files for inspection.

Developing the web console

The console is in template/console. To try it against an actor checkout without installing:

cd /path/to/actor && npm install
node /path/to/installer-builder/template/console/server.js # serves http://localhost:8080