4.4 KiB
Conductor
A web-based, drag-and-drop UI builder for creating simple frontend applications backed by REST API endpoints.
Designed for IBM Concert Workflows / Rapid Infrastructure Automation, but backend-agnostic — any system that exposes HTTP/REST endpoints can be used as an integration target.
Overview
- Visual Editor — drag-and-drop canvas for placing and configuring UI components
- JSON Editor — direct access to the canonical project definition
- Preview Mode — run the application as an end user
- REST Proxy — server-side proxy for API calls; secrets never reach the browser
- Backend-agnostic REST integration — build and run REST-backed interfaces without an AI dependency
Repository Structure
conductor/
├── frontend/ # React + TypeScript UI
│ ├── public/
│ └── src/
├── backend/ # Node.js + Express + TypeScript API
│ └── src/
├── docs/ # Project documentation
│ ├── REQUIREMENTS.md
│ ├── ARCHITECTURE.md
│ ├── NICE-TO-HAVE.md
│ └── BUILD_AND_TEST_PLAN.md
├── examples/
│ └── project-definitions/
├── docker-compose.yml
└── README.md
Local Development
Prerequisites
- Node.js 20+
- npm 10+
Frontend
cd frontend
npm install
npm start
# Runs on http://localhost:3000
Backend
cd backend
npm install
npm run dev
# Runs on http://localhost:4000
The frontend development server proxies /api/* requests to http://localhost:4000.
Development Docker
docker compose up --build
# Frontend: http://localhost:3000
# Backend: http://localhost:4000
Production installation
Conductor's production distribution is one non-root container serving the compiled frontend, published application routes, and backend API on port 8080. SQLite data is stored in a persistent volume. The development stack above remains separate.
curl -O https://gitea.skeletonworks.online/vwiebe/conductor/raw/tag/v0.1.0/compose.production.yml
curl -o .env https://gitea.skeletonworks.online/vwiebe/conductor/raw/tag/v0.1.0/.env.production.example
# Replace both placeholder keys with independent values from:
openssl rand -hex 32
docker compose --env-file .env -f compose.production.yml pull
docker compose --env-file .env -f compose.production.yml up -d
Open http://localhost:8080 and create the first administrator in the browser. There are no default credentials.
For source builds, reverse proxies, upgrades, backups, restores, and SkeletonWorks installation, see docs/INSTALL.md and docs/OPERATIONS.md.
Documentation
| Document | Description |
|---|---|
| ROADMAP.md | Unified v0.1.0 work plan grouped by function and slice |
| MVP_SCOPE.md | Approved v0.1.0 release boundary and acceptance workflows |
| TESTING.md | Detailed manual test workflows and acceptance records |
| docs/REQUIREMENTS.md | Full product requirements |
| docs/MVP_TRACEABILITY.md | v0.1.0 requirements mapped to slices and validation evidence |
| docs/ARCHITECTURE.md | Technical architecture |
| docs/NICE-TO-HAVE.md | Future enhancements |
| docs/BUILD_AND_TEST_PLAN.md | Incremental build and test plan |
| docs/INSTALL.md | Public source/container and reverse-proxy installation |
| docs/OPERATIONS.md | Production configuration, backup, restore, upgrade, and rollback |
| docs/RELEASE.md | Image tagging, release construction, and publication |
| docs/USER_GUIDE.md | Admin/user authoring, runtime, and publishing workflows |
| docs/DEVELOPER_GUIDE.md | Architecture, invariants, tests, and contribution workflow |
| docs/TROUBLESHOOTING.md | Production and application troubleshooting |
| docs/KNOWN_LIMITATIONS.md | Explicit v0.1.0 limitations and deferred capabilities |
Stack
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript 5 |
| Backend | Node.js 20, Express 4, TypeScript 5 |
| Database | SQLite (MVP) |
| Deployment | Single production container, Docker Compose, Caddy/NGINX reverse proxy |