Karideo
=======

**K**angaroo **A**nd **R**abbit (v)ideo is a simple framework to propose video streaming for personal network

Run in local:
=============

Start tools
-----------

Start the server basic interfaces: (DB(mySQL), Adminer)

```{.bash}
# start the Bdd interface (no big data > 50Mo)
docker compose -f env_dev/docker-compose.yaml up -d
```

Start the Back-end:
-------------------

backend is developed in JAVA

The first step is configuring your JAVA version (or select the JVM with the OS)
```bash
export PATH=$(ls -d --color=never /usr/lib/jvm/java-2*-openjdk)/bin:$PATH
```

Install the dependency:
```bash
mvn install
```

Run the test
```bash
mvn test
```

Install it for external use
```bash
mvn install
```

Execute the local server:
```bash
mvn exec:java@dev-mode
```

Start the Front-end:
--------------------

backend is developed in JAVA
```bash
cd front
pnpm install
pnpm dev
```

Display the result:
-------------------

[show the webpage: http://localhost:4203](http://localhost:4203)

Some other dev tools:
=====================

Format code:
------------

```bash
export PATH=$(ls -d --color=never /usr/lib/jvm/java-2*-openjdk)/bin:$PATH
mvn formatter:format
mvn test
```

Tools in production mode
========================

Changing the Log Level
----------------------

In a production environment, you can adjust the log level to help diagnose bugs more effectively.

The available log levels are:
| **Log Level Tag** | **org.kar.karideo** | **org.kar.archidata** | **other** |
| ----------------- | ------------------- | --------------------- | --------- |
| `prod`            | INFO                | INFO                  | INFO      |
| `prod-debug`      | DEBUG               | INFO                  | INFO      |
| `prod-trace`      | TRACE               | DEBUG                 | INFO      |
| `prod-trace-full` | TRACE               | TRACE                 | INFO      |
| `dev`             | TRACE               | DEBUG                 | INFO      |


Manual set in production:
=========================

Connect on the registry
------------------------

To log-in and log-out from the registry:
```bash
export REGISTRY_ADDRESS=gitea.atria-soft.org
docker login -u <<YOUR_USER_NAME>> ${REGISTRY_ADDRESS}
docker logout ${REGISTRY_ADDRESS}
```

pull the root image of dockers
------------------------------

```bash
docker pull archlinux:base-devel
docker pull bellsoft/liberica-openjdk-alpine:latest
```

Create the version
------------------

Execute in the local folder: (use ```dev``` for development and ```latest``` for production release)

```bash
export TAG_DOCKER=latest
export REGISTRY_ADDRESS=gitea.atria-soft.org
docker build -t ${REGISTRY_ADDRESS}/kangaroo-and-rabbit/karideo:${TAG_DOCKER} .
docker push ${REGISTRY_ADDRESS}/kangaroo-and-rabbit/karideo:${TAG_DOCKER}
```
