diff --git a/gbapp/Dockerfile b/gbapp/Dockerfile new file mode 100644 index 0000000..cf5f0e8 --- /dev/null +++ b/gbapp/Dockerfile @@ -0,0 +1,21 @@ +FROM python:3.13 +WORKDIR /opt + +COPY requirements.txt ./ +COPY app.py ./ +COPY models.py ./ +COPY templates ./templates +COPY static ./static + +RUN apt-get update && apt-get -y install sqlite3 + +RUN pip install --no-cache-dir -r requirements.txt + +RUN useradd app +RUN chown -R app:app . + +EXPOSE 8000 + +USER app + +CMD ["sh", "-c", "sleep 10 && uvicorn app:app --host 0.0.0.0 --port 8000"] diff --git a/gbapp/__pycache__/app.cpython-313.pyc b/gbapp/__pycache__/app.cpython-313.pyc new file mode 100644 index 0000000..77dea11 Binary files /dev/null and b/gbapp/__pycache__/app.cpython-313.pyc differ diff --git a/gbapp/__pycache__/forms.cpython-313.pyc b/gbapp/__pycache__/forms.cpython-313.pyc new file mode 100644 index 0000000..1b05695 Binary files /dev/null and b/gbapp/__pycache__/forms.cpython-313.pyc differ diff --git a/gbapp/__pycache__/models.cpython-313.pyc b/gbapp/__pycache__/models.cpython-313.pyc new file mode 100644 index 0000000..49b1ca4 Binary files /dev/null and b/gbapp/__pycache__/models.cpython-313.pyc differ diff --git a/gbapp/__pycache__/ordinateur.cpython-313.pyc b/gbapp/__pycache__/ordinateur.cpython-313.pyc new file mode 100644 index 0000000..1f2a111 Binary files /dev/null and b/gbapp/__pycache__/ordinateur.cpython-313.pyc differ diff --git a/app.py b/gbapp/app.py similarity index 95% rename from app.py rename to gbapp/app.py index 1c6ac66..dfff502 100644 --- a/app.py +++ b/gbapp/app.py @@ -19,9 +19,16 @@ templates = Jinja2Templates(directory="templates") #sqlitemodel sqlite_file_name = "mydb.db" -sqlite_url = f"sqlite:///mydb.db" - -engine = create_engine(sqlite_url) +import os +pg_url = ( + f"postgresql+psycopg://" + f"{os.getenv('POSTGRES_USER')}:" + f"{os.getenv('POSTGRES_PASSWORD')}" + f"@db:5432/" + f"{os.getenv('POSTGRES_DB')}" +) +print(f"URL PGDB: {pg_url}") +engine = create_engine(pg_url) def create_db_and_tables(): SQLModel.metadata.create_all(engine) diff --git a/gbapp/gbcompose.yml b/gbapp/gbcompose.yml new file mode 100644 index 0000000..be1bb34 --- /dev/null +++ b/gbapp/gbcompose.yml @@ -0,0 +1,20 @@ +services: + grabber: + build: . + depends_on: + db: + condition: service_started + ports: + - "8080:80" + environment: + POSTGRES_USER: gb + POSTGRES_PASSWORD: gbpwd + POSTGRES_DB: gbdb + db: + image: postgres:18 + environment: + POSTGRES_USER: gb + POSTGRES_PASSWORD: gbpwd + POSTGRES_DB: gbdb + + diff --git a/models.py b/gbapp/models.py similarity index 93% rename from models.py rename to gbapp/models.py index 36540ed..fccf38a 100644 --- a/models.py +++ b/gbapp/models.py @@ -33,10 +33,7 @@ class ordinateur(SQLModel, table=True): cpu_freq_max: str = Field(index=True) cpu_id: str = Field(index=True) mb_serial: str = Field(index=True) - ram_size: str = Field(index=True) - ram_gen: str = Field(index=True) - sizes: str = Field(index=True) - memory_mb: str = Field(index=True) + ram: str = Field(index=True) gpu_model: str = Field(index=True) chassis_serial: str = Field(index=True) cpu_cores_nb: str = Field(index=True) diff --git a/requirements.txt b/gbapp/requirements.txt similarity index 93% rename from requirements.txt rename to gbapp/requirements.txt index 101e659..fd6055e 100644 --- a/requirements.txt +++ b/gbapp/requirements.txt @@ -9,7 +9,9 @@ greenlet==3.3.1 h11==0.16.0 idna==3.11 Jinja2==3.1.6 +lastapi==0.2 MarkupSafe==3.0.3 +psycopg[binary] pydantic==2.12.5 pydantic_core==2.41.5 python-multipart==0.0.22 diff --git a/templates/employee_form.html b/gbapp/templates/employee_form.html similarity index 100% rename from templates/employee_form.html rename to gbapp/templates/employee_form.html diff --git a/templates/employees.html b/gbapp/templates/employees.html similarity index 100% rename from templates/employees.html rename to gbapp/templates/employees.html diff --git a/templates/item.html b/gbapp/templates/item.html similarity index 84% rename from templates/item.html rename to gbapp/templates/item.html index 1990bd7..7717e05 100644 --- a/templates/item.html +++ b/gbapp/templates/item.html @@ -36,20 +36,8 @@ {{ordi.cpu_id}} - Memory mb - {{ordi.memory_mb}} - - - Ram size - {{ordi.ram_size}} - - - Ram gen - {{ordi.ram_gen}} - - - Sizes - {{ordi.sizes}} + Ram + {{ordi.ram}} Mb serial @@ -83,11 +71,6 @@ CPU threads number {{ordi.cpu_threads_nb}} - - Ram number - {{ordi.ram_number}} - - Ram slots number {{ordi.ram_slots_nb}} @@ -127,4 +110,4 @@ - \ No newline at end of file + diff --git a/grabber.sh b/grabber.sh index 56151a8..27e7d1f 100755 --- a/grabber.sh +++ b/grabber.sh @@ -11,7 +11,7 @@ OS=$(lsb_release -a |grep Description |cut -f2) CPU_ID=$(sudo dmidecode -t processor |grep ID |cut -d: -f2) RAM_SIZE=$(lsmem |grep "Mémoire partagée" |cut -d: -f2 |sed 's/\ //g') RAM_GEN=$(sudo dmidecode -t memory |grep Type: |grep -v Unknown |tail -n1 |cut -d: -f2 |sed 's/\ //') -SIZES=$(lsblk -dnb | grep -v loop | grep -v boot | tr -s " " | cut -d' ' -f4) +RAM="$RAM_SIZE $RAM_GEN" MB_SERIAL=$(sudo dmidecode | grep -A 4 "Base Board" | tail -n1 | cut -d: -f2 | sed 's/\ //') CPU_FREQUENCY_MIN=$(lscpu | grep MHz | cut -d: -f2 | sed -n '3p' | tr -s " " | sed 's/\ //' | cut -d, -f1) CPU_FREQUENCY_CUR=$(sudo dmidecode | grep "MHz" | cut -d: -f2 | sed -n '3p' | sed 's/\ //') @@ -41,9 +41,9 @@ MAC_ADDRESS=$(cat /sys/class/net/$(ls /sys/class/net | grep -vE '^(lo|docker|vet USED_SPACE=$(lsblk -nr -o FSUSED| sed -n 2p) #LISTE D'INFO PAR DISK -DISK_NAMES=$(lsblk -nr -o PKNAME,PATH $disk_path |grep -vE "^ " |cut -d \ -f3) +DISK_NAMES=$(lsblk -nr -o NAME) FSTYPES=$(lsblk -nr -o FSTYPE) -ALL_SIZES=$(lsblk -nr -o size) +ALL_SIZES=$(lsblk -nr -o SIZE) ALL_USED=$(lsblk -nr -o FSUSED) ###################################################### @@ -53,10 +53,7 @@ json_data=$(jq -n \ --arg host "$HOSTNAME" \ --arg cpu "$CPU" \ --arg cpu_id "$CPU_ID" \ - --arg mem "$MEM" \ - --arg ram_size "$RAM_SIZE" \ - --arg ram_gen "$RAM_GEN" \ - --arg sizes "$SIZES" \ + --arg ram "$RAM" \ --arg mb_serial "$MB_SERIAL" \ --arg cpu_freq_min "$CPU_FREQUENCY_MIN" \ --arg cpu_freq_cur "$CPU_FREQUENCY_CUR" \ @@ -81,23 +78,26 @@ json_data=$(jq -n \ '{ HARDWARE: { hostname:$host, + ipv4:$ipv4, + mac:$mac_address, + partitions: { + nom:$nom_disk, + fstype:$fstype, + total_size:$total_size, + used_space:$used_space + }, cpu:$cpu, cpu_id:$cpu_id, - memory_mb:$mem, - ram_size:$ram_size, - ram_gen: $ram_gen, - sizes:$sizes, + ram:$ram, mb_serial:$mb_serial, cpu_freq_min:$cpu_freq_min, cpu_freq_cur:$cpu_freq_cur, cpu_freq_max:$cpu_freq_max, - gpu_model:$gpu_model, - chassis_serial:$chassis_serial, cpu_cores_nb:$cpu_cores_nb, cpu_threads_nb:$cpu_threads_nb, - ram_number:$ram_number, - ram_slots_nb:$ram_slots_nb, - mac_address:$mac_address, + gpu_model:$gpu_model, + chassis_serial:$chassis_serial, + ram_slots_nb:$ram_slots_nb, }, SOFTWARE: { @@ -107,23 +107,12 @@ json_data=$(jq -n \ wm:$wm, kernel:$kernel, }, - - EVALUATION: { - hostname:$host, - ipv4:$ipv4, - mac:$mac_address, - partitions: { - nom:$nom_disk, - fstype:$fstype, - total_size:$total_size, - used_space:$used_space - } - } + }') echo "arg1=$1" -curl -X POST http://$1:8000/endpoint \ +curl -X POST -k http://$1:8000/endpoint \ -H "Content-Type: application/json" \ -d "$json_data" diff --git a/mydb.db b/mydb.db index 91ac563..8645a70 100644 Binary files a/mydb.db and b/mydb.db differ diff --git a/wp/Dockerfile b/wp/Dockerfile new file mode 100644 index 0000000..0553237 --- /dev/null +++ b/wp/Dockerfile @@ -0,0 +1,2 @@ +FROM php +RUN wget wp.zip diff --git a/wp/compose.yml b/wp/compose.yml new file mode 100644 index 0000000..e4dfc53 --- /dev/null +++ b/wp/compose.yml @@ -0,0 +1,29 @@ +services: + + wordpress: + image: wordpress:latest + restart: always + ports: + - 80:80 + environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: exampleuser + WORDPRESS_DB_PASSWORD: examplepass + WORDPRESS_DB_NAME: exampledb + volumes: + - wordpress:/var/www/html + + db: + image: mysql:8.0 + restart: always + environment: + MYSQL_DATABASE: exampledb + MYSQL_USER: exampleuser + MYSQL_PASSWORD: examplepass + MYSQL_RANDOM_ROOT_PASSWORD: '1' + volumes: + - db:/var/lib/mysql + +volumes: + wordpress: + db: