Node.js Environment
Required Version
Node.js v20+ is required, with v22 recommended for production deployments.
package.json:
Verify Your Installation
Installing Node.js
- Ubuntu/Debian
- macOS
- Windows
PostgreSQL Database
Required Version
PostgreSQL 12+ is required. Sunschool is tested with PostgreSQL 14 and 15.
- JSONB columns for complex data (lesson specs, learner profiles)
- Array types for concept tags
- Drizzle ORM for migrations and queries
- WebSocket connections (Neon serverless compatible)
Database Features Used
From the schema (shared/schema.ts):
Installation Options
- Neon Serverless (Recommended)
- Local PostgreSQL
- Docker PostgreSQL
Package Manager
npm
Sunschool uses npm as the package manager. Minimum version 8.x required.
package.json with all dependencies. Key packages:
System Resources
Minimum Specifications
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2+ vCPUs |
| RAM | 512 MB | 2 GB |
| Storage | 1 GB | 10 GB+ |
| Network | 10 Mbps | 100+ Mbps |
Memory Considerations
- Node.js process: 200-400 MB baseline
- PostgreSQL: 128-256 MB minimum
- AI processing: Temporary spikes during lesson generation
- Concurrent users: +50MB per active session
Storage Breakdown
Network Requirements
Ports
Default port is 5000 (configurable via
PORT environment variable).Firewall Rules
Incoming:- Port 5000 (HTTP) - from reverse proxy or public
- Port 5432 (PostgreSQL) - only if database is remote
- Port 443 (HTTPS) - for AI provider APIs:
api.openrouter.aiapi.perplexity.aiarchive.opentensor.ai(Bittensor, optional)
Operating System
Supported Platforms
- Linux (Recommended)
- macOS
- Windows
- Ubuntu 20.04+ LTS
- Debian 11+
- CentOS 8+
- Amazon Linux 2
Additional Tools (Optional)
Development Tools
Production Tools
PM2 Process Manager
PM2 Process Manager
For process management and auto-restart:
Nginx Reverse Proxy
Nginx Reverse Proxy
For SSL termination and load balancing:
Verification Checklist
Before proceeding to installation:Ready to proceed? Continue to Environment Configuration