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
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
tidy up
  • Loading branch information
aabouzaid committed Jan 30, 2025
commit 51780709aa0495bfc831a46d23e4a2a942d92ecf
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"
}
]
}
]
}
14 changes: 3 additions & 11 deletions docs/download-hub/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ description: One-stop shop for all Camunda 8 downloads
import {
C8Run,
DockerCompose,
HelmLocal,
Helm,
} from "@site/src/components/CamundaDistributions/DistributionCards";
import helmData from "./helm-chart.json";

# Camunda Download Hub

Expand All @@ -20,23 +20,17 @@ A one-click Java application with BPMN Workflow Engine, DMN Decision Engine, Tas

<C8Run />

[More details ...](../../../docs/self-managed/setup/deploy/local/c8run)

### Docker Compose

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

<DockerCompose />

[More details ...](../../../docs/self-managed/setup/deploy/local/docker-compose)

### Kubernetes
### Kubernetes Local

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

<HelmLocal />

[More details ...](../../../docs/self-managed/setup/deploy/local/local-kubernetes-cluster)
<Helm runCommandArgs={["--values https://helm.camunda.io/values-local.yaml"]} />

## Production Setup

Expand All @@ -46,8 +40,6 @@ We recommend using Kubernetes and Helm to deploy and run Camunda 8 Self-Managed

<Helm />

[More details ...](../../../docs/self-managed/setup/install)

## Tools

- Clients
Expand Down
190 changes: 136 additions & 54 deletions src/components/CamundaDistributions/ArtifactCard.js
Original file line number Diff line number Diff line change
@@ -1,77 +1,159 @@
// 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";
import styles from "./styles.module.css";

const ArtifactCard = ({
osName = "",
architectures = [],
versions = [],
downloadURL = "",
releaseNotesUrl = "",
runCommand = "",
}) => {
const [architecture, setArchitecture] = useState(architectures[0]);
const [version, setVersion] = useState(versions[0]);
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 handleDownload = (downloadURL) => {
window.open(downloadURL, "_blank");
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}>
{osName != "" && (
<>
<label>System</label>
<select
value={architecture}
onChange={(e) => setArchitecture(e.target.value)}
>
{architectures.map((arch) => (
<option key={arch} value={arch}>
{arch}
</option>
))}
</select>
</>
)}
{version != null && (
<>
<label>Version</label>
<select
value={version}
onChange={(e) => setVersion(e.target.value)}
>
{versions.map((ver) => (
<option key={ver} value={ver}>
{ver}
<label>
Version:
<select value={selectedVersion} onChange={handleVersionChange}>
{versions.map((version) => (
<option key={version} value={version}>
{version}
</option>
))}
</select>
</label>
{selectedSystem && (
<label>
System:
<select value={selectedSystem} onChange={handleSystemChange}>
{data[selectedVersion]?.map((item) => (
<option key={item.system} value={item.system}>
{item.system}
</option>
))}
</select>
</>
</label>
)}
</div>
<div>
{downloadURL != "" && (

{selectedData.download && (
<>
<h4>Get</h4>
<Link
to={downloadURL}
title={downloadURL}
to={selectedData.download}
title={selectedData.download}
className={styles.downloadURL}
>
Download
</Link>
)}
<br />
{runCommand != "" && (
<CodeBlock language="shell">
{runCommand.replaceAll("${version}", version)}
</CodeBlock>
)}
</div>
<div className={styles.linkContainer}>
<Link to={releaseNotesUrl}>View Release Notes</Link>
</div>
</>
)}

<h4>Run</h4>
{runCommand && (
<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>
);
};
Expand Down
Loading
Loading