Prerequisites
Required tools, database setup, and environment configuration for development.
Before you begin developing with SCRIPE, ensure your development machine has the required tools installed. This page covers exact version requirements, database support, step-by-step setup, and Docker quickstart.
Required Tools
| Tool | Minimum Version | Recommended | Purpose |
|---|---|---|---|
| .NET SDK | 10.0 | 10.0.x (latest) | Backend compilation and runtime |
| Node.js | 20 LTS | 22 LTS | Frontend build tooling |
| pnpm | 9.0 | 9.x (latest) | Fast, disk-efficient package manager |
| Git | 2.40 | 2.45+ | Version control |
| Docker | 24.0 | 27.x | Containerized development (optional) |
| Visual Studio / Rider | 2025 | Latest | Backend IDE |
| VS Code | 1.90+ | Latest | Frontend IDE |
Database Support
SCRIPE supports three database providers out of the box: SQL Server, PostgreSQL, and Oracle. The provider is configured via Database.Provider in appsettings.json. Additionally, the Database.Mode setting controls database isolation: 'Single' puts all module tables in one shared database, while 'Multi' (default) allows each module to have its own database with separate connection strings.
| Database | Version | Connection String Key | EF Provider |
|---|---|---|---|
| SQL Server | 2019+ | DefaultConnection | Microsoft.EntityFrameworkCore.SqlServer |
| PostgreSQL | 14+ | DefaultConnection | Npgsql.EntityFrameworkCore.PostgreSQL |
| Oracle | 19c+ | DefaultConnection | Oracle.EntityFrameworkCore |
| SQLite | 3.x | DefaultConnection | Microsoft.EntityFrameworkCore.Sqlite |
Environment Setup
Verify Tool Versions
Ensure all required tools are installed and meet the minimum version requirements.Verify installationsShelldotnet --version node --version pnpm --versionClone the Repository
Clone the monorepo with Git submodules for both backend and frontend.Clone with submodulesShellgit clone https://github.com/SCRIPE-org/SCRIPE.git cd SCRIPE git submodule update --init --recursiveConfigure Connection String
Update the database connection string to point to your local database instance.appsettings.Development.jsonJSON// appsettings.Development.json { "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=SCRIPE;Trusted_Connection=true;TrustServerCertificate=true;" }, "DatabaseProvider": "SqlServer" }Backend Setup
Restore NuGet packages and apply Entity Framework migrations to create the database schema.Backend setupShellcd SCRIPE-Backend dotnet restore dotnet ef database update -p src/Modules/Identity/Identity.Infrastructure -s src/Host/APIFrontend Setup
Install npm dependencies and create your local environment configuration file.Frontend setupShellcd SCRIPE-Frontend pnpm install cp .env.example .env.local
Docker Quickstart
docker-compose.yml (development)YAML
version: '3.8'
services:
scripe-db:
image: mcr.microsoft.com/mssql/server:2022-latest
environment:
ACCEPT_EULA: "Y"
SA_PASSWORD: "YourStrong@Passw0rd"
ports:
- "1433:1433"
volumes:
- scripe-data:/var/opt/mssql
scripe-redis:
image: redis:7-alpine
ports:
- "6379:6379"
scripe-api:
build:
context: ./SCRIPE-Backend
dockerfile: Dockerfile
environment:
ConnectionStrings__DefaultConnection: "Server=scripe-db;Database=SCRIPE;User=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=true"
DatabaseProvider: "SqlServer"
ports:
- "5000:5000"
depends_on:
- scripe-db
- scripe-redis
volumes:
scripe-data: