Self-hosted service
pulumi/pulumi-self-hosted-installers avatar
pulumi/pulumi-self-hosted-installers

Pulumi self-hosted installers: six deployment targets and a docs toolchain

Repository for getting started with self-hosted Pulumi Service.

55 stars11 forksTypeScriptApache-2.0

At a glance

What is it?
This repository holds installation guides for running the Self-Hosted Pulumi Service on Docker Compose, EKS, ECS, AKS, Docker Engine and GKE. It ships no service code of its own, and the tree contains directories the guide list never mentions.
Who is it for?
This repository suits an organization that has already decided to run the Pulumi Service itself and wants a vetted starting point per cloud rather than a blank page. It does not suit someone looking for the service, its components or its upgrade path, because those live in the Pulumi self-hosted documentation, and the newest tag here is v3.1 from 2025-04-29 while the default branch was pushed on 2026-09-30.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • pulumi/pulumi-self-hosted-installers55 ★ · +0
Star history
Repository2026-08-262026-11-14
pulumi/pulumi-self-hosted-installers5555

0 Stars in the last 80 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

A repository of deployment guides, not the service

What lives here is documentation for standing up the Self-Hosted Pulumi Service, split by target environment. The scope is stated precisely: each guide details how to deploy the set of supporting cloud infrastructure on which the Pulumi Service can run, and how to deploy the container images the service needs. The components of the service and the general guidance on deploying and operating it are not kept here; they are documented in the Pulumi self-hosted documentation, which the README links as the place to learn more. The repository itself is Apache-2.0 licensed, its default branch is master, and the last recorded push is dated 2026-09-30. The repository description says the same thing in six words: a place for getting started with self-hosted Pulumi Service.

Six targets, and one of them is still coming soon

The guide list is the map. Quickstart points at ./quickstart-docker-compose, AWS offers a choice between ./eks-hosted and ./ecs-hosted, Azure points at ./aks-hosted, Docker points at ./local-docker for Docker Engine, Google Cloud points at ./gke-hosted, and VMware is listed as coming soon. So there are five usable targets and one placeholder, and each usable target is a top-level directory whose name is also the guide's path. The first entry doubles as the on-ramp: the Docker Compose quickstart is the smallest environment to prove the service works before the same work is repeated on a managed Kubernetes cluster or a container service.

The tree carries directories the guide list omits

Comparing the list against the top level turns up three entries the README never names as guides. byo-infra/ sits between the Azure and ECS directories without an entry in the list, which suggests a bring-your-own-infrastructure path that the summary does not surface. eks-hosted-deprecated/ sits next to eks-hosted/, so the EKS material exists in a retired and a current form and nothing in the README says which one to read or when the old one was frozen. components-microstacks/ is not in the guide list either, though it does appear in the review instructions further down. Nothing explains the difference between the two EKS directories, so a reader has to open both to find out which is maintained.

AGENTS.md and CLAUDE.md carry the review checklists

The contributing section is short and unusual. Review guidance lives in AGENTS.md files: the root AGENTS.md covers repository-wide concerns, and each platform directory, specifically eks-hosted/, ecs-hosted/, aks-hosted/, gke-hosted/ and components-microstacks/, carries its own with a platform-specific Code Review Guidance section. The stated point is that AI reviewers and coding agents pick these files up automatically, and human reviewers can use the same checklists, which removes the usual split between a machine checklist and a human one. A CLAUDE.md sits at the top level next to them. Note which directories are absent from that list: byo-infra/, local-docker/, quickstart-docker-compose/ and eks-hosted-deprecated/ have no platform-specific guidance of their own.

npm run lint is the entire continuous integration story

package.json describes the repository as development tools for Pulumi Self-Hosted Installers, is marked private, and sits at version 1.0.0, which is a tooling version rather than a service version. Node 16 or newer is the stated engine. The whole pipeline is three commands:

bash
npm run lint
npm run validate:standalone
npm run generate:diagrams

