Skip to content

Local development stack ​

ikary local manages a Docker Compose stack that runs three services together: the preview server, the data API, and the MCP server.

Port reference ​

PortServiceURL
4500Preview Serverhttp://localhost:4500
4501Data APIhttp://localhost:4501
4502MCP Serverhttp://localhost:4502/mcp

Requires: Docker Desktop or Podman.

ikary local start <manifest> ​

Starts the full local stack for a manifest file. Pulls the latest images, runs pre-flight checks, then starts all containers.

bash
ikary local start ./manifest.json

Example output:

Starting IKARY local stack

Pre-flight checks:

  ✓ Manifest          ./manifest.json
  ✓ Container runtime docker running
  ✓ docker-compose.yml found
  ✓ Port Preview   (4500)   free
  ✓ Port Data API  (4501)   free
  ✓ Port MCP Server(4502)   free

✔ All services healthy

Services:

  Preview     http://localhost:4500
  Data API    http://localhost:4501
  MCP Server  http://localhost:4502/mcp

The preview server hot-reloads when manifest.json changes. Entity records persist in a local PostgreSQL database between restarts.


ikary local stop ​

Stops all running stack containers.

bash
ikary local stop

ikary local status ​

Shows the current status and health of each container.

bash
ikary local status

ikary local logs [service] ​

Streams logs from the stack. Pass a service name to filter output.

bash
ikary local logs          # all services
ikary local logs preview  # preview server only
ikary local logs api      # data API only
ikary local logs mcp      # MCP server only
OptionDescription
-f, --followFollow log output

ikary local reset-data ​

Deletes the local PostgreSQL data volume. Stops the stack first if it is running.

bash
ikary local reset-data

Use this to clear all seed data and return to an empty database.


ikary local db ​

Database migration commands. Useful after pulling a new version of the runtime that includes schema changes.

bash
ikary local db migrate        # run pending migrations
ikary local db status         # show which migrations have run
ikary local db reset --yes    # clear migration tracking (--yes required)
SubcommandDescription
migrateRun all pending migrations against the local database
statusPrint the migration history and any pending migrations
resetClear the migration tracking table (does not drop data tables); requires --yes
Option (migrate)Description
--database-url <url>Target a specific database instead of the local volume
--dry-runPrint migrations that would run without executing them
--forceRun migrations even if the database reports them as applied
Option (reset)Description
--yesRequired. Confirms the reset without an interactive prompt