zack commited on
Commit
08f3702
1 Parent(s): c702f23

✨ feat(frontend): add new Proxmox and socket components

Browse files

🔧 chore(frontend): update package.json and package-lock.json

🐛 fix(backend): adjust app.py for new API routes

🔥 chore(frontend): remove unused xterm.js component

📦 chore(frontend): update Dockerfile for new dependencies

backend/app.py CHANGED
@@ -1,4 +1,5 @@
1
  from flask import Flask, jsonify, request
 
2
  from flask_cors import CORS
3
  import socket
4
  import argparse
@@ -6,9 +7,11 @@ import argparse
6
  # import asyncio
7
  # from multiprocessing import Process
8
  import gradio as gr
 
9
 
10
  app = Flask(__name__)
11
  CORS(app)
 
12
 
13
  def portConnection(port : int):
14
  s = socket.socket(
@@ -99,6 +102,32 @@ def remove_port():
99
  def open_ports():
100
  return jsonify(visable)
101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
  if __name__ == "__main__":
104
 
@@ -108,3 +137,4 @@ if __name__ == "__main__":
108
  app.run(host="0.0.0.0", port=args.port, debug=True)
109
 
110
 
 
 
1
  from flask import Flask, jsonify, request
2
+ from flask_socketio import SocketIO, emit
3
  from flask_cors import CORS
4
  import socket
5
  import argparse
 
7
  # import asyncio
8
  # from multiprocessing import Process
9
  import gradio as gr
10
+ import requests
11
 
12
  app = Flask(__name__)
13
  CORS(app)
14
+ socketio = SocketIO(app, cors_allowed_origins="*")
15
 
16
  def portConnection(port : int):
17
  s = socket.socket(
 
102
  def open_ports():
103
  return jsonify(visable)
104
 
105
+ ## Proxmox API
106
+
107
+ @app.route('/addProxmoxVM', methods=['POST'])
108
+ def add_proxmox_vm():
109
+ data = request.json
110
+ # Save or process Proxmox VM data here
111
+ return {"status": "VM added"}, 200
112
+
113
+ @socketio.on('connect')
114
+ def handle_connect():
115
+ print('Client connected')
116
+
117
+ @socketio.on('disconnect')
118
+ def handle_disconnect():
119
+ print('Client disconnected')
120
+
121
+ @socketio.on('fetchVmData')
122
+ def handle_fetch_vm_data(data):
123
+ # Fetch VM data from Proxmox using the provided VM address
124
+ vm_data = requests.get(f"http://{data['vm_address']}/api2/json")
125
+ emit('vmData', vm_data.json())
126
+
127
+ if __name__ == '__main__':
128
+ socketio.run(app, debug=True, host='0.0.0.0')
129
+
130
+ ## Gradio API
131
 
132
  if __name__ == "__main__":
133
 
 
137
  app.run(host="0.0.0.0", port=args.port, debug=True)
138
 
139
 
140
+
frontend/Dockerfile CHANGED
@@ -1,4 +1,8 @@
1
  FROM node:16-alpine3.14
2
  WORKDIR /app
3
  COPY package*.json ./
4
- RUN npm install
 
 
 
 
 
1
  FROM node:16-alpine3.14
2
  WORKDIR /app
3
  COPY package*.json ./
4
+ RUN npm install
5
+ COPY . .
6
+ EXPOSE 3000
7
+ CMD ["npm", "start"]
8
+
frontend/package-lock.json CHANGED
The diff for this file is too large to render. See raw diff
 
frontend/package.json CHANGED
@@ -20,6 +20,7 @@
20
  "react-spring": "^9.5.5",
21
  "semantic-ui-css": "^2.4.1",
22
  "semantic-ui-react": "^2.1.3",
 
23
  "typescript": "^4.8.2",
24
  "web-vitals": "^2.1.4"
25
  },
 
20
  "react-spring": "^9.5.5",
21
  "semantic-ui-css": "^2.4.1",
22
  "semantic-ui-react": "^2.1.3",
23
+ "socket.io-client": "^4.7.4",
24
  "typescript": "^4.8.2",
25
  "web-vitals": "^2.1.4"
26
  },