From d1f6d183e09741de3ae45efdf07a32125ba86b30 Mon Sep 17 00:00:00 2001 From: Lukas Remis Date: Thu, 1 Oct 2026 20:23:33 +0200 Subject: [PATCH] Serve the BIMI logo, favicon.ico and an apple-touch icon as real files ultimo.email is the webmail itself, so any path that was not a real file fell back to the app's index.html: /bimi/ultimo-logo.svg (the BIMI record's logo) and /favicon.ico both came back as the webmail page. They now ship in frontend/public, which nginx serves before the SPA fallback. The BIMI SVG moves there from frontend/icons, so there is one copy. Co-Authored-By: Claude Opus 5.5 --- frontend/index.html | 1 + frontend/public/apple-touch-icon.png | Bin 0 -> 3827 bytes .../bimi/ultimo-logo.svg} | 0 frontend/public/favicon.ico | Bin 0 -> 15086 bytes 4 files changed, 1 insertion(+) create mode 100644 frontend/public/apple-touch-icon.png rename frontend/{icons/ultimo-logo-bimi.svg => public/bimi/ultimo-logo.svg} (100%) create mode 100644 frontend/public/favicon.ico diff --git a/frontend/index.html b/frontend/index.html index 5d8022c..ee58609 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,6 +4,7 @@ + Ultimo Email diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..648f6a88f9213021d2521125b85381b8147dd8f0 GIT binary patch literal 3827 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 literal 0 HcmV?d00001 diff --git a/frontend/icons/ultimo-logo-bimi.svg b/frontend/public/bimi/ultimo-logo.svg similarity index 100% rename from frontend/icons/ultimo-logo-bimi.svg rename to frontend/public/bimi/ultimo-logo.svg diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2293c69639f13ff274afb9c56abc24240d884bce GIT binary patch literal 15086 zcmeHO3s98T6}}ssV5e=+cKS+fu+|0;@eTNbT^{n#3bL~Ds32AL(>b)0wu(WKwHpgy}e@PSZ}CX*)?L9WtqDI!P3(yZ8JQxjlDx|K;D^|1Jwz zYNq9%`8fAK_nhyXdzbyW|G5`JG$e}5nL|*{CwpcQl0pcXKi_lz9O^HjZrL*L{nrV} z`5YnfXoFqo;nAZY1np`x9=PwP;YXwH&YTt<-EP)Viz$O%MA>J~phrzQS4ndY`=ltO z!N8&pW>d?-4b+8T0^Dud00#(RI12x(zJT`E7gFZM{rW=q9k#D};Q9kf>h0q;CzRgR zWpsU2DPKnxVwt0)ie4**F?>Bl_&saEz_x)ok<>rk(?z>C=}EQZ^o&0(%jvyA&EcSzTh zJAkE}lv+~TrA63&li&NH6JAd~2@6s>rNdsmFMd+DbUmpX7~%@zuD8wa10a2n)B`Vh z^*;Xuhjcx`0nCd{PdZ?M8WQ@XB8Ah-Y{iSHU*5CGT~>Kcbte{ zr04T%%z-XrE*(R#kAxiRYRsjzqFBLtrfJwje}rI>#Qu%6H8@tVW=|14yk`q#A@Cmd z{SomB;;I+dQ2uH67Px~_B% zTx)QdY7KBFfP-`XQ|)iK%($~0&QzA+-+F(%T2XQD^Ri92vU)qjAXjGt>BNkN}0 zX#0ze2jR(3xuK0y$&G7GOQ3!BVX$Yl0h5v4CLVw0Vab4YPNi+;5tt?xld+W zaC}_5+S8BmwXP2;<7XPa7Dk%~3Om{7->BOs$5cwxJN@m0aUXGeig2PI zAUKbYJHA&Xz60Zrzbnb_Of0^aR`NNV%C*P=4XT`dAHVoGKL^xuU37tFO=axdXOTlP zsBtFr(wacdxE|-@2@d+9(tc4d{AK?4*z7>taPRrMB=WthKM!g?9&Y!>CH&iODDzk4cCRKjsbrUXYDPdSN0ZA_As%p zfKI8_$Lqzrizo{d@1Whwh`!xL(6M_9J%Tmi7A5MoPz&~Tq0J@4AYvF14*!EXJ#U(JCUp| zp+7`05voe)jmlCwePC8i?MEr;<@#u>NT*y7`&#w^P5ycFm=Fhaj!b!e`|J@ zz}GO|`|2^>x%@Spy6^TKus@)#uB_YNE3X7RaWOqtMFnie*khvj$9Q!BhhE5b*@y2 z?ahau_YhxO>tR7L--l4g6|rYzdocc+f*eM1j)iO1E&FIz(O${~cqX!0irFy!w*)z` zf_m}3Z{br?Q9%Qqt5HY2IAUabHaAEuf*kN14^0zA+teuOmHRnUepKg`(X;wTdr-JoXasFwz50_?@URCoG=$_B92cKD#$CUOo z7zKVT?YKDqbv8-wzn`esw>++%|N7%2E79j2p`ZWWr*A(K?O#i^y5`9_E9E*H7)5+* zLgc@?UDBtv15?Gx;QaCIVlmn}RqaJQ{`z-Ux4Tl6x$}0)2{4K{*R+f0Kec1kU1_dv~dk~&z`MRzF2u&N7;B97!PasDe#NqWEiSpR)r_wz?*WwUYb z_t_A3q4s`-ealb7dE)(EBezk+zx<3i|D|Uo{nB&5)UfP4)Gf!oyrt*pO|||==$4#= zmr}dgW5{I`@h$Hb=fAjH(l71-riR2G=*NBUTWWm~*8LvioDp#*g~%WGul2Z}=-Z?I zIJQHb`3*Dwz9a{mI~~CN=bub8XA#K%tnyhA$u^$re)j)6f5@3={CJkY7RfnRa^cy4 z{)ytpT^w1Z^ij6G=Mrcrj`%*vRr*A-jdN2QDmL~FPjv1A&*~ow!7+e`;5CuVS;;jI z&w}A+@K%WUjY@mfHs*)l@e{}~62Nmc{=)RvPvRU9hjHHsh&{sRRW)CM((}I;_<7>_ zo%mkYT7lWLs1q-v1Kcqh63S7nrypWHayZ5#2ckUEs_{sS$$6e2q?OAr60(}hIfTsS dlIIyp^89$eK>Fp6;~Lds-Z);IOuQzR{{gS*Dn