Which hosting model are you using?
| Model | Who starts the application? | Consideration |
|---|---|---|
| HttpPlatformHandler | The IIS handler | The application must use the assigned port. |
| ARR reverse proxy | A separate service or task manager | IIS forwards HTTP traffic to the target. |
| Background worker | A separately chosen process manager | It 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
- Verify dependencies with the chosen executable rather than relying on the development computer’s PATH.
- Set the working directory and environment explicitly; keep secrets out of logs.
- Inspect running processes and listening ports to rule out a duplicate instance.
- Test local HTTP responses; /healthz is meaningful only if the application implements it.
- Check HTTPS, larger uploads and long requests through IIS.
- 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.