Skip to content

Commit

Permalink
Merge pull request #35 from zazuko/apps-blueprint-helm
Browse files Browse the repository at this point in the history
Add some documentation for Blueprint
  • Loading branch information
ludovicm67 authored Aug 28, 2024
2 parents c80eab9 + 58f43b6 commit 8aa7eb2
Show file tree
Hide file tree
Showing 11 changed files with 406 additions and 180 deletions.
10 changes: 10 additions & 0 deletions docs/apps/apps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
displayed_sidebar: appsSidebar
title: Data Centric Applications
sidebar_label: Introduction
sidebar_position: 0
---

A data-centric application is a software system primarily focused on managing, processing, and utilizing data.
In such applications, data is the central component, and the application is designed to organize, store, analyze, and present this data effectively.
The primary goal of a data-centric application is to ensure that data is easily accessible, accurate, and can be used to drive decision-making or automate processes.
2 changes: 2 additions & 0 deletions docs/apps/blueprint/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
label: Zazuko Blueprint
position: 1
61 changes: 61 additions & 0 deletions docs/apps/blueprint/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
displayed_sidebar: appsSidebar
title: Deploy Zazuko Blueprint using Docker
sidebar_label: Deploy using Docker
sidebar_position: 1
---

We are providing a [container image](https://github.com/zazuko/blueprint/pkgs/container/blueprint) for Zazuko Blueprint, that gets built automatically on every push to the [main branch](https://github.com/zazuko/blueprint).
We also tag some releases, so you can use a specific version of Blueprint.

You can pull the latest version of the container image using the following command:

```sh
docker pull ghcr.io/zazuko/blueprint:latest
```

The container exposes the Blueprint instance on port 80.

When deploying the container in production, make sure to use a specific version of the container image, instead of `latest`.

## Configuration

You will need to provide some configuration to the container, using environment variables.

The following environment variables are available:

| Variable | Description | Default |
| ------------------------ | ------------------------------------------- | ------------------------------------------- |
| ENDPOINT_URL | SPARQL endpoint URL | **required** |
| SPARQL_CONSOLE_URL | SPARQL console URL | http://example.com/sparql/#query |
| GRAPH_EXPLORER_URL | Graph Explorer URL | http://example.com/graph-explorer/?resource |
| FULL_TEXT_SEARCH_DIALECT | Full text search dialect | fuseki |
| NEPTUNE_FTS_ENDPOINT | OpenSearch endpoint for the Neptune dialect | http://example.com/ |

Currently, the supported full text search dialects are `stardog`, `fuseki` and `neptune`.

If you are using `neptune` as the full text search dialect, you will need to provide the `NEPTUNE_FTS_ENDPOINT` environment variable.

In case you are using a Trifid instance, which is deployed at `http://example.com`, that is configured over a Fuseki endpoint, you can use the following configuration:

```env
ENDPOINT_URL=http://example.com/query
SPARQL_CONSOLE_URL=http://example.com/sparql/#query
GRAPH_EXPLORER_URL=http://example.com/graph-explorer/?resource
FULL_TEXT_SEARCH_DIALECT=fuseki
```

## Running the container

Using the configuration above, you can run the container with the following command:

```sh
docker run -d -p 8080:80 \
-e ENDPOINT_URL=http://example.com/query \
-e SPARQL_CONSOLE_URL=http://example.com/sparql/#query \
-e GRAPH_EXPLORER_URL=http://example.com/graph-explorer/?resource \
-e FULL_TEXT_SEARCH_DIALECT=fuseki \
ghcr.io/zazuko/blueprint:latest
```

And open your browser at `http://localhost:8080`.
128 changes: 128 additions & 0 deletions docs/apps/blueprint/kubernetes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
---
displayed_sidebar: appsSidebar
title: Deploy Zazuko Blueprint on Kubernetes
sidebar_label: Deploy on Kubernetes
sidebar_position: 2
---

You can deploy Zazuko Blueprint on Kubernetes using the provided Helm chart.

## Prerequisites

- A running Kubernetes cluster
- [Helm](https://helm.sh/docs/intro/install/) installed

## Installation steps

### Add the Zazuko Helm repository

First, you will need to add the Zazuko Helm repository:

```sh
helm repo add zazuko https://charts.zazuko.com
```

So that you can install any of the Zazuko Helm charts.

### Create a `values.yaml` file

You can take a look at the [Artifact Hub](https://artifacthub.io/packages/helm/zazuko/blueprint) to see the available configuration options.

To get started, you can create a `values.yaml` file with the following content:

```yaml
endpointUrl: https://ld.example.com/query
sparqlConsoleUrl: https://ld.example.com/sparql/#query
graphExplorerUrl: https://ld.example.com/graph-explorer/?resource
fullTextSearchDialect: fuseki
neptuneFtsEndpoint: ""

# Ingress configuration
ingress:
enabled: true
className: ""
annotations:
kubernetes.io/tls-acme: "true"
# kubernetes.io/ingress.class: nginx

# Make sure to configure the following fields if you enable the Ingress
hosts:
- host: blueprint.example.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: blueprint-example-com-tls
hosts:
- blueprint.example.com

# Trifid configuration
trifid:
enabled: true # Let's deploy a Trifid instance

# Information about the SPARQL endpoint
sparql:
endpoint: "http://blueprint-fuseki:3030/ds/query" # Feel free to change this to your own SPARQL endpoint
# Uncomment the following lines if you need to authenticate
# username: ""
# password: ""

# Set the base URL for the dataset, to allow some rewriting features
dataset:
baseUrl: "" # You can leave this empty if you don't need it

# Ingress configuration
ingress:
enabled: true
className: ""
annotations:
kubernetes.io/tls-acme: "true"
# kubernetes.io/ingress.class: nginx

# Make sure to configure the following fields if you enable the Ingress
hosts:
- host: ld.example.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: ld-example-com-tls
hosts:
- ld.example.com

# Fuseki configuration
fuseki:
enabled: true # Let's deploy a Fuseki instance also

config:
adminPassword: super-secret-password
javaOpts: "-Xmx2048m -Xms2048m"

storage:
enabled: true
size: 10Gi
```
It assumes that the Trifid instance will be deployed at `ld.example.com` and the Blueprint instance at `blueprint.example.com`.
You can change these values to match your domain.

The Fuseki endpoint is not exposed, that's why you can see that Trifid is configured to use `blueprint-fuseki:3030/ds/query` as the endpoint.
Feel free to change this to your own SPARQL endpoint, if you want to use a different one.

Make sure to update the different ingress configurations to match your domain and TLS configuration.
Relevant keys are `ingress` and `trifid.ingress`.
You can disable them by setting `enabled: false`, and then you can access the services using port-forwarding or by creating the ingresses manually.

You might want to see for more configuration options by checking the [Artifact Hub](https://artifacthub.io/packages/helm/zazuko/blueprint#values) page.

### Install the chart

Using the `values.yaml` file you created, you can install the chart:

```sh
helm install blueprint-release zazuko/blueprint --values values.yaml # --namespace default
```

You can specify the namespace where you want to install the chart using the `--namespace` flag.

You can also use another name for the release by changing `blueprint-release` to your desired name.
30 changes: 30 additions & 0 deletions docs/apps/blueprint/presentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
displayed_sidebar: appsSidebar
title: Zazuko Blueprint Presentation
sidebar_label: Presentation
sidebar_position: 0
---

Zazuko Blueprint is an enterprise knowledge graph frontend and browser, designed to make RDF Knowledge Graphs accessible and customizable for domain users.

## Relevant links

- [GitHub repository](https://github.com/zazuko/blueprint)
- [Report an issue](https://github.com/zazuko/blueprint/issues)

## Try it out

We provide a very simple Docker Compose stack that can be used to try out Blueprint.

Just go here and follow the instructions: https://github.com/zazuko/blueprint/tree/main/stack

The stack includes the following:

- a triplestore (Fuseki)
- a Blueprint instance
- a Trifid instance

and comes with a small dataset to get you started.

The dataset contains information about a Kubernetes cluster and OCI data.
Instructions on how to generate those data for your own cluster are included in the repository.
6 changes: 6 additions & 0 deletions docusaurus.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,12 @@ const config = {
position: 'left',
label: 'Cubes',
},
{
type: 'docSidebar',
sidebarId: 'appsSidebar',
position: 'left',
label: 'Applications',
},
{
href: 'https://github.com/zazuko',
label: 'GitHub',
Expand Down
Loading

0 comments on commit 8aa7eb2

Please sign in to comment.