# Building from Source

## Requirements

Luden is written primarily in Go with the frontend written in JavaScript.

To install the required pre-requisites see the following guides:

* [Installing Go (>=1.16)](https://golang.org/doc/install)
* [Installing npm](https://www.npmjs.com/get-npm)
* [Installing yarn](https://classic.yarnpkg.com/lang/en/docs/install)

## Clone the Source

```sh
git clone https://github.com/GuinsooLab/luden.git
cd luden
```

Make build scripts executable:

```sh
chmod +x local-build-server.sh && \
chmod +x local-build-configurator.sh && \
chmod +x local-build-luden.sh
```

## Build Luden Server

Building the Luden Server run:

```
./local-build-server.sh -d false
```

**`-d false`** skips docker image build.

If the build is successful, all artifacts will be replaced inside the **`./server/build/dist`** directory:&#x20;

```bash
109376 -rwxr-xr-x   1 admin  staff  55998592 Mar 15 09:04 eventnative
     0 drwxr--r--  11 admin  staff       352 Mar 15 12:56 logs
     0 drwxr-xr-x   6 admin  staff       192 Mar 15 10:37 web

```

## Run Luden Server

**`./server/build/dist/eventnative`** is the main application binary; **`web`** contains static files (JS and HTML). The application doesn't require a file but will be mostly useless to run without config. You can refer **`./docker/eventnative.yaml`**.

Run the application with the following:

```
./eventnative -cfg {abstract_path}/luden/docker/eventnative.yaml
```

## Build Luden Configurator

For building the Luden Configurator just run:

```
./local-build-configurator.sh -d false
```

**`-d false`** skips docker images build.

If the build is successful, all artifacts will be placed inside the **`./configuratior/build/dist`** directory:

```
122248 -rwxr-xr-x   1 admin  staff  62589312 Mar 15 16:37 configurator
     0 drwxr-xr-x  20 admin  staff       640 Mar 15 16:37 web
```

## Run Luden Configurator

**`./configurator`** is the configurator UI backend application binary; **`web`** contains static Configurator UI files.&#x20;

Run the application with the configuration file using **`-cfg`** parameter:

```sh
./configurator/build/dist/configurator -cfg {abstract_path}/luden/configurator.yaml
```

<figure><img src="https://3772893841-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMfQt2eTfNlkZBgnWOxuC%2Fuploads%2FHrfq5tofh5skawea49sn%2FScreen%20Shot%202023-03-18%20at%2018.34.27.png?alt=media&#x26;token=79e952b2-740f-4df9-a410-8d8e853085d4" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ciusji.gitbook.io/luden/quickstart/building-from-source.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
