123 lines
4.4 KiB
Markdown
123 lines
4.4 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/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). Fresh setup and the existing-VM upgrader remain in SLICE12 and SLICE13.
|