Server Manager/ Help

Deploy a web app from your computer

Drop your Node, Python, or Go project folder into Server Manager, type your domain, click Deploy.

Have your code on a git repo? → Deploy a web app from a git repo
Have a static website (HTML/CSS/JS) instead? → Deploy a website from your computer

A web app is code that runs on the server and answers requests — a Node.js API, a Python Flask app, a Go HTTP server, etc. For a folder of plain HTML/CSS/JS, see the static-site article above.

1. Open the Set up menu

In the top bar, click Set up. From the menu, choose Deploy from my computer.

Click Set up in the top bar, then choose Deploy from my computer
Click Set up in the top bar, then choose Deploy from my computer

2. Pick "Web app"

A new window opens. Click the Web app tab.

The Deploy window opens — click the Web app tab
The Deploy window opens — click the Web app tab

3. Drop your project folder

Drag the folder that contains your app's source code into the dashed box. We detect the runtime (Node, Python, or Go) from files like package.json, requirements.txt, or go.mod.

Drag your project folder into the dashed drop zone
Drag your project folder into the dashed drop zone

4. Type your domain

Type the address you want the app to live at — for example, api.example.com. You can leave it blank for now and add a domain later.

Type your domain in the Domain field
Type your domain in the Domain field

5. Click Deploy

The button at the bottom shows how many files will be uploaded. Click it.

Click the Deploy button at the bottom-right
Click the Deploy button at the bottom-right

6. Done

The window closes and the chat takes over. You'll see each step as it happens: we install the runtime if needed, start your app under , and point at it as a . When it finishes, your app appears on the home screen with a green dot and the runtime it's using.

Your new web app appears in the overview with a green dot
Your new web app appears in the overview with a green dot

Want to fine-tune things first?

Before clicking Deploy, expand the Advanced section in the window. Every field below is pre-filled from what we detected — override any of them.

The Advanced section expanded — runtime, deploy mode, app name, port, start command, env vars
The Advanced section expanded — runtime, deploy mode, app name, port, start command, env vars

Runtime. We pick Node, Python, or Go automatically from your project files. Override it here if our detection got it wrong (or you want a specific one).

Deploy as. Native process runs your app directly on the host under — the fastest option, lowest overhead, but every Native app on this server shares the same runtime version. Container runs your app inside Docker, so it pins its own runtime version (e.g., Node 18 alongside Node 22) at the cost of about 30–100 MB extra RAM. Full breakdown in Native vs Container.

App name, port, start command. The app name becomes the folder under /opt/, the unit name, and the dedicated app user. The port is what your app listens on internally — reverse-proxies your domain to it. The start command is what runs to launch the app (npm start for Node, python app.py for Python, ./server for Go by default).

Environment variables. Expand the Environment variables disclosure to add lines like DATABASE_URL=… or API_KEY=… — one KEY=VALUE per line. They're stored in /etc/<app>/env (root-owned, mode 600) and loaded by at launch. Don't commit these to your git repo.