conductor/README.md

125 lines
4.8 KiB
Markdown

# 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
```bash
cd frontend
npm install
npm start
# Runs on http://localhost:3000
```
### Backend
```bash
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
```bash
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.
```bash
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](docs/INSTALL.md) from start to finish. For backup, restore, upgrade, and rollback, see [docs/OPERATIONS.md](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](docs/INSTALL.md) | Public source/container and reverse-proxy installation |
| [docs/OPERATIONS.md](docs/OPERATIONS.md) | Production configuration, backup, restore, upgrade, and rollback |
| [docs/RELEASE_NOTES_v1.1.0.md](docs/RELEASE_NOTES_v1.1.0.md) | v1.1.0 capabilities, compatibility, limitations, and artifact identities |
| [docs/SKELETONWORKS_INSTALL.md](docs/SKELETONWORKS_INSTALL.md) | Automated Skeleton Works fresh installation, persistence and customer handover |
| [docs/CONDUCTOR_UPGRADE.md](docs/CONDUCTOR_UPGRADE.md) | Existing-VM upgrade, legacy app migration, retry and image/data recovery |
| [docs/TUTORIAL.md](docs/TUTORIAL.md) | Guided first project covering authoring, REST actions, bindings, Preview, saving, and publishing |
| [docs/USER_GUIDE.md](docs/USER_GUIDE.md) | Project authoring and published-application use |
| [docs/ADMIN_GUIDE.md](docs/ADMIN_GUIDE.md) | Users, sessions, credentials, publishing, and execution history |
| [docs/SCHEMA.md](docs/SCHEMA.md) | Canonical project JSON format, bindings, and validation |
| [docs/TROUBLESHOOTING.md](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](docs/APP_PACKAGES.md), [release notes](docs/RELEASE_NOTES_v1.1.0.md), and the [SLICE11 log](SLICE11.md). [SLICE12](SLICE12.md) supplies fresh setup and matched recovery scripts; [SLICE13](SLICE13.md) supplies the reusable existing-VM updater and a [complete upgrade/recovery guide](docs/CONDUCTOR_UPGRADE.md).