Skip to content
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

WIP - Camunda Hackathon 2025 - Download Hub #4913

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft
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
92 changes: 92 additions & 0 deletions docs/download-hub/helm-chart.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"11.1.1": [
{
"system": "linux-x86_64",
"download": "https://github.com/camunda/camunda/releases/download/8.6.7/camunda8-run-8.6.7-linux-x86_64.tar.gz",
"links": [
{
"description": "Release Notes",
"link": "https://github.com/camunda/camunda-platform-helm/releases/tag/camunda-platform-11.1.1"
},
{
"description": "Values",
"link": "https://artifacthub.io/packages/helm/camunda/camunda-platform/11.1.1#parameters"
}
]
},
{
"system": "windows-x86_64",
"download": "https://github.com/camunda/camunda/releases/download/8.6.7/camunda8-run-8.6.7-windows-x86_64.tar.gz",
"links": [
{
"description": "Release Notes",
"link": "https://github.com/camunda/camunda-platform-helm/releases/tag/camunda-platform-11.1.1"
},
{
"description": "Values",
"link": "https://artifacthub.io/packages/helm/camunda/camunda-platform/11.1.1#parameters"
}
]
}
],
"11.1.0": [
{
"system": "linux-x86_64",
"download": "https://github.com/camunda/camunda/releases/download/8.6.7/camunda8-run-8.6.7-linux-x86_64.tar.gz",
"links": [
{
"description": "Release Notes",
"link": "https://github.com/camunda/camunda-platform-helm/releases/tag/camunda-platform-11.1.1"
},
{
"description": "Values",
"link": "https://artifacthub.io/packages/helm/camunda/camunda-platform/11.1.1#parameters"
}
]
},
{
"system": "windows-x86_64",
"download": "https://github.com/camunda/camunda/releases/download/8.6.7/camunda8-run-8.6.7-windows-x86_64.tar.gz",
"links": [
{
"description": "Release Notes",
"link": "https://github.com/camunda/camunda-platform-helm/releases/tag/camunda-platform-11.1.1"
},
{
"description": "Values",
"link": "https://artifacthub.io/packages/helm/camunda/camunda-platform/11.1.1#parameters"
}
]
}
],
"11.0.4": [
{
"system": "linux-x86_64",
"download": "https://github.com/camunda/camunda/releases/download/8.6.7/camunda8-run-8.6.7-linux-x86_64.tar.gz",
"links": [
{
"description": "Release Notes",
"link": "https://github.com/camunda/camunda-platform-helm/releases/tag/camunda-platform-11.1.1"
},
{
"description": "Values",
"link": "https://artifacthub.io/packages/helm/camunda/camunda-platform/11.1.1#parameters"
}
]
},
{
"system": "windows-x86_64",
"download": "https://github.com/camunda/camunda/releases/download/8.6.7/camunda8-run-8.6.7-windows-x86_64.tar.gz",
"links": [
{
"description": "Release Notes",
"link": "https://github.com/camunda/camunda-platform-helm/releases/tag/camunda-platform-11.1.1"
},
{
"description": "Values",
"link": "https://artifacthub.io/packages/helm/camunda/camunda-platform/11.1.1#parameters"
}
]
}
]
}
46 changes: 46 additions & 0 deletions docs/download-hub/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: Camunda Download Hub
description: One-stop shop for all Camunda 8 downloads
---

import {
C8Run,
DockerCompose,
Helm,
} from "@site/src/components/CamundaDistributions/DistributionCards";
import helmData from "./helm-chart.json";

# Camunda Download Hub

## Local Development Setup

### Camunda 8 Run

A one-click Java application with BPMN Workflow Engine, DMN Decision Engine, Tasklist, and Operate, enabling you to deploy, test, and run workflows locally.

<C8Run />

### Docker Compose

A Docker Compose configuration to run Camunda Self-Managed components (Zeebe, Operate, Tasklist, Optimize, Identity, and Connectors).

<DockerCompose />

### Kubernetes Local

We recommend using Kubernetes and Helm to deploy and run Camunda 8 Self-Managed in development too.

<Helm runCommandArgs={["--values https://helm.camunda.io/values-local.yaml"]} />

## Production Setup

### Kubernetes

We recommend using Kubernetes and Helm to deploy and run Camunda 8 Self-Managed in production.

<Helm />

## Tools

