Managing cloud infrastructure manually through web dashboards is slow, error-prone, and impossible to scale. While traditional Infrastructure as Code (IaC) tools like Terraform rely on domain-specific configuration languages (HCL), Pulumi lets you define, deploy, and manage cloud infrastructure using real programming languages including TypeScript/JavaScript, Python, Go, Java, and C#.
In this guide, you will learn how to install Pulumi on an Ubuntu or Debian VPS, configure its dependencies, and deploy your first cloud resources step-by-step.
Get Your VPSie Instance Ready
- Create an Account: Register at the VPSie Client Portal.
- Fund Your Account: Go to Billing in the portal to add funds or set up payment methods.
- Deploy a Server: Create a Linux VM running Ubuntu 24.04 / 26.04 LTS or Debian 12 / 13 with at least 2 vCPUs and 2 GB RAM.
Update System and Install Dependencies
Ensures your package manager and security updates are current. Log into your server via SSH and update the system package database:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git build-essential
Install Language Runtimes (Node.js & npm)
Pulumi requires the runtime of the language you choose for your IaC code. We will install Node.js (v20 LTS):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Verify the installation:
node -v
npm -v
Install Pulumi CLI via Official Script
Run Pulumi’s automated installation script:
curl -fsSL https://get.pulumi.com | sh
Once finished, update your current shell environment so system terminal can find the pulumi command:
export PATH=$PATH:$HOME/.pulumi/bin
echo 'export PATH=$PATH:$HOME/.pulumi/bin' >> ~/.bashrc
Verify the installation:
pulumi version
Initialize Pulumi Backend State
Pulumi needs to track the state of your infrastructure. You can log into the free managed service (Pulumi Cloud) or store state locally on your server disk:
Local Backend (Self-managed on your server):
pulumi login --local
When you log into a local backend without an active stack, Pulumi will ask if you want to create a project. Apply and enter your necessary selections when prompted:
- What would you like to do? Select Create a new Pulumi project.
- Enter or create an empty directory: Enter a directory name (e.g., my-pulumi-app).
- Which provider would you like to use? Select Basic Pulumi Program (or choose a specific cloud provider like AWS/DigitalOcean).
- Which language would you like to use? Select your preferred language (e.g., Python or TypeScript).
- Project details (Name, Description, Stack name): Press Enter to accept the defaults (e.g., stack name dev).
- Do these look good? Select Yes, create the project.
- Passphrase: Enter a strong password to encrypt local secrets and re-enter it to confirm.
Create Your First Pulumi Project
Create a new directory for your infrastructure code and initialize a project:
mkdir my-first-pulumi && cd my-first-pulumi
pulumi new aws-typescript
Follow the interactive terminal prompts:
- Project name: Accept default (my-first-pulumi).
- Project description: Accept default or write a brief summary.
- Stack name: Accept default (dev).
- AWS Region: Choose your nearest region (e.g., us-east-1 or eu-central-1).
Configure Cloud Provider Credentials
Before deploying, provide your cloud provider access keys. For example, to set up AWS:
export AWS_ACCESS_KEY_ID="your-access-key-here"
export AWS_SECRET_ACCESS_KEY="your-secret-key-here"
Deploy Your Infrastructure
Run the deployment command inside your project directory:
pulumi up
What happens during this step:
- Pulumi compiles your TypeScript code into execution plans.
- It compares your code against your current state file and displays a detailed Diff Preview of resources to be created, modified, or destroyed.
- You are asked: Do you want to perform this update?
- Press Enter on yes to apply the changes to your cloud provider.

