From a folder with a Dockerfile to a production address in five steps:
- Choose a plan first. A new account starts without a plan, so nothing can be created or deployed yet. In the console, open Plan & billing and pay for Simple or Pro, or press Request free access: the Free plan is granted on request. One plan covers all the workspaces you own.
- Install the CLI and sign in (Node.js 22 or newer):
npm install -g @inquir/compute-cli@latest, theninquir loginandinquir use <workspace-slug>. - Create the application and deploy it. In the folder with your
Dockerfile,inquir apps create web --port 3000registers an HTTP service, andinquir apps deploy webbuilds the image on the platform, starts a new release and waits until it passes its health check. A new application is private: check the release withinquir apps status webandinquir apps logs web --tail 100. - Take it to production.
inquir apps promote <releaseId>(the deploy output prints the exact command) moves production to the release; workspace owners and admins can promote.inquir apps update web --ingress publicthen gives the service a public HTTPS address. - Prefer the console? Open Projects, create a project with New project, and add a service on its canvas with Create. The service panel has the same actions: Deploy → New release or Build from source, and Promote on the Deployments tab.
# Once: install the CLI (Node.js 22+), sign in, pick the workspace npm install -g @inquir/compute-cli@latest inquir login inquir use <workspace-slug> # In a folder with a Dockerfile: an HTTP service on port 3000 inquir apps create web --port 3000 # Build the Dockerfile on the platform and start a preview release; # the command waits for the health check and prints the preview URL inquir apps deploy web # Production (owner or admin), then a public HTTPS address inquir apps promote <releaseId> inquir apps update web --ingress public
The application tutorial adds variables, a Postgres, a custom domain and rollback; Node.js with Postgres builds a service with migrations and a private helper next to it.
Functions: event-driven code without a server of your own#
Functions run your handler in Node.js, Python or Go for each request, job or scheduled run, behind the API gateway. They need a plan too. To try one in the browser:
- Open Functions in the console and click New function.
- Enter a name (for example,
hello-world) and click Create. The editor opens with a default handler; edit it or keep it as is. - Click Run in the test panel to invoke the function.
- The result and logs appear in the right panel. Its Traces tab lists recent runs of this function, and Runs in the sidebar shows runs across all functions.
// Gateway HTTP: POST JSON is in event.body (string). Editor Run: the JSON you type is the whole event root. const payload = typeof event.body === 'string' ? JSON.parse(event.body || '{}') : (event || {}); exports.handler = async (event, context) => { // Example: const { name } = payload; return { statusCode: 200, body: JSON.stringify({ message: "Hello from Inquir Compute!" }), }; };
Deploy at the foot of the editor's sidebar warms up a container, so the next calls skip the cold start: a warm invocation reuses a running container instead of creating one, booting the runtime and loading your handler. Extra warm containers stop after 5 minutes without calls and the last one after 10 minutes, to free resources.