Windows Setup Guide
Install Salon Management on Windows 10 or Windows 11
Prerequisites
- Windows 10 or Windows 11 (64-bit)
- Permission to install software (administrator when prompted)
- At least 4GB RAM (8GB recommended)
- Free disk space for Node, MySQL, and dependencies
- Internet access for installers
Step 1: Install Node.js
Download
Download the current LTS installer from https://nodejs.org (64-bit .msi).
Version
Use Node.js 18 or newer (LTS is recommended).
Run the installer
- Accept the license
- Keep the default path (for example
C:\Program Files\nodejs\) - Ensure Add to PATH is selected
- Complete the wizard
Verify
Open a new Command Prompt or PowerShell window and run:
node --version npm --version
If commands are not found, sign out and back in, or restart the PC so PATH updates apply.
Step 2: Install MySQL
Download
From MySQL Community Server, choose the Windows installer (MySQL Installer is convenient for Server + optional tools).
Compatibility
Use MySQL 8.0 or compatible. Note the root password you set during setup.
Install
- Typical choice: Developer Default or Server only
- Enable MySQL as a Windows Service and start it automatically
- Allow through Windows Firewall if the installer asks
Create the application database
Using MySQL Workbench or mysql.exe in Command Prompt (add MySQL bin to PATH or use full
path). Example:
CREATE DATABASE salon_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Optionally create a dedicated user (recommended) and grant access to that database only; use the same
credentials in server/.env as DB_USER and DB_PASSWORD.
Step 3: Salon Management (server)
The application is a single Express server with EJS views—no separate frontend build step is required for local development.
Open the server folder
cd "D:\path\to\pdma_envato_salon_management\server"
Use your real project path (drive letter and folder may differ).
Install packages
npm install
Environment file
Copy the example file and edit it:
copy .env-example .env notepad .env
Example server/.env
NODE_ENV=development PORT=3000 DB_HOST=127.0.0.1 DB_PORT=3306 DB_NAME=salon_management DB_USER=root DB_PASSWORD=your_mysql_password JWT_SECRET=change_me_to_a_long_random_string JWT_EXPIRES_IN=7d # Optional demo showcase — omit or false for persistent data # DEMO_SEED_CRON_ENABLED=false
Security
Use a strong JWT_SECRET in any shared or production environment. Do not commit
.env.
Migrate and seed
npm run db:migrate npm run db:seed
Start the application
npm run dev
By default the app listens on http://127.0.0.1:3000. Open /auth/login in your
browser (the home route redirects there).
Demo credentials (after seeding)
Password for all demo accounts: Admin@1234
- Admin:
admin@salon.com - Receptionist:
reception@salon.com - Staff:
staff@salon.com,staff02@salon.com,staff03@salon.com
Important
Change these passwords before any production deployment. If DEMO_SEED_CRON_ENABLED=true, demo
data may reset periodically—disable for persistent use.
Windows tips
- Ports: If 3000 is busy, change
PORTinserver/.envor stop the other program. See Troubleshooting → Port conflicts. - MySQL service:
services.msc→ ensure MySQL is Running. - Long paths: Keep the repo in a path without unusual permissions; avoid very long folder names if npm shows path errors.
- PowerShell execution policy: If scripts fail, you may need to adjust policy for your user scope—prefer project-local tooling over disabling security globally.
- Production on Windows Server: See Server Configuration for reverse proxy, HTTPS, and process management (PM2 or IIS as appropriate).
Troubleshooting
- Cannot connect to MySQL: Service running, correct
DB_USER/DB_PASSWORD, database created. - Page does not load: Confirm
npm run devis running and you use the URL with the correctPORT. - 401 on login: Seed completed; use demo emails and
Admin@1234; confirmJWT_SECRETis set.