Node.js is a popular asynchronous JavaScript runtime. Deploy scalable Node.js apps of all sizes on Upsun. You can also develop a microservice architecture mixing JavaScript and other apps with multi-app projects.
Supported versions
You can select the major version. But the latest compatible minor version is applied automatically and can’t be overridden. Patch versions are applied periodically for bug fixes and the like. When you deploy your app, you always get the latest available patches.
- 26
- 24
Specify the language
To use Node.js, specify nodejs as your app’s type:
For example:
To use a specific version in a container with a different language, use a version manager.
Deprecated versions
The following versions are still available in your projects, but they’re at their end of life and are no longer receiving security updates from upstream.
- 22
To ensure your project remains stable in the future, switch to a supported version.
Retired versions
The following versions have been retired and are no longer available. If your project uses a retired version, you must update to a supported version.
- 20
- 18
- 16
- 15
- 14
- 12
- 10
- 8.9
- 8
- 6.10
- 6.9
- 6.8
- 6.6
- 6.3
- 6.2
- 6
- 4.7
- 4.6
- 4.5
- 4.4
- 4.3
- 4.2
- 4
Usage example
To use JavaScript with Node.js on Upsun, configure your app configuration (a complete example is included at the end).
1. Specify the version
Choose a version from the list of supported versions and add it to your app configuration:
2. Specify any global dependencies
Add the following to your app configuration:
These are now available as commands, the same as installing with npm install -g.
3. Build your app
Include any commands needed to build and setup your app in the hooks, as in the following example:
4. Start your app
Specify a command to start serving your app (it must be a process running in the foreground):
5. Listen on the right port
Make sure your Node.js application is configured to listen over the port given by the environment.
Complete example
A complete basic app configuration looks like the following:
Dependencies
By default, Upsun assumes you’re using npm as a package manager.
If your code has a package.json, the following command is run as part of the default build flavor:
This means you can specify configuration in a .npmrc file in your app root.
Use Yarn as a package manager
To switch to Yarn to manage dependencies, follow these steps:
- Turn off the default use of npm:
-
Specify the version of Yarn you want:
package.json
What you do next depends on the versions of Yarn and Node.js you want.
Yarn 3.x and Node.js 16+
Yarn 3.x and Node.js 14
Yarn < 3
- Use Corepack to run Yarn in your build hook:
- Enable Corepack (which is opt-in):
- Use Corepack to run Yarn in your build hook:
- Add Yarn as a global dependency:
- Install dependencies in the
buildhook:
Use Bun as a package manager
To switch to Bun to manage dependencies, use the following configuration:
.upsun/config.yaml
Use Bun as a runtime
You can even use Bun as a runtime by adjusting the start command as follows:
.upsun/config.yaml
Connecting to services
You can access service credentials to connect to managed services from environment variables present in the application container. Consult each of the individual service documentation to see how to retrieve and surface credentials into your application.
- ClickHouse
- Elasticsearch
- Gotenberg
- Headless Chrome
- InfluxDB
- Kafka
- MariaDB/MySQL
- Memcached
- mercure
- mongodb
- Network Storage
- OpenSearch
- PostgreSQL
- RabbitMQ
- Redis
- Solr
- Valkey
- Varnish
- Vault KMS
- Chroma
- Qdrant
Frameworks
All major Javascript/Node.js web frameworks can be deployed on Upsun. See dedicated guides for deploying and working with them: