Skip to main content
The virtuscloud.app configuration file is the single source of truth for how Virtus Cloud runs your application. It tells the platform which runtime version to use, how much memory to allocate, what file or command to execute at startup, and how to present your application in the dashboard. Every project you deploy must include this file.

Creating the config file

Create a plain-text file named virtuscloud.app or virtuscloud.config at the root of your project directory. The file uses a simple KEY=VALUE format — one parameter per line, no quotes required.
1

Choose a file extension

The configuration file supports two extensions: .app and .config. Either works on all platforms.
On macOS, we recommend using the .config extension because macOS treats .app as an application bundle by default.
.app and .config are the file extensions, not the filename. The correct filename is virtuscloud.app or virtuscloud.config — not virtuscloud.app.txt.
2

Create the file at your project root

Place the config file in the same directory as your main application file. When you ZIP your project for upload, the config file must be at the top level of the archive — not inside a subfolder.
3

Add your configuration parameters

Write your parameters in KEY=VALUE format. Required parameters are marked with [*] in the reference below. All other parameters are optional.

Configuration parameters

MAIN [*]

Defines the entry-point file of your application. Virtus Cloud uses this value to construct the default startup command for your runtime.
MAIN=index.js
Subdirectory example
MAIN=src/loaders/index.js
Maximum 32 characters.
This parameter is ignored when the START parameter is set — START takes full control of the startup command.

MEMORY [*]

Sets the amount of RAM (in megabytes) allocated to your application.
MEMORY=512
The minimum memory for a bot is 256 MB. The minimum for a website or API is 512 MB.
The value must be a whole number in megabytes (MB).

VERSION [*]

Specifies the runtime version to use. You can set this to recommended, latest, or a specific version string.
VERSION=recommended
Languagerecommendedlatest
JavaScript (Node.js)22.18.024.5.0
Python3.13.63.13.6
JavaJDK 23JDK 25
Elixir1.18.41.18.4
Rust1.89.01.89.0
PHP8.4.118.4.11
Go1.24.61.24.6
C#9.0.19.0.1
HTML/CSSBuild 10-02-2025Build 10-02-2025
Use VERSION=recommended for all production applications. The Virtus Cloud team runs extensive compatibility testing on all recommended versions before promoting them.

DISPLAY_NAME [*]

Sets the human-readable name for your application as it appears in the dashboard.
DISPLAY_NAME=My Discord Bot
Maximum 32 characters.

DESCRIPTION

Provides a short description of your application, visible in the dashboard.
DESCRIPTION=Handles moderation and daily task automation for our server.
Maximum 280 characters.

AUTORESTART

Controls whether Virtus Cloud automatically restarts your application if it exits unexpectedly.
AUTORESTART=true
Defaults to false when not set.
Enable AUTORESTART=true for bots and long-running services to maximize uptime without manual intervention.

SUBDOMAIN

Assigns a subdomain to your web application. Setting this parameter makes your app available at [subdomain].virtusapp.cloud and registers it as a website on the platform.
SUBDOMAIN=myapp
With SUBDOMAIN=myapp, your application is reachable at myapp.virtusapp.cloud.
Maximum 63 characters.
Omit this parameter for bots and background services that do not serve HTTP traffic.

START

Defines a fully custom startup command. When set, this value overrides the default platform command and the MAIN parameter is ignored.
START=npm run start
Build then start
START=npm run build && npm run start
Maximum 256 characters.
Applications uploaded after June 19, 2025 can update the START field from the dashboard without re-uploading the entire project.

Parameter limits

ParameterCharacter limit
MAIN32 characters
DISPLAY_NAME32 characters
DESCRIPTION280 characters
START256 characters
SUBDOMAIN63 characters

Example configurations

Bots

Minimum required configuration
MAIN=index.js
MEMORY=256
VERSION=recommended
DISPLAY_NAME=Robin Bot
Full bot configuration with all optional parameters
MAIN=index.js
MEMORY=256
VERSION=recommended
DISPLAY_NAME=Robin Bot
DESCRIPTION=Robin is a bot designed to help you with your daily tasks.
AUTORESTART=true
Bot with custom startup command
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Batman Force
START=npm run start

Websites

Website URL format: [SUBDOMAIN].virtusapp.cloud
Full website configuration
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=My Website
DESCRIPTION=A production web application.
SUBDOMAIN=mysite
START=npm run build && npm run start
AUTORESTART=true
Next.js website
MAIN=next.config.js
MEMORY=1024
VERSION=recommended
DISPLAY_NAME=Next.js Website
DESCRIPTION=A server-rendered website built with Next.js.
SUBDOMAIN=nextjs
START=npm run build && npm run start
AUTORESTART=true
For Next.js projects, set MAIN=next.config.js so the platform correctly identifies the project as JavaScript or TypeScript. Any .ts or .tsx file in the project also works for this purpose.