Skip to content

CLI Reference

CLI Reference

Heroku-style command interface for Pvdify.

Status: ⏳ Planned - Not Yet Implemented

The pvdify CLI is currently in development. The commands below represent the planned interface. For now, use the REST API directly or the Admin UI at pvdify.win.

Installation

Terminal window
# Install via script
curl -fsSL https://pvdify.win/install.sh | bash
# Or download binary
curl -L https://pvdify.win/releases/latest/pvdify-linux-amd64 -o /usr/local/bin/pvdify
chmod +x /usr/local/bin/pvdify
# Verify installation
pvdify version

Authentication

Terminal window
# Interactive login (opens browser)
pvdify login
# Login with token
pvdify login --token $PVDIFY_TOKEN
# Check auth status
pvdify auth:whoami
# Logout
pvdify logout

Apps

apps

List all apps.

Terminal window
pvdify apps

Output:

NAME ENVIRONMENT STATUS RELEASE
myapp production running v42
myapp-staging staging running v15
myapp-pr-123 preview running v1

apps:create

Create a new app.

Terminal window
pvdify apps:create myapp
pvdify apps:create myapp-staging --environment staging

Options:

FlagDescription
--environmentEnvironment type (production, staging, preview)

apps:info

Show app details.

Terminal window
pvdify apps:info myapp

Output:

=== myapp
Environment: production
Status: running
Image: ghcr.io/org/app:v1.2.3
Bind Port: 3001
Created: 2026-01-01T10:00:00Z
Processes:
web.1: running
web.2: running
worker.1: running
Domains:
myapp.com
www.myapp.com

apps:destroy

Delete an app.

Terminal window
pvdify apps:destroy myapp
pvdify apps:destroy myapp --confirm myapp

Options:

FlagDescription
--confirmSkip confirmation prompt

Deploy

deploy

Deploy an image to an app.

Terminal window
pvdify deploy myapp --image ghcr.io/org/app:v1.2.3
pvdify deploy myapp # Uses image from pvdify.yaml

Options:

FlagDescription
--imageContainer image to deploy
--waitWait for deploy to complete (default: true)
--timeoutDeploy timeout (default: 5m)

releases

List releases for an app.

Terminal window
pvdify releases myapp

Output:

VERSION IMAGE STATUS CREATED
v42 ghcr.io/org/app:v1.2.3 active 2026-01-05T10:30:00Z
v41 ghcr.io/org/app:v1.2.2 superseded 2026-01-04T10:00:00Z
v40 ghcr.io/org/app:v1.2.1 superseded 2026-01-03T10:00:00Z

rollback

Rollback to a previous release.

Terminal window
pvdify rollback myapp # Previous release
pvdify rollback myapp --version 40 # Specific version

Options:

FlagDescription
--versionTarget release version

Config

config

Show config vars for an app.

Terminal window
pvdify config myapp

Output:

=== myapp Config Vars
NODE_ENV: production
DATABASE_URL: postgres://...
API_KEY: [REDACTED]

config:set

Set config vars.

Terminal window
pvdify config:set myapp KEY=value
pvdify config:set myapp KEY1=val1 KEY2=val2
pvdify config:set myapp --secret API_KEY=sk_live_...

Options:

FlagDescription
--secretEncrypt value with SOPS

config:unset

Remove config vars.

Terminal window
pvdify config:unset myapp KEY
pvdify config:unset myapp KEY1 KEY2

config:versions

Show config version history.

Terminal window
pvdify config:versions myapp

Output:

VERSION CREATED CHANGES
v3 2026-01-05T10:30:00Z API_KEY
v2 2026-01-03T10:00:00Z DATABASE_URL
v1 2026-01-01T10:00:00Z NODE_ENV

Domains

domains

List domains for an app.

Terminal window
pvdify domains myapp

Output:

DOMAIN STATUS SSL
myapp.com active true
www.myapp.com active true

domains:add

Add a domain to an app.

Terminal window
pvdify domains:add myapp myapp.com
pvdify domains:add myapp api.myapp.com

domains:remove

Remove a domain from an app.

Terminal window
pvdify domains:remove myapp old.myapp.com

Processes

ps

List running processes.

Terminal window
pvdify ps myapp

Output:

TYPE COUNT STATUS COMMAND
web 2 running npm start
worker 1 running npm run worker

ps:scale

Scale process count.

Terminal window
pvdify ps:scale myapp web=3
pvdify ps:scale myapp web=2 worker=2

ps:restart

Restart processes.

Terminal window
pvdify ps:restart myapp # All processes
pvdify ps:restart myapp --type web # Specific type

Options:

FlagDescription
--typeProcess type to restart

Logs

logs

View application logs.

Terminal window
pvdify logs myapp
pvdify logs myapp -f # Follow/stream
pvdify logs myapp -n 200 # Last 200 lines
pvdify logs myapp --process web # Filter by process

Options:

FlagDescription
-f, --followStream new logs
-n, --linesNumber of lines (default: 100)
--processFilter by process type
--sinceStart time (e.g., “1h”, “2026-01-05”)

Run

run

Run a one-off command.

Terminal window
pvdify run myapp -- npm run migrate
pvdify run myapp -- bash
pvdify run myapp --detach -- npm run long-task

Options:

FlagDescription
--detachRun in background
--timeoutCommand timeout

Maintenance

maintenance:on

Enable maintenance mode.

Terminal window
pvdify maintenance:on myapp

maintenance:off

Disable maintenance mode.

Terminal window
pvdify maintenance:off myapp

Version

version

Show CLI version.

Terminal window
pvdify version

Output:

pvdify/1.0.0 linux-amd64 go1.21

Global Options

FlagDescription
--app, -aApp name (can be set in pvdify.yaml)
--formatOutput format (table, json, yaml)
--quietSuppress output
--verboseVerbose output

Configuration File

Create pvdify.yaml in your project root:

app: myapp
image: ghcr.io/org/app
processes:
web:
command: npm start
count: 2
worker:
command: npm run worker
count: 1
resources:
memory: 512M
cpu: 0.5
healthcheck:
path: /health
interval: 30s
hooks:
pre_deploy:
- npm run migrate
post_deploy:
- npm run cache:clear

Commands automatically use values from pvdify.yaml:

Terminal window
# In project directory with pvdify.yaml
pvdify deploy # Uses app and image from config
pvdify logs -f # Uses app from config

Environment Variables

VariableDescription
PVDIFY_TOKENAuthentication token
PVDIFY_APPDefault app name
PVDIFY_API_URLAPI endpoint (default: https://pvdify.win)

Exit Codes

CodeDescription
0Success
1General error
2Invalid arguments
3Authentication error
4Not found
5Deploy failed