From f4fefa522a29ce41b809263fb8a84310776d611b Mon Sep 17 00:00:00 2001 From: "Satur@it-depot.ru" Date: Tue, 4 Mar 2025 10:09:53 +0300 Subject: [PATCH] init --- backend/Dockerfile | 5 +++ backend/main.py | 73 ++++++++++++++++++++++++++++++++++ db/rustdesk.db | Bin 0 -> 12288 bytes db_v2.sqlite3 | Bin 0 -> 24576 bytes db_v2.sqlite3-shm | Bin 0 -> 32768 bytes db_v2.sqlite3-wal | Bin 0 -> 82432 bytes docker-compose.yml | 16 ++++++++ frontend/Dockerfile | 5 +++ frontend/app.py | 16 ++++++++ frontend/templates/index.html | 69 ++++++++++++++++++++++++++++++++ id_ed25519 | 1 + id_ed25519.pub | 1 + rustdesk.db | 0 13 files changed, 186 insertions(+) create mode 100644 backend/Dockerfile create mode 100644 backend/main.py create mode 100644 db/rustdesk.db create mode 100644 db_v2.sqlite3 create mode 100644 db_v2.sqlite3-shm create mode 100644 db_v2.sqlite3-wal create mode 100644 docker-compose.yml create mode 100644 frontend/Dockerfile create mode 100644 frontend/app.py create mode 100644 frontend/templates/index.html create mode 100644 id_ed25519 create mode 100644 id_ed25519.pub create mode 100644 rustdesk.db diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..86b1e36 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.9 +WORKDIR /app +COPY . . +RUN pip install fastapi uvicorn +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "6661"] diff --git a/backend/main.py b/backend/main.py new file mode 100644 index 0000000..e6127c2 --- /dev/null +++ b/backend/main.py @@ -0,0 +1,73 @@ +from fastapi import FastAPI, HTTPException +from pydantic import BaseModel +import sqlite3 +import datetime + +app = FastAPI() + +# Создаем соединение с базой данных +conn = sqlite3.connect("/db/rustdesk.db", check_same_thread=False) +cursor = conn.cursor() + +# Создаем таблицу, если её нет +cursor.execute(""" +CREATE TABLE IF NOT EXISTS installs ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + rust_id TEXT, + computer_name TEXT, + install_time TEXT +) +""") +conn.commit() + +# Модель данных +class InstallData(BaseModel): + rust_id: str + computer_name: str + install_time: str + +# Маршрут для получения всех записей +@app.get("/api/installs") +def get_installs(): + cursor.execute("SELECT * FROM installs") + rows = cursor.fetchall() + # Преобразуем результаты в список словарей + result = [] + for row in rows: + result.append({ + "id": row[0], + "rust_id": row[1], + "computer_name": row[2], + "install_time": row[3] + }) + return result + +# Маршрут для добавления новой записи +@app.post("/api/install") +def add_install(data: InstallData): + cursor.execute("INSERT INTO installs (rust_id, computer_name, install_time) VALUES (?, ?, ?)", + (data.rust_id, data.computer_name, data.install_time)) + conn.commit() + return {"status": "success"} + +# Добавляем маршрут для удаления записи +@app.delete("/api/delete/{install_id}") +async def delete_install(install_id: int): + try: + cursor.execute("DELETE FROM installs WHERE id = ?", (install_id,)) + conn.commit() + if cursor.rowcount == 0: + raise HTTPException(status_code=404, detail="Запись не найдена") + return {"status": "success"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + +from fastapi.middleware.cors import CORSMiddleware + +app.add_middleware( + CORSMiddleware, + allow_origins=["http://10.0.0.10:8080", "http://localhost:8080"], # Добавляем localhost + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) \ No newline at end of file diff --git a/db/rustdesk.db b/db/rustdesk.db new file mode 100644 index 0000000000000000000000000000000000000000..cf8b418e91e797c64e17dcfefd109cce069d7519 GIT binary patch literal 12288 zcmeI2O>Wyp6o7|zoCL8b1~5>=2!yadi0B`tGxKJK!&x+yQ#KWBtB%bic7eih92F2? zJB=kDpjmX0Z8kYVcfCNDy+Ri~KzHq?C+H(35>^(ey9!Xe0VRr~kMHN3(L#`RA8rmt z{qVczXD5fF5ZF!TdF=BrWQ@JS$1Fao;o*xb)dil5>wg=s*xe(~M`|XRXTi7lM1u^F z0Wv@a$N(8217v^65$3yn9|gDXwfyxIJ@`D63<;AODq|Kb1Q5Bz(LH~t5Wzk;6{ zzxuC(-x}+U#rZ$q?=n$#GC&5%02v?yWPl8i0Wv@aE@Qxd%~mhNA@kqRmCHrNplg>S z8C&^mj@`ZuQVW}C3w*P?n?LTvf=e!S%w;T-P#7n<1KIA*vDPg}z#65k?rv}>`RXbpevE$rg zIwH2NRr}Mr9qfFPddj47+&IA*iyGsGv{FW-iS0dJ&tqOY5~`31+zE*0D^d!jcv6z0 zmV{*C+&ZlT!9IHTy0;g~mZenOC?RG3Rm?9W#T67N+leGGlNAv)#O2ouZi( z_k{z4eEZ$alWuaK276ydOJ9{y=wMQumj|v=zPwvdIr6te?w}!&TvD#`0i!u|Z zgwsiMf6{nrtT8azfDDiUGC&5%02%n-7-)F2EwB2sLGK?6TLbR^ literal 0 HcmV?d00001 diff --git a/db_v2.sqlite3 b/db_v2.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..720caf91f9f4f7f1082c83c082574f51645cb55c GIT binary patch literal 24576 zcmeI&%WD%s90%}C(ncw?5j5nW(jfDrN2%2_U@LZh z!0CFo9cXXsZYR4sx3?c5Wg#SM5+{r_&Augcti~Hi`dy=?8C8oaHr09*+X=6&mbDmG z%v^jewARJ}?`(5W+Z6%$dP6p?2&t>Uu+uG4S2USN(+VMO~md<3;Bxf1@iZw#| z=m;^hHZk*=Ot>tbMGq>L+N)Si0?&v35}7Y#uAVK|H~ZPuBZ~e+W9QH|`f1@aiAHrL zpRt?Nyk$|-?r}!hrO=-Xl@~s95}b*a56xaZ#5T+k!?erCS#`89Yl+ReJj5{dEV1b@ zW1FMDDp8`W?KeHJuT>Jgr|vkBo<5Xk!CSY zBeIy*<+v*HDpl9t&b*$!VZKtuoj)b<@u#cZm(SjP_;U02kINt3iVaVRycm!0Vnm1$ zK}tz-N=l3dja)DlOr> za`EPB?ujlu^+d~y5-S!Z3UY94X8rGb!1*5drWevFMy(Kl00bZa0SG_<0uX=z1Rwx` zr6;h)(-JAOHafKmY;|fB*y_009Ur zY=M;?E?l}1;Jj9O{XfC^Uiu~$_KZX#;#fs|^)63%RWBSkY zyV-f}cCYr=^LzStw3~j?^iI>eP0zXVnY^F(^7^5*w513TAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0tAj;pq1{D=*DTB9eq*(36vIS$1ujFhnh#A3V}|X$5j_2&*?U(j6Y0Pscu#&?Trhwi|l{AQvdDr%X`1v-usIDlsfhKkNc-I zt37wW)4Zh7FNuOL6mEA(f>nOEMx&Z72y$Od{HDB3Y0CQxqK{&C(eV`v5?VLMEqXC9SFIFjN#pS|IcmGbzNfo8uXzeS3y6eNGJ(;t+wUzfK|Ope+rk2<@HKj;eylDI}@ zi_@ja>4nvPsWlXlgm7rJ-z)ES(c}C?yx^g|dhLk=-pj?x{um1-jEy~$Q6PW-0tg_0 z00IagfB*srAb>zFfwX*q@^dAIQ(gPJhRGMurmRSbD_nEFfM%jb&KHpHXb2#H00Iag zfB*srAbvKH<szpi5bu5?8q9`T~U|x@5k9{E&tK0tg_0 z00IagfB*srjFQ0OLS6a2W$L!f+5On%&X{zxdWmir`$Ag zJ!k!##)kOS3yPzs^{3peh{zcL?m);bbcFrwu5hQ&CUy$JkR${nfq)^aKluXJCtpB0 z8rLQA1^RlsoSkz#JIEIprGG_yECL81fB*srAb@JVR=e1S)j3!Hs$7nOxR2v;8o6qR5x=ePf-Q{rmYCrq4 z^)26<=U>&ItbF-5-9H;on=j5ZY=7JxoK}^d&eKt|*$5zj z00IagfB*srAb9 z00IagfB*srAbNDF>JDnUzo?$$xv-ghfqeKSvyBKKfB*sr zAb%q{d#6z)yCyt9XvR9<4kLf#bUBK9A=Zr?sJ=c9-~Q=tNYn( zH6~-NrCKyPEN-8p+G83i1kgKXYc;I5Me^LJ~XDlvoOs+dvdTcz3GG+u2KmY**5I_I{1Q0*~ z0R-|{Ksje1Ge9uJc?4;72miX|lfoU+`KDN0pj)mxSlXS>4s1ID2q1s}0tg_000Iag zfB*txOCWba!J5n + + + + Установки RustDesk + + + + + + +

Установки RustDesk

+ + + + + + + + + + + +
IDRust IDИмя компьютераВремя установкиДействие
+ + diff --git a/id_ed25519 b/id_ed25519 new file mode 100644 index 0000000..b6495d1 --- /dev/null +++ b/id_ed25519 @@ -0,0 +1 @@ +mTw9iat3pA3TccDTjkWWnxaD+bYS9CCelt/DLdBB0wgVLAAM2LqeF0OOgARmU+LVmiKGQ3c53XbsyPJw4O8gvw== \ No newline at end of file diff --git a/id_ed25519.pub b/id_ed25519.pub new file mode 100644 index 0000000..5c72e8d --- /dev/null +++ b/id_ed25519.pub @@ -0,0 +1 @@ +FSwADNi6nhdDjoAEZlPi1ZoihkN3Od127MjycODvIL8= \ No newline at end of file diff --git a/rustdesk.db b/rustdesk.db new file mode 100644 index 0000000..e69de29