- Clients
- SDK
7 changes: 7 additions & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
@@ -232,6 +232,13 @@ module.exports = {
label: "Reference",
position: "left",
},
{
type: "doc",
docId: "download-hub/index",
label: "Download Hub",
class: "badge badge--primary",
position: "left",
},
],
},
footer: {
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"build": "NODE_OPTIONS='--max_old_space_size=12288' docusaurus build",
"build:docker": "docker build -f Dockerfile.build --output ./build --target=outputs . ",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
180 changes: 180 additions & 0 deletions src/components/CamundaDistributions/ArtifactCard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
// import React, { useState } from "react";
// import Link from "@docusaurus/Link";
// import CodeBlock from "@theme/CodeBlock";
// import styles from "./styles.module.css";

// const ArtifactCard = (artifactData = Object) => {
// const versions = artifactData.keys()
// return (
// <div className={styles.card}>
// <div className={styles.dropdownContainer}>
// {version != null && (
// <>
// <label>Version</label>
// <select
// value={version}
// onChange={(e) => setVersion(e.target.value)}
// >
// {versions.map((version) => (
// <option key={version} value={version}>
// {version}
// </option>
// ))}
// </select>
// </>
// )}
// {artifactData.system != "" && (
// <>
// <label>System</label>
// <select
// value={artifactData.system}
// onChange={(e) => setArchitecture(e.target.value)}
// >
// {artifactData.system.map((os) => (
// <option key={os} value={os}>
// {os}
// </option>
// ))}
// </select>
// </>
// )}
// </div>
// <div>
// {downloadURL != "" && (
// <Link
// to={downloadURL}
// title={downloadURL}
// className={styles.downloadURL}
// >
// Download
// </Link>
// )}
// <br />
// {runCommand != "" && (
// <CodeBlock language="shell">
// {runCommand.replaceAll("${version}", version)}
// </CodeBlock>
// )}
// </div>
// <div className={styles.linkContainer}>
// {extraLinks.forEach(element => {
// <Link to={element.url}>{element.desc}</Link>
// })}
// </div>
// </div>
// );
// };

// export default ArtifactCard;
import React, { useState } from "react";
import styles from "./styles.module.css";
import Link from "@docusaurus/Link";
import CodeBlock from "@theme/CodeBlock";

const systemLabel = {
"darwin-x86_64": "MacOS (amd64)",
"darwin-aarch64": "MacOS (m1/arm64)",
"linux-x86_64": "Linux (AMD64)",
"linux-x86_64": "Linux (ARM64)",
"windows-x86_64": "Windows (amd64)",
"windows-x86_64": "Windows (arm64)",
};

const ArtifactCard = ({ data, runCommand = "" }) => {
const versions = Object.keys(data);

// Ensure at least one version exists
const [selectedVersion, setSelectedVersion] = useState(versions[0] || "");
const [selectedSystem, setSelectedSystem] = useState(
data[versions[0]]?.[0]?.system || ""
);

const handleVersionChange = (event) => {
const newVersion = event.target.value;
setSelectedVersion(newVersion);
setSelectedSystem(data[newVersion]?.[0]?.system || "");
};

const handleSystemChange = (event) => {
setSelectedSystem(event.target.value);
};

const selectedData =
data[selectedVersion]?.find((item) => item.system === selectedSystem) || {};

return (
<div className={styles.card}>
<div className={styles.dropdownContainer}>
<label for="version">
Version:
<select
id="version"
value={selectedVersion}
onChange={handleVersionChange}
>
{versions.map((version) => (
<option key={version} value={version}>
{version}
</option>
))}
</select>
</label>
{selectedSystem && (
<label for="system">
System:
<select
id="system"
value={selectedSystem}
onChange={handleSystemChange}
>
{data[selectedVersion]?.map((item) => (
<option key={item.system} value={item.system}>
{systemLabel[item.system]}
</option>
))}
</select>
</label>
)}
</div>

{selectedData.download && (
<>
<h4>Get</h4>
<Link
to={selectedData.download}
title={selectedData.download}
className={styles.downloadURL}
>
Download
</Link>
</>
)}

{runCommand && (
<>
<h4>Run</h4>
<CodeBlock language="shell">
{runCommand.replace("${version}", selectedVersion)}
</CodeBlock>
</>
)}

{selectedData.links && (
<>
<h4>Links</h4>
<ul>
{selectedData.links.map((link, index) => (
<li key={index}>
<a href={link.link} target="_blank" rel="noopener noreferrer">
{link.description}
</a>
</li>
))}
</ul>
</>
)}
</div>
);
};

export default ArtifactCard;
Loading
Oops, something went wrong.