Compare commits

...

7 Commits

Author SHA1 Message Date
a23afa721c kubi files 2025-11-26 18:04:01 +01:00
66fa81b7c5 .env-es jelszavak
Mostmár a jelszavak .env-ben vannak tárolva (és az elérhetőségek is)
2025-10-25 11:52:20 +02:00
Zombori Péter
1fe6e7e620 network fix 2025-10-08 21:02:12 +02:00
Zombori Péter
42e3d94c65 net update
hozzáadtam a telefonkonyv-net hálózatot, hogy lássák egymást
2025-10-08 20:47:34 +02:00
Zombori Péter
47cec4b5da readme title
Átírtam a redme címét
2025-10-08 18:53:09 +02:00
Zombori Péter
eab1e413c5 Readme Update
Módosítottam a readme-t szövegesebbre és látványosabbra
2025-10-08 18:51:35 +02:00
Zombori Péter
74b11ffc35 Adatbázis Séma
Kitaláltam egy egyszerű adatbázis sémát, és az init sql-be feltöltöttem
2025-10-08 18:51:02 +02:00
7 changed files with 223 additions and 16 deletions

4
.env Normal file
View File

@@ -0,0 +1,4 @@
MARIADB_ROOT_PASSWORD=rootpw
MARIADB_DATABASE=telefonkonyv
MARIADB_USER=appuser
MARIADB_PASSWORD=apppass

15
.gitignore vendored
View File

@@ -1,14 +1 @@
# ---> VirtualEnv
# Virtualenv
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
.Python
[Bb]in
[Ii]nclude
[Ll]ib
[Ll]ib64
[Ll]ocal
[Ss]cripts
pyvenv.cfg
.venv
pip-selfcheck.json
db_data

138
README.md
View File

@@ -1,3 +1,137 @@
# DB
# Adatbázis
Az adatbázis konfiguráció, ami tárolja a webalkalmazás adatait
Konténerizált MariaDB engine, ami tárolja a Telefonkönyv Webalkalmazás adatait.
## Táblák:
### users
| **id** | **uname** | **pw** | **admin** | **note**
| --- | --- | --- | --- | --- |
| *int* | *varchar* | *varchar* | *tiny int - bool* | *text* |
| *pk, ai* | *not null* | *not null* | *not null, default false* | *null* |
### contacts
| **id** | **name** | **phone** | **address** | **note**
| --- | --- | --- | --- | --- |
| *int* | *varchar* | *varchar* | *varchar* | *text* |
| *pk, ai* | *not null* | *not null* | *not null* | *null* |
## Futtatás:
Az adatbázis konténert a `docker-compose.yml` file írja le. Futtatása a következő:
### Indítás
```bash
docker compose up -d
```
> *Bizonyos operációs rendszereken `docker-compose up -d`*
Logokkal való indításhoz a `docker compose logs` használható, folyamatos debug logokért a következő indítóparancs használatos Windows-on:
```bash
docker compose up -d ; docker compose logs -f
```
> Linux alatt `docker compose up -d && docker compose logs -f`
> Vagy `docker-compose up -d && docker-compose logs -f`
### Leállítás
A konténer és hozzá tartozó network leállítása a következővel érhető el:
```bash
docker compose down
```
> *Bizonyos operációs rendszereken `docker-compose down`*
### Linux - *sudo* probléma
Néha Linux alatt - verziótól függően - gyakori probléma az, hogy minden docker és docker compose process *root* alatt fut. Ezért ilyenkör a következő parancsokkat érdemes használni:
```bash
# Indítás:
sudo docker compose up -d
# Logok:
sudo docker compose logs -f
# Indítás - logokkal:
sudo docker compose up -d && sudo docker compose logs -f
# Leállítás:
sudo docker compose down
```
Illetve a *Docker Compose* verziójától függően ugyan ez vonatkozik:
```bash
# Indítás:
sudo docker-compose up -d
# Logok:
sudo docker-compose logs -f
# Indítás - logokkal:
sudo docker-compose up -d && sudo docker-compose logs -f
# Leállítás:
sudo docker-compose down
```
### Windows
A Docker Dekstopot telepítve egyből lejön a `docker compose` parancs, amit cmd-ből, vagy PowerShell-ből tudunk használni, ugyan úgy, mint Linux alatt.
> #### Fontos!
> Fontos, hogy a cmd-t és a PowerShellt is ***adminisztrátorként*** futtassuk!
## Kapcsolódás
A kapcsolódás a szokásos MariaDB SQL portokon működik a következő módon:
- hostname: `localhost` vagy `127.0.0.1`
- port: `3306`
- database: `telefonkonyv`
- user: `appuser`
- password: `apppass`
> Az adatbázis *root* felhasználójának a jelszava: `rootpw`, De ezek az adatok is mind konfigurálhatóak a `docker-compose.yml`-ben
# Network
Ahhoz, hogy a telefonkönyv alkalmazás konténerjei lássák egymást, egy közös networkön kell lenniük a fejlesztési időszak alatt. Ehhez a `telefonkonyv-net` network-öt létrehozzuk mindegyik Compose file alján. Így ugyan nem számít a sorrend, ahogy fel "up"-oljuk a konténereket, de néha warning-ot fog dobni, hogy a network már létezik.
Tudjuk ellenőrizni, hogy fel connectelt-e minden konténer a
```bash
docker network inspect telefonkonyv-net
```
paranccsal. Ezzel a következőket kell lássuk az inspect közepén:
```JSON
{
...
"Containers": {
"...hash...": {
"Name": "telefonkonyv-api",
"EndpointID": "...hash...",
"MacAddress": "fa:25:0e:90:af:90",
"IPv4Address": "172.20.0.3/16",
"IPv6Address": ""
},
"...hash...": {
"Name": "telefonkonyv-db",
"EndpointID": "...hash..",
"MacAddress": "66:4f:c8:20:5c:5a",
"IPv4Address": "172.20.0.2/16",
"IPv6Address": ""
}
},
...
}
```

