Windows Installer Builder for Actors
Under maintenancePricing
from $10.00 / installer built
Windows Installer Builder for Actors
Under maintenanceTurns 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
Maintained by CommunityActor 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
- 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). - Start this actor and upload the zip in Actor source code. Optionally set the application name, version and service name.
- 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
| Part | Source |
|---|---|
| The actor's files | The zip, filtered by its .dockerignore like the Apify Docker build. TypeScript actors are built with npm run build. |
| npm packages | npm install --omit=dev --os=win32 --cpu=x64, so platform-specific packages are the Windows builds. |
| Node.js | Official 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. |
| Browser | Puppeteer 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 console | Node.js only, no extra packages. |
| Service wrapper | WinSW 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) inC:\ProgramData\<Service name>, readable only by administrators and the service. - Registers a service that starts automatically and runs under the low-privilege
LocalServiceaccount. - Creates a certificate for
localhostand 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-sqlite3orsharpwithout 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.jsonMAKENSIS=/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 installnode /path/to/installer-builder/template/console/server.js # serves http://localhost:8080