finish zadanie1
This commit is contained in:
parent
1d20a76005
commit
dbcb53e4b5
52
z1/README.md
52
z1/README.md
@ -0,0 +1,52 @@
|
||||
# Bank API
|
||||
|
||||
REST API pre základné bankové operácie postavené na Flask, MongoDB a Nginx.
|
||||
|
||||
## Architektúra
|
||||
|
||||
- **Nginx** — reverse proxy, statický frontend
|
||||
- **Backend** — Flask + Gunicorn REST API
|
||||
- **MongoDB** — databáza
|
||||
- **Fluent Bit** — zber logov
|
||||
|
||||
## Požiadavky
|
||||
|
||||
- Docker
|
||||
- Docker Compose
|
||||
|
||||
## Spustenie
|
||||
|
||||
```bash
|
||||
chmod +x prepare-app.sh start-app.sh stop-app.sh remove-app.sh
|
||||
./prepare-app.sh
|
||||
./start-app.sh
|
||||
```
|
||||
|
||||
Aplikácia bude dostupná na **http://localhost:80**
|
||||
|
||||
## Zastavenie
|
||||
|
||||
```bash
|
||||
./stop-app.sh
|
||||
```
|
||||
|
||||
Opätovné spustenie: `./start-app.sh` — dáta v databáze sa zachovajú.
|
||||
|
||||
## Odstránenie
|
||||
|
||||
```bash
|
||||
./remove-app.sh
|
||||
```
|
||||
|
||||
## API endpointy
|
||||
|
||||
Všetky endpointy prijímajú POST s JSON telom.
|
||||
|
||||
| Endpoint | Popis | Parametre |
|
||||
|---|---|---|
|
||||
| `/api/register` | Registrácia | `username`, `password` |
|
||||
| `/api/add` | Vklad | `username`, `password`, `amount` |
|
||||
| `/api/transfer` | Prevod | `username`, `password`, `to`, `amount` |
|
||||
| `/api/balance` | Zostatok | `username`, `password` |
|
||||
| `/api/take_loan` | Pôžička | `username`, `password`, `amount` |
|
||||
| `/api/pay_loan` | Splátka | `username`, `password`, `amount` |
|
||||
@ -7,12 +7,40 @@ services:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
depends_on:
|
||||
- fluent-bit
|
||||
logging:
|
||||
# используемый драйвер логгирования
|
||||
driver: "fluentd"
|
||||
options:
|
||||
# куда посылать лог-сообщения, необходимо что бы адрес
|
||||
# совпадал с настройками плагина forward
|
||||
fluentd-address: localhost:24224
|
||||
# теги используются для маршрутизации лог-сообщений, тема
|
||||
# маршрутизации будет рассмотрена ниже
|
||||
tag: nginx.logs
|
||||
command: [nginx-debug, '-g', 'daemon off;']
|
||||
restart: unless-stopped
|
||||
db:
|
||||
build:
|
||||
context: ./backend/db
|
||||
ports:
|
||||
- "27017:27017"
|
||||
volumes:
|
||||
- mongo-data:/data/db
|
||||
restart: unless-stopped
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
restart: unless-stopped
|
||||
|
||||
fluent-bit:
|
||||
container_name: fluent-bit
|
||||
image: fluent/fluent-bit
|
||||
ports:
|
||||
- 24224:24224
|
||||
- 24224:24224/udp
|
||||
volumes:
|
||||
- ./fluent-bit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
mongo-data:
|
||||
12
z1/fluent-bit/fluent-bit.conf
Normal file
12
z1/fluent-bit/fluent-bit.conf
Normal file
@ -0,0 +1,12 @@
|
||||
[INPUT]
|
||||
Name forward
|
||||
|
||||
[OUTPUT]
|
||||
Name stdout
|
||||
Match *
|
||||
[FILTER]
|
||||
Name record_modifier
|
||||
# для всех лог-сообщений
|
||||
Match *
|
||||
# оставить только поле log
|
||||
Whitelist_key log
|
||||
@ -1,3 +1,6 @@
|
||||
user nginx;
|
||||
worker_processes 1;
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
@ -5,6 +8,19 @@ http {
|
||||
upstream backend {
|
||||
server backend:5000;
|
||||
}
|
||||
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
log_format main 'access_log $remote_addr "$request" '
|
||||
'$status "$http_user_agent"';
|
||||
|
||||
access_log /var/log/nginx/access.log main;
|
||||
|
||||
sendfile on;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80;
|
||||
|
||||
4
z1/prepare-app.sh
Normal file
4
z1/prepare-app.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
docker network create app-network 2>/dev/null
|
||||
docker volume create mongo-data 2>/dev/null
|
||||
docker compose build
|
||||
4
z1/remove-app.sh
Normal file
4
z1/remove-app.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
docker compose down --rmi all --volumes
|
||||
docker volume rm mongo-data 2>/dev/null
|
||||
docker network rm app-network 2>/dev/null
|
||||
3
z1/start-app.sh
Normal file
3
z1/start-app.sh
Normal file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
docker compose up -d
|
||||
echo "Aplikácia je dostupná na http://localhost:80"
|
||||
2
z1/stop-app.sh
Normal file
2
z1/stop-app.sh
Normal file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
docker compose stop
|
||||
Loading…
Reference in New Issue
Block a user