Upload app.py
Browse files
app.py
CHANGED
|
@@ -18,6 +18,7 @@ from datetime import datetime, timezone
|
|
| 18 |
|
| 19 |
from dotenv import load_dotenv
|
| 20 |
from flask import Flask, request, jsonify, render_template, session
|
|
|
|
| 21 |
|
| 22 |
import database
|
| 23 |
import stt
|
|
@@ -33,10 +34,13 @@ AUDIO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "static", "
|
|
| 33 |
def create_app():
|
| 34 |
flask_app = Flask(__name__)
|
| 35 |
flask_app.secret_key = os.environ["SECRET_KEY"]
|
| 36 |
-
# Hugging Face Spaces (and
|
| 37 |
-
#
|
| 38 |
-
#
|
| 39 |
-
#
|
|
|
|
|
|
|
|
|
|
| 40 |
flask_app.config["SESSION_COOKIE_SECURE"] = True
|
| 41 |
flask_app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
|
| 42 |
os.makedirs(AUDIO_DIR, exist_ok=True)
|
|
|
|
| 18 |
|
| 19 |
from dotenv import load_dotenv
|
| 20 |
from flask import Flask, request, jsonify, render_template, session
|
| 21 |
+
from werkzeug.middleware.proxy_fix import ProxyFix
|
| 22 |
|
| 23 |
import database
|
| 24 |
import stt
|
|
|
|
| 34 |
def create_app():
|
| 35 |
flask_app = Flask(__name__)
|
| 36 |
flask_app.secret_key = os.environ["SECRET_KEY"]
|
| 37 |
+
# Hugging Face Spaces (and Render) sit behind a reverse proxy that
|
| 38 |
+
# terminates HTTPS and forwards requests to gunicorn as plain HTTP.
|
| 39 |
+
# Without ProxyFix, Flask sees every request as HTTP, which means
|
| 40 |
+
# SESSION_COOKIE_SECURE=True would silently stop Flask from ever
|
| 41 |
+
# sending the session cookie. ProxyFix reads X-Forwarded-Proto so
|
| 42 |
+
# Flask correctly treats the request as HTTPS end-to-end.
|
| 43 |
+
flask_app.wsgi_app = ProxyFix(flask_app.wsgi_app, x_for=1, x_proto=1, x_host=1)
|
| 44 |
flask_app.config["SESSION_COOKIE_SECURE"] = True
|
| 45 |
flask_app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
|
| 46 |
os.makedirs(AUDIO_DIR, exist_ok=True)
|