A Reserved VM deployment runs on a virtual machine (VM) which provides dedicated computing resources for your app. This deployment type offers predictable costs and performance without interruptions.

They are ideal for the following use cases:

  • Memory-intensive background tasks
  • Chat app bots that must stay connected
  • Always-on API servers

Features

Reserved VM Deployments include the following features:

  • Dedicated resources: Get consistent app performance on reserved compute resources.
  • Custom domains: Configure a custom domain or use a <app-name>.replit.app URL to access your app.
  • Computing resource options: Choose the VM option that meets your app’s performance needs.
  • Configurable port mappings: Define which ports your app exposes to the internet.
  • Monitoring: View logs and monitor your deployment’s status.

Usage

You can access Reserved VM Deployments in the Deployments workspace tool.

Reserved VM configuration screen in the Deployments tool

Machine configuration

Select the CPU and RAM configuration for the machine that hosts your deployment. You can view the option’s cost next to the selected machine size.

Primary domain

Specify the subdomain part of the hostname for your deployment. After you deploy, you can access your deployment at https://<subdomain>.replit.app.

To learn how to use a custom domain, see Custom Domains.

Private deployment

The private deployment feature is available for Teams and Enterprise plans only.

Private deployments grant permission to your app only to members of your team or organization. This control lets you toggle whether to make your deployment private.

To learn how to set up a private deployment, see Private Deployments.

Build command

Enter the shell command that compiles or sets up your app before running the Run command in the Build command field. For example, to optimize your JavaScript app for a production environment using Vite, you might add the vite build command.

Run command

Enter the shell command that launches your task in the Run command field. This command should be similar to the one you use for your workflow. For example, to start a Flask app called “myApp”, you might add the flask --app myApp run command.

Deployment secrets

Select Add deployment secret to add environment variables or secrets your app needs to run securely.

If your Replit App has environment variables or secrets, the Deployment tool adds them to the list automatically.

App type options

Select one of the following options:

  • Web server: Select this option if deploying a web app or an app that users can connect to on the internet.
  • Background worker: Select this option if your app does not listen on a port or start a server.

When you select Web Server, you can customize which ports to expose by performing the following actions:

  1. Expand the Port configuration section.
  2. Select Networking pane to configure to open the Networking tab, where you can manage the port mappings.

For more information on configuring ports, see Ports.

Next steps

To learn more about deployments, see the following resources: