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:
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
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:| Service | URL | Notes |
|---|---|---|
| Frontend | http://localhost/ | Workflow builder (via nginx) |
| Backend API | http://localhost/api/ | REST API (via nginx) |
| Analytics | http://localhost/analytics/ | OpenSearch Dashboards (via nginx) |
| Temporal UI | http://localhost:8081 | Workflow management |
| PostgreSQL | http://localhost:5433 | Database |
| MinIO | http://localhost:9000 | Object storage |
| MinIO Console | http://localhost:9001 | Credentials: minioadmin/minioadmin |
| Loki | http://localhost:3100 | Logs |
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:- 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:security-findings-* index template with proper mappings for workflow execution data.
Using Analytics
- Analytics Sink Component: Add the “Analytics Sink” component to your workflows to index output data
- Dashboards Link: Access OpenSearch Dashboards from the Studio sidebar
- Query API: Use the
/api/analytics/queryendpoint to query indexed data programmatically
Analytics Service Endpoints
| Service | URL | Notes |
|---|---|---|
| OpenSearch | http://localhost:9200 | Search engine API |
| OpenSearch Dashboards | http://localhost/analytics/ | Visualization UI (via nginx) |
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:- Frontend: http://localhost/
- Backend API: http://localhost/api/
- Analytics: http://localhost/analytics/
- Temporal UI: http://localhost:8081
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
- Check GitHub Issues for similar problems
- Review logs with
just dev logsfor error details - Email support at support@shipsec.ai