Skip to content

Deploy Your First App

import { Steps, Aside } from ‘@astrojs/starlight/components’;

This tutorial walks you through deploying a real application on Vessl. You’ll deploy a ready-to-run Node.js app, connect it to a database, and see it live.

  • A running Vessl instance (install guide)
  • An admin account (create via dashboard or vessld setup)
  1. Log in to your Vessl dashboard at http://your-server-ip:8080.
  2. Click New Project in the sidebar.
  3. Enter my-first-app as the project name.
  4. Click Create.

Since you don’t have a Git repository connected yet, you’ll deploy from a public Git URL.

  1. In your project, click New Service.
  2. Select Deploy from Git URL.
  3. Paste this URL:
    https://github.com/expressjs/express
  4. Vessl auto-detects the build strategy — it finds the package.json and uses Railpack.
  5. Click Deploy.

Check progress: Click on the service to view live deployment logs.

Once the status shows running, your app is live at the URL shown in the service details.

  1. Navigate to Databases in the sidebar.
  2. Click New Database.
  3. Select PostgreSQL 16.
  4. Click Create.

Vessl provisions a PostgreSQL container with persistent storage.

After creation, Vessl automatically injects the connection string into your app:

DATABASE_URL=postgresql://vessl:<password>@<container-name>:5432/vessl
  1. Go to your service’s Variables tab.
  2. Click Add Variable.
  3. Set NODE_ENV to production.
  4. Save.
  1. Go to Project → Domains.
  2. Click Add Domain.
  3. Enter your domain (e.g. app.example.com).
  4. Add the A record at your DNS provider.
  5. SSL is provisioned automatically via Let’s Encrypt.

View real-time metrics from the service detail page:

  • CPU: Current and historical usage
  • Memory: RAM consumption
  • Status: Running, deploying, or failed
  • Logs: Live streaming output

To remove everything:

Terminal window
# Via CLI
vessld backup # Backup your database first
# In dashboard: Delete the project