---
# System prepended metadata

title: Sion Gard - Dev Notes
tags: [sion]

---


## SION instalacija



| Okruzenje | Server | Direktorijum na server gde se nalaze docker skripte | Url                               |
| --------- | ------ | ---------------------- | --------------------------------- |
|  **produkcija**         |    /    |   /                     |      /                             |
| **stage** | perun  | /etc/dc/sionstage      | https://sion-stage.plusplusnt.rs/ |
| **test**  | perun  | /etc/dc/sion           | https://sion-test.plusplusnt.rs/  |


Test se koristi interno u okvoru razvojnog tima dok je stage namenjen zaposlenima u okviru Sion Gard firme.

Postavljanje nove verzije za sada:

## Postavka backend aplikacije: 

Postoje 2 načina:

### Prvi način (Ručno):

1. Odete u direktorijum **docker** i pokrenuti skriptu **./build.sh** sa profilom dev 

```
./build.sh dev
```
Kao rezultat dobija se izbildovani image sa tagom dev:

2. Potrebno je image tagovati sledecom komandom:
```
docker tag siongard-server:dev docker.plusplus.rs/siongard-server:dev
```

3. Nakon sto je tagovan image, potrebno je pushovati taj image na docker.plusplus.rs docker repozitorijum, komanda je  (Za ovo morate biti ulogovani (docker login docker.plusplus.rs):

```
docker push docker.plusplus.rs/siongard-server:dev
```

4. Odete na server perun (ssh perun), predjete u /etc/dc/sion. Potrebno je povuci nove verzije image-a (docker-compose pull), stopirati i obrisati trenutne kontejnere koji su pokrenuti (docker-compose down) i ponovo pokrenuti sa novim image-om (docker-compose up -d), redosled komandi:

```
ssh perun
cd /etc/dc/sion
docker compose pull
docker compose down
docker compose up -d
```


**Napomena** : za **stage** se skripta pokrece sa parametrom **stage** i image se pravi sa profilom stage, svi gore navedeni koraci su isti, direktorijum gde se nalazi konfiguacija za stage okruzenje je **/etc/dc/sionstage**



### Drugi način (Automatski, CI/CD pipline):

1. Nakon što se nova verzija koda sion-back app spoji u granu **develop** postoji **pipeline** koji prvo izvrsi testove a potom **automatski** pravi i postavlja novu verziju image-a na perun i radi restart aplikacije za dev okruzenje

**Napomena** : za stage se radi na slican nacin, samo se pipeline izvrsava kada se kod spoji u u granu **stage** 

## Postavka frontend aplikacije: 

### Prvi način (Ručno):

1. Odete u direktorijum sion-front i izvrsite skriptu build.sh sa parametrom dev

```
./build.sh dev
```
2. Potrebno je image tagovati sledecom komandom:
```
docker tag siongard-client:dev docker.plusplus.rs/sionagard-client:dev
```
3. Nakon sto je tagovan image, potrebno je pushovati taj image na docker.plusplus.rs docker repozitorijum, komanda je (Za ovo morate biti ulogovani (docker login docker.plusplus.rs):

```
docker push docker.plusplus.rs/siongard-client:dev
```

4. Odete na server perun (ssh perun), predjete u /etc/dc/sion. Potrebno je povuci nove verzije image-a (docker-compose pull), stopirati i obrisati trenutne kontejnere koji su pokrenuti (docker-compose down) i ponovo pokrenuti sa novim image-om (docker-compose up -d), redosled komandi:

```
ssh perun
cd /etc/dc/sion
docker compose pull
docker compose down
docker compose up -d
```

**Napomena** : za stage se koristi **stage** image tag i **/etc/dc/sionstage** direktorijum

### Drugi način (Automatski, CI/CD pipline):

1. Nakon što se nova verzija koda sion-front app spoji u granu **develop** postoji **pipeline** koji **automatski** pravi i postavlja novu verziju image-a na perun i radi restart aplikacije za dev okruzenje

**Napomena** : za stage se radi na slican nacin, samo se pipeline izvrsava kada se kod spoji u u granu **stage** 

# JOOQ
U slučaju da ste menjali entitete tj šemu baze podataka potrebno je da uradite build sion-jooq modula sa naredbom: mvn clean install -P generate-jooq
Nakon toga će biti izgenerisan kod koji pušujete regularno kao svaki drugi kod koji ste iskucali.
Napomena: model se generiše na osnovu šeme baze podataka što znači da pre build-a morate pokrenuti server kako vi se šema sihronizovala sa entitetima.
