Merge branch 'main' into gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf

# Conflicts:
#	.planning/config.json
This commit is contained in:
archipelago
2026-08-06 16:02:47 -04:00
26 changed files with 1438 additions and 67 deletions
@@ -18,6 +18,17 @@ server {
root /opt/archipelago/web-ui;
index index.html;
# This node's CA, for devices that have not trusted it yet. Deliberately
# unauthenticated and served over plain HTTP: a device fetches this BEFORE
# it can validate the node's own certificate, so requiring HTTPS or a login
# here would be a chicken-and-egg. It is a public certificate — never a key
# — and the dashboard shows its fingerprint so it can be checked on sight.
location = /ca.crt {
alias /etc/archipelago/ssl/ca-download.crt;
default_type application/x-x509-ca-cert;
add_header Content-Disposition 'attachment; filename="archipelago-node-ca.crt"';
}
# Security headers
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
@@ -964,6 +975,13 @@ server {
index index.html;
include snippets/archipelago-pwa.conf;
# Same CA download over HTTPS — see the note in the HTTP block above.
location = /ca.crt {
alias /etc/archipelago/ssl/ca-download.crt;
default_type application/x-x509-ca-cert;
add_header Content-Disposition 'attachment; filename="archipelago-node-ca.crt"';
}
# Security headers
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;