Skip to content

CLI Reference

Vessl ships two CLI tools with distinct responsibilities.

Tool Runs on Connects to
vessld Your VPS / server SQLite + Docker directly
vessl Your local machine vessld over HTTP

The vessld binary is the Vessl server process. It runs on your VPS and exposes the HTTP API that the dashboard and the vessl remote CLI consume. It also doubles as a management CLI for direct server-side operations without needing the dashboard.

Starts the Vessl daemon. This is the default command when no subcommand is provided.

Terminal window
vessld serve

Runs the interactive setup wizard to initialise the database and create the initial admin account.

Terminal window
vessld setup

Resets the password for the admin account. Useful if you lose access to the dashboard.

Terminal window
vessld reset-password

View or update global server configuration variables.

Terminal window
vessld config

Gracefully restarts the Vessl daemon via Docker Compose.

Terminal window
vessld restart

Runs the Model Context Protocol (MCP) server over standard I/O for AI assistant integrations.

Terminal window
vessld mcp

Prints the current daemon version.

Terminal window
vessld version

Deploy an application directly from the server terminal.

Terminal window
# From a Git repository
vessld deploy https://github.com/your/repo.git
# From a template (e.g. go-fiber, nextjs)
vessld deploy --template nextjs
# From a Docker image
vessld deploy --image nginx:latest --port 80
# From a Docker Compose file
vessld deploy --compose ./docker-compose.yml

All resource commands use a <resource>:<action> syntax and interact with the database directly — no HTTP, no auth required.

Terminal window
vessld project:list # List all projects
vessld project:show <id> # Show project details
vessld project:create <name> # Create a project
vessld project:destroy <id> # Delete a project
Terminal window
vessld apps:list # List all apps across all projects
vessld apps:show <id> # Show app details and env vars
vessld apps:create <name> --project <id> # Create an app
vessld apps:destroy <id> # Delete an app
Terminal window
vessld db:list # List all databases
vessld db:show <id> # Show database details and connection string
vessld db:create <name> <engine> --project <id> # Create a database
vessld db:destroy <id> # Delete a database

Supported engines: postgres, mysql, mariadb, redis, mongodb, clickhouse, kafka, rabbitmq, nats.

Terminal window
vessld env:list --project <id> # List all env vars for a project
vessld env:set KEY=VALUE --project <id> # Set one or more env vars
vessld env:unset KEY --project <id> # Remove an env var
Terminal window
vessld deployment:list --service <id> # List deployment history for a service
vessld deployment:show <id> # Show deployment details
vessld deployment:logs <id> # Print build logs for a deployment
Terminal window
vessld domain:list --project <id> # List custom domains for a project
vessld domain:add <hostname> --project <id> # Add a custom domain
vessld domain:remove <id> # Remove a custom domain

The vessl binary runs on your local machine and communicates with your self-hosted vessld server over HTTP. This is what you install and use day-to-day from your laptop.

Terminal window
curl -fsSL https://get.vessl.dev/cli | sh

Or if you have Go installed:

Terminal window
go install vessl.dev/vessl/cmd/vessl@latest

Or download a pre-built binary from the releases page.

Before running any command, authenticate against your self-hosted server.

Prompts for your server URL, email, and password. Saves a token to ~/.vessl/config.json.

Terminal window
vessl login

Clears your saved credentials.

Terminal window
vessl logout

Shows the currently authenticated user.

Terminal window
vessl me
Terminal window
vessl project list # List all projects
vessl project create <name> # Create a project
vessl project destroy <id> # Delete a project
Terminal window
vessl env list --project <id> # List environments for a project
vessl env create <name> --project <id> # Create an environment
vessl env destroy <id> # Delete an environment
Terminal window
vessl apps list --environment <id> # List apps in an environment
vessl apps create # Create an app (interactive flags)
vessl apps destroy <id> # Delete an app
Terminal window
vessl apps secrets list --project <id> # List env vars
vessl apps secrets set KEY=VALUE --project <id> # Set one or more env vars
Terminal window
vessl apps domains list --project <id> # List custom domains
vessl apps domains add --domain <host> --project <id> # Add a domain
vessl apps domains remove <id> # Remove a domain
Terminal window
vessl apps deployments list --service <id> # List deployment history
vessl apps logs <deployment-id> # View build logs
Terminal window
vessl db list --project <id> # List databases
vessl db create # Provision a database (interactive flags)
vessl db destroy <id> # Delete a database
Terminal window
vessl db backups list --project <id> # List backup configurations
vessl db backups create # Create a backup config
vessl db backups trigger <id> # Trigger a manual backup
vessl db backups history <id> # View backup history
Terminal window
vessl deploy <service-id> # Trigger a remote deployment for a service