Python and Node.js: IIS hosting and process ownership

AdaPanel’s Python and Node.js hosting workflow configures application startup through HttpPlatformHandler. Site reverse proxy configuration is a separate feature. Distinguishing these models from background worker management helps prevent duplicate processes and port conflicts.

By: AdaPanel · Updated:

Which hosting model are you using?

Which hosting model are you using?
ModelWho starts the application?Consideration
HttpPlatformHandlerThe IIS handlerThe application must use the assigned port.
ARR reverse proxyA separate service or task managerIIS forwards HTTP traffic to the target.
Background workerA separately chosen process managerIt may not handle HTTP requests at all.

AdaPanel’s current hosting workflow

An administrator or authorized reseller selects a runtime component, startup file, working directory inside the site, arguments and environment values. The panel prepares HttpPlatformHandler and writes application settings into the site’s web.config.

PORT receives the port assigned by HttpPlatformHandler. An application hardcoded to port 8000 may need adaptation before it fits that model. Python also receives unbuffered output configuration; application logs are placed under App_Data/AdaPanel/logs inside the site.

Portable Python packages and worker boundaries

Bundling python.exe, dependencies or models does not itself establish panel integration. The current workflow selects a runtime component and startup file. Do not assume automatic migration, process adoption or .env preservation for every portable package and two-process server/worker deployment.

If Windows tasks already run the application, avoid launching the same command through a second manager. Record task names, commands, accounts, directories and restart behavior for both server and worker. Choose one owner for each process and make the transition deliberately.

Checks before publication

  1. Verify dependencies with the chosen executable rather than relying on the development computer’s PATH.
  2. Set the working directory and environment explicitly; keep secrets out of logs.
  3. Inspect running processes and listening ports to rule out a duplicate instance.
  4. Test local HTTP responses; /healthz is meaningful only if the application implements it.
  5. Check HTTPS, larger uploads and long requests through IIS.
  6. Test the web process and worker separately after a restart.

Protect private application files

Keep .env files, AI models, temporary work files and private uploads from becoming publicly served static content. Review application authorization together with IIS access rules. Removing navigation links does not prevent direct URL access; verify the restriction with actual HTTP requests.

Frequently asked questions

Does a reverse proxy also start the worker?

No. A reverse proxy forwards HTTP traffic. The worker needs a separate process management arrangement with a single owner.

Does the panel automatically adopt every portable Python package?

Do not assume that. Its component/startup-file workflow needs a separate compatibility check for custom packages and existing server/worker tasks.

Sources and next steps

AdaPanel installation guide · More guides

Explore AdaPanel releases