umami site analytics
This commit is contained in:
19
app.py
19
app.py
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
from flask import Flask, render_template, redirect, url_for, request, flash
|
||||
from flask import Flask, render_template, redirect, url_for, request, flash, Response
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_login import (
|
||||
LoginManager,
|
||||
@@ -58,7 +59,21 @@ class MealPlan(db.Model):
|
||||
def load_user(user_id):
|
||||
return User.query.get(int(user_id))
|
||||
|
||||
|
||||
UMAMI_LOCAL_URL = "http://192.168.0.37:3007"
|
||||
@app.route('/stats/<path:path>', methods=['GET', 'POST'])
|
||||
def umami_proxy(path):
|
||||
url = f"{UMAMI_LOCAL_URL}/{path}"
|
||||
|
||||
# Forward the request to Umami (including headers and data)
|
||||
if request.method == 'POST':
|
||||
resp = requests.post(url, json=request.json, headers=request.headers)
|
||||
else:
|
||||
resp = requests.get(url, params=request.args, headers=request.headers)
|
||||
# Clean up headers to avoid encoding issues
|
||||
excluded_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection']
|
||||
headers = [(name, value) for (name, value) in resp.raw.headers.items()
|
||||
if name.lower() not in excluded_headers]
|
||||
return Response(resp.content, resp.status_code, headers)
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
|
||||
BIN
requirements.txt
BIN
requirements.txt
Binary file not shown.
@@ -7,6 +7,15 @@
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
||||
</head>
|
||||
|
||||
<script
|
||||
defer
|
||||
src="/stats/script.js"
|
||||
data-website-id="4909e1da-6d66-4035-a401-f2acbaebdd3b"
|
||||
data-host-url="/stats">
|
||||
</script>
|
||||
|
||||
|
||||
<body class="bg-gray-50 text-gray-900 font-sans">
|
||||
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
|
||||
Reference in New Issue
Block a user