Skip to content

Introduction

Procella is a self-hosted backend for Pulumi, the infrastructure-as-code platform. It implements the Pulumi Service API so that the standard Pulumi CLI works against it without modification — pulumi login, pulumi stack init, pulumi up, pulumi destroy, state import/export, secret encryption, and more.

Pulumi Cloud is the default backend for managing state, secrets, and collaboration. For teams that need to keep infrastructure state within their own network boundary — whether for compliance, data sovereignty, or cost — Procella provides a drop-in replacement.

  • Data sovereignty — state and secrets never leave your infrastructure
  • No vendor dependency — run on your own PostgreSQL and S3-compatible storage
  • Multi-tenant isolation — organization-scoped access control with role-based permissions
  • Horizontal scaling — add replicas behind a load balancer with zero configuration changes

Procella implements the Pulumi Service API surface that the CLI uses:

FeatureStatus
pulumi login
pulumi stack init / ls / rm / select
pulumi up / preview / refresh / destroy
pulumi stack export / import
pulumi config set --secret
pulumi stack rename
pulumi stack tag
pulumi cancel
Concurrent update protection
Checkpoint versioning
Delta checkpoints
Update event history
Orphan update garbage collection
Web dashboard
tRPC dashboard API
API token management (web)
Admin settings (users, roles, audit, tenant)
Browser-based CLI login flow
ComponentTechnology
RuntimeBun 1.2
HTTP RouterHono v4
DatabasePostgreSQL 17 (Drizzle ORM + Bun.sql)
Dashboard APItRPC v11
AuthenticationDescope access keys / static dev tokens
EncryptionAES-256-GCM + HKDF per-stack key derivation
Blob StorageLocal filesystem or S3-compatible (AWS S3, MinIO, Cloudflare R2)
FrontendReact 19 + Vite 7 + Tailwind CSS v4
Load BalancerCaddy 2
Containerbun build --compile → debian-slim
QualityBiome + TypeScript strict + bun:test (320 unit + 89 E2E tests)