index.html 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
  6. <!-- Favicons - will be updated dynamically if custom logo exists -->
  7. <link rel="icon" type="image/x-icon" href="/static/favicon.ico" id="favicon-ico" />
  8. <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon-32x32.png" id="favicon-32" />
  9. <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon-16x16.png" id="favicon-16" />
  10. <link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png" id="apple-touch-icon" />
  11. <link rel="manifest" href="/static/site.webmanifest" />
  12. <title>Dune Weaver</title>
  13. <!-- Check for custom favicon -->
  14. <script>
  15. fetch('/api/settings')
  16. .then(r => r.json())
  17. .then(settings => {
  18. if (settings.app && settings.app.custom_logo) {
  19. document.getElementById('favicon-ico').href = '/static/custom/favicon.ico';
  20. document.getElementById('apple-touch-icon').href = '/static/custom/' + settings.app.custom_logo;
  21. }
  22. if (settings.app && settings.app.name) {
  23. document.title = settings.app.name;
  24. }
  25. })
  26. .catch(() => {});
  27. </script>
  28. </head>
  29. <body>
  30. <div id="root"></div>
  31. <script type="module" src="/src/main.tsx"></script>
  32. </body>
  33. </html>