From 9312a324953136462a4b94ed0cfda86eac56df3c Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Mon, 28 Sep 2026 09:13:57 +0200 Subject: [PATCH] Serve linkding's favicons and preview images (#17557) linkding stores them in data/favicons and data/previews and upstream maps both under /static next to the collected assets, with a sandbox CSP. The nginx site only aliased the collected assets, so every downloaded image answered 404; the update rewrites that block even without a new release. --- ct/linkding.sh | 10 ++++++++++ install/linkding-install.sh | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ct/linkding.sh b/ct/linkding.sh index 9cdb60212..c41b7c41b 100644 --- a/ct/linkding.sh +++ b/ct/linkding.sh @@ -32,6 +32,16 @@ function update_script() { exit fi + if grep -q 'alias /opt/linkding/static/;' /etc/nginx/sites-available/linkding 2>/dev/null; then + msg_info "Serving Favicons and Preview Images" + sed -i \ + -e 's|location /static/ {|location ~ ^/static/(.*)$ {|' \ + -e 's|alias /opt/linkding/static/;|root /opt/linkding;\n try_files /static/$1 /data/favicons/$1 /data/previews/$1 =404;\n add_header Content-Security-Policy "sandbox";|' \ + /etc/nginx/sites-available/linkding + $STD systemctl reload nginx + msg_ok "Serving Favicons and Preview Images" + fi + if check_for_gh_release "linkding" "sissbruecker/linkding"; then msg_info "Stopping Services" systemctl stop nginx linkding linkding-tasks diff --git a/install/linkding-install.sh b/install/linkding-install.sh index 0dc777fef..cf90d016b 100644 --- a/install/linkding-install.sh +++ b/install/linkding-install.sh @@ -101,8 +101,10 @@ server { client_max_body_size 20M; - location /static/ { - alias /opt/linkding/static/; + location ~ ^/static/(.*)$ { + root /opt/linkding; + try_files /static/$1 /data/favicons/$1 /data/previews/$1 =404; + add_header Content-Security-Policy "sandbox"; expires 30d; }