Initial release

This commit is contained in:
Julian Müller (ChaoticByte) 2023-04-30 12:16:48 +02:00
parent 9e3f7b8a93
commit cd6036eff4
11 changed files with 670 additions and 2 deletions

42
frontend/app.py Normal file
View file

@ -0,0 +1,42 @@
# Copyright (c) 2023 Julian Müller (ChaoticByte)
from pathlib import Path
from sanic import Sanic
from sanic import Request
from sanic import json
from sanic import redirect
# App
app = Sanic("Eucalyptus")
# Static files
static_dir = Path(__file__).parent / "static"
app.static("/ui", static_dir, index="index.html")
# Routes
@app.get("/")
async def redirect_to_ui(request: Request):
return redirect("/ui/")
@app.get("/config")
async def frontend_config(request: Request):
return json(app.config.frontend_config)
# Security Headers
@app.on_response
async def security_headers(_, response):
response.headers.update({
"X-Frame-Options": "deny",
"X-Content-Type-Options": "nosniff",
"Content-Security-Policy": f"default-src 'self'; style-src 'unsafe-inline' 'self'; connect-src 'self' {app.config.frontend_config['api_url']}",
"X-Permitted-Cross-Domain-Policies": "none",
"Referrer-Policy": "no-referrer",
"Cross-Origin-Embedder-Policy": "require-corp",
"Cross-Origin-Opener-Policy": "same-origin",
"Cross-Origin-Resource-Policy": "same-origin"
})