introduce nginex-proxy
use host ip if working in wsl
This commit is contained in:
@@ -1,6 +1,20 @@
|
||||
# server/wsgi.py
|
||||
import glob
|
||||
import os
|
||||
from flask import Flask, jsonify, send_from_directory
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from sqlalchemy import create_engine
|
||||
from models import Client, Base
|
||||
|
||||
from flask import Flask, jsonify
|
||||
DB_USER = os.getenv("DB_USER")
|
||||
DB_PASSWORD = os.getenv("DB_PASSWORD")
|
||||
DB_HOST = os.getenv("DB_HOST")
|
||||
DB_NAME = os.getenv("DB_NAME")
|
||||
|
||||
# Datenbank-Engine und Session anlegen (passe ggf. die DB-URL an)
|
||||
DB_URL = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}"
|
||||
engine = create_engine(DB_URL, echo=False)
|
||||
Session = sessionmaker(bind=engine)
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
@@ -14,3 +28,40 @@ def index():
|
||||
return "Hello from Infoscreen‐API!"
|
||||
|
||||
# (Weitere Endpunkte, Blueprints, Datenbank-Initialisierung usw. kommen hierher)
|
||||
@app.route("/screenshots/<uuid>")
|
||||
def get_screenshot(uuid):
|
||||
"""Liefert den aktuellen Screenshot für die angegebene UUID zurück."""
|
||||
print(f"Anfrage für Screenshot mit UUID: {uuid}")
|
||||
pattern = os.path.join("screenshots", f"{uuid}*.jpg")
|
||||
files = glob.glob(pattern)
|
||||
if not files:
|
||||
return jsonify({"error": "Screenshot not found"}), 404
|
||||
# Es gibt nur eine Datei pro UUID
|
||||
filename = os.path.basename(files[0])
|
||||
print(filename)
|
||||
print("Arbeitsverzeichnis:", os.getcwd())
|
||||
print("Suchmuster:", pattern)
|
||||
print("Gefundene Dateien:", files)
|
||||
return send_from_directory("screenshots", filename)
|
||||
|
||||
@app.route("/api/clients")
|
||||
def get_clients():
|
||||
# from models import Client # Import lokal, da im selben Container
|
||||
print("Abrufen der Clients aus der Datenbank...")
|
||||
session = Session()
|
||||
clients = session.query(Client).all()
|
||||
result = [
|
||||
{
|
||||
"uuid": c.uuid,
|
||||
"location": c.location,
|
||||
"hardware_hash": c.hardware_hash,
|
||||
"ip_address": c.ip_address,
|
||||
"last_alive": c.last_alive.isoformat() if c.last_alive else None
|
||||
}
|
||||
for c in clients
|
||||
]
|
||||
session.close()
|
||||
return jsonify(result)
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(host="0.0.0.0", port=8000, debug=True)
|
||||
Reference in New Issue
Block a user