Repository navigation
EN cPanel and Passenger
English · Türkçe · Languages / Diller
Scope: JSON API Forge 0.5.1 · Source review: 17 September 2026 · Language: English
The Passenger path bridges ASGI to WSGI using a2wsgi for conventional HTTP APIs. Persistent WebSockets and Editor audio/video signaling require native ASGI.
- Place official server source in a private application directory, preferably outside
public_html. - Create a supported Python environment with cPanel's Python application tool.
- In that environment, run
python -m pip install .or the repository's documented dependency installation. - Add your application under
app/; useforge init --productionfor a new deployment. - Configure database URLs and actual host/proxy/IP settings.
- Run
forge validate,forge doctor --productionandforge migrate. - Set the startup file to
passenger_wsgi.pyand the callable toapplication. - Restart through the panel, then test
/health,/readyand a real project endpoint.
The provider's app root and working directory matter. Relative SQLite/data/env paths resolving to the wrong directory can cause missing files or an empty application list. Confirm provider-supported directives; one .htaccess is not universal across cPanel installations.
Do not expose .env, SQL files, databases, media roots or Editor attachments through direct web downloads. Avoid static-serving rules that expose arbitrary private files. Use the application's authorized download endpoints.
deploy/cpanel/.htaccess.example is a template. Replace account-path placeholders with real locations. Python versions, Passenger restart methods, egress, RAM and worker limits depend on the hosting provider.
HTTPS JSON control-plane endpoints can work through the bridge. Restrict management to the intended private/VPN/IP policy. Disable setup and remove EDITOR_TOKEN after creating the founder.
Calls need a separate ASGI management deployment or provider-supported ASGI process and WebSocket proxy. A successful WSGI login does not establish that calls work. Confirm buffering, timeouts and long-response limits for SSE as well.
| Symptom | Check |
|---|---|
| Import error | Dependencies installed in cPanel's selected Python environment |
| 500 on first request | Lifespan, DB connectivity, writable data directory |
| Healthy process but no project | App root, valid configuration, /ready
|
| 403 | Actual proxy peer, Host, IP and HTTPS trust |
| Upload interrupted early | LiteSpeed/Apache/Passenger and Forge body limits |
| WebSocket/call fails | WSGI transport limitation; native ASGI required |
Remove connection strings and tokens before sharing logs. Do not globally disable authentication or HTTPS checks to work around production errors.
This page describes the behavior at the pinned commits below. Recheck these contracts when upgrading.
main/docs/cPanelGuide.mdmain/passenger_wsgi.pymain/framework/wsgi.pymain/deploy/cpanel/.htaccess.example