Plugin Surfaces (Python Apps, Node.js Apps)

Updated Oct 5, 2026 Markdown

When the operator has activated the matching plugin, additional sidebar items appear. Both use the same upload-first deploy pipeline: upload a zip / tar.gz of your project (or point at a server path under /home/{user}/), the analyzer detects framework / entry point / package manager, then a Server-Sent Events stream walks you through deploy in real time.

If you don't see these entries, the operator has not enabled the plugin on this server.

Both surfaces bind the app to a domain, and that domain has to be one you already hold — your primary domain, an addon domain or a subdomain you created. Anything else is refused with Domain ... is not registered under account ...; add the domain under Domains first.

An app's environment variables are saved as a whole set: when they cannot be read, the tab shows an error state with a Retry button and Save stays off, since saving would replace every stored variable with the ones on screen.

Python Apps

  • Supported frameworks: Django, Flask, FastAPI, Pyramid, Bottle, raw WSGI/ASGI
  • Entrypoint auto-detection: wsgi.py → asgi.py → app.py → main.py (in that priority)
  • Virtualenv path: /home/{user}/.python-apps/{appname}/venv/
  • Server runtime:
    • WSGI apps run under gunicorn
    • ASGI apps run under uvicorn
  • Available Python versions: typically 3.10, 3.11, 3.12 (operator-defined)
  • App URL: your primary domain root (https://your-domain.com/) or a chosen subdomain
  • Restart: Apps → {name} → Restart button — takes 2–5 seconds; existing requests finish
  • Logs: stdout + stderr stream live in the panel, plus the systemd journal for the app's unit

Node.js Apps

  • Supported frameworks: Express, Fastify, NestJS, Next.js, Koa, raw HTTP servers
  • Entrypoint auto-detection: package.json → main, then index.js, then server.js
  • node_modules path: /home/{user}/.node-apps/{appname}/node_modules/
  • Package managers supported: npm, pnpm, yarn (auto-detected from lockfile)
  • Available Node versions: typically 18, 20, 22 (operator-defined)
  • Cluster mode: optional multi-instance (PM2-style) — set worker count in app settings
  • Hot reload: dev mode streams file-change events over SSE
  • Restart: identical to Python Apps — 2–5 seconds
Still Need Help?

Our support team is here around the clock for anything you can't find above.