DOCUMENTATION / v1.0.0

Internal Web services & Workers

Choose HTTP services or long-running background processes.

Choose in Create project

TypePortDomainReadiness
Web/APIManual or automatically assignedOptionalConfigured HTTP candidate/host checks
WorkerNo Portal-assigned portNoneProcess stability after host activation

Choose the service type in the first creation step, then choose repository and runtime. Existing projects default to Web. An existing release, even failed, locks the service type and Worker runtime.

Web without a project domain

Leave project domains empty. With no existing route, deployment skips project Nginx/Certbot changes. If you remove the last domain from an existing managed route, Portal removes it with Nginx validation/reload while retaining the application service and port. IP:port access depends on the app bind address and host firewall; a loopback app remains local unless you provide an access path. Add a domain later for managed Nginx/TLS. The Portal dashboard itself still needs its production domain.

Configure a long-running Worker

Workers support Node.js, Bun, Go and Python script. Node/Bun use a named package start script, Go runs the built binary, and Python uses script mode with an entry file inside the source tree. Empty user ENV is allowed; Portal creates a restricted environment file without injecting PORT/HOST. PHP, Compose, Python ASGI/WSGI, cron scheduling and one-shot jobs are unsupported.

{"scripts":{"start":"node worker.mjs"}}

Activation and rollback

  • Prepare dependencies/build/source without starting the candidate consumer. Trusted build/install scripts still execute repository code.
  • Before cutover, capture the old unit, environment, release link and service state. Stop the old Worker before switching live files.
  • Start the new Worker and check that the same PID stays running with no crash/restart for five seconds.
  • On failure, stop the new process before attempting to restore the old configuration/service. A stop or recovery failure is reported for host inspection.

There is a short stop/start gap. Handle SIGTERM and in-flight work in your application. Process stability proves neither successful queue work nor exactly-once delivery. Rollback does not undo external effects.

Last audited: 2026-10-15
Published source · v1.0.0