Deploy Node.js applications with zero infrastructure overhead
Run Express, Next.js, Fastify, or any Node.js framework from a single config. Upsun builds from Git, connects your apps and workers to managed services, and gives every branch its own isolated URL without infrastructure scripts to maintain. Push code once, and your app runs the same in preview as it does in production.

Standardize deployment across environments

From commit to running app in one push.
Define your Node.js version, build commands, and services in a single YAML file. Push to Git and Upsun handles dependency installation, builds, service provisioning, and routing. No CI/CD pipeline to build or infrastructure to manage.
Add managed services
Define databases, caches, and search as services, and connect your Node app through relationships. Upsun exposes relationship details through environment variables. Your app can discover connection info without hardcoding secrets.
Add managed servicesKeep your package workflow
Upsun’s default Node build flavor assumes npm and runs a production-safe install automatically (including support for .npmrc). If you need a different workflow, disable the flavor and run exactly what you want: Yarn or Bun included.
See package manager optionsBuild once
When your app deploys with no code changes, Upsun reuses the existing build output instead of rebuilding. Keep environment-specific values out of your build step, and the same artifact runs identically across preview, staging, and production.
See how builds and deploys workPreview changes in production-identical environment

Test against real data
Upsun environments are built for development, testing, staging, and review. Every Git branch can get its own isolated environment that is a full-stack clone of its parent branch environment.
Works with your existing Git workflow.
Upsun integrates with GitHub, GitLab, and Bitbucket, so environments can be created automatically for branches and pull requests. Push your code and configuration; Upsun builds, deploys, and routes automatically.
Learn more about Git integrationsDeploy background workers and cron jobs
Run workers and queues alongside your web process. Define Bull/BullMQ workers, queue consumers, or cron jobs as separate containers in the same project. Each scales independently with its own CPU and memory.
Configure background workersMulti-app when you need it
Run multiple apps in one project (API + worker + front-end, or service-to-service). Define relationships between apps the same way you define relationships to services.
Structure multi-app projectsObserve, debug, and operate Node.js safely

Continuous profiling is built into the platform.
Upsun provides continuous profiling for Node.js, powered by Blackfire, available directly in the Console. Node.js profiling is captured across CPU time, wall-time, and heap allocation.
Debug where the bug actually happens.
Use a preview environment, SSH in, run Node in inspect mode, and attach a debugger from Visual Studio Code or Chrome DevTools. The docs include steps for forwarding the debugger port when debugging remotely.
Learn moreTrigger runtime operations
Define runtime operations in your app config and trigger them on demand from the Console or CLI to run controlled one-off commands inside your app container. Use them for maintenance, backfills, or admin scripts with role-based access controls.
Manage runtime operationsTroubleshoot with app logs
Access container and activity logs from the CLI, so you can troubleshoot in the live environment. Stream logs during debugging, inspect worker logs, and forward them to external endpoints for retention, alerting, or deeper analysis.
View logsSecure by default. Deploy anywhere.

Deploy across cloud providers
Run your Node.js apps on AWS, Google Cloud, Azure, OVHcloud, or IBM. Choose the provider and region that matches your latency, compliance, or cost requirements.
Automated TLS and network isolation
Every environment gets automatic HTTPS with managed TLS certificates. Your application containers, databases, and services communicate over an isolated internal network that is not exposed to the public internet.
Learn about project isolationImmutable builds and containers
Upsun builds your Node.js app into a read-only filesystem at deploy time. Runtime processes cannot modify application code, install packages, or alter the build.
See how builds and deploys workSecure app credentials
Store credentials in environment variables rather than in your repository. That keeps secrets out of source control and makes it easier to manage different values across environments.
Set environment variables