Pulumi Starter
December 11, 2025 ยท View on GitHub
๐ A boilerplate for cloud applications with Pulumi and Kubernetes using TypeScript on Vite.
:rainbow: View Demo: Live | Windows | macOS | Android | iOS
:octocat: Source Code: Web-side | Native-side | Server-side | Cloud-side
Table of Contents
Getting Started
Prerequisites:
- Node.js v24
- PNPM v10
- Pulumi v3
- Docker v29
- Kubernetes v1
- Helm v3
Get started with Pulumi Starter.
# install dependencies
$ pnpm install
$ pulumi stack init dev
$ pulumi stack select dev
$ pulumi up
Or use barebones scaffolding for your new Pulumi app
$ pnpm dlx degit Shyam-Chen/Barebones-Templates/pulumi my-pulumi-app
Self-hosted Kubernetes
Prerequisites:
- Ubuntu Server Installation
- Network Settings
- SSH Remote Access Settings
- Resource Pool Management
- Repository SSH Key Settings
- Bucket In MinIO
$ pulumi login 's3://<MINIO_BUCKET_NAME>'
Business:
- Frontend
- Backend
- MongoDB
- MinIO
- Mailu
- Redis
- Worker
- Qdrant
- Ollama
Platform:
- GitLab + GitLab Runner
- Harbor
- HashiCorp Vault
- Lens
- Prometheus/Loki + Grafana
- Velero + MinIO
- Longhorn
- MetalLB + Istio
- Rancher
Project Setup
Follow steps to execute this boilerplate.
Install dependencies
$ pnpm install
Initialize stacks
# development
$ pulumi stack init dev
# Test
$ pulumi stack init sit
# staging
$ pulumi stack init uat
# production
$ pulumi stack init prod
Select stacks
# development
$ pulumi stack select dev
# Test
$ pulumi stack select sit
# staging
$ pulumi stack select uat
# production
$ pulumi stack select prod
Create or update resources
$ pulumi up
Key Features
This seed repository provides the following features:
- ---------- Essentials ----------
- Pulumi - Infrastructure as Code and Secrets Management
- ---------- Tools ----------
- TypeScript - JavaScript with Syntax for Types
- Biome - Formatter and Linter
- Vitest - Test Runner
- ---------- Environments ----------
- Node.js - JavaScript Runtime Environment
- PNPM - Package Manager
- Docker - Containerized Application Development
- GitHub Actions - Continuous Integration and Delivery
Configuration
Control the environment.
Environment Variables
$ pulumi stack select <ENV>
$ pulumi config set <KEY> <VALUE> [--secret]
Directory Structure
The structure follows the LIFT Guidelines.
.
โโโ .github/workflows
โ โโโ client.yaml
โ โโโ server.yaml
โโโ packages
โ โโโ client
โ โ โโโ src
โ โ โ โโโ index.ts
โ โ โโโ package.json
โ โ โโโ Pulumi.yaml
โ โ โโโ tsconfig.json
โ โโโ server
โ โโโ src
โ โ โโโ index.ts
โ โโโ package.json
โ โโโ Pulumi.yaml
โ โโโ tsconfig.json
โโโ .dockerignore
โโโ .editorconfig
โโโ .gitignore
โโโ biome.json
โโโ package.json
โโโ pnpm-lock.yaml
โโโ pnpm-workspace.yaml
โโโ README.md