Skip to content

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-only is used — no merge/rebase is performed.
  • docker compose down -v is 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