EP

Setup

Run Elastic Projects on your laptop, or use the live host at elasticprojects.com.

Requirements

Optional for live Spaces sign-in:

Local app

git clone <your-origin-url>
cd elasticprojects
npm install
npm run dev

Open http://127.0.0.1:43147.

Local preview (no PDS)

On the homepage, choose Open local preview. That seeds demo organizations and projects in SQLite.

Handle Org Example projects
labs.elasticprojects.test Elastic Labs foundations, kitchen, elastic
design.elasticprojects.test Elastic Design (division) brand
loaf.elasticprojects.test Loaf Media (acquired) studio

Pull and publish in the UI use elasticprojects.db. There are no network calls.

Environment variables

Variable Default Purpose
UI_PUBLIC_URL http://127.0.0.1:43147 Public origin for OAuth metadata
DATABASE_PATH elasticprojects.db Local SQLite
DATABASE_URL unset Neon Postgres in production
PLC_URL https://plc.directory DID directory
BSKY_URL https://public.api.bsky.app Handle search

ep CLI

The CLI reads and writes the same SQLite file as the web UI.

npm run ep demo seed
npm run ep -- pull labs/elastic --dir ./product-tree
npm run ep -- push labs/elastic --dir ./product-tree -m "Update notes"
npm run ep -- status labs/elastic

Do not run ep pull into the repository root. Use a subdirectory such as ./product-tree.

For a remote host, pass --remote and --token. See source control.

Organization Data Server

Open Organizations (/orgs):

  1. Create an organization.
  2. Choose Host here, Local pack, or an external PDS URL.
  3. Create projects under that organization.

Local pack needs about 2 vCPU, 4 GiB of memory, and 20 GiB of disk. See hosted ODS.

Live Spaces

  1. Sign in with a Spaces handle on the homepage.
  2. Open or create a project.
  3. Pull and publish in the working tree.

Deploy

Production for this product is elasticprojects.com on Vercel with Neon Postgres.

npx vercel link
npx vercel env add UI_PUBLIC_URL production
npx vercel --prod

Set UI_PUBLIC_URL to the production URL. OAuth metadata uses that origin.

Checks

npm run check

See limits for alpha boundaries.