A UI to visualize Pulumi stacks in a self-hosted state backend.
Overview
TL;DR The goal of this project is to make free self-hosting Pulumi at scale more viable for teams that do not need all of Pulumi Cloud's features.
The philosophical scope of this project includes tools, guides, or any resources that can help teams get the most advanced, production-level experience possible when self-hosting Pulumi--and to make this simple.
Quick start
Launch the UI
Launch the UI using your Pulumi state backend.
These examples assume your state is located in ~/.pulumi which is the default location used when you run pulumi login --local.
With pip
pip install pulumi-ui
pulumi-ui up --state-uri file://~
With uvx
uvx pulumi-ui up --state-uri file://~
With pipx
pipx run pulumi-ui up --state-uri file://~
With uv
uv add pulumi-ui
pulumi-ui up --state-uri file://~
Use a remote state backend
AWS S3 Bucket
pulumi-ui can pick up credentials from the environment, e.g. AWS profiles, IAM roles, etc.
Assuming you normally run pulumi login s3://my-pulumi-state-bucket to connect to your state backend, then run:
AWS_PROFILE=xxx pulumi-ui up --state-uri s3://my-pulumi-state-bucket
Google Cloud Storage
Assuming you normally run pulumi login gs://my-pulumi-state-bucket to connect to your state backend, then run:
GOOGLE_APPLICATION_CREDENTIALS=xxx pulumi-ui up --state-uri gs://my-pulumi-state-bucket
Azure Blob Storage
Assuming you normally run pulumi login az://my-pulumi-state-account/my-pulumi-state-container to connect to your state backend, then run:
AZURE_STORAGE_CONNECTION_STRING=xxx pulumi-ui up --state-uri az://my-pulumi-state-account/my-pulumi-state-container
Why does this project exist?
Pulumi is a great IaC tool.
It's open source. It uses real code unlike Terraform and CloudFormation. It can deploy resources across multiple clouds, unlike AWS CDK.
However, coming from "free" IaC tools like CloudFormation and AWS CDK, Pulumi Cloud's pricing of $1.10/resource/mo for teams larger than 10 people can be a tough pill to swallow.
We support the company behind Pulumi. Pulumi leads the way in IaC innovation, and it takes money to do that.
We hope for this project to increase the size and passion of the Pulumi community, bringing them more contributors and customers.
If engineers can use this tool to find initial success self-hosting Pulumi, they will be better equipped to get approval from their procurement departments to buy Pulumi Cloud. Sometimes that initial win requires more than 10 collaborators, more than 200 resources, more than a few-week "POC period", etc.
Contributing
We would LOVE to have you contribute!
Guides, docs, examples, tests, features, hype, IaC to help folks deploy this themselves. All of it.
See CONTRIBUTING.md
Metadata
Release files for pulumi-ui 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pulumi_ui-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pulumi_ui-0.2.1-py3-none-any.whl
| Download URL | pulumi_ui-0.2.1-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86c7542b5d030c962967e60e57c7ed8d2e10942b1ffaa42caa6fe9b9c0a95f0e
|
|
BLAKE2b-256 checksum How to use checksums |
cef7a4b3f22fed3af4ede050324aa0f2c72a7496891fb33081c4dda23646a98d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.5
|
Security for pulumi-ui 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.