diff --git a/admin-server/auth.go b/admin-server/auth.go
index 47f3e62..cd15d37 100644
--- a/admin-server/auth.go
+++ b/admin-server/auth.go
@@ -143,6 +143,8 @@ func safePortalRedirect(raw string) string {
var portalLoginTemplate = template.Must(template.New("login").Parse(`
diff --git a/portal/500.html b/portal/500.html
index bd180fc..79b6d97 100644
--- a/portal/500.html
+++ b/portal/500.html
@@ -36,6 +36,8 @@
.error-page h1 { font-size:3rem; font-weight:800; margin-bottom:4px; color:var(--text-primary) }
.error-page p { color:var(--text-secondary); margin-bottom:28px; font-size:14px }
+
+
diff --git a/portal/web-icons/dashy-logo.png b/portal/web-icons/dashy-logo.png
new file mode 100644
index 0000000..0e73de6
Binary files /dev/null and b/portal/web-icons/dashy-logo.png differ
diff --git a/portal/web-icons/dashy-pwa_144x144.png b/portal/web-icons/dashy-pwa_144x144.png
new file mode 100644
index 0000000..21d2b62
Binary files /dev/null and b/portal/web-icons/dashy-pwa_144x144.png differ
diff --git a/portal/web-icons/dashy-pwa_192x192.png b/portal/web-icons/dashy-pwa_192x192.png
new file mode 100644
index 0000000..7c3b809
Binary files /dev/null and b/portal/web-icons/dashy-pwa_192x192.png differ
diff --git a/portal/web-icons/dashy-pwa_48x48.png b/portal/web-icons/dashy-pwa_48x48.png
new file mode 100644
index 0000000..48f1551
Binary files /dev/null and b/portal/web-icons/dashy-pwa_48x48.png differ
diff --git a/portal/web-icons/dashy-pwa_512x512.png b/portal/web-icons/dashy-pwa_512x512.png
new file mode 100644
index 0000000..0e73de6
Binary files /dev/null and b/portal/web-icons/dashy-pwa_512x512.png differ
diff --git a/portal/web-icons/dashy-pwa_72x72.png b/portal/web-icons/dashy-pwa_72x72.png
new file mode 100644
index 0000000..9417992
Binary files /dev/null and b/portal/web-icons/dashy-pwa_72x72.png differ
diff --git a/portal/web-icons/dashy-pwa_96x96.png b/portal/web-icons/dashy-pwa_96x96.png
new file mode 100644
index 0000000..acef1dd
Binary files /dev/null and b/portal/web-icons/dashy-pwa_96x96.png differ