Skip to content

Pvdify Control Plane

Pvdify Control Plane

The orchestration layer for app deployments.

Overview

Pvdify provides a Heroku-like experience for deploying containerized applications alongside traditional WHM/cPanel hosting. It consists of:

ComponentTypePurpose
pvdifydGo daemonREST API on port 9443
pvdifyGo CLIHeroku-style commands
gh pvdifyGH extensionGitHub-integrated deploys
Admin UISvelte SPAWeb dashboard at pvdify.win

Architecture

┌──────────────────────────────────────────────────────────┐
│ pvdify.win (Admin UI) │
│ Svelte + SvelteKit │
└─────────────────────────────┬────────────────────────────┘
│ HTTPS
┌─────────────────────────────▼────────────────────────────┐
│ pvdifyd │
│ Go daemon · Port 9443 · REST API │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │
│ │ Apps │ │Releases │ │ Config │ │ Domains │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────────┘ │
└──────────────────────────────────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Podman │ │ systemd │ │ CF │ │ SOPS │
│ Runtime │ │ Units │ │ Tunnel │ │ Secrets │
└─────────┘ └─────────┘ └─────────┘ └─────────┘

Interfaces

pvdify CLI

Heroku-style command interface:

Terminal window
pvdify apps # List all apps
pvdify apps:create myapp # Create new app
pvdify deploy myapp # Deploy current image
pvdify logs myapp -f # Stream logs
pvdify config:set KEY=value # Set environment variable
pvdify ps myapp # Show running processes
pvdify domains:add myapp.com # Attach custom domain

See CLI Reference for complete documentation.

gh pvdify Extension

GitHub-integrated deploys:

Terminal window
gh pvdify deploy # Deploy current branch
gh pvdify status # Check deployment status
gh pvdify logs # View deployment logs
gh pvdify preview # Create PR preview environment

See GitHub Extension for details.

REST API

Full programmatic access:

Terminal window
# List apps
curl -H "Authorization: Bearer $TOKEN" \
https://pvdify.win/api/v1/apps
# Create release
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"image":"ghcr.io/org/app:v1.2.3"}' \
https://pvdify.win/api/v1/apps/myapp/releases

See API Reference for complete documentation.

Admin UI

Web dashboard at pvdify.win:

  • App list with status indicators
  • Real-time log streaming
  • Config/secrets management
  • Domain configuration
  • Release history and rollback

See Admin UI for details.

Key Concepts

App Slot Model

Apps are organized into slots — isolated deployment units:

FieldDescription
nameUnique app identifier
environmentproduction, staging, preview
imageContainer image reference
processesProcess types (web, worker)
bind_portInternal port (3000+)
domainsCustom domain mappings
env_versionsConfig version history
resourcesCPU/memory limits
healthcheckHealth check endpoint

See App Model for complete schema.

Release Model

Deployments are immutable releases:

  • CI builds image externally (GitHub Actions)
  • Image pushed to GitHub Container Registry
  • Release created via API/CLI
  • Blue-green swap via systemd
  • Instant rollback to previous release

See Deployment for workflow details.

Quick Start

Terminal window
# Install CLI
curl -fsSL https://pvdify.win/install.sh | bash
# Login
pvdify login
# Create app
pvdify apps:create myapp
# Deploy (after CI builds image)
pvdify deploy myapp --image ghcr.io/org/app:v1.0.0
# Attach domain
pvdify domains:add myapp myapp.com
# View logs
pvdify logs myapp -f