Skip to main content

System Requirements

Before installing Cluster, ensure your environment meets these requirements.

Hardware Requirements

Minimum (Development / Small Team)

ResourceRequirement
CPU2 cores
RAM4 GB
Storage20 GB SSD
Network100 Mbps
ResourceRequirement
CPU4+ cores
RAM8+ GB
Storage100+ GB SSD
Network1 Gbps
Storage Note

Cluster stores only annotations and metadata, not media files. Storage requirements scale with annotation volume, not file size.

Software Requirements

Required

SoftwareVersionNotes
Node.js20 LTS or higherRuntime for API server
PostgreSQL14 or higher15+ recommended
pnpm8 or higherPackage manager

Optional

SoftwareVersionPurpose
Docker24+Container deployment
Docker Compose2.20+Multi-container orchestration
Meilisearch1.5+Full-text search
Redis7+Session storage (multi-instance)

Cloud Requirements

Microsoft 365 / Azure AD

Cluster requires Azure AD for authentication. You need:

  • Azure AD tenant (included with Microsoft 365)
  • Admin access to register applications
  • SharePoint site with research files

Required Azure AD permissions:

PermissionTypePurpose
User.ReadDelegatedRead user profile
Files.Read.AllDelegatedAccess SharePoint files
Sites.Read.AllDelegatedList SharePoint sites

Google Workspace (Coming Soon)

Future releases will support Google Drive:

  • Google Workspace account
  • OAuth 2.0 application credentials
  • Drive API enabled

Network Requirements

Inbound Ports

PortProtocolService
443HTTPSWeb application and API

Outbound Connections

Cluster needs to reach:

DestinationPurpose
login.microsoftonline.comAzure AD authentication
graph.microsoft.comMicrosoft Graph API
*.sharepoint.comSharePoint file access

CORS Configuration

The API server must allow requests from your web frontend origin:

// Default development
cors({ origin: 'http://localhost:3000' })

// Production
cors({ origin: 'https://cluster.yourcompany.com' })

Database Requirements

PostgreSQL

Cluster requires PostgreSQL 14+ with:

  • UUID extension (uuid-ossp or use gen_random_uuid())
  • JSONB support (native in PG 9.4+)
  • UTF-8 encoding

Recommended PostgreSQL settings:

# postgresql.conf
shared_buffers = 256MB # 25% of RAM for small instances
effective_cache_size = 768MB # 75% of RAM
work_mem = 16MB
maintenance_work_mem = 128MB

Connection Pooling

For production, use connection pooling:

  • PgBouncer — Lightweight, battle-tested
  • Managed pools — AWS RDS Proxy, Azure connection pooling

Browser Support

Cluster's web interface supports:

BrowserMinimum Version
Chrome90+
Firefox90+
Safari14+
Edge90+
Internet Explorer

Internet Explorer is not supported.

Verification Commands

Check Node.js

node --version
# Expected: v20.x.x or higher

Check pnpm

pnpm --version
# Expected: 8.x.x or higher

Check PostgreSQL

psql --version
# Expected: psql (PostgreSQL) 14.x or higher

Check Docker (optional)

docker --version
# Expected: Docker version 24.x.x or higher

docker compose version
# Expected: Docker Compose version v2.20.x or higher

Next Steps

Once requirements are met:

  1. Installation Guide — Set up Cluster
  2. Azure AD Setup — Configure authentication