Skip to content

Installation

Before you begin, make sure your VPS meets these requirements:

  • Linux with systemd (user-level services)
  • Node.js >= 20
  • npm or pnpm

Check your versions:

Terminal window
node --version # should be 18 or higher
npm --version

Install VPS Deployer globally via npm:

Terminal window
npm install -g vps-deployer

Verify the installation:

Terminal window
vps-deployer --version

By default, systemd user services stop when you log out. Enable lingering so your service persists:

Terminal window
loginctl enable-linger $USER

This is a one-time setup. Without it, your deployments would stop every time you disconnect from SSH.

Run the config command to generate your systemd service file, database, and reference configs:

Terminal window
vps-deployer config -w /opt/vps-deployer -p 3000 -s your-secret-key
FlagDescriptionRequired
-w, --working-dirDirectory where projects and data will be storedYes
-p, --portPort for the web UI and API (1024–50000)Yes
-s, --session-keySecret key for session encryption (min 6 characters)Yes
  • Systemd service file at ~/.config/systemd/user/vps-deployer.service
  • SQLite database at <working-dir>/vps-deployer.db
  • Reference configs for Caddy and Nginx reverse proxies
  • Log file at <working-dir>/vps-deployer.log

The command exits immediately after setup — it does not start the server.

Terminal window
vps-deployer start

This enables and starts the user-level systemd service. Your terminal is freed immediately — the process runs in the background.

Verify it’s running:

Terminal window
systemctl --user status vps-deployer

Open your browser and navigate to:

http://<your-server-ip>:3000

You’ll be prompted to register an account. Only one user can register — the first one wins.

If you want to run VPS Deployer in the foreground (useful for testing or development), use the dev command instead:

Terminal window
vps-deployer dev -w /opt/vps-deployer -p 3000 -s your-secret-key

This skips systemd setup and runs the Express server directly in your terminal. Press Ctrl+C to stop.