Skip to content

Latest commit

 

History

History
150 lines (111 loc) · 3.33 KB

README.md

File metadata and controls

150 lines (111 loc) · 3.33 KB

Pulumi Starter

🎄 A boilerplate for cloud applications with Pulumi and Azure using TypeScript on Vite.

🌈 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