`lint` chains markdownlint over the Markdown files and then the Mermaid check, which is why the Mermaid script simply calls validate:standalone rather than doing its own pass. The two development dependencies are pinned exactly: markdownlint-cli at 0.48.0 and @mermaid-js/mermaid-cli at 11.12.0. A repository of deployment guides needs no application build, so this is the complete set of checks, and a .markdownlint.json at the top level holds the style configuration they run against.

Diagrams are checked in as SVG files

The Mermaid handling has a migration scar worth knowing about. validate:diagrams no longer validates anything: it echoes a note that most diagrams are now standalone .mmd files and points at validate:standalone instead. That script walks the tree for .mmd files outside node_modules, echoes a Validating line for each, and renders each one through mmdc into a temporary SVG under /tmp. generate:diagrams runs the same walk but writes the output next to the source with the .mmd extension replaced, adding a white background. In other words the diagrams are source plus generated artefact committed together, and linting proves the sources still render. That explains the TypeScript primary language: the tooling is Node, and the shipped content is Markdown and Mermaid. The practical consequence for a contributor is that a diagram edited by hand in an SVG will be overwritten the next time someone runs the generate script, so the .mmd file is the place to make the change.

Two toolchains and a release trail that lags the branch

Alongside package.json and package-lock.json there is a Go module. go.mod declares the module as github.com/pulumi/pulumi-self-hosted-installers, requires Go 1.26.1, and pulls github.com/pulumi/pulumi/sdk/v3 at v3.243.0 plus github.com/stretchr/testify at v1.11.1, followed by a long indirect block of transitive dependencies. A documentation repository carrying both a Node toolchain and a Go module means a guide can execute Go against the real SDK rather than describing it in prose, and the pinned SDK version tells you which client the examples are written against. Dependency updates are handled by renovate.json5. The release history, though, runs behind the code: v2.1 on 2024-12-05, v3.0 on 2024-12-10 and v3.1 on 2025-04-29, against a branch last pushed on 2026-09-30.

Editorial conclusion

This repository suits an organization that has already decided to run the Pulumi Service itself and wants a vetted starting point per cloud rather than a blank page. It does not suit someone looking for the service, its components or its upgrade path, because those live in the Pulumi self-hosted documentation, and the newest tag here is v3.1 from 2025-04-29 while the default branch was pushed on 2026-09-30. Before following a guide, check that your target directory is one of the six listed, read the AGENTS.md checklist for that platform, and confirm whether byo-infra/ or eks-hosted-deprecated/ fits your case better than the maintained path.

Frequently asked questions

What is a self-hosted program in the Pulumi sense?

Here it means running the Pulumi Service on infrastructure you control instead of using a hosted one. This repository holds the installation guides for the target environments, while the components and the operating guidance live in the Pulumi self-hosted documentation.

Does Pulumi cost money when you self-host it?

Nothing about pricing appears in this repository, which contains deployment guides only. What it does show is the range of environments the service can be deployed into, from a Docker Compose quickstart to EKS, ECS, AKS, Docker Engine and GKE.

Which deployment targets does pulumi-self-hosted-installers cover?

Six entries are listed: Quickstart with Docker Compose, AWS through EKS or ECS, Azure AKS, Docker Engine, Google Cloud GKE, and VMware marked as coming soon. Each one corresponds to a top-level directory of the same name.

Where are the review checklists for these deployment guides?

In AGENTS.md files. The root AGENTS.md covers repository-wide concerns, and eks-hosted/, ecs-hosted/, aks-hosted/, gke-hosted/ and components-microstacks/ each carry a platform-specific Code Review Guidance section that agents and human reviewers both use.

How are the Mermaid diagrams in this repository checked?

npm run lint runs markdownlint over the Markdown files and then npm run validate:standalone, which finds every .mmd file outside node_modules and renders it through mmdc. npm run generate:diagrams writes the SVG next to each source file with a white background.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pulumi-pulumi-self-hosted-installers.svg)](https://hysenlabs.com/projects/pulumi-pulumi-self-hosted-installers)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/pulumi-pulumi-self-hosted-installers.svg)](https://hysenlabs.com/projects/pulumi-pulumi-self-hosted-installers)

Was this useful?