![booklab_logo](../pictures/booklab_logo.png){ width="55" align=left }
<small markdown>**BookLab System**<br>
*(c) 2023 RENware Software Systems*
</small><br><br>


# sysInit Initializare sistem


***Cuprins:***

[TOC]

***


Pornirea sistemului comporta doua mari componente "on top", si anume:

* **`staticbl`** - **STATIC BookLab** *serverul HTTP static* acesta va deservi partea de web compusa din "fisiere" statice. Acestea reprezinta fisierele HTML aferente interfetei UI dar si celelate fisiere "auxiliare" precum: CSS-uri, JS-uri, imagini, etc

* **`dynblsrv`** - **DYNAMIC BookLab** *serverul CGI dinamic* ce opereaza in "background" (adica nu prezinta o interfata UI) si deserveste componentele care executa operatiile necesare (de ex create carte noua). Acest server este cunoscut si sub numele de `BookLab API`


>Referitor la "recunoasterea" componentelor de catre cele doua servere (pentru o instalare uzuala unde toate si totul se afla fizic pe aceiasi masina si sub aceiasi radacina a aplicatiei *BookLab*), `code-name` al componentelor fiind acelasi atit pentru SERVER cit si pentru CLIENT, ***diferentierea intre acestea se intimpla deoarece raspund servere diferite pentru porturi aferente*** (80 client si 4111 server, vezi mai jos detaliile serverelor).
>
>Astfel pe ruta "normala" a unei componente, de ex ptr *NEWB*: `http://<server>/newb` va raspunde intii componenta CLIENT (prezenta sub forma unui `index.html` in directorul `docs/newb/` <small markdown>in mod implicit printr-un fisier `index.html`</small>).




## Serverul HTTP static

Acesta este un server HTTP tip *CGI* ce raspunde pe portul 80 (portul clasic, implicit pentru sisteme accesabile web).

!!! info "parametrii"
    * _obiectiv_: servirea de HTML catre client-side
    * _port_: 80
    * _nume ruta URL_: nume domeniu unde este publicat sistemul prefixat cu `booklab` (ca si hostname)
    * _acces_: public, deschis in extern
    * _implentare_: implicit `python http.server` sau `nginx`, `apache http`


## Serverul HTTP dinamic

Acesta este acelasi server dar avind optiunea **CGI** activata cu _capabilitatea de a rula scripturi Python_

!!! info "parametrii"
    * _obiectiv_: rularea de scripturi Python server-side
    * _port_: 80
    * _nume ruta URL_: numai `localhost`
    * _acces_: public, deschis in extern (dar ruleaza numai din directorul `/cgi-bin` protejat la scriere si nu orice script "injectat")
    * _implentare_: implicit `python http.server` sau `nginx`, `apache http` cu **CGI activat**




## Prima instalare a sistemului

Referitor la initializarea sistemului trebuie spus si ca ***prima instalare a acestuia*** se face cu o serie de programe / scripturi. Nu se intra in detalii deoarece procedura de instalare a sistemului este una cit se poate de clasica pentru instalarile executate manual pe sisteme Linux iar pentru sisteme Windows acesta este tot una clasica, cu un simplu wizard "standardizat" si care executa scrierea in toate locatiile necesare (ex Registry).



