Skip to main content

System Requirements

Before installing SnapCart, make sure your environment meets the following requirements.

Server requirements

ComponentMinimumRecommended
Java1721 LTS
MySQL8.08.0+
Node.js18.x20.x LTS
RAM2 GB4 GB+
Disk10 GB20 GB+
OSLinux / macOS / WindowsUbuntu 22.04 LTS

Software dependencies

Backend

  • Java 17+
  • Maven 3.9+
  • MySQL 8.0+

Frontend

  • Node.js 18+
  • npm 9+

Optional (for Docker deployment)

  • Docker 24+
  • Docker Compose 2.x

Port requirements

ServiceDefault Port
Spring Boot API8080
Frontend Dev Server5173
MySQL3306

Storage

SnapCart supports two storage backends:

ModeDescription
LocalFiles stored on the server filesystem under /storage/
AWS S3Files stored in an S3-compatible bucket (recommended for production)

Email

An SMTP server is required for:

  • Email verification on signup
  • Password reset OTPs
  • Order confirmation emails
  • Custom notification broadcasts

Supported providers: Gmail, SendGrid, Mailgun, AWS SES, or any SMTP-compatible service.

Configure SMTP credentials in Settings → Email after installation. See Notifications for setup instructions.


Development machine setup

For local development (running both backend and frontend on the same machine):

macOS / Linux

# Install Java 21 via SDKMAN
curl -s "https://get.sdkman.io" | bash
sdk install java 21.0.3-graal

# Install Node.js 20 via nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20
nvm use 20

# Install Maven
brew install maven # macOS
sudo apt install maven # Ubuntu

# Install MySQL 8
brew install mysql # macOS
sudo apt install mysql-server # Ubuntu

Windows

  1. Download Java 21 JDK from adoptium.net and install.
  2. Download Node.js 20 LTS from nodejs.org and install.
  3. Download Maven from maven.apache.org and add to PATH.
  4. Download MySQL 8 from dev.mysql.com and install.

Verifying your environment

Run these commands to confirm all tools are installed correctly:

java -version # should show 17.x or higher
mvn -version # should show 3.9.x or higher
node -v # should show v18.x or v20.x
npm -v # should show 9.x or higher
mysql --version # should show 8.0.x or higher

If any command returns "not found", revisit the installation step for that tool before proceeding to the Installation Guide.


Network requirements

DirectionProtocolDescription
Browser → Frontend (5173)HTTPStorefront and admin panel access
Browser → Backend (8080)HTTPDirect API access (development)
Backend → MySQL (3306)TCPDatabase connection
Backend → SMTP serverTCP 587/465Outbound email delivery
Backend → Payment gatewaysHTTPS 443PayPal, Razorpay, PayTM callbacks

In production, the browser communicates only with the reverse proxy (Nginx on port 80/443). All backend and database ports are internal.


Hardware requirements by deployment size

Store sizeOrders/monthRAMCPUStorage
Small (dev/starter)< 5002 GB2 vCPU20 GB
Medium500–5,0004 GB2–4 vCPU40 GB
Large5,000–50,0008 GB4–8 vCPU100 GB
Enterprise50,000+16 GB+8+ vCPUS3 + CDN

For large stores, consider separating the backend and database onto different servers and using S3 for file storage.