24
docker-compose.yml Normal file
View File

@@ -0,0 +1,24 @@
services:
mariadb:
image: mariadb:11
container_name: telefonkonyv-db
restart: always
environment:
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
MARIADB_DATABASE: ${MARIADB_DATABASE}
MARIADB_USER: ${appuser}
MARIADB_PASSWORD: ${apppass}
ports:
- "3306:3306"
volumes:
- ./db_data:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d
networks:
- telefonkonyv-net
volumes:
db_data:
networks:
telefonkonyv-net:
name: telefonkonyv-net

15
init/01_init.sql Normal file
View File

@@ -0,0 +1,15 @@
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
uname VARCHAR(255) NOT NULL,
pw VARCHAR(255) NOT NULL,
admin BOOLEAN DEFAULT FALSE,
note TEXT
);
CREATE TABLE IF NOT EXISTS contacts (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
phone VARCHAR(50) NOT NULL,
address VARCHAR(255),
note TEXT
);

View File

@@ -0,0 +1,30 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: telefonkonyv-db
namespace: szakdolgozat
spec:
replicas: 1
selector:
matchLabels:
app: telefonkonyv-db
template:
metadata:
labels:
app: telefonkonyv-db
spec:
containers:
- name: mariadb
image: mariadb:11
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
env:
- name: MARIADB_ROOT_PASSWORD
value: "rootpw"
- name: MARIADB_DATABASE
value: "telefonkonyv"
- name: MARIADB_USER
value: "appuser"
- name: MARIADB_PASSWORD
value: "apppass"

13
k8s/mariadb-service.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: telefonkonyv-db
namespace: szakdolgozat
spec:
type: NodePort
selector:
app: telefonkonyv-db
ports:
- port: 3306
targetPort: 3306
nodePort: 31306