blob: c092ffa028f32a66bd6cd15ce689321e229fa7e0 [file] [view]
## Project structure
1. karavan-generator
Generate Camel Models and Api from Camel sources to Typescript in karavan-core
2. karavan-core
Front-end Camel Models and Api
3. karavan-Designer
KaravanDesigner UI component
4. karavan-app
Karavan Application to be installed into Kubernetes
5. karavan-vscode
VS Code extension based on Karavan Designer
## How to build Karavan Web Application
1. Generate Camel Models and API for Typescript
```
mvn clean compile exec:java -Dexec.mainClass="org.apache.camel.karavan.generator.KaravanGenerator" -f karavan-generator
```
2. Install Karavan core library
```
cd karavan-core
npm install
```
3. Build Karavan app
```
mvn clean package -f karavan-app -Dquarkus.profile=public
```
## How to build Karavan VS Code extension
1. Generate Camel Models and API for Typescript
```
mvn clean compile exec:java -Dexec.mainClass="org.apache.camel.karavan.generator.KaravanGenerator" -f karavan-generator
```
2. Install Karavan core library
```
cd karavan-core
npm install
```
3. Build Karavan VS Code extension
```
cd karavan-vscode
npm update && npm install
npm install -g @vscode/vsce
vsce package
```
## To run karavan-app in the local machine for debugging
#### Prerequisite
Docker Engine 24+
1. Make the following change in package.json line 5-12 (needed only for Windows)
```
"scripts": {
"copy-designer": "xcopy ..\\..\\..\\..\\karavan-designer\\src\\designer src\\designer /E/H/Y",
"copy-knowledgebase": "xcopy ..\\..\\..\\..\\karavan-designer\\src\\knowledgebase src\\knowledgebase /E/H/Y",
"copy-topology": "xcopy ..\\..\\..\\..\\karavan-designer\\src\\topology src\\topology /E/H/Y",
"copy-code": " npm run copy-designer && npm run copy-knowledgebase && npm run copy-topology",
"start": "set PORT=3003 && npm run copy-code && react-scripts start",
"build": "npm run copy-code && DISABLE_ESLINT_PLUGIN=true react-scripts build"
},
```
2. Add local profile config to the application.properties
```
# Local
%local.karavan.image-registry-install=true
%local.karavan.git-install-gitea=true
%local.quarkus.http.host=localhost
```
3. Update hosts.file with below entries
```
127.0.0.1 gitea # karavan local git server
127.0.0.1 registry # karavan local image registry server
```
4. Run ./karavan-app in Quarkus Dev mode
```
mvn clean compile quarkus:dev -Dquarkus.profile=local,public
```