# System Requirements
Before installing CloudPOS, ensure your system meets the following requirements.
# Server Specifications
# Minimum Requirements (Development)
- CPU: 2 cores
- RAM: 4 GB
- Storage: 10 GB free space
- OS: Windows 10+, macOS 10.15+, or Linux (Ubuntu 20.04+)
# Recommended Requirements (Production)
- CPU: 4+ cores
- RAM: 8+ GB
- Storage: 50+ GB SSD
- OS: Linux (Ubuntu 22.04 LTS or similar)
# Required Software
# 1. Node.js
- Version: Node.js 18 or higher
- Check version:
node --version - Download: https://nodejs.org/
Installation:
# Windows (using installer)
# Download from nodejs.org and run installer
# macOS (using Homebrew)
brew install node@18
# Linux (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. npm or yarn
- npm comes with Node.js (check:
npm --version) - yarn (optional):
npm install -g yarn
# 3. MySQL Database
- Version: MySQL 8.0 or higher
- Alternative: MariaDB 10.5+
Installation:
# Windows (using Laragon/XAMPP/WAMP)
# Download Laragon from https://laragon.org/
# macOS (using Homebrew)
brew install mysql@8.0
brew services start mysql@8.0
# Linux (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
Verify MySQL is running:
# Windows (Laragon)
# Check Laragon dashboard
# macOS/Linux
mysql --version
# Or check service status
sudo systemctl status mysql # Linux
brew services list # macOS
# 4. Git (Optional)
- Version: Any recent version
- Download: https://git-scm.com/
# Required Ports
Make sure these ports are available:
| Port | Service | Description |
|---|---|---|
| 3000 | API Server | Backend API (NestJS) |
| 5173 | Client/Admin | Frontend (Vite dev server) |
| 3306 | MySQL | Database (default) |
Check if ports are in use:
# Windows
netstat -ano | findstr :3000
netstat -ano | findstr :5173
netstat -ano | findstr :3306
# macOS/Linux
lsof -i :3000
lsof -i :5173
lsof -i :3306
# Domain Requirements (Production)
For production deployment, you'll need:
# Option 1: Single Domain
- Domain:
yourdomain.com - API:
https://yourdomain.com/api - Client:
https://yourdomain.com(served by API server) - Admin:
https://yourdomain.com/admin
# Option 2: Subdomain Setup (Recommended)
- API:
https://api.yourdomain.com - Client:
https://app.yourdomain.com - Admin:
https://admin.yourdomain.com
# SSL Certificate
- Required: Yes (HTTPS)
- Options:
- Let's Encrypt (free)
- Cloudflare SSL
- Commercial SSL certificate
# Optional Services
# Redis (Optional - for caching)
- Version: Redis 6.0+
- Purpose: Session storage, caching (not required for basic setup)
# PM2 (Production Process Manager)
- Installation:
npm install -g pm2 - Purpose: Keep Node.js processes running in production
# Nginx (Production Web Server)
- Version: Nginx 1.18+
- Purpose: Reverse proxy, SSL termination, static file serving
# Development Tools (Optional)
- VS Code or any code editor
- Postman or Insomnia for API testing
- MySQL Workbench or phpMyAdmin for database management
# Browser Requirements
# Supported Browsers
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
# Quick Check Script
Run these commands to verify your setup:
# Check Node.js
node --version
# Should show: v18.x.x or higher
# Check npm
npm --version
# Should show: 9.x.x or higher
# Check MySQL
mysql --version
# Should show: mysql Ver 8.0.x or higher
# Check Git (optional)
git --version
# Common Issues
# Node.js Version Too Old
Error: Error: Node.js version X is not supported
Solution: Update Node.js to version 18 or higher
# MySQL Not Running
Error: ECONNREFUSED or Can't connect to MySQL server
Solution:
- Windows (Laragon): Start MySQL from Laragon dashboard
- macOS:
brew services start mysql@8.0 - Linux:
sudo systemctl start mysql
# Port Already in Use
Error: Port 3000 is already in use
Solution:
- Find the process:
lsof -i :3000(macOS/Linux) ornetstat -ano | findstr :3000(Windows) - Kill the process or change the port in
.env
# Next Steps
Once all requirements are met:
- ✅ Node.js 18+ installed
- ✅ npm installed
- ✅ MySQL 8+ installed and running
- ✅ Ports 3000, 5173, 3306 available
Proceed to: Local Installation or Production Installation