conductor/README.md
Victor Wiebe ade2b10033
Some checks failed
Release production image / production-image (push) Has been cancelled
Add production packaging and operations
2026-08-07 16:48:40 -04:00

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