Skip to content

Quick Start

Terminal window
git clone https://github.com/procella-dev/procella.git
cd procella
bun run dev

This starts the following services:

ServicePurposePort
PostgreSQL 17Database5432
MinIOS3-compatible blob storage9000 (API), 9001 (console)
Procella serverBun server with hot-reload9090
Vite dev serverReact UI with HMR5173

The server runs database migrations automatically on startup.

Terminal window
export PULUMI_ACCESS_TOKEN=devtoken123
pulumi login http://localhost:9090

The dev environment uses a static token (devtoken123) for authentication. This maps to the default dev user (dev-user) in the default organization (dev-org).

Terminal window
# Create a new Pulumi project
mkdir my-infra && cd my-infra
pulumi new typescript --yes
# Deploy
pulumi up --yes
# View the stack
pulumi stack
# Export state
pulumi stack export
# Clean up
pulumi destroy --yes
pulumi stack rm --yes

You can verify the server is running correctly:

Terminal window
# Health check
curl http://localhost:9090/healthz
# Check capabilities
curl -H "Accept: application/vnd.pulumi+8" http://localhost:9090/api/capabilities
# List stacks (requires auth)
curl -H "Accept: application/vnd.pulumi+8" \
-H "Authorization: token devtoken123" \
http://localhost:9090/api/user/stacks

The dev environment supports multiple users and organizations out of the box:

UserTokenOrganizationRole
dev-userdevtoken123dev-orgadmin
user-btoken-user-borg-badmin
viewer-usertoken-viewerdev-orgviewer
Terminal window
# Log in as user-b
export PULUMI_ACCESS_TOKEN=token-user-b
pulumi login http://localhost:9090
# Stacks are isolated per organization — user-b can only see org-b stacks
pulumi stack ls
Terminal window
bun run dev:down

This stops all containers and removes volumes (including database data).