Awesome
Pulumi Starter
š A boilerplate for cloud applications with Pulumi and Azure 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 v20
- PNPM v9
- Docker v4
- Pulumi v3
- Azure v2
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
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
- Azure Container Apps - Serverless Containers
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