Skip to main content

Developer Setup

Last Verified: February 2026
This guide walks you through setting up the complete Equa development environment from scratch. By the end, you will have the database, backend API, frontend app, AI gateway, and component library all running locally.

Prerequisites

Install these tools before proceeding: Verify your setup:

Clone Repositories

Clone all active repositories into a common directory:
The equa-desktop-app-mac-ios repository exists as a placeholder but is not yet initialized. Skip it for now. The old command-center-so repository is frozen source material and is not required for current local Command Center setup.

Install Dependencies

Each repo uses a different package manager:

Environment Configuration

equa-server

Create ~/Documents/repos/equa-server/.env:
Source: equa-server/README.md and equa-server/.env.production.template

equa-web

Create ~/Documents/repos/equa-web/.env:
The webpack dev server proxies /api requests to http://localhost:3000 by default. Source: equa-web/README.md (lines 12-19)

equabot-gateway

No .env file required for basic local development. The gateway uses its own config system via equabot config set.

command-center-so (frozen source material only)

Do not configure or start command-center-so for current local Command Center work. The supported Command Center opens inside equa-web. Only clone or configure command-center-so when doing an explicit source-material parity audit. Docs search prerequisite: The Command Center’s docs search feature (/docs, Cmd+K) requires a pre-built search index from the equa-docs repo:
The frozen source app reads the index from ~/Documents/repos/equa-docs/search-index.json by default. To override the path for a parity audit, set EQUA_DOCS_PATH in its .env.local:
If the index file is missing, the search API returns a 500 error with: Search index not found at <path>/search-index.json. Run 'npm run build:search' in equa-docs. Source: command-center-so/src/lib/docsIndex.ts, equa-docs/SEARCH-ARCHITECTURE.md

Start Services

Start services in this order. Each service depends on the previous one.

Step 1: PostgreSQL Database

Wait for the database to be ready:
Source: equa-start-dev skill, verified startup sequence

Step 2: Initialize Database (first time only)

This creates all tables via TypeORM schema synchronization. Source: equa-server/package.json script init:db

Step 3: Backend API Server

Port 3000 is reserved for equa-server. If a Next.js dev server or any other process binds to 3000, stop that process and restart equa-server. The current Command Center does not require a Next.js process on port 3001.
The API server starts on http://localhost:3000. Source: equa-server/package.json script start:dev runs ts-node scripts/api.ts

Step 4: Frontend Development Server

The frontend starts on http://localhost:8080 and proxies API calls to the backend at port 3000. Source: equa-web/package.json script start — includes NODE_OPTIONS='--openssl-legacy-provider' automatically

Step 5: Equabot Gateway (optional)

The gateway requires Node 22+. If you use nvm, switch to Node 24 first:
The gateway runs on:
  • WebSocket: ws://127.0.0.1:18789
  • Browser Control UI: http://localhost:18791
Source: equa-start-dev skill Step 5; equabot-gateway/package.json engine requirement >=22.12.0

Step 6: Storybook (optional)

Storybook starts on http://localhost:6006. Source: equa-patternlib-nextjs/package.json script storybook

Step 7: Command Center

With the Step 4 equa-web dev server still running, open http://localhost:8080/prime?openEquanaut=true or use the Equanaut rail on supported equa-web routes. command-center-so remains frozen source material and should not be started for current local Command Center work. Source: equa-web/specs/060-command-center-fleet-management-shell/spec.md and Command Center.

Verify Everything Works

Check that all services are listening:
Verify equa-server specifically (not just “something on port 3000”): Run ps -p $(lsof -ti :3000) -o command= — it should show ts-node or Express, not next-server. If it shows next-server, that’s command-center-so occupying equa-server’s port.
Open these URLs in your browser:

Stop Services

Source: equa-start-dev skill “Stop Services” section

Troubleshooting

Next Steps

Once your environment is running, read the Repository Guide to understand how the codebase is organized.