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
- You run
vps deployfrom your project directory - The CLI reads
vps.yamland sends the config to the VPS.org API - 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
Metadata
Release files for vpsdotorg 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vpsdotorg-0.1.0.tar.gz | 10.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vpsdotorg-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.2 kB
Release files / vpsdotorg-0.1.0.tar.gz
| Download URL | vpsdotorg-0.1.0.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e8ed324e8cdd05f2a2106ca62c530810e23180426a88dae0cf9674ab38b1b98
|
|
BLAKE2b-256 checksum How to use checksums |
9028c44594c56a9b088193074b5373245a9dc1f487bc295e57cafe109a9bd3cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / vpsdotorg-0.1.0-py3-none-any.whl
| Download URL | vpsdotorg-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d874b2be2ea0cc8af2aa293449cfcc2bd7ff9c9c219167038108857f0a435b4
|
|
BLAKE2b-256 checksum How to use checksums |
63459c17f030067e8799774a250820c121f18e3995ab8ac369a8c64498e5991c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Security for vpsdotorg 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.