Skip to main content

Deploy apps to VPS.org servers — no Docker required

Project description

VPS CLI

Deploy apps to your VPS.org server with a single command. No Docker required.

Install

pip install vps-cli

Quick Start

# 1. Login with your API token
vps login

# 2. In your project directory, link to a server
cd my-project/
vps link

# 3. Edit vps.yaml with your app config

# 4. Deploy
vps deploy

Configuration (vps.yaml)

Create a vps.yaml in your project root:

Python app:

name: my-app
type: python
version: "3.12"
build:
  - pip install -r requirements.txt
start: gunicorn app.wsgi:application --workers 3 --bind 127.0.0.1:8000
port: 8000
domain: myapp.example.com
git_repo: https://github.com/user/repo.git
git_branch: main

Node.js app:

name: my-api
type: node
version: "20"
build:
  - npm install
start: node server.js
port: 3000
domain: api.example.com
git_repo: https://github.com/user/repo.git
git_branch: main

Static site:

name: my-site
type: static
build:
  - npm run build
domain: example.com
git_repo: https://github.com/user/repo.git
git_branch: main

Commands

Command Description
vps login Authenticate with your API token
vps link Link project to a VPS server
vps deploy Deploy the current project
vps deployments List deployment history
vps logs [UUID] Show deployment logs
vps env list List environment variables
vps env set KEY=VALUE Set environment variables
vps env rm KEY Remove an environment variable
vps ssh SSH into the linked server

Environment Variables

# Set variables
vps env set DATABASE_URL=postgres://... SECRET_KEY=abc123

# List variables
vps env list

# Remove a variable
vps env rm SECRET_KEY

How It Works

  1. You run vps deploy from your project directory
  2. The CLI reads vps.yaml and sends the config to the VPS.org API
  3. The platform SSHes into your VPS and:
    • Sets up the runtime (Python via pyenv, Node via nvm)
    • Clones/pulls your code from git
    • Runs build commands
    • Configures Supervisor (process manager)
    • Configures Nginx (reverse proxy + SSL)
    • Runs a health check

Requirements

  • Python >= 3.9
  • A VPS.org server with SSH access
  • An API token from admin.vps.org

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vpsdotorg-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vpsdotorg-0.1.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file vpsdotorg-0.1.0.tar.gz.

File metadata

  • Download URL: vpsdotorg-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for vpsdotorg-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4e8ed324e8cdd05f2a2106ca62c530810e23180426a88dae0cf9674ab38b1b98
MD5 ac52ea777d55291bd668564f9b9351d0
BLAKE2b-256 9028c44594c56a9b088193074b5373245a9dc1f487bc295e57cafe109a9bd3cd

See more details on using hashes here.

File details

Details for the file vpsdotorg-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vpsdotorg-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for vpsdotorg-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d874b2be2ea0cc8af2aa293449cfcc2bd7ff9c9c219167038108857f0a435b4
MD5 4f995972fd9fd73a0f21e23618677e16
BLAKE2b-256 63459c17f030067e8799774a250820c121f18e3995ab8ac369a8c64498e5991c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page