Skip to main content

Installation

This guide covers installing OpenPrime for local development. For production deployments, see the Deployment Guide.

Prerequisites​

Before installing OpenPrime, ensure you have:

  • Docker Desktop 4.0+ with Docker Compose v2
  • Node.js 18+ (for component development)
  • Git for cloning the repository
  • SOPS and age for secrets management (optional)

Verify Prerequisites​

# Check Docker
docker --version # Docker version 24.0+
docker compose version # Docker Compose version v2.20+

# Check Node.js (optional, for development)
node --version # v18.0.0+
npm --version # 9.0.0+

Quick Installation​

1. Clone the Repository​

git clone https://github.com/DevOpsGroup/OpenPrime.git
cd OpenPrime

2. Start Services​

cd openprime-local-testing
npm start

This starts all services:

3. Initialize Secrets (Optional)​

For full functionality, set up encrypted secrets:

npm run env:init       # Create secrets file from template
npm run secrets:edit # Edit with your credentials

Service Architecture​

Service            Port    Description
─────────────────────────────────────────────────
openprime-app 3000 React frontend
openprime-backend 3001 Express.js API
keycloak 8080 Authentication (OIDC)
injecto 8000 Template processor
statecraft 8001 Terraform state manager
postgresql 5432 Database

Verify Installation​

Check service health:

# All services health check
npm run health

# Individual service checks
curl http://localhost:3000 # Frontend
curl http://localhost:3001/health # Backend
curl http://localhost:8080/realms/master # Keycloak
curl http://localhost:8000/health # Injecto

Default Credentials​

Keycloak Admin Console​

Application Login​

After Keycloak initialization, create a user in the openprime realm or configure an identity provider.

Common Issues​

Port Conflicts​

If ports are already in use:

# Find process using port 3000
lsof -i :3000

# Kill the process
kill -9 <PID>

# Or change ports in docker-compose.yml

Docker Memory​

OpenPrime requires at least 4GB RAM allocated to Docker. Increase in Docker Desktop settings if you experience issues.

Database Connection​

If the backend can't connect to PostgreSQL:

# Check database logs
npm run logs:db

# Reset database
npm run clean
npm start

Next Steps​