Initial release
This commit is contained in:
parent
9e3f7b8a93
commit
cd6036eff4
11 changed files with 670 additions and 2 deletions
42
frontend/app.py
Normal file
42
frontend/app.py
Normal 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"
|
||||
})
|
Reference in a new issue