Fix startup: correct watermark HTML concatenation; allow DATABASE env var; compose persists DB under /data; minor header css retains single Exit button
This commit is contained in:
18
app.py
18
app.py
@@ -26,7 +26,10 @@ def create_app():
|
|||||||
# For production, override via env var. This default is for local/dev only.
|
# For production, override via env var. This default is for local/dev only.
|
||||||
"dev-secret-change-me",
|
"dev-secret-change-me",
|
||||||
)
|
)
|
||||||
app.config["DATABASE"] = os.path.join(os.path.dirname(__file__), "app.db")
|
app.config["DATABASE"] = os.environ.get(
|
||||||
|
"DATABASE",
|
||||||
|
os.path.join(os.path.dirname(__file__), "app.db"),
|
||||||
|
)
|
||||||
|
|
||||||
# Admin credentials (can be overridden via env)
|
# Admin credentials (can be overridden via env)
|
||||||
app.config["ADMIN_USERNAME"] = os.environ.get("ADMIN_USERNAME", "ruslan")
|
app.config["ADMIN_USERNAME"] = os.environ.get("ADMIN_USERNAME", "ruslan")
|
||||||
@@ -223,13 +226,14 @@ def create_app():
|
|||||||
html = html + toolbar
|
html = html + toolbar
|
||||||
# Ensure watermark exists on published pages (top-left)
|
# Ensure watermark exists on published pages (top-left)
|
||||||
wm = (
|
wm = (
|
||||||
'<link rel="preconnect" href="https://fonts.googleapis.com">'
|
"<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">"
|
||||||
'<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>'
|
"<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>"
|
||||||
'<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">'
|
"<link href=\"https://fonts.googleapis.com/css2?family=Pacifico&display=swap\" rel=\"stylesheet\">"
|
||||||
'<div style="position:fixed;top:16px;left:16px;z-index:2147483647;'
|
"<div style=\"position:fixed;top:16px;left:16px;z-index:2147483647;"
|
||||||
"font-family:'Pacifico',cursive;letter-spacing:.2px;color:rgba(255,255,255,.92);"
|
"font-family:'Pacifico',cursive;letter-spacing:.2px;color:rgba(255,255,255,.92);"
|
||||||
'text-shadow:0 2px 8px rgba(0,0,0,.35);pointer-events:none;user-select:none;">'
|
"text-shadow:0 2px 8px rgba(0,0,0,.35);pointer-events:none;user-select:none;\">"
|
||||||
'Made by Ruslan'</div>'
|
"Made by Ruslan"
|
||||||
|
"</div>"
|
||||||
)
|
)
|
||||||
lower_all = html.lower()
|
lower_all = html.lower()
|
||||||
if "</body>" in lower_all:
|
if "</body>" in lower_all:
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ services:
|
|||||||
- SECRET_KEY=${SECRET_KEY:-prod-secret}
|
- SECRET_KEY=${SECRET_KEY:-prod-secret}
|
||||||
- ADMIN_USERNAME=${ADMIN_USERNAME:-ruslan}
|
- ADMIN_USERNAME=${ADMIN_USERNAME:-ruslan}
|
||||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-utOgbZ09ruslan}
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-utOgbZ09ruslan}
|
||||||
|
- DATABASE=/data/app.db
|
||||||
volumes:
|
volumes:
|
||||||
- appdb:/app/app.db
|
- appdb:/data
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
appdb: {}
|
appdb: {}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user