Skip to content

Prelude, Quickstart & Docs updates + docker version #'s #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Overture Docs is a centralized documentation site built with [Docusaurus](https://docusaurus.io/) that aggregates and renders Markdown content from `/docs` directories across our GitHub repositories. It transforms distributed documentation into a cohesive and easy to navigate knowledge base.

![Overture Docs](./preview.png 'Docs for developers and informaticians')
![Overture Docs](./preview.png "Docs for developers and informaticians")

> [!NOTE]
> This repository is documented in detail on the Overture Docs site linked here (to be linked once live)
Expand Down Expand Up @@ -39,13 +39,12 @@ npm start

- **Docusaurus**: We use Docusaurus to render the site, providing a sleek and navigable interface for our documentation.

- **Markdown Files**: All documentation content is stored as markdown files in the `/website/docs` directory.
- **Markdown Files**: All documentation content is stored as markdown files in the `/website/docs` directory.

- **Git Submodules**: We use Git submodules to store and track all our GitHub repositories within one main repository. All submodules can be found in the `submodule` folder.

- **Symlinks**: Only the necessary documentation files are symlinked from the submodules in the `submodule` folder to the `/website/docs` directory. This allows us to import only the required markdown content that Docusaurus needs.


## Repository structure

```
Expand Down Expand Up @@ -91,8 +90,7 @@ npm start

- **Robust Error Handling**: Docusaurus has excellent error catching, particularly for broken and missing links, reducing the need for manual testing.

![Pro Tip](./website/docs/03-other-software/images/proTip.png 'Use Overture Docs repo to search across all Overture repos')
![Pro Tip](./website/docs/03-other-software/images/proTip.png "Use Overture Docs repo to search across all Overture repos")

> [!TIP]
> The Overture Docs repo contains everything, therefore finding & tracking links and content across all our repos has never been easier.

File renamed without changes.
2 changes: 1 addition & 1 deletion submodules/arranger
Submodule arranger updated 322 files
2 changes: 1 addition & 1 deletion submodules/lyric
Submodule lyric updated 107 files
2 changes: 1 addition & 1 deletion submodules/maestro
Submodule maestro updated 1 files
+53 −50 docs/setup.md
2 changes: 1 addition & 1 deletion submodules/song
Submodule song updated 109 files
118 changes: 118 additions & 0 deletions website/docs/03-other-software/01-prelude.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Prelude

**Prelude** is a toolkit designed for the **planning and development stages** of Overture data platform implementation. It helps teams incrementally build and validate platform requirements, enabling them to:

- Systematically verify requirements
- Minimize technical overhead
- Build a foundation for production deployment

:::important
Prelude is **not intended for production environments**. It serves as a preparatory tool to ensure successful production deployments. We will be actively improving resources to support teams transitioning from Prelude to production.
:::

We welcome feedback and suggestions—please share them via our [ideas forum](https://github.com/overture-stack/docs/discussions/categories/ideas).

## Development Phases

Prelude is structured into four incremental phases:

![Development Phases](./images/DevelopmentPhases.png "Prelude Development Phases")

| **Phase** | **Focus** | **Components/Tools** |
| --------------------------------------- | --------------------------------------------------- | ----------------------------------------------- |
| **Phase 0:** Pre-Deployment Check | Making sure you have all the required prerequisites | Docker, appropriate resources for docker & Node |
| **Phase 1:** Data Exploration & Theming | Data visualization in the portal | Elasticsearch, Arranger, Stage |
| **Phase 2:** Tabular Data Management | Backend data storage and validation | Lyric, Lectern, Postgres, MongoDB |
| **Phase 3:** File Management | File storage and metadata tracking | Song, Score, Object Storage |
| **_Phase 4:_** Identity & Access | Security and user management | Keycloak integration |

**Phase 4** is not included in Prelude v1 and will be included in a future release.

## Supplemental Tools

### Composer

Transforms your data (CSV or JSON) into base Overture configurations including Elasticsearch Mappings, Arranger UI Configs, Lectern Dictionary and Schema, Song Schema. This utility greatly reduces tedious manual configurations.

Depending on the command Composer can input CSV or JSON file(s) that represent your data and output the following:

| Output | Purpose |
| --------------------------------- | -------------------------------------------------------------------- |
| **Elasticsearch Mappings** | Defines the structure and indexing settings for your data |
| **Arranger UI Configs** | Configures the user interface for data exploration and visualization |
| **Lectern Dictionary and Schema** | Creates data dictionaries and schemas for tabular data |
| **Song Schema** | Generates schema configurations for file metadata |

### Conductor

Conductor runs the automated deployments from the `/apps/conductor/scripts` directory. It can also be run as a command line client made to streamline interactions with various Overture API endpoints.

As summary of command line client interactions is provided in the table below:

| Feature | Description |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **CSV to Elasticsearch ETL** | Validate, transform and load CSV data to a specified elasticsearch index. |
| **Configuration Management** | Submit dictionaries to Lectern, Register Lectern dictionaries with Lyric, Update Song Schema and study Ids |
| **Data Management** | Upload tabular data to Lyric, Upload and publish file data and metadata. |

### Additional Information

- Relevant API swagger docs can be found from the API dropdown. These swagger APIs are only available when running phases that include the respective service

## Getting Started

_If you’re reading from the Prelude documentation page, this section may be redundant._

### 1. Clone the repository

```sh
git clone https://github.com/overture-stack/prelude.git
cd conductor
```

### 2. Pre-deployment Check

Run a pre-deployment check:

```sh
make Phase0
```

**Requirements:**

- **Docker Desktop 4.39.0+** with:
- 8-core CPU minimum
- 8 GB memory
- 2 GB swap
- 64 GB virtual disk
- **Node.js 18+ and npm 9+**

### 3. Build the local Stage UI image

```sh
cd apps/stage
docker build --platform linux/arm64 -t stageimage:1.0 .
```

### 4. Deploy Phase 1

Run from the root directory:

```sh
make phase1
```

### 5. Access the Portal

Once running, access the portal at: [http://localhost:3000](http://localhost:3000).

All Prelude documentation is available in the **Documentation** tab here or on our [documentation site](https://docs.overture.bio/other-software/prelude).

## Support

For assistance, reach out via our [community support channels](https://docs.overture.bio/community/support):

- **Public support:** Use GitHub issues
- **Private inquiries:** Contact us via OICR Slack or [[email protected]](mailto:[email protected])

We’re actively working on resources to help teams transition to production. If you have suggestions, post them on our [GitHub discussion forum](https://github.com/overture-stack/docs/discussions/categories/ideas).
96 changes: 0 additions & 96 deletions website/docs/03-other-software/02-Conductor.mdx

This file was deleted.

94 changes: 94 additions & 0 deletions website/docs/03-other-software/02-quickstart.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Quickstart

Our quickstart platform is a Docker Compose setup that simplifies the process of spinning up Overture development and deployment configurations using Docker profiles and extensible scripting events.

## System Architectures

The following diagrams illustrate the system architecture for each deployment:

<Tabs>
<TabItem value="platform" label="Platform" default>
![Platform](./images/platform.svg 'Overture Platform')
</TabItem>
<TabItem value="songDev" label="SongDev">
![Song Dev](./images/songDev.svg 'Song Dev Environment')
</TabItem>
<TabItem value="scoreDev" label="ScoreDev">
![Score Dev](./images/scoreDev.svg 'Score Dev Environment')
</TabItem>
<TabItem value="maestroDev" label="MaestroDev">
![Maestro Dev](./images/maestroDev.svg 'Maestro Dev Environment')
</TabItem>
<TabItem value="arrangerDev" label="ArrangerDev">
![Arranger Dev](./images/arrangerDev.svg 'Arranger Dev Environment')
</TabItem>
<TabItem value="stageDev" label="StageDev">
![Stage Dev](./images/stageDev.svg 'Stage Dev Environment')
</TabItem>
</Tabs>

All components are automatically deployed and configured, with exception to the services highlighted in pink. These services in the deployment context require manual setup and configuration for local development, instructions are provided within the logs following deployment.

## Getting Started

**1. Clone the repo branch**

```
git clone -b quickstart https://github.com/overture-stack/prelude.git && cd prelude
```

**2. Run one of the following commands to spin up different environments:**

| Environment | Unix/macOS | Windows |
| ----------------- | ------------------ | ------------------------ |
| Overture Platform | `make platform` | `./make.bat platform` |
| Stage Dev | `make stageDev` | `./make.bat stageDev` |
| Arranger Dev | `make arrangerDev` | `./make.bat arrangerDev` |
| Maestro Dev | `make maestroDev` | `./make.bat maestroDev` |
| Song Dev | `make songDev` | `./make.bat songDev` |
| Score Dev | `make scoreDev` | `./make.bat scoreDev` |

Each command spins up complementary services for the specified development environment.

## Repository Structure

```
.
├── quickstartScripts/
│ ├── deployments
│ └── services
├── configurationFiles/
│ ├── arrangerConfigs
│ ├── elasticsearchConfigs
│ └── keycloakConfigs
├── guideMaterials
├── persistentStorage/
│ ├── data-keycloak-db
│ ├── data-minio
│ └── data-song-db
├── Makefile
└── ./make.bat
```

- **`quickstartScripts/`** Contains scripts for orchestrating the deployment process.

- `deployments/`: Scripts that execute service scripts sequentially based on the deployment configuration. These also include custom post-deployment logs with essential next steps for the deployment scenario.
- `services/`: Modular scripts for individual service setup tasks. Each file is named according to its purpose, with inline comments documenting the code.

- **`configurationFiles/`** Stores all required configuration files, including:

- `arrangerConfigs/`: Configuration files specific to Arranger.
- `elasticsearchConfigs/`: Configuration files for Elasticsearch, encompassing indexing mappings and documents for seeding data.
- `keycloakConfigs/`: Configuration files for Keycloak, including preconfigured realm files and Overture API key provider details.

- **`guideMaterials/`** Supplementary folders and files for use with the [Overture guides](https://www.overture.bio/documentation/guides/).

- **`persistentStorage/`** Directory for storing persistent data during container startups and restarts. These folders come pre-loaded with mock data.

- `data-keycloak-db/`: Persistent local storage for the Keycloak database.
- `data-minio/`: Persistent local storage for MinIO object storage.
- `data-song-db/`: Persistent local storage for the Song database.

- **`Makefile`** Contains make commands for Unix-based systems (macOS, Linux) to streamline Docker operations.

- **`./make.bat`** Windows equivalent of the Makefile, featuring batch commands tailored for Windows systems.
Loading