Skip to main content

Prerequisites

  • Docker Desktop with ≥8 GB RAM
  • Bun runtime
  • just command runner
  • Open ports: 5433, 7233, 8081, 9000, 9001, 3100

Installation Steps

1. Clone & initialize

macOS users: If you see native module errors, run:
The just init command automatically:
  • Installs project dependencies with Bun
  • Creates environment files from examples (backend/.env, worker/.env, frontend/.env)

2. Configure environment variables

Edit the generated .env files as needed:

3. Start development environment

The just dev command automatically:
  • Checks that environment files exist
  • Starts Docker infrastructure (Postgres, Temporal, MinIO, Loki)
  • Waits for services to be ready
  • Runs database migrations
  • Starts backend, worker, and frontend with hot-reload

Service Endpoints

In development mode, all application services are accessible through nginx on port 80:
Individual service ports (5173, 3211, 5601) are available for debugging but should not be used in normal development. All traffic flows through nginx on port 80.

Analytics Stack (Optional)

ShipSec Studio includes an optional analytics stack powered by OpenSearch for indexing and visualizing workflow execution data.

Starting the Analytics Stack

The analytics services are included in the infrastructure docker-compose file:
This will start:
  • OpenSearch on port 9200 - Search and analytics engine
  • OpenSearch Dashboards on port 5601 - Visualization and query UI

Configuring Analytics

Add these environment variables to your backend and worker .env files:

Setting Up the Index Template

After starting OpenSearch, create the security findings index template:
This creates the security-findings-* index template with proper mappings for workflow execution data.

Using Analytics

  1. Analytics Sink Component: Add the “Analytics Sink” component to your workflows to index output data
  2. Dashboards Link: Access OpenSearch Dashboards from the Studio sidebar
  3. Query API: Use the /api/analytics/query endpoint to query indexed data programmatically

Analytics Service Endpoints

The analytics stack is optional. If OpenSearch is not configured, the Analytics Sink component will gracefully skip indexing and log a warning.

Production Deployment

For production, use the Docker-based deployment:
Production endpoints (all via nginx on port 80):

Common Commands

Development

Production

Infrastructure

Utilities


Troubleshooting

macOS: Native module build errors

Services not starting

Database connection failed

PM2 processes failing

Frontend not loading

Temporal namespace missing

Clean rebuild


Manual Setup (Optional)

If you need more control over the setup process:

Infrastructure only

Applications only


Getting Help