diff --git a/assets/icon/icon_web.png b/assets/icon/icon_web.png
new file mode 100644
index 00000000..b4d57618
Binary files /dev/null and b/assets/icon/icon_web.png differ
diff --git a/web/android-icon-144x144.png b/web/android-icon-144x144.png
new file mode 100644
index 00000000..b8254161
Binary files /dev/null and b/web/android-icon-144x144.png differ
diff --git a/web/android-icon-192x192.png b/web/android-icon-192x192.png
new file mode 100644
index 00000000..b53381f9
Binary files /dev/null and b/web/android-icon-192x192.png differ
diff --git a/web/android-icon-36x36.png b/web/android-icon-36x36.png
new file mode 100644
index 00000000..82b85c4a
Binary files /dev/null and b/web/android-icon-36x36.png differ
diff --git a/web/android-icon-48x48.png b/web/android-icon-48x48.png
new file mode 100644
index 00000000..a20e211c
Binary files /dev/null and b/web/android-icon-48x48.png differ
diff --git a/web/android-icon-72x72.png b/web/android-icon-72x72.png
new file mode 100644
index 00000000..c476584d
Binary files /dev/null and b/web/android-icon-72x72.png differ
diff --git a/web/android-icon-96x96.png b/web/android-icon-96x96.png
new file mode 100644
index 00000000..b9e5e3b2
Binary files /dev/null and b/web/android-icon-96x96.png differ
diff --git a/web/apple-icon-114x114.png b/web/apple-icon-114x114.png
new file mode 100644
index 00000000..7be952ba
Binary files /dev/null and b/web/apple-icon-114x114.png differ
diff --git a/web/apple-icon-120x120.png b/web/apple-icon-120x120.png
new file mode 100644
index 00000000..3eadc835
Binary files /dev/null and b/web/apple-icon-120x120.png differ
diff --git a/web/apple-icon-144x144.png b/web/apple-icon-144x144.png
new file mode 100644
index 00000000..b8254161
Binary files /dev/null and b/web/apple-icon-144x144.png differ
diff --git a/web/apple-icon-152x152.png b/web/apple-icon-152x152.png
new file mode 100644
index 00000000..c8157330
Binary files /dev/null and b/web/apple-icon-152x152.png differ
diff --git a/web/apple-icon-180x180.png b/web/apple-icon-180x180.png
new file mode 100644
index 00000000..cb5f54ff
Binary files /dev/null and b/web/apple-icon-180x180.png differ
diff --git a/web/apple-icon-57x57.png b/web/apple-icon-57x57.png
new file mode 100644
index 00000000..ad359962
Binary files /dev/null and b/web/apple-icon-57x57.png differ
diff --git a/web/apple-icon-60x60.png b/web/apple-icon-60x60.png
new file mode 100644
index 00000000..eef87344
Binary files /dev/null and b/web/apple-icon-60x60.png differ
diff --git a/web/apple-icon-72x72.png b/web/apple-icon-72x72.png
new file mode 100644
index 00000000..c476584d
Binary files /dev/null and b/web/apple-icon-72x72.png differ
diff --git a/web/apple-icon-76x76.png b/web/apple-icon-76x76.png
new file mode 100644
index 00000000..2329ecba
Binary files /dev/null and b/web/apple-icon-76x76.png differ
diff --git a/web/apple-icon-precomposed.png b/web/apple-icon-precomposed.png
new file mode 100644
index 00000000..6d0af836
Binary files /dev/null and b/web/apple-icon-precomposed.png differ
diff --git a/web/apple-icon.png b/web/apple-icon.png
new file mode 100644
index 00000000..6d0af836
Binary files /dev/null and b/web/apple-icon.png differ
diff --git a/web/browserconfig.xml b/web/browserconfig.xml
new file mode 100644
index 00000000..c5541482
--- /dev/null
+++ b/web/browserconfig.xml
@@ -0,0 +1,2 @@
+
+#ffffff
\ No newline at end of file
diff --git a/web/favicon-16x16.png b/web/favicon-16x16.png
new file mode 100644
index 00000000..513d07b6
Binary files /dev/null and b/web/favicon-16x16.png differ
diff --git a/web/favicon-32x32.png b/web/favicon-32x32.png
new file mode 100644
index 00000000..114c6aea
Binary files /dev/null and b/web/favicon-32x32.png differ
diff --git a/web/favicon-96x96.png b/web/favicon-96x96.png
new file mode 100644
index 00000000..f0afdb33
Binary files /dev/null and b/web/favicon-96x96.png differ
diff --git a/web/favicon.ico b/web/favicon.ico
new file mode 100644
index 00000000..092f6e77
Binary files /dev/null and b/web/favicon.ico differ
diff --git a/web/firebase-messaging-sw.js b/web/firebase-messaging-sw.js
new file mode 100644
index 00000000..e69de29b
diff --git a/web/index.html b/web/index.html
new file mode 100644
index 00000000..006f5382
--- /dev/null
+++ b/web/index.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LunaSea
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/manifest.json b/web/manifest.json
new file mode 100644
index 00000000..37ca26d2
--- /dev/null
+++ b/web/manifest.json
@@ -0,0 +1,49 @@
+{
+ "name": "LunaSea",
+ "short_name": "LunaSea",
+ "start_url": ".",
+ "display": "standalone",
+ "background_color": "#32323E",
+ "theme_color": "#32323E",
+ "description": "LunaSea is a fully featured, open source self-hosted controller focused on giving you a seamless experience between all of your self-hosted media software remotely on your devices.",
+ "orientation": "portrait-primary",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "/android-icon-36x36.png",
+ "sizes": "36x36",
+ "type": "image/png",
+ "density": "0.75"
+ },
+ {
+ "src": "/android-icon-48x48.png",
+ "sizes": "48x48",
+ "type": "image/png",
+ "density": "1.0"
+ },
+ {
+ "src": "/android-icon-72x72.png",
+ "sizes": "72x72",
+ "type": "image/png",
+ "density": "1.5"
+ },
+ {
+ "src": "/android-icon-96x96.png",
+ "sizes": "96x96",
+ "type": "image/png",
+ "density": "2.0"
+ },
+ {
+ "src": "/android-icon-144x144.png",
+ "sizes": "144x144",
+ "type": "image/png",
+ "density": "3.0"
+ },
+ {
+ "src": "/android-icon-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "density": "4.0"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/web/ms-icon-144x144.png b/web/ms-icon-144x144.png
new file mode 100644
index 00000000..ab92726c
Binary files /dev/null and b/web/ms-icon-144x144.png differ
diff --git a/web/ms-icon-150x150.png b/web/ms-icon-150x150.png
new file mode 100644
index 00000000..d6eff3ac
Binary files /dev/null and b/web/ms-icon-150x150.png differ
diff --git a/web/ms-icon-310x310.png b/web/ms-icon-310x310.png
new file mode 100644
index 00000000..c85216d7
Binary files /dev/null and b/web/ms-icon-310x310.png differ
diff --git a/web/ms-icon-70x70.png b/web/ms-icon-70x70.png
new file mode 100644
index 00000000..5af7a9f5
Binary files /dev/null and b/web/ms-icon-70x70.png differ
diff --git a/web/splash/img/dark-1x.png b/web/splash/img/dark-1x.png
new file mode 100644
index 00000000..cf9fcccf
Binary files /dev/null and b/web/splash/img/dark-1x.png differ
diff --git a/web/splash/img/dark-2x.png b/web/splash/img/dark-2x.png
new file mode 100644
index 00000000..39250ea0
Binary files /dev/null and b/web/splash/img/dark-2x.png differ
diff --git a/web/splash/img/dark-3x.png b/web/splash/img/dark-3x.png
new file mode 100644
index 00000000..da363ea7
Binary files /dev/null and b/web/splash/img/dark-3x.png differ
diff --git a/web/splash/img/dark-4x.png b/web/splash/img/dark-4x.png
new file mode 100644
index 00000000..7ab31d44
Binary files /dev/null and b/web/splash/img/dark-4x.png differ
diff --git a/web/splash/img/light-1x.png b/web/splash/img/light-1x.png
new file mode 100644
index 00000000..cf9fcccf
Binary files /dev/null and b/web/splash/img/light-1x.png differ
diff --git a/web/splash/img/light-2x.png b/web/splash/img/light-2x.png
new file mode 100644
index 00000000..39250ea0
Binary files /dev/null and b/web/splash/img/light-2x.png differ
diff --git a/web/splash/img/light-3x.png b/web/splash/img/light-3x.png
new file mode 100644
index 00000000..da363ea7
Binary files /dev/null and b/web/splash/img/light-3x.png differ
diff --git a/web/splash/img/light-4x.png b/web/splash/img/light-4x.png
new file mode 100644
index 00000000..7ab31d44
Binary files /dev/null and b/web/splash/img/light-4x.png differ
diff --git a/web/splash/splash.js b/web/splash/splash.js
new file mode 100644
index 00000000..898c454f
--- /dev/null
+++ b/web/splash/splash.js
@@ -0,0 +1,7 @@
+function removeSplashFromWeb() {
+ const elem = document.getElementById("splash");
+ if (elem) {
+ elem.remove();
+ }
+ document.body.style.background = "transparent";
+}
diff --git a/web/splash/style.css b/web/splash/style.css
new file mode 100644
index 00000000..9a6573b8
--- /dev/null
+++ b/web/splash/style.css
@@ -0,0 +1,43 @@
+body {
+ margin:0;
+ height:100%;
+ background: #32323E;
+
+ background-size: 100% 100%;
+}
+
+.center {
+ margin: 0;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -ms-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+}
+
+.contain {
+ display:block;
+ width:100%; height:100%;
+ object-fit: contain;
+}
+
+.stretch {
+ display:block;
+ width:100%; height:100%;
+}
+
+.cover {
+ display:block;
+ width:100%; height:100%;
+ object-fit: cover;
+}
+
+@media (prefers-color-scheme: dark) {
+ body {
+ margin:0;
+ height:100%;
+ background: #32323E;
+
+ background-size: 100% 100%;
+ }
+}