Deploy
What your repo needs, and how a deploy proceeds.
Supported runtime
Right now only Node.js / Next.js is supported. Other runtimes like Python, Go, PHP, and Rust are planned but not in this release.
Build from repo
You provide an https git repo URL (--repo / the dashboard's "Deploy"). The repo is cloned, the framework is auto-detected, a container image is built, and it runs in an isolated pod — no config file needed.
Next.js repo requirements
The build engine copies the standalone output. So you need to set this in next.config.js (or .ts):
/** @type {import('next').NextConfig} */
module.exports = {
output: 'standalone',
};Without this setting, the build fails — the engine expects the .next/standalone and .next/static directories.
Plain Node.js repo requirements
- The
startscript inpackage.jsonmust run withnode ...— the engine runsnpm start. - Your server must listen on the
PORTenvironment variable and bind to0.0.0.0(not justlocalhost).
Security: non-root execution
Built images always run non-root (UID 10001) — the engine sets this automatically, you don't need to do anything extra in your repo. If your container doesn't need to bind to a port below 1024 (usually not needed for Next.js/Node), this restriction doesn't affect you.
Repo URL restrictions
--repo only accepts a public https git URL. Internal network, link-local, and localhost addresses are rejected — this is a security measure, not a user error.
Deploy lifecycle
- Queued — request received, waiting in the queue.
- Building — repo mode only: cloning + image build.
- Deploying — the image is being placed into a container.
- Live — health check passed, URL is ready.
- Failed — the build or deploy errored; details are in the logs.
- Canceled — the deploy was canceled.
Viewing logs
Build logs — historical, captured records. In the dashboard's deploy history, or via the API at GET /api/deployments/:id/build-logs.
Runtime logs — a live stream (SSE). The "Logs" button in the dashboard, or detpul logs -f in the terminal.
Subdomain and SSL
Every live deploy automatically gets an address: <deployment-id>.detpul.app.
http:// in the development environment. Automatic SSL (Let's Encrypt) will kick in when we move to production.Free tier limit
On the free tier you can create at most 1 project. Once the limit is reached, project creation requests are rejected; see the Concepts page for details.