Skip to main content

Installing a Node.js or Python application using the API

Prerequisites

To install a Node.js or Python application, you will need to have the following:

  • The project ID of an existing project (how to create a project)
  • The application and version ID of the generic custom Node.js/Python application (see next section)

Determine the app and app version ID

Before installing a Node.js or Python application, you will need to determine the application ID and version ID of the generic custom Node.js (or Python, respectively) application.

For this, call the GET/v2/apps/ endpoint, and find the "Node.js" or "Python" application. These should have the following stable IDs:

  • Node.js: 3e7f920b-a711-4d2f-9871-661e1b41a2f0
  • Python: be57d166-dae9-4480-bae2-da3f3c6f0a2e

Use the respective ID, depending on whether you want to install a Node.js or Python application. You can then use that ID to retrieve the recommended version to install for this app, by calling the GET/v2/apps/{appId}/versions/ endpoint. You can filter the returned versions by the recommended property.

Please note that the actual version is rather inconsequential, as it refers only to the starter template used to create the application. The actual version of the application will be determined by your own code.

Install the application

To deploy your application, you will need to call the POST/v2/projects/{projectId}/app-installations/ endpoint. The relevant fields are the following:

  • appVersionId needs to be the app version ID that you retrieved in the previous step.
  • userInputs needs to be an array of objects, each containing a name and value property. The allowed values for name are contained in the userInputs array of the app version object. In the case of Node.js, the only allowed value is entrypoint, which is the command that will be run to start your application.
  • updatePolicy needs to be set to none, as you will typically want to update your application by yourself.

The complete HTTP request should look like this:

POST /v2/projects/{projectId}/app-installations HTTP/1.1
Host: api.mittwald.de
Content-Type: application/json

{
"appVersionId": "97fb8684-3fe3-4720-86fb-fb0524ae88d1",
"description": "Your Node.js app",
"updatePolicy": "none",
"userInputs": [
{
"name": "entrypoint",
"value": "yarn start"
}
]
}

The response will contain the installation ID, that you can subsequently use to access your application.

To observe the installation status, you can call the GET/v2/app-installations/{appInstallationId}/ endpoint. Pay special attention to the installationPath field; this will contain the directory in your project file system that you should deploy your application to.