Skip to content

Prerequisites & Sizing

This guide covers the hardware, software, and network requirements for deploying Sorcha.

Hardware Sizing

DeploymentCPURAMDiskConcurrent Users
Development2 cores4 GB20 GB1-10
Small (Pilot)4 cores8 GB50 GB10-100
Medium (Team)8 cores16 GB100 GB100-500
Large (Production)16+ cores32+ GB500+ GB500+

Per-Service Resource Estimates

ServiceCPU (min)RAM (min)Notes
API Gateway0.25 vCPU256 MBStateless reverse proxy
Blueprint Service0.5 vCPU512 MBWorkflow engine, SignalR connections
Wallet Service0.5 vCPU512 MBCrypto operations are CPU-intensive
Register Service0.5 vCPU512 MBLedger read/write, OData queries
Tenant Service0.25 vCPU256 MBAuth/JWT issuance
Validator Service0.5 vCPU512 MBChain validation, consensus
Peer Service0.25 vCPU256 MBgRPC P2P networking
PostgreSQL0.5 vCPU1 GBWallet + Tenant databases
MongoDB0.5 vCPU1 GBRegister + Blueprint storage
Redis0.25 vCPU256 MBCache, sessions, SignalR backplane
Aspire Dashboard0.25 vCPU256 MBTelemetry collection and UI

Total minimum (all services): ~4 vCPU, ~5.5 GB RAM

For production deployments, allocate 2-3x the minimum values and monitor actual usage to right-size.

Disk Space Considerations

ComponentGrowth RateNotes
PostgreSQLLow-moderateUser accounts, wallet metadata
MongoDBModerate-highLedger transactions, blueprints (grows with usage)
RedisLowVolatile cache, session data
Docker images~2 GB totalAll Sorcha service images
LogsVariableDepends on log level and retention

Software Prerequisites

Required

SoftwareVersionPurpose
Docker Desktop4.x+Container runtime
Docker Composev2+ (bundled with Docker Desktop)Service orchestration
git2.x+Clone repository

Optional (for Aspire/development mode)

SoftwareVersionPurpose
.NET 10 SDK10.0+Build from source, run Aspire AppHost
PowerShell 7+7.x+Setup and utility scripts

Operating System Support

OSDocker ModeNotes
Windows 11Docker Desktop (WSL2)Recommended for development
Windows 10Docker Desktop (WSL2 or Hyper-V)WSL2 preferred
macOS 12+Docker DesktopApple Silicon (ARM64) supported
Ubuntu 22.04+Docker EngineRecommended for production
RHEL/CentOS 9+Docker Engine or PodmanSELinux may require configuration

Network Requirements

Ports

The following ports must be available on the host machine:

PortServiceDirectionRequired
80API Gateway (HTTP)InboundYes
443API Gateway (HTTPS)InboundProduction only
5432PostgreSQLInternal/DebugConfigurable via POSTGRES_PORT
27017MongoDBInternal/DebugConfigurable via MONGODB_PORT
6379 (mapped 16379)RedisInternal/DebugConfigurable via REDIS_PORT
18888Aspire DashboardInternal/AdminConfigurable via ASPIRE_UI_PORT
4317OTLP gRPCInternalConfigurable via OTLP_GRPC_PORT
4318OTLP HTTPInternalConfigurable via OTLP_HTTP_PORT
50051Peer gRPCInbound (P2P)Only if P2P enabled

Firewall Rules

Minimum for operation (internal use):

  • Allow inbound TCP port 80 (HTTP) from client networks
  • Allow outbound HTTPS (443) for Docker image pulls

For production with TLS:

  • Allow inbound TCP port 443 (HTTPS) from client networks
  • Block direct access to database ports (5432, 27017, 16379) from external networks

For peer-to-peer networking:

  • Allow inbound TCP port 50051 (or configured PEER_GRPC_PORT) for gRPC peer connections
  • Allow outbound to seed node endpoints (e.g., n0.sorcha.dev:443)

DNS Requirements

Development: No DNS required. Services are accessed via localhost.

Production:

  • A domain name pointing to the API Gateway host (e.g., sorcha.example.com)
  • Optional: Separate subdomains for individual services if exposed directly
  • DNS resolution between Docker containers is handled automatically by Docker's internal DNS

TLS/SSL Requirements

Development: Self-signed certificates are generated automatically. No action required.

Production:

  • A valid TLS certificate for the API Gateway domain
  • Certificate must be in PFX format for Kestrel, or terminate TLS at a load balancer
  • Minimum TLS 1.2 recommended
  • Certificate files are mounted via Docker volumes at /https/

Pre-Installation Checklist

Before starting installation, verify:

  • [ ] Docker Desktop is installed and running
  • [ ] Docker Compose v2 is available (docker compose version)
  • [ ] Required ports are available (netstat -tulpn or netstat -ano)
  • [ ] At least 4 GB RAM available for containers
  • [ ] At least 20 GB free disk space
  • [ ] Git is installed (git --version)
  • [ ] Outbound HTTPS access is available (for pulling Docker images)
  • [ ] (Production) TLS certificate is available
  • [ ] (Production) DNS is configured
  • [ ] (Production) Firewall rules are in place

Released under the MIT License.