darpan CLI at the top of this page handles all of it.
The local stack runs:
Before you start
Install these first:
You also need GitHub access to the
drpn-ai Darpan repositories. If a clone command asks for authentication or returns Repository not found, confirm that your GitHub account has access before changing any commands.
Folder layout
This guide creates this layout:darpan-backend is a Moqui framework checkout. The Darpan backend code lives inside darpan-backend/runtime/component/**.
Moqui 4 uses the embedded Bitronix transaction manager. The old
moqui-atomikos component is retired and is no longer cloned or built.Set the JDK 21 runtime flags
The backend JVM needs a set of--add-opens flags (the canonical Spark 3.5 / JDK 21 list) plus a couple of agent and native-access flags. Spark SQL fails at startup without them. Export them in the shell you will use for every backend command (load, run, and npm run dev:stack):
Clone the backend
Create a parent folder and clone Moqui framework asdarpan-backend:
Clone the backend components
Clone the required runtime components intoruntime/component:
moqui-sftp is needed by the Darpan component build and test classpath. The four Darpan components provide the core backend, Shopify integration, NetSuite integration, and HotWax integration.
Load local setup data
Fromdarpan-backend, load the framework and Darpan setup data:
load runs with types=all, so it loads every data file in dependency-safe order, including the framework seed data and Darpan’s custom darpan-seed-initial (type definitions) and darpan-seed (setup records) files. The first load can take several minutes because Gradle also resolves backend dependencies and builds the components.
./gradlew loadDarpanUpgradeData is a different command. It loads only the current release’s upgrade-data.xml for existing environments and is not a substitute for ./gradlew load on a fresh setup.Clone the UI
Go back to the parent folder and clone the Darpan UI:.env file. When no API URL is configured, Vite proxies /rpc/json to http://localhost:8080.
Start the stack
Start backend and frontend together fromdarpan-ui:
If your backend folder is somewhere else, pass the path explicitly:
8080 or 5173 is already in use, the helper tries to stop the existing listener before starting the new stack.
Sign in locally
Open the UI:http://localhost:5173/login and sign in with the same username and password.
Do not use local development credentials in hosted or shared environments.
Confirm the setup
After sign-in, confirm these checks:- The Darpan UI opens at
http://localhost:5173. - The backend login page opens at
http://localhost:8080/Login. - The app can sign in without a
No active authenticated sessionloop. - Ask Darpan opens with
Cmd/Ctrl+Kor the floating Ask Darpan button. - Open User Settings loads from the local backend.
- Open Runs Settings or Create Reconciliation Flow loads without API errors.
Daily startup
After the first setup, the normal development startup is:./gradlew load every day. Rerun it when seed data changes, the local database is missing, or a backend change explicitly requires a reload. Keep JAVA_TOOL_OPTIONS exported in the shell each session.