Desktop web client for QuantDinger, an open-source AI Trading OS.
Research, strategy design, backtesting, automation, portfolio operations, and account workflows in one browser workspace.
This repository contains the Vue desktop web frontend for QuantDinger, a product of Open Byte Inc.
QuantDinger is better described as an AI Trading OS than a narrow "quant platform": it combines AI-assisted market analysis, strategy creation, backtesting, simulated trading, live execution workflows, exchange API management, billing, and operations tools. This repo is the main browser interface for those workflows.
For backend APIs, Docker Compose deployment, database services, and project-level documentation, start from the main repository:
- AI market analysis, asset research, and assistant-style decision support
- Strategy and indicator authoring with chart inspection and code editing
- Backtest center with result review, trade records, and equity curves
- Trading assistant, trading bot, quick trade, and portfolio views
- Exchange account binding and API key management UI
- Membership, credits, billing, admin, OAuth, settings, and profile pages
- Multilingual UI, theme switching, and responsive layouts
Most users should deploy the full QuantDinger stack from the main repo. You do not need Node.js or this source tree for production if you use the published Docker images.
Linux or macOS:
curl -fsSL https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/install.sh | bashWindows PowerShell:
irm https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/install.ps1 | iexThe main stack serves the desktop web app at:
http://localhost:8888
curl -O https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/docker-compose.ghcr.yml
curl -o backend.env https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/backend_api_python/env.example
# edit backend.env before public deployment
docker compose -f docker-compose.ghcr.yml pull
docker compose -f docker-compose.ghcr.yml up -dThe frontend image used by the stack is:
ghcr.io/openbyteinc/quantdinger-frontend
Common tags are latest, semantic versions such as 4.0.4, and major/minor tags such as 4.0. Pin a release in the main repo .env with IMAGE_TAG, or override only this service with FRONTEND_TAG.
Use this when the backend is already running somewhere else:
docker run -d --name quantdinger-frontend \
-p 8888:80 \
-e BACKEND_URL=http://host.docker.internal:5000 \
ghcr.io/openbyteinc/quantdinger-frontend:latestBACKEND_URL controls the Nginx /api/ proxy inside the container. In the main Compose stack it normally stays as http://backend:5000.
| Tool | Version |
|---|---|
| Node.js | Node 22 LTS recommended. This repo can run on Node 18+, but Node 22 also matches the mobile repo's newer Vite requirement. |
| pnpm | 10.x, enabled through Corepack. The version is pinned in package.json. |
| Backend | QuantDinger API reachable at http://127.0.0.1:5000, unless you override the dev proxy. |
Use pnpm install with the committed pnpm-lock.yaml. Avoid committing package-lock.json.
git clone https://github.com/OpenByteInc/QuantDinger-Vue.git
cd QuantDinger-Vue
corepack enable
pnpm install
pnpm run serveOpen:
http://localhost:8000
Start the backend first. You can run it from the main repo through Docker Compose, or run the Python API locally according to the backend README.
Local /api/* requests are proxied by vite.config.js.
Default target:
http://127.0.0.1:5000
Override it when needed:
VITE_DEV_PROXY_TARGET=http://127.0.0.1:5000 pnpm run serveIf DevTools shows http://localhost:8000/api/..., that is normal. The browser calls Vite on port 8000, then Vite forwards the request to the backend.
pnpm run build
pnpm run previewpnpm run build writes production assets to dist/.
To build a local Docker image:
docker build -t quantdinger-frontend:local .
docker run --rm -p 8888:80 -e BACKEND_URL=http://host.docker.internal:5000 quantdinger-frontend:localQuantDinger-Vue/
├── public/ # Static assets and HTML shell
├── deploy/ # Nginx templates for Docker production proxy
├── src/
│ ├── api/ # API request modules
│ ├── assets/ # Images, icons, and styles
│ ├── components/ # Shared UI components
│ ├── config/ # App and router configuration
│ ├── core/ # Bootstrapping, auth, and app setup
│ ├── layouts/ # Page layouts
│ ├── locales/ # i18n resources
│ ├── router/ # Vue Router configuration
│ ├── store/ # Vuex state
│ ├── utils/ # Helpers, request interceptors, crypto utilities
│ └── views/ # Page-level modules
├── vite.config.js # Vite build, version stamping, and dev proxy
├── package.json
├── pnpm-lock.yaml
├── Dockerfile
└── LICENSE
| Layer | Technology |
|---|---|
| Framework | Vue 2.7, Vue Router, Vuex |
| UI | Ant Design Vue |
| Charts | KLineCharts, ECharts |
| Editor | CodeMirror 5 |
| Networking | Axios |
| i18n | vue-i18n |
| Build | Vite 5, pnpm |
| Styling | Less and scoped CSS |
| Symptom | What to check |
|---|---|
Docker pull times out on registry-1.docker.io |
Configure Docker Desktop proxy and verify the proxy port. The main repo has docs/INSTALL_TROUBLESHOOTING.md with bilingual steps. |
Browser returns UNAUTHORIZED for a Docker registry manifest URL |
That usually means the registry is reachable. Docker obtains an auth token during docker pull; direct browser access is not the same flow. |
| Login or API calls fail in local dev | Confirm the backend is running on http://127.0.0.1:5000, or set VITE_DEV_PROXY_TARGET. |
| Container starts but API calls fail | Check BACKEND_URL and whether the frontend container can reach that address from inside Docker. |
| Repository | Role |
|---|---|
| QuantDinger | Backend API, Docker Compose, database services, deployment docs |
| QuantDinger-Vue | This repository: desktop web frontend source |
| QuantDinger-Mobile | Mobile and H5 frontend |
This repository is released under the QuantDinger Frontend Source-Available License v1.0. See LICENSE for the full text.
In short: non-commercial and qualified non-profit use is allowed under the license conditions; commercial use requires a separate written agreement with Open Byte Inc. Preserve copyright notices, the license file, and required QuantDinger attribution.
- Website: quantdinger.com
- Telegram: t.me/worldinbroker
- Email: support@quantdinger.com