prism docs · For operators · Server setup

Server setup

For the person running their own prism server. On Prism Mapper (app.prismmapper.com) there is nothing to set up: sign in and start. If someone else hosts prism for you, give them this page rather than entering keys into the studio.

Install, build and run

  1. Use Node.js 20.19 or newer and the pnpm version specified in the repository's package.json.
  2. From the repository root, run pnpm install --frozen-lockfile. Copy .env.example to .env and set only what you need. Keep this file private.
  3. Run pnpm build, then pnpm start. The server serves the website at /, the studio at /studio, and the manual at /studio/docs.
  4. After changing environment settings, restart the server process you own. After source or guide changes, rebuild the affected app. Preserve users' active shows when scheduling a restart.

For development, pnpm dev runs the studio and server. The studio's normal development HTTPS setup uses pnpm certs; see the repository README. pnpm dev:site runs the marketing site.

Public URL and HTTPS

The server's default HTTP port is 8787. Use a trusted HTTPS reverse proxy or tunnel for phone camera access. Set PUBLIC_URL to the public origin the phone can reach, without a path. The proxy must pass WebSocket upgrades and API traffic as well as pages. Changing the studio's address changes its browser storage; export first if you intend to move your working address.

Protect the deployment according to who should be able to access it. A public development tunnel is not an account or subscription system. Test pairing from the phone's network and the intended browser before the show.

Configuration reference

VariableMeaning / default
PORT, HOSTHTTP listener, 8787 and 0.0.0.0.
PUBLIC_URLPublic HTTP(S) origin for pairing; blank uses request origin.
ANTHROPIC_API_KEYEnables Anthropic-backed shader and procedural-animation services.
ANTHROPIC_MODEL, ANTHROPIC_ANIMATION_MODELOptional model overrides for shaders and procedural animation. Blank uses the defaults in the shipped release.
OPENAI_API_KEY, OPENAI_IMAGE_MODELTexture service credential and optional image-model override.
GEMINI_API_KEY, GEMINI_VIDEO_MODELVideo-clip service credential and optional video-model override.
AI_RATE_LIMITSOptional JSON, for example {"texturesPerHour":20,"shadersPerHour":30,"videosPerHour":10}. Unspecified fields retain release defaults.
SCAN_BLOB_DIROptional directory for normal expiring scan blobs; blank keeps them in memory.
DIAG_DIROptional durable diagnostic logs and scan archives. Off when blank; operator manages access and deletion.
WEB_DIST, STUDIO_DISTOptional paths to built apps. Defaults are apps/web/dist and apps/studio/dist.
OSC_PORT, OSC_HOSTOSC UDP bridge: port 8000 and HOST by default. Use off to disable; bind 127.0.0.1 for local senders only.
LOG_LEVELinfo by default; fatal, error, warn, info, debug or silent. Trace is not accepted.

AI availability and limits

Keys stay on the server. A missing key disables the corresponding service; adding it requires a restart. A configured key alone cannot guarantee provider credit, model access or availability. AI integrations are considered validated for this release; operational failures still appear in the generation interface.

Default per-room limits are 20 textures, 30 shaders and 10 videos in a sliding hour, with at most two concurrent long-running generation jobs in a room. Completed job results are held for up to 30 minutes, subject to a 512 MB shared clip-memory limit; running jobs time out after 20 minutes. These are application safeguards, not a provider budget cap or a subscription entitlement system. Providers may impose their own quotas. Do not put real credentials in documentation, screenshots or client environment variables.

Storage and operations

Projects live in the user's browser, not in a server project account. Normal scan blobs expire after two hours; idle rooms after twelve. Diagnostic archives do not share that automatic expiry. Keep DIAG_DIR blank unless you need it, and set a deliberate archive deletion policy when using it. Back up configuration securely and rehearse a server restart between shows. See Your data and AI and connection requirements.

Reviewed for prism 2026.09.29.1 · 29 September 2026. Release notes.