## 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.