282 lines
4.3 KiB
Markdown
282 lines
4.3 KiB
Markdown
# Budget Tracker Cloud Application
|
|
|
|
## URL aplikácie
|
|
|
|
https://budgettomas.dedyn.io
|
|
|
|
---
|
|
|
|
# O aplikácii
|
|
|
|
Budget Tracker je webová aplikácia na správu príjmov a výdavkov.
|
|
|
|
Funkcie:
|
|
|
|
* pridávanie transakcií
|
|
* mazanie transakcií
|
|
* výpočet zostatku
|
|
* zobrazenie príjmov a výdavkov
|
|
* zabezpečené HTTPS pripojenie
|
|
|
|
---
|
|
|
|
# Použité technológie
|
|
|
|
* React frontend
|
|
* Node.js Express backend
|
|
* PostgreSQL databáza
|
|
* nginx reverse proxy
|
|
* Docker Compose
|
|
* Oracle Cloud Infrastructure
|
|
* Let's Encrypt HTTPS
|
|
|
|
---
|
|
|
|
# Kontajnery
|
|
|
|
Aplikácia používa 4 kontajnery:
|
|
|
|
* frontend
|
|
* backend
|
|
* postgres
|
|
* nginx
|
|
|
|
---
|
|
|
|
# Nasadenie aplikácie
|
|
|
|
Spustenie aplikácie:
|
|
|
|
|
|
./prepare-app.sh
|
|
|
|
|
|
Zastavenie a odstránenie aplikácie:
|
|
|
|
./remove-app.sh
|
|
|
|
---
|
|
|
|
# Záloha databázy
|
|
|
|
Vytvorenie zálohy databázy:
|
|
|
|
|
|
./backup.sh
|
|
|
|
|
|
Súbor zálohy:
|
|
|
|
|
|
backups/backup.sql
|
|
|
|
---
|
|
|
|
# Environment premenné
|
|
|
|
Citlivé údaje sú uložené v:
|
|
|
|
|
|
.env
|
|
|
|
|
|
Súbor .env je ignorovaný pomocou .gitignore.
|
|
|
|
---
|
|
|
|
# HTTPS
|
|
|
|
Aplikácia používa:
|
|
|
|
* nginx reverse proxy
|
|
* Let's Encrypt SSL certifikát
|
|
|
|
---
|
|
|
|
# Logy
|
|
|
|
Zobrazenie nginx logov:
|
|
|
|
|
|
docker logs budget_nginx
|
|
|
|
alebo:
|
|
|
|
docker exec -it budget_nginx cat /var/log/nginx/access.log
|
|
|
|
|
|
---
|
|
|
|
# Trvalé úložisko
|
|
|
|
Databáza používa Docker volume:
|
|
|
|
|
|
postgres_data:
|
|
|
|
|
|
---
|
|
|
|
# Automatický reštart
|
|
|
|
Kontajnery používajú:
|
|
|
|
|
|
restart: always
|
|
|
|
|
|
---
|
|
|
|
# Cloud infraštruktúra
|
|
|
|
Aplikácia je nasadená na Oracle Cloud Infrastructure pomocou Ubuntu Servera a Docker Compose.
|
|
|
|
---
|
|
|
|
# Externé zdroje
|
|
|
|
* Docker dokumentácia
|
|
* nginx dokumentácia
|
|
* PostgreSQL dokumentácia
|
|
* Oracle Cloud dokumentácia
|
|
* React dokumentácia
|
|
* Express.js dokumentácia
|
|
* Let's Encrypt dokumentácia
|
|
|
|
---
|
|
|
|
# Analýza nákladov
|
|
|
|
Predpoklady:
|
|
|
|
* 1000 používateľov denne
|
|
* databáza alebo súbory veľkosti 50 GB
|
|
|
|
Použité cloudové zdroje:
|
|
|
|
| Zdroj | Cena | Fakturácia |
|
|
| ----------------------- | ------------- | ---------- |
|
|
| Oracle Cloud Compute VM | 0 € | mesačne |
|
|
| 50 GB storage | približne 5 € | mesačne |
|
|
| Verejná IP adresa | 0 € | mesačne |
|
|
| HTTPS certifikát | 0 € | ročne |
|
|
| DNS služba | 0 € | mesačne |
|
|
|
|
Odhad ročných nákladov:
|
|
|
|
| Položka | Cena |
|
|
| ---------------- | -------------------- |
|
|
| Compute VM | 0 € |
|
|
| Storage | približne 60 € ročne |
|
|
| HTTPS certifikát | 0 € |
|
|
| DNS | 0 € |
|
|
| Spolu | približne 60 € ročne |
|
|
|
|
---
|
|
|
|
# Opis súborov
|
|
|
|
| Súbor | Obsah |
|
|
| ------------------- | -------------------------------- |
|
|
| docker-compose.yaml | konfigurácia Docker kontajnerov |
|
|
| nginx/default.conf | nginx reverse proxy konfigurácia |
|
|
| backend/server.js | backend API |
|
|
| backend/db.js | pripojenie na databázu |
|
|
| frontend/src/App.js | React frontend |
|
|
| backup.sh | vytvorenie databázovej zálohy |
|
|
| prepare-app.sh | spustenie aplikácie |
|
|
| remove-app.sh | odstránenie aplikácie |
|
|
| .env | environment premenné |
|
|
| README.md | dokumentácia projektu |
|
|
|
|
---
|
|
|
|
# Stručný opis konfigurácie
|
|
|
|
Projekt používa Docker Compose na správu kontajnerov.
|
|
|
|
nginx slúži ako reverse proxy a zabezpečuje HTTPS komunikáciu.
|
|
|
|
Backend pomocou Node.js Express a komunikuje s PostgreSQL databázou.
|
|
|
|
Frontend je vytvorený v Reacte.
|
|
|
|
|
|
---
|
|
|
|
# Návod na použitie aplikácie
|
|
|
|
Aplikáciu je možné otvoriť vo webovom prehliadači:
|
|
|
|
|
|
https://budgettomas.dedyn.io
|
|
|
|
|
|
Používateľ môže pridávať a mazať transakcie a sledovať zostatok.
|
|
|
|
---
|
|
|
|
# Návod na vykonanie zálohy
|
|
|
|
Spustenie backup scriptu:
|
|
|
|
|
|
./backup.sh
|
|
|
|
|
|
Výsledný backup sa uloží do:
|
|
|
|
|
|
backups/backup.sql
|
|
|
|
|
|
---
|
|
|
|
# Návod na zobrazenie logov
|
|
|
|
Zobrazenie nginx logov:
|
|
|
|
|
|
docker logs budget_nginx
|
|
|
|
|
|
alebo:
|
|
|
|
|
|
docker exec -it budget_nginx cat /var/log/nginx/access.log
|
|
|
|
---
|
|
|
|
# Podmienky spustenia scriptov
|
|
|
|
## prepare-app.sh
|
|
|
|
Podmienky:
|
|
|
|
* nainštalovaný Docker
|
|
* nainštalovaný Docker Compose
|
|
* Linux systém
|
|
* dostupný internet
|
|
* existujúci súbor .env
|
|
|
|
Spustenie:
|
|
|
|
|
|
./prepare-app.sh
|
|
|
|
---
|
|
|
|
## remove-app.sh
|
|
|
|
Podmienky:
|
|
|
|
* existujúce Docker kontajnery
|
|
* spustený Docker daemon
|
|
|
|
Spustenie:
|
|
|
|
./remove-app.sh
|
|
|
|
---
|
|
|