Getting Started¶
Installation is a single command. Manual steps such as npm install,
npm run build, docker compose build, copying .env, or creating folders
are not required — the install script does all of it.
The script performs: OS and dependency detection → working directories →
.env generation (secrets are generated randomly) → image build → starting
services in dependency order → real healthcheck verification.
Docker – Linux¶
git clone https://github.com/iqvizyon-development/flex-erp.git ERP
cd ERP
chmod +x install.sh
./install.sh
Docker – Windows¶
git clone https://github.com/iqvizyon-development/flex-erp.git ERP
cd ERP
powershell -ExecutionPolicy Bypass -File .\install.ps1
If Docker Desktop is still starting, the script waits for it in a controlled way.
Native (without Docker) installation¶
./install.sh --mode native
Services are registered with systemd (iqvflex-backend,
iqvflex-frontend) and start automatically on reboot. Service
registration requires sudo.
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Mode native
Services are registered as a built-in Scheduled Task; no extra dependency (PM2, NSSM) is required. Administrator rights are needed.
Installation modes¶
| Mode | Linux | Windows |
|---|---|---|
| Auto (Docker if available) | ./install.sh |
.\install.ps1 |
| Docker | ./install.sh --mode docker |
.\install.ps1 -Mode docker |
| Native | ./install.sh --mode native |
.\install.ps1 -Mode native |
| Hardened production | ./install.sh --profile prod |
.\install.ps1 -DeployProfile prod |
--profile prod (docker-compose.prod.yml) never exposes the database and
backend ports externally, makes the backend root filesystem read-only, and
applies memory limits. nginx becomes the single entry point.
Access URL after installation: http://localhost:8080
Update¶
./update.sh # Linux
.\update.ps1 # Windows
Order: installation check → version log → configuration backup → git
fetch → git pull --ff-only → version/dependency comparison → rebuilding
the required services → restart → healthcheck.
- Update stops if there are uncommitted changes to tracked files.
- Only
git pull --ff-onlyis used — no merge/rebase is performed. docker compose down -vis never run → the database is preserved.
Uninstall¶
./uninstall.sh # Linux
.\uninstall.ps1 # Windows
Stops services, removes containers, deletes application images.
Preserved: MongoDB data, .env, backups/, source code.
For a full cleanup use --purge (and --purge-data to also remove the
database) — see the repository root README.md for details.
Developer setup¶
Production users do not need this section; the commands below are only needed for development.
# Frontend
cd dashboard
npm ci
npm run dev # dev server (http://localhost:5173)
npm run typecheck # tsc --noEmit
npm run lint
npm test # node:test
npm run build
# Backend
cd iqvflex/backend
npm ci
cp .env.example .env # adjust values for your environment
npm run dev # node --watch (http://localhost:3001)
npm test # node:test + smoke