diff --git a/core/admin/mailu/ui/templates/base.html b/core/admin/mailu/ui/templates/base.html
index 73fa7aa7..c27776e2 100644
--- a/core/admin/mailu/ui/templates/base.html
+++ b/core/admin/mailu/ui/templates/base.html
@@ -13,6 +13,13 @@
{% block head %}
{{super()}}
+
+
+
+
+
+
+
{% block scripts %}
{{super()}}
diff --git a/core/nginx/Dockerfile b/core/nginx/Dockerfile
index 8b1a2bae..6afa8301 100644
--- a/core/nginx/Dockerfile
+++ b/core/nginx/Dockerfile
@@ -10,6 +10,7 @@ RUN apk add --no-cache certbot nginx nginx-mod-mail openssl curl \
&& pip3 install idna requests watchdog
COPY conf /conf
+COPY static /static
COPY *.py /
EXPOSE 80/tcp 443/tcp 110/tcp 143/tcp 465/tcp 587/tcp 993/tcp 995/tcp 25/tcp 10025/tcp 10143/tcp
diff --git a/core/nginx/conf/nginx.conf b/core/nginx/conf/nginx.conf
index c90f7806..1733f8c4 100644
--- a/core/nginx/conf/nginx.conf
+++ b/core/nginx/conf/nginx.conf
@@ -38,6 +38,8 @@ http {
{% if KUBERNETES_INGRESS != 'true' %}
# Main HTTP server
server {
+ # Favicon stuff
+ root /static;
# Variables for proxifying
set $admin {{ HOST_ADMIN }};
set $antispam {{ HOST_ANTISPAM }};
@@ -90,9 +92,9 @@ http {
{% if WEB_WEBMAIL != '/' %}
location / {
{% if WEBROOT_REDIRECT %}
- return 301 {{ WEBROOT_REDIRECT }};
+ try_files $uri $uri/ {{ WEBROOT_REDIRECT }};
{% else %}
- return 404;
+ try_files $uri $uri/ =404;
{% endif %}
}
{% endif %}
diff --git a/core/nginx/static/android-chrome-192x192.png b/core/nginx/static/android-chrome-192x192.png
new file mode 100644
index 00000000..86231db9
Binary files /dev/null and b/core/nginx/static/android-chrome-192x192.png differ
diff --git a/core/nginx/static/android-chrome-512x512.png b/core/nginx/static/android-chrome-512x512.png
new file mode 100644
index 00000000..f029c9fd
Binary files /dev/null and b/core/nginx/static/android-chrome-512x512.png differ
diff --git a/core/nginx/static/apple-touch-icon.png b/core/nginx/static/apple-touch-icon.png
new file mode 100644
index 00000000..b4f92f33
Binary files /dev/null and b/core/nginx/static/apple-touch-icon.png differ
diff --git a/core/nginx/static/browserconfig.xml b/core/nginx/static/browserconfig.xml
new file mode 100644
index 00000000..5aecc916
--- /dev/null
+++ b/core/nginx/static/browserconfig.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ #00aba9
+
+
+
diff --git a/core/nginx/static/favicon-16x16.png b/core/nginx/static/favicon-16x16.png
new file mode 100644
index 00000000..ff35d4b0
Binary files /dev/null and b/core/nginx/static/favicon-16x16.png differ
diff --git a/core/nginx/static/favicon-32x32.png b/core/nginx/static/favicon-32x32.png
new file mode 100644
index 00000000..2b6b749b
Binary files /dev/null and b/core/nginx/static/favicon-32x32.png differ
diff --git a/core/nginx/static/favicon.ico b/core/nginx/static/favicon.ico
new file mode 100644
index 00000000..f1f3fe03
Binary files /dev/null and b/core/nginx/static/favicon.ico differ
diff --git a/core/nginx/static/mstile-150x150.png b/core/nginx/static/mstile-150x150.png
new file mode 100644
index 00000000..04c609f7
Binary files /dev/null and b/core/nginx/static/mstile-150x150.png differ
diff --git a/core/nginx/static/safari-pinned-tab.svg b/core/nginx/static/safari-pinned-tab.svg
new file mode 100644
index 00000000..43cea812
--- /dev/null
+++ b/core/nginx/static/safari-pinned-tab.svg
@@ -0,0 +1,25 @@
+
+
+
diff --git a/core/nginx/static/site.webmanifest b/core/nginx/static/site.webmanifest
new file mode 100644
index 00000000..b20abb7c
--- /dev/null
+++ b/core/nginx/static/site.webmanifest
@@ -0,0 +1,19 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}