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.
The command below pulls the immutable public v1.1.0 production image. Do not substitute latest for a controlled installation.
docker pull gitea.skeletonworks.online/vwiebe/conductor:v1.1.0
The v1.1.0 production image supports Linux/AMD64. Anonymous source and image availability are mandatory publication checks. A complete internet-facing installation also requires persistent generated keys, the tagged Compose bundle, a data volume, and HTTPS.
Independent self-hosters should follow docs/INSTALL.md from start to finish. For backup, restore, upgrade, and rollback, see docs/OPERATIONS.md. Conductor never ships a default username or password.
Documentation
Start with the document for your role. Most people need only one guide; cross-links lead to the few procedures that require another.
| Document | Description |
|---|---|
| docs/INSTALL.md | Public source/container and reverse-proxy installation |
| docs/OPERATIONS.md | Production configuration, backup, restore, upgrade, and rollback |
| docs/RELEASE_NOTES_v1.1.0.md | v1.1.0 capabilities, compatibility, limitations, and artifact identities |
| docs/TUTORIAL.md | Guided first project covering authoring, REST actions, bindings, Preview, saving, and publishing |
| docs/USER_GUIDE.md | Project authoring and published-application use |
| docs/ADMIN_GUIDE.md | Users, sessions, credentials, publishing, and execution history |
| docs/SCHEMA.md | Canonical project JSON format, bindings, and validation |
| docs/TROUBLESHOOTING.md | Production and application troubleshooting |
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 |
Independent applications in v1.1.0
Conductor hosts trusted application packages from its persistent data volume. Installers add browser files and declared API routes without rebuilding the core image. Social Scheduler 0.5.0 uses this interface. See Application packages, release notes, and the SLICE11 log. Fresh setup and the existing-VM upgrader remain in SLICE12 and SLICE13.