Development
Use the dev script for normal local development. It runs the backend in Docker and the frontend locally with Vite.
Requirements
- Docker
- Docker Compose
- Node.js 20.19+
- Python 3.10+ for local test tooling
Start
bash
git clone https://github.com/karanhudia/borg-ui.git
cd borg-ui
./scripts/dev.shThe script starts:
- backend container:
borg-web-ui-dev - frontend dev server:
http://localhost:7879 - backend API:
http://localhost:8083by default
Set DEV_PORT in .env if 8083 is already used.
Production-Style Local Run
bash
docker compose up -d --buildDefault app URL:
text
http://localhost:8081Set PORT in .env to change it.
Useful Files
text
app/ FastAPI backend
frontend/ React frontend
scripts/dev.sh full dev environment
docker-compose.yml production-style compose
docker-compose.dev.yml dev backend compose
docs/ VitePress docsFrontend Commands
bash
cd frontend
npm install
npm run dev
npm run typecheck
npm run lint
npm run format:check
npm run buildBackend Commands
Run from the repository root:
bash
ruff check app tests
ruff format --check app tests
pytestDocs Commands
bash
cd docs
npm ci
npm run dev
npm run buildAPI Docs
With the app running:
text
http://localhost:8081/api/docsIn dev mode, use the DEV_PORT backend URL.
Container Shell
bash
docker exec -it borg-web-ui-dev bashCheck Borg binaries:
bash
borg --version
borg2 --versionPre-Commit Hooks
Install hooks if you use them locally:
bash
pre-commit install --hook-type pre-commit --hook-type pre-pushMake sure frontend dependencies are installed first, otherwise pre-push hooks that call prettier, tsc, or eslint will fail.
Smoke Tests
Production-critical flows are covered by smoke tests against a running app.
Example:
bash
python3 tests/smoke/run_core_smoke.py --url http://localhost:8081See Testing.

