101 lines
2.4 KiB
Markdown
101 lines
2.4 KiB
Markdown
# Zadanie 1
|
|
|
|
## Opis aplikacie
|
|
|
|
Tato aplikacia je jednoducha webova aplikacia nasadena pomocou Docker Compose. Umoznuje zapisat meno cez webove rozhranie do databazy PostgreSQL a nasledne zobrazit zoznam ulozenych zaznamov. Aplikacia obsahuje frontend, backend, databazu a webove rozhranie Adminer na pracu s databazou.
|
|
|
|
## Potrebny software
|
|
|
|
- Linux
|
|
- Docker
|
|
- Docker Compose plugin (`docker compose`)
|
|
|
|
## Pouzite kontajnery
|
|
|
|
- `nginx:latest` - webovy server pre staticke subory frontendu
|
|
- `node:18` - backend aplikacie postaveny zo suboru `backend/Dockerfile`
|
|
- `postgres:15` - relacna databaza PostgreSQL
|
|
- `adminer` - webove rozhranie na pracu s databazou
|
|
|
|
## Siete a zvazky
|
|
|
|
Docker Compose vytvori predvolenu virtualnu siet, v ktorej spolu komunikujú sluzby:
|
|
|
|
- `web`
|
|
- `backend`
|
|
- `db`
|
|
- `adminer`
|
|
|
|
Pouzity pomenovany trvaly zvazok:
|
|
|
|
- `db_data` - uklada databazove data PostgreSQL, aby zostali zachovane aj po zastaveni aplikacie
|
|
|
|
## Konfiguracia kontajnerov
|
|
|
|
- `web` bezi v kontajneri s Nginx a spristupnuje frontend na porte `8080`
|
|
- `backend` bezi v Node.js kontajneri a je dostupny na porte `5000`
|
|
- `db` bezi ako PostgreSQL databaza s premennymi `POSTGRES_USER`, `POSTGRES_PASSWORD` a `POSTGRES_DB`
|
|
- `adminer` je dostupny na porte `8081`
|
|
- vsetky sluzby maju nastavene `restart: always`
|
|
- backend zavisi od databazy a Adminer zavisi od databazy
|
|
|
|
## Navod na pouzitie
|
|
|
|
Priecinok projektu:
|
|
|
|
```bash
|
|
cd z1
|
|
```
|
|
|
|
Spustenie aplikacie:
|
|
|
|
```bash
|
|
./start-app.sh
|
|
```
|
|
|
|
Zastavenie aplikacie:
|
|
|
|
```bash
|
|
./stop-app.sh
|
|
```
|
|
|
|
Alternativne je mozne aplikaciu spustit aj priamo cez Docker Compose:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
## Pristup cez webovy prehliadac
|
|
|
|
- Hlavna aplikacia: `http://localhost:8080`
|
|
- Backend API: `http://localhost:5000`
|
|
- Adminer: `http://localhost:8081`
|
|
|
|
Prihlasovacie udaje do PostgreSQL:
|
|
|
|
- system: `PostgreSQL`
|
|
- server: `db`
|
|
- username: `user`
|
|
- password: `password`
|
|
- database: `mydb`
|
|
|
|
## Priklad prace s aplikaciou
|
|
|
|
1. Otvorte `http://localhost:8080`
|
|
2. Zadajte meno do formulara
|
|
3. Kliknite na tlacidlo `Save & Show`
|
|
4. Udaj sa ulozi do databazy a zobrazi v zozname
|
|
|
|
## Zdroje
|
|
|
|
- Docker dokumentacia
|
|
- Docker Compose dokumentacia
|
|
- Nginx oficialny image na Docker Hub
|
|
- Node.js oficialny image na Docker Hub
|
|
- PostgreSQL oficialny image na Docker Hub
|
|
- Adminer oficialny image na Docker Hub
|
|
|
|
## Pouzitie umelej inteligencie
|
|
|
|
Pri priprave dokumentacie a pomocnych skriptov bola pouzita umele inteligencia vo forme AI agenta Codex.
|