Run Orilla locally
From a repository clone, you need Node.js 22.12 or later, pnpm 11, FFmpeg/FFprobe with libx264 and AAC, and Podman Compose or Docker Compose. Use .nvmrc for the project’s verified version. Public Astro sites require Node.js 22.22 or later.
Prepare the environment
Section titled “Prepare the environment”pnpm install --frozen-lockfilepnpm setup:localpodman-compose --env-file .local/compose.env up -dpnpm migratepnpm bootstrappnpm bootstrap:dashboardWith Docker, replace the infrastructure command with docker compose --env-file .local/compose.env up -d. Wait for PostgreSQL and SeaweedFS to be available before migrating.
bootstrap creates a new workspace every time: run it once for initial setup. bootstrap:dashboard preserves an existing account and stores initial credentials under .local/ with restricted permissions.
Start the services
Section titled “Start the services”Open one terminal per process, from the root:
pnpm dev:apipnpm dev:workerpnpm dev:webTo deliver webhooks, also start pnpm dev:webhooks. The API and workers read the generated local configuration; they do not automatically load an arbitrary .env file.
Local addresses
Section titled “Local addresses”| Service | Address |
|---|---|
| Dashboard | http://127.0.0.1:5178 |
| API | http://127.0.0.1:4321 |
| API Swagger | http://127.0.0.1:4321/docs |
| Landing page | http://127.0.0.1:5180 with pnpm dev:site |
| Documentation | http://127.0.0.1:5181 with pnpm dev:docs |
The public sites run independently of the API and workers.
When finished
Section titled “When finished”Stop processes with Ctrl+C. podman-compose --env-file .local/compose.env down stops the infrastructure and preserves volumes. Do not add -v if you need to keep the data.
Files under .local/ contain private configuration and credentials. Do not include them in commits, screenshots, or public documentation.