From e5f834c34a89588e6cc453547bead630e1a79157 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Wed, 15 Jul 2026 11:00:14 +0000 Subject: [PATCH] Web: Repo-Link mit Gitea-Logo im Footer + Coolify-Deploy (nginx) - Footer der Web-App verlinkt aufs Gitea-Repo mit kleinem Gitea-Logo (inline SVG) - Dockerfile (nginx:alpine) liefert web/ statisch aus -> Coolify Git-Deploy - deploy/nginx.conf: CSP frame-ancestors erlaubt Einbettung als iframe nur von gaertner.onl; sw.js/manifest ungecacht; Dev-Artefakte (_*) werden geblockt Co-Authored-By: Claude Opus 4.8 --- Dockerfile | 9 +++++++++ deploy/nginx.conf | 22 ++++++++++++++++++++++ web/index.html | 20 +++++++++++++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 deploy/nginx.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..db5d01c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +# schattenpost Web/PWA — reine statische App hinter nginx. +# Coolify baut direkt aus dem Repo (Build Pack: Dockerfile). +FROM nginx:1.27-alpine + +# App-Shell (die _*-Dev-Helfer werden per nginx-Regel nicht ausgeliefert). +COPY web/ /usr/share/nginx/html/ +COPY deploy/nginx.conf /etc/nginx/conf.d/default.conf + +EXPOSE 80 diff --git a/deploy/nginx.conf b/deploy/nginx.conf new file mode 100644 index 0000000..fd825d5 --- /dev/null +++ b/deploy/nginx.conf @@ -0,0 +1,22 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + # App-Shell darf NUR von der eigenen Homepage als iframe eingebettet werden. + add_header Content-Security-Policy "frame-ancestors 'self' https://gaertner.onl https://*.gaertner.onl" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "no-referrer" always; + + # Service Worker & Manifest nie cachen -> App-Updates greifen sofort. + location = /sw.js { add_header Cache-Control "no-cache"; } + location = /manifest.webmanifest { add_header Cache-Control "no-cache"; } + + # Entwickler-/Test-Artefakte (_-Präfix) niemals ausliefern. + location ~ /_ { deny all; } + + location / { + try_files $uri $uri/ =404; + } +} diff --git a/web/index.html b/web/index.html index b5247cf..3f801f7 100644 --- a/web/index.html +++ b/web/index.html @@ -60,6 +60,10 @@ a.dl { display: block; margin-top: 10px; color: var(--accent); font-weight: 600; text-decoration: none; background: var(--panel2); border: 1px solid var(--border); border-radius: 8px; padding: 11px 13px; } footer { color: var(--muted); font-size: 12px; text-align: center; margin-top: 8px; line-height: 1.7; } + footer a.repo { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; + color: var(--muted); text-decoration: none; font-weight: 600; } + footer a.repo:hover { color: var(--accent); } + footer a.repo svg { display: block; flex: 0 0 auto; } code { background: var(--panel2); padding: 1px 5px; border-radius: 4px; font-size: 12.5px; } @@ -131,7 +135,21 @@