aboutsummaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
Diffstat (limited to 'static')
-rwxr-xr-xstatic/icons/android-chrome-192x192.pngbin0 -> 41271 bytes
-rwxr-xr-xstatic/icons/android-chrome-384x384.pngbin0 -> 157930 bytes
-rwxr-xr-xstatic/icons/apple-touch-icon.pngbin0 -> 36697 bytes
-rwxr-xr-xstatic/icons/browserconfig.xml9
-rwxr-xr-xstatic/icons/cpu.svg136
-rwxr-xr-xstatic/icons/disk.svg79
-rwxr-xr-xstatic/icons/favicon-16x16.pngbin0 -> 1407 bytes
-rwxr-xr-xstatic/icons/favicon-32x32.pngbin0 -> 2444 bytes
-rwxr-xr-xstatic/icons/favicon.icobin0 -> 15086 bytes
-rwxr-xr-xstatic/icons/hardware.svg69
-rwxr-xr-xstatic/icons/mstile-150x150.pngbin0 -> 20818 bytes
-rwxr-xr-xstatic/icons/network.svg76
-rwxr-xr-xstatic/icons/ram.svg78
-rwxr-xr-xstatic/icons/safari-pinned-tab.svg15
-rwxr-xr-xstatic/icons/site.webmanifest19
-rwxr-xr-xstatic/images/avatar.png1
-rwxr-xr-xstatic/images/backup.pngbin0 -> 12344 bytes
-rwxr-xr-xstatic/images/cyberduck-logo.pngbin0 -> 11146 bytes
-rwxr-xr-xstatic/images/garage-logo.svg44
-rwxr-xr-xstatic/images/host.pngbin0 -> 12392 bytes
-rwxr-xr-xstatic/images/host2.pngbin0 -> 13514 bytes
-rwxr-xr-xstatic/images/mastodon-logo.svg4
-rwxr-xr-xstatic/images/matrix-logo.svg7
-rwxr-xr-xstatic/images/nextcloud-logo.svg3
-rwxr-xr-xstatic/images/peertube-logo.svg1
-rwxr-xr-xstatic/images/rclone-logo.svg102
-rwxr-xr-xstatic/images/store.pngbin0 -> 12976 bytes
-rwxr-xr-xstatic/js/site.js330
28 files changed, 973 insertions, 0 deletions
diff --git a/static/icons/android-chrome-192x192.png b/static/icons/android-chrome-192x192.png
new file mode 100755
index 0000000..aea97b9
--- /dev/null
+++ b/static/icons/android-chrome-192x192.png
Binary files differ
diff --git a/static/icons/android-chrome-384x384.png b/static/icons/android-chrome-384x384.png
new file mode 100755
index 0000000..3d37c74
--- /dev/null
+++ b/static/icons/android-chrome-384x384.png
Binary files differ
diff --git a/static/icons/apple-touch-icon.png b/static/icons/apple-touch-icon.png
new file mode 100755
index 0000000..87f4544
--- /dev/null
+++ b/static/icons/apple-touch-icon.png
Binary files differ
diff --git a/static/icons/browserconfig.xml b/static/icons/browserconfig.xml
new file mode 100755
index 0000000..74bb89a
--- /dev/null
+++ b/static/icons/browserconfig.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+ <msapplication>
+ <tile>
+ <square150x150logo src="/mstile-150x150.png"/>
+ <TileColor>#da532c</TileColor>
+ </tile>
+ </msapplication>
+</browserconfig>
diff --git a/static/icons/cpu.svg b/static/icons/cpu.svg
new file mode 100755
index 0000000..774f605
--- /dev/null
+++ b/static/icons/cpu.svg
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="24"
+ height="24"
+ viewBox="0 0 6.3499999 6.3500002"
+ version="1.1"
+ id="svg12"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs9" />
+ <g
+ id="g1785"
+ transform="translate(-0.03915946,-0.06355539)">
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155"
+ width="0.59931201"
+ height="1.3477767"
+ x="1.629081"
+ y="0.19347736"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-3"
+ width="0.59931201"
+ height="1.3477767"
+ x="2.9356964"
+ y="0.19347736"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-6"
+ width="0.59931201"
+ height="1.3477767"
+ x="4.242312"
+ y="0.19347736"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-9"
+ width="0.59931201"
+ height="1.3477767"
+ x="1.6051307"
+ y="4.9358568"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-3-1"
+ width="0.59931201"
+ height="1.3477767"
+ x="2.911746"
+ y="4.9358568"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-6-2"
+ width="0.59931201"
+ height="1.3477767"
+ x="4.2183619"
+ y="4.9358568"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-7"
+ width="0.59931201"
+ height="1.3477767"
+ x="1.7207925"
+ y="-6.2376065"
+ ry="0.299656"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-3-5"
+ width="0.59931201"
+ height="1.3477767"
+ x="3.0274076"
+ y="-6.2376065"
+ ry="0.299656"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-6-3"
+ width="0.59931201"
+ height="1.3477767"
+ x="4.3340235"
+ y="-6.2376065"
+ ry="0.299656"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-7-5"
+ width="0.59931201"
+ height="1.3477767"
+ x="1.6778827"
+ y="-1.5384891"
+ ry="0.299656"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-3-5-6"
+ width="0.59931201"
+ height="1.3477767"
+ x="2.984498"
+ y="-1.5384891"
+ ry="0.299656"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-6-3-2"
+ width="0.59931201"
+ height="1.3477767"
+ x="4.2911139"
+ y="-1.5384891"
+ ry="0.299656"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#4e4e4e;fill-opacity:1;stroke:none;stroke-width:0.284381;stroke-linecap:round"
+ id="rect110"
+ width="3.9486253"
+ height="3.9486253"
+ x="1.2398468"
+ y="1.2642428"
+ ry="0.36915693" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.232383;stroke-linecap:round"
+ id="rect110-7"
+ width="3.2266328"
+ height="3.2266328"
+ x="1.6008431"
+ y="1.625239"
+ ry="0.30165789" />
+ </g>
+</svg>
diff --git a/static/icons/disk.svg b/static/icons/disk.svg
new file mode 100755
index 0000000..8f29baa
--- /dev/null
+++ b/static/icons/disk.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="24"
+ height="24"
+ viewBox="0 0 6.3499999 6.3500002"
+ version="1.1"
+ id="svg12"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs9" />
+ <g
+ id="g1785"
+ transform="translate(-0.03915946,-0.06355539)">
+ <g
+ id="g2793"
+ transform="translate(-0.00834059,-1.0927829)">
+ <rect
+ style="fill:#4e4e4e;fill-opacity:1;stroke:none;stroke-width:0.355196;stroke-linecap:round"
+ id="rect110"
+ width="6.2604003"
+ height="3.8853164"
+ x="0.092299931"
+ y="2.3886802"
+ ry="0.36323816" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.311139;stroke-linecap:round"
+ id="rect110-7"
+ width="5.6917672"
+ height="3.2790747"
+ x="0.37207624"
+ y="2.6928504"
+ ry="0.30656067" />
+ <g
+ id="g4423"
+ transform="translate(0,0.08598559)">
+ <g
+ id="g3600"
+ transform="translate(-1.4706391,-0.08598568)">
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.34224;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path3273"
+ cx="3.2225001"
+ cy="4.3313384"
+ r="0.90602416" />
+ <circle
+ style="fill:#ff7f2a;fill-opacity:1;stroke:none;stroke-width:0.261752;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path3273-3"
+ cx="3.2225001"
+ cy="4.3313384"
+ r="0.69294411" />
+ </g>
+ <g
+ id="g4063"
+ transform="matrix(0.7288682,-0.41976244,0.41976244,0.7288682,-1.2357625,2.5825644)"
+ style="fill:#b3b3b3">
+ <circle
+ style="fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path3624"
+ cx="4.3949537"
+ cy="4.8355694"
+ r="0.42076111" />
+ <path
+ style="fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 4.1165741,5.1484079 2.5707286,3.753231 4.4986402,4.4270414 Z"
+ id="path3692" />
+ </g>
+ <circle
+ style="fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path4213"
+ cx="4.0093594"
+ cy="4.2591534"
+ r="0.21003921" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/static/icons/favicon-16x16.png b/static/icons/favicon-16x16.png
new file mode 100755
index 0000000..3480bc7
--- /dev/null
+++ b/static/icons/favicon-16x16.png
Binary files differ
diff --git a/static/icons/favicon-32x32.png b/static/icons/favicon-32x32.png
new file mode 100755
index 0000000..605b4ab
--- /dev/null
+++ b/static/icons/favicon-32x32.png
Binary files differ
diff --git a/static/icons/favicon.ico b/static/icons/favicon.ico
new file mode 100755
index 0000000..77b9683
--- /dev/null
+++ b/static/icons/favicon.ico
Binary files differ
diff --git a/static/icons/hardware.svg b/static/icons/hardware.svg
new file mode 100755
index 0000000..d4b6dff
--- /dev/null
+++ b/static/icons/hardware.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="24"
+ height="24"
+ viewBox="0 0 6.3499999 6.3500002"
+ version="1.1"
+ id="svg12"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs9" />
+ <g
+ id="g1785"
+ transform="translate(-0.03915946,-0.06355539)">
+ <g
+ id="g2793"
+ transform="translate(-0.00834059,-1.0927829)">
+ <g
+ id="g10529"
+ transform="translate(0.05540633,-0.14295248)">
+ <g
+ id="g10844"
+ transform="translate(-0.03686281,0.03558219)">
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.433652;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 3.3619896,4.6566084 3.0704627,1.9669909"
+ id="path10327-2" />
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.433652;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 3.4105235,4.8085636 5.5441454,6.4718998"
+ id="path10327" />
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.433652;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 0.94872653,6.7906738 3.4759675,4.6590756"
+ id="path10210" />
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.292722;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path10041"
+ cx="3.837966"
+ cy="5.6463156"
+ r="0.69791663"
+ transform="rotate(25.726527)" />
+ <circle
+ style="fill:#4e4e4e;fill-opacity:1;stroke:none;stroke-width:0.422886;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path10041-2"
+ cx="3.4010327"
+ cy="4.8077965"
+ r="1.0082585" />
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.270152;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path10041-2-0"
+ cx="4.204597"
+ cy="7.2571359"
+ r="0.64410442"
+ transform="rotate(-10.485843)" />
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.256609;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path10041-2-0-3"
+ cx="-3.7006681"
+ cy="0.12807676"
+ r="0.61181635"
+ transform="rotate(-144.61135)" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/static/icons/mstile-150x150.png b/static/icons/mstile-150x150.png
new file mode 100755
index 0000000..ecacbb4
--- /dev/null
+++ b/static/icons/mstile-150x150.png
Binary files differ
diff --git a/static/icons/network.svg b/static/icons/network.svg
new file mode 100755
index 0000000..affca66
--- /dev/null
+++ b/static/icons/network.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="24"
+ height="24"
+ viewBox="0 0 6.3499999 6.3500002"
+ version="1.1"
+ id="svg12"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs9" />
+ <g
+ id="g1785"
+ transform="translate(-0.03915946,-0.06355539)">
+ <g
+ id="g2793"
+ transform="translate(-0.00834059,-1.0927829)">
+ <g
+ id="g9873"
+ transform="translate(-0.00627501,-0.01100347)">
+ <g
+ id="g9544"
+ transform="translate(0.23445248,0.23445216)">
+ <circle
+ style="fill:none;fill-opacity:1;stroke:#4e4e4e;stroke-width:0.284702;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4509"
+ cx="2.9880476"
+ cy="4.0968862"
+ r="2.8705399" />
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.245481;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 2.1300448,1.3613682 C 1.3685056,2.3927846 1.3428592,3.7387209 2.0011421,4.8016137"
+ id="path4731" />
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.245481;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 3.9678413,6.698935 C 4.7293805,5.6675185 4.7550269,4.3215822 4.096744,3.2586895"
+ id="path4731-6" />
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.245481;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 0.29948343,4.8922211 C 1.3309,5.6537602 2.6768363,5.6794066 3.739729,5.0211237"
+ id="path4731-0" />
+ <path
+ style="fill:none;stroke:#4e4e4e;stroke-width:0.245481;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 5.6370502,3.0544245 C 4.6056338,2.2928853 3.2596975,2.267239 2.1968048,2.9255218"
+ id="path4731-6-6" />
+ </g>
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.292571;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path9648"
+ cx="2.2399855"
+ cy="1.6735656"
+ r="0.48574764" />
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.292571;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path9648-8"
+ cx="5.899797"
+ cy="3.2753353"
+ r="0.48574764" />
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.292571;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path9648-7"
+ cx="0.55775321"
+ cy="5.1879802"
+ r="0.48574764" />
+ <circle
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.292571;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path9648-9"
+ cx="4.1719899"
+ cy="7.0111179"
+ r="0.48574764" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/static/icons/ram.svg b/static/icons/ram.svg
new file mode 100755
index 0000000..61e2c72
--- /dev/null
+++ b/static/icons/ram.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="24"
+ height="24"
+ viewBox="0 0 6.3499999 6.3500002"
+ version="1.1"
+ id="svg12"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs9" />
+ <g
+ id="g1785"
+ transform="translate(-0.03915946,-0.06355539)">
+ <g
+ id="g2793"
+ transform="translate(-0.00834059,-1.0927829)">
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-9"
+ width="0.59931201"
+ height="1.3477767"
+ x="0.52138823"
+ y="4.9036713"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-3-1"
+ width="0.59931201"
+ height="1.3477767"
+ x="1.7597047"
+ y="4.9036713"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-6-2"
+ width="0.59931201"
+ height="1.3477767"
+ x="2.9980214"
+ y="4.9036713"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-3-1-0"
+ width="0.59931201"
+ height="1.3477767"
+ x="4.2363377"
+ y="4.9036713"
+ ry="0.299656" />
+ <rect
+ style="fill:#ff9329;fill-opacity:1;stroke:none;stroke-width:0.306897;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1155-6-2-9"
+ width="0.59931201"
+ height="1.3477767"
+ x="5.4746542"
+ y="4.9036713"
+ ry="0.299656" />
+ <rect
+ style="fill:#4e4e4e;fill-opacity:1;stroke:none;stroke-width:0.301621;stroke-linecap:round"
+ id="rect110"
+ width="6.2604003"
+ height="2.8016393"
+ x="0.092299931"
+ y="2.4112287"
+ ry="0.26192522" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.213543;stroke-linecap:round"
+ id="rect110-7"
+ width="5.6917672"
+ height="1.5445895"
+ x="0.38219857"
+ y="3.3590817"
+ ry="0.14440367" />
+ </g>
+ </g>
+</svg>
diff --git a/static/icons/safari-pinned-tab.svg b/static/icons/safari-pinned-tab.svg
new file mode 100755
index 0000000..9e473c4
--- /dev/null
+++ b/static/icons/safari-pinned-tab.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="450.000000pt" height="450.000000pt" viewBox="0 0 450.000000 450.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.11, written by Peter Selinger 2001-2013
+</metadata>
+<g transform="translate(0.000000,450.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M750 2250 l0 -2250 1500 0 1500 0 0 2250 0 2250 -1500 0 -1500 0 0
+-2250z"/>
+</g>
+</svg>
diff --git a/static/icons/site.webmanifest b/static/icons/site.webmanifest
new file mode 100755
index 0000000..161c642
--- /dev/null
+++ b/static/icons/site.webmanifest
@@ -0,0 +1,19 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-384x384.png",
+ "sizes": "384x384",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
diff --git a/static/images/avatar.png b/static/images/avatar.png
new file mode 100755
index 0000000..8b13789
--- /dev/null
+++ b/static/images/avatar.png
@@ -0,0 +1 @@
+
diff --git a/static/images/backup.png b/static/images/backup.png
new file mode 100755
index 0000000..927eccf
--- /dev/null
+++ b/static/images/backup.png
Binary files differ
diff --git a/static/images/cyberduck-logo.png b/static/images/cyberduck-logo.png
new file mode 100755
index 0000000..ca2a943
--- /dev/null
+++ b/static/images/cyberduck-logo.png
Binary files differ
diff --git a/static/images/garage-logo.svg b/static/images/garage-logo.svg
new file mode 100755
index 0000000..fb02c40
--- /dev/null
+++ b/static/images/garage-logo.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata>
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g stroke-width=".14689">
+ <path d="m20.613 10.981a2.2034 2.2034 0 0 1-0.73445-0.07638l-9.2042-2.4839a2.2342 2.2342 0 0 1-0.69332-0.32757z"/>
+ <g fill="#4e4e4e">
+ <path class="cls-1" d="m6.6028 26.612 1.3661-0.0088h0.01763q0.75796 0 0.75796 0.71389v2.3003a6.5748 6.5748 0 0 1-2.2886 0.37898q-1.2515 0-1.8861-0.8505t-0.63457-2.3179q0-1.4689 0.7888-2.2827a2.5823 2.5823 0 0 1 1.9301-0.81524 3.5371 3.5371 0 0 1 2.0667 0.64338 1.0385 1.0385 0 0 1-0.18068 0.46711 1.2603 1.2603 0 0 1-0.33932 0.35254 2.5926 2.5926 0 0 0-1.5027-0.51999 1.4175 1.4175 0 0 0-1.1854 0.54203q-0.42304 0.53909-0.42304 1.6966 0 2.1769 1.604 2.1769a4.4743 4.4743 0 0 0 0.97829-0.11457v-0.83728q0-0.3966 0.01763-0.58756h-0.64633a0.60519 0.60519 0 0 1-0.40101-0.11018 0.44067 0.44067 0 0 1-0.12779-0.35254 1.51 1.51 0 0 1 0.088134-0.47446z"/>
+ <path class="cls-1" d="m13.401 29.379a1.1413 1.1413 0 0 1-0.14689 0.31288 1.0664 1.0664 0 0 1-0.22474 0.25118 0.99592 0.99592 0 0 1-0.80937-0.51705 1.7847 1.7847 0 0 1-1.2603 0.56406q-0.67863 0-1.0282-0.3966a1.3573 1.3573 0 0 1-0.34372-0.9166q0-0.73445 0.48033-1.1149a1.9404 1.9404 0 0 1 1.2354-0.3687q0.40542 0 0.76677 0.03525v-0.2644q0-0.69626-0.66982-0.69626-0.47592 0-1.3485 0.31728a1.2368 1.2368 0 0 1-0.29378-0.78439 4.9164 4.9164 0 0 1 1.9096-0.3966 1.5526 1.5526 0 0 1 1.0752 0.37016q0.41423 0.37016 0.41423 1.1193v1.7979q-0.0029 0.48474 0.24384 0.68745zm-2.2122-0.22034a1.2471 1.2471 0 0 0 0.88134-0.42304v-0.77852a5.9182 5.9182 0 0 0-0.66982-0.03525 0.73445 0.73445 0 0 0-0.54643 0.18214 0.6331 0.6331 0 0 0-0.18508 0.46711 0.62282 0.62282 0 0 0 0.14689 0.44067 0.48768 0.48768 0 0 0 0.3731 0.14689z"/>
+ <path class="cls-1" d="m14.115 26.012a1.0547 1.0547 0 0 1 0.14689-0.32169 0.88134 0.88134 0 0 1 0.22474-0.25118 1.1017 1.1017 0 0 1 0.92982 0.78439q0.35254-0.78439 1.1369-0.78439a2.7028 2.7028 0 0 1 0.51118 0.06169 1.9786 1.9786 0 0 1-0.2644 1.0282 2.2357 2.2357 0 0 0-0.3966-0.05288q-0.53762 0-0.86372 0.57287v2.8174a3.0627 3.0627 0 0 1-0.53762 0.04407 3.3785 3.3785 0 0 1-0.55525-0.04407v-2.9525q-0.0059-0.6375-0.33197-0.90191z"/>
+ <path class="cls-1" d="m21.157 29.379a1.1413 1.1413 0 0 1-0.15423 0.31288 1.0664 1.0664 0 0 1-0.22474 0.25118 0.99592 0.99592 0 0 1-0.8079-0.51705 1.7847 1.7847 0 0 1-1.2603 0.56406q-0.67864 0-1.0282-0.3966a1.3573 1.3573 0 0 1-0.34372-0.9166q0-0.73445 0.48033-1.1149a1.9404 1.9404 0 0 1 1.2295-0.37457q0.40542 0 0.76677 0.03525v-0.2644q0-0.69626-0.66982-0.69626-0.47592 0-1.3485 0.31728a1.2368 1.2368 0 0 1-0.29378-0.7844 4.9164 4.9164 0 0 1 1.9096-0.3966 1.5526 1.5526 0 0 1 1.0752 0.37016q0.41423 0.37016 0.41423 1.1193v1.8038q0.0088 0.48474 0.25559 0.68745zm-2.2151-0.22034a1.2471 1.2471 0 0 0 0.88134-0.42304v-0.77852a5.9182 5.9182 0 0 0-0.66982-0.03525 0.73445 0.73445 0 0 0-0.54643 0.18508 0.6331 0.6331 0 0 0-0.18508 0.46711 0.62282 0.62282 0 0 0 0.14689 0.44067 0.48768 0.48768 0 0 0 0.3731 0.14395z"/>
+ <path class="cls-1" d="m22.241 29.344q-0.3966-0.60813-0.3966-1.679t0.50236-1.679a1.5188 1.5188 0 0 1 1.2074-0.60813 1.7039 1.7039 0 0 1 1.1898 0.44067 0.99739 0.99739 0 0 1 0.69626-0.37898 0.82552 0.82552 0 0 1 0.23356 0.24677 1.0282 1.0282 0 0 1 0.14689 0.30847q-0.24678 0.21152-0.24678 0.75796v2.4971q0 1.4013-0.4583 1.983-0.4583 0.58169-1.5071 0.58756a4.2598 4.2598 0 0 1-1.5776-0.29378 1.1854 1.1854 0 0 1 0.27322-0.80202 2.882 2.882 0 0 0 1.1854 0.27322q0.57728 0 0.79761-0.29378a1.322 1.322 0 0 0 0.22034-0.81084v-0.35254a1.6936 1.6936 0 0 1-1.1017 0.41423 1.3014 1.3014 0 0 1-1.1648-0.61106zm2.2651-0.71389v-2.0447a1.1355 1.1355 0 0 0-0.75796-0.36135 0.63604 0.63604 0 0 0-0.57728 0.37898 2.2988 2.2988 0 0 0-0.20712 1.0841q0 0.70508 0.18949 1.04a0.56406 0.56406 0 0 0 0.49796 0.33491 1.1193 1.1193 0 0 0 0.8549-0.43186z"/>
+ <path class="cls-1" d="m30.105 28.039h-2.4678a1.4924 1.4924 0 0 0 0.23356 0.80643q0.20712 0.28644 0.72711 0.28644a2.6778 2.6778 0 0 0 1.1546-0.30847 1.159 1.159 0 0 1 0.31728 0.66982 2.8467 2.8467 0 0 1-1.6966 0.50236q-0.99151 0-1.4234-0.64338-0.43186-0.64338-0.43186-1.6657 0-1.0282 0.47592-1.6657a1.5923 1.5923 0 0 1 1.3617-0.64338q0.88134 0 1.3617 0.53321a1.9434 1.9434 0 0 1 0.47593 1.344 3.4519 3.4519 0 0 1-0.08813 0.7844zm-1.701-1.8684q-0.7227 0-0.77558 1.0929h1.5335v-0.10576a1.25 1.25 0 0 0-0.18508-0.71389 0.64338 0.64338 0 0 0-0.567-0.27321z"/>
+ </g>
+ <path d="m17.034 3.0341a2.9114 2.9114 0 0 0-1.1462 0.24753l-11.697 5.1749a0.42304 0.42304 0 0 0-0.22169 0.56586 0.20418 0.20418 0 0 0 0.01757 0.04702l1.8769 3.7099h1.6288l-0.23151-1.2935c-0.0191-0.10429-0.18819-0.84337-0.3483-1.3751l5.4746 1.71c0.07196 0.34089 0.16746 0.65935 0.28112 0.9586h8.8765c0.0978-0.29932 0.17499-0.61834 0.22738-0.9586l5.4627-1.7053c-0.16011 0.53174-0.32713 1.2662-0.34623 1.3705l-0.23151 1.2935h1.6283l1.8593-3.6763 0.01757-0.03359 0.0181-0.04547a0.027909 0.027909 0 0 0 0-0.01188 0.39367 0.39367 0 0 0 0.01757-0.13643 0.41864 0.41864 0 0 0-0.26303-0.4191l-11.697-5.1749a2.9114 2.9114 0 0 0-1.2041-0.24753z" fill="#ffd952"/>
+ <path d="m17.034 5.4825a2.9114 2.9114 0 0 0-1.1462 0.24753l-11.697 5.1749a0.42304 0.42304 0 0 0-0.22169 0.56534 0.20418 0.20418 0 0 0 0.01757 0.04703l1.018 2.0118h2.1632c-0.068234-0.28802-0.15662-0.64282-0.25528-0.97049l3.1073 0.97048h14.121l3.0939-0.96583c-0.09841 0.32682-0.18541 0.67924-0.25321 0.96583h2.1627l1.0005-1.9782 0.01757-0.03359 0.0181-0.04547a0.027909 0.027909 0 0 0 0-0.01188 0.39367 0.39367 0 0 0 0.01757-0.13643 0.41864 0.41864 0 0 0-0.26303-0.41858l-11.697-5.1749a2.9114 2.9114 0 0 0-1.2041-0.24753z" fill="#49c8fa"/>
+ <path class="cls-2" d="m30.198 13.82a0.39367 0.39367 0 0 1-0.01762 0.13661 0.027909 0.027909 0 0 1 0 0.01175l-0.01762 0.04554-0.01762 0.03379-2.8306 5.5965c-0.39367 0.77705-1.1178 0.75355-0.99592-0.03232l0.56993-3.1817c0.0191-0.10429 0.18655-0.83874 0.34666-1.3705l-5.4629 1.7054c-0.85784 5.5716-8.1891 5.6641-9.3848 0l-5.4746-1.7098c0.16011 0.53174 0.32904 1.2706 0.34813 1.3749l0.56994 3.1816c0.12192 0.78586-0.60225 0.80937-0.99592 0.03232l-2.8482-5.6303a0.20418 0.20418 0 0 1-0.01763-0.04701 0.42304 0.42304 0 0 1 0.2218-0.56553l11.697-5.175a2.9114 2.9114 0 0 1 2.3502 0l11.697 5.175a0.41864 0.41864 0 0 1 0.26294 0.41864z" fill="#ffd952"/>
+ <path class="cls-3" d="m20.801 14.796 5.0574-2.0359a0.21446 0.21446 0 0 0 0-0.39807c-0.58756-0.24531-1.3132-0.52734-2.0242-0.82259-0.13073-0.05435-1.369 0.83434-1.4821 0.92541l-2.1799 1.7421c-0.52734 0.44214-0.07051 0.86959 0.62869 0.58903z" fill="#45c8ff"/>
+ <circle class="cls-3" cx="17.135" cy="16.785" r="2.6367" fill="#45c8ff"/>
+ <path d="m20.613 10.981a2.2034 2.2034 0 0 1-0.73445-0.07638l-9.2042-2.4839a2.2342 2.2342 0 0 1-0.69332-0.32757z"/>
+ <g fill="#4e4e4e">
+ <path class="cls-1" d="m6.6028 26.612 1.3661-0.0088h0.01763q0.75796 0 0.75796 0.71389v2.3003a6.5748 6.5748 0 0 1-2.2886 0.37898q-1.2515 0-1.8861-0.8505t-0.63457-2.3179q0-1.4689 0.7888-2.2827a2.5823 2.5823 0 0 1 1.9301-0.81524 3.5371 3.5371 0 0 1 2.0667 0.64338 1.0385 1.0385 0 0 1-0.18068 0.46711 1.2603 1.2603 0 0 1-0.33932 0.35254 2.5926 2.5926 0 0 0-1.5027-0.51999 1.4175 1.4175 0 0 0-1.1854 0.54203q-0.42304 0.53909-0.42304 1.6966 0 2.1769 1.604 2.1769a4.4743 4.4743 0 0 0 0.97829-0.11457v-0.83728q0-0.3966 0.01763-0.58756h-0.64633a0.60519 0.60519 0 0 1-0.40101-0.11018 0.44067 0.44067 0 0 1-0.12779-0.35254 1.51 1.51 0 0 1 0.088134-0.47446z"/>
+ <path class="cls-1" d="m13.401 29.379a1.1413 1.1413 0 0 1-0.14689 0.31288 1.0664 1.0664 0 0 1-0.22474 0.25118 0.99592 0.99592 0 0 1-0.80937-0.51705 1.7847 1.7847 0 0 1-1.2603 0.56406q-0.67863 0-1.0282-0.3966a1.3573 1.3573 0 0 1-0.34372-0.9166q0-0.73445 0.48033-1.1149a1.9404 1.9404 0 0 1 1.2354-0.3687q0.40542 0 0.76677 0.03525v-0.2644q0-0.69626-0.66982-0.69626-0.47592 0-1.3485 0.31728a1.2368 1.2368 0 0 1-0.29378-0.78439 4.9164 4.9164 0 0 1 1.9096-0.3966 1.5526 1.5526 0 0 1 1.0752 0.37016q0.41423 0.37016 0.41423 1.1193v1.7979q-0.0029 0.48474 0.24384 0.68745zm-2.2122-0.22034a1.2471 1.2471 0 0 0 0.88134-0.42304v-0.77852a5.9182 5.9182 0 0 0-0.66982-0.03525 0.73445 0.73445 0 0 0-0.54643 0.18214 0.6331 0.6331 0 0 0-0.18508 0.46711 0.62282 0.62282 0 0 0 0.14689 0.44067 0.48768 0.48768 0 0 0 0.3731 0.14689z"/>
+ <path class="cls-1" d="m14.115 26.012a1.0547 1.0547 0 0 1 0.14689-0.32169 0.88134 0.88134 0 0 1 0.22474-0.25118 1.1017 1.1017 0 0 1 0.92982 0.78439q0.35254-0.78439 1.1369-0.78439a2.7028 2.7028 0 0 1 0.51118 0.06169 1.9786 1.9786 0 0 1-0.2644 1.0282 2.2357 2.2357 0 0 0-0.3966-0.05288q-0.53762 0-0.86372 0.57287v2.8174a3.0627 3.0627 0 0 1-0.53762 0.04407 3.3785 3.3785 0 0 1-0.55525-0.04407v-2.9525q-0.0059-0.6375-0.33197-0.90191z"/>
+ <path class="cls-1" d="m21.157 29.379a1.1413 1.1413 0 0 1-0.15423 0.31288 1.0664 1.0664 0 0 1-0.22474 0.25118 0.99592 0.99592 0 0 1-0.8079-0.51705 1.7847 1.7847 0 0 1-1.2603 0.56406q-0.67864 0-1.0282-0.3966a1.3573 1.3573 0 0 1-0.34372-0.9166q0-0.73445 0.48033-1.1149a1.9404 1.9404 0 0 1 1.2295-0.37457q0.40542 0 0.76677 0.03525v-0.2644q0-0.69626-0.66982-0.69626-0.47592 0-1.3485 0.31728a1.2368 1.2368 0 0 1-0.29378-0.7844 4.9164 4.9164 0 0 1 1.9096-0.3966 1.5526 1.5526 0 0 1 1.0752 0.37016q0.41423 0.37016 0.41423 1.1193v1.8038q0.0088 0.48474 0.25559 0.68745zm-2.2151-0.22034a1.2471 1.2471 0 0 0 0.88134-0.42304v-0.77852a5.9182 5.9182 0 0 0-0.66982-0.03525 0.73445 0.73445 0 0 0-0.54643 0.18508 0.6331 0.6331 0 0 0-0.18508 0.46711 0.62282 0.62282 0 0 0 0.14689 0.44067 0.48768 0.48768 0 0 0 0.3731 0.14395z"/>
+ <path class="cls-1" d="m22.241 29.344q-0.3966-0.60813-0.3966-1.679t0.50236-1.679a1.5188 1.5188 0 0 1 1.2074-0.60813 1.7039 1.7039 0 0 1 1.1898 0.44067 0.99739 0.99739 0 0 1 0.69626-0.37898 0.82552 0.82552 0 0 1 0.23356 0.24677 1.0282 1.0282 0 0 1 0.14689 0.30847q-0.24678 0.21152-0.24678 0.75796v2.4971q0 1.4013-0.4583 1.983-0.4583 0.58169-1.5071 0.58756a4.2598 4.2598 0 0 1-1.5776-0.29378 1.1854 1.1854 0 0 1 0.27322-0.80202 2.882 2.882 0 0 0 1.1854 0.27322q0.57728 0 0.79761-0.29378a1.322 1.322 0 0 0 0.22034-0.81084v-0.35254a1.6936 1.6936 0 0 1-1.1017 0.41423 1.3014 1.3014 0 0 1-1.1648-0.61106zm2.2651-0.71389v-2.0447a1.1355 1.1355 0 0 0-0.75796-0.36135 0.63604 0.63604 0 0 0-0.57728 0.37898 2.2988 2.2988 0 0 0-0.20712 1.0841q0 0.70508 0.18949 1.04a0.56406 0.56406 0 0 0 0.49796 0.33491 1.1193 1.1193 0 0 0 0.8549-0.43186z"/>
+ <path class="cls-1" d="m30.105 28.039h-2.4678a1.4924 1.4924 0 0 0 0.23356 0.80643q0.20712 0.28644 0.72711 0.28644a2.6778 2.6778 0 0 0 1.1546-0.30847 1.159 1.159 0 0 1 0.31728 0.66982 2.8467 2.8467 0 0 1-1.6966 0.50236q-0.99151 0-1.4234-0.64338-0.43186-0.64338-0.43186-1.6657 0-1.0282 0.47592-1.6657a1.5923 1.5923 0 0 1 1.3617-0.64338q0.88134 0 1.3617 0.53321a1.9434 1.9434 0 0 1 0.47593 1.344 3.4519 3.4519 0 0 1-0.08813 0.7844zm-1.701-1.8684q-0.7227 0-0.77558 1.0929h1.5335v-0.10576a1.25 1.25 0 0 0-0.18508-0.71389 0.64338 0.64338 0 0 0-0.567-0.27321z"/>
+ </g>
+ <g>
+ <path d="m17.034 3.0341a2.9114 2.9114 0 0 0-1.1462 0.24753l-11.697 5.1749a0.42304 0.42304 0 0 0-0.22169 0.56586 0.20418 0.20418 0 0 0 0.01757 0.04702l1.8769 3.7099h1.6288l-0.23151-1.2935c-0.0191-0.10429-0.18819-0.84337-0.3483-1.3751l5.4746 1.71c0.07196 0.34089 0.16746 0.65935 0.28112 0.9586h8.8765c0.0978-0.29932 0.17499-0.61834 0.22738-0.9586l5.4627-1.7053c-0.16011 0.53174-0.32713 1.2662-0.34623 1.3705l-0.23151 1.2935h1.6283l1.8593-3.6763 0.01757-0.03359 0.0181-0.04547a0.027909 0.027909 0 0 0 0-0.01188 0.39367 0.39367 0 0 0 0.01757-0.13643 0.41864 0.41864 0 0 0-0.26303-0.4191l-11.697-5.1749a2.9114 2.9114 0 0 0-1.2041-0.24753z" fill="#ff9329"/>
+ <path d="m17.034 5.4825a2.9114 2.9114 0 0 0-1.1462 0.24753l-11.697 5.1749a0.42304 0.42304 0 0 0-0.22169 0.56534 0.20418 0.20418 0 0 0 0.01757 0.04703l1.018 2.0118h2.1632c-0.068234-0.28802-0.15662-0.64282-0.25528-0.97049l3.1073 0.97048h14.121l3.0939-0.96583c-0.09841 0.32682-0.18541 0.67924-0.25321 0.96583h2.1627l1.0005-1.9782 0.01757-0.03359 0.0181-0.04547a0.027909 0.027909 0 0 0 0-0.01188 0.39367 0.39367 0 0 0 0.01757-0.13643 0.41864 0.41864 0 0 0-0.26303-0.41858l-11.697-5.1749a2.9114 2.9114 0 0 0-1.2041-0.24753z" fill="#4e4e4e"/>
+ <path class="cls-2" d="m30.198 13.82a0.39367 0.39367 0 0 1-0.01762 0.13661 0.027909 0.027909 0 0 1 0 0.01175l-0.01762 0.04554-0.01762 0.03379-2.8306 5.5965c-0.39367 0.77705-1.1178 0.75355-0.99592-0.03232l0.56993-3.1817c0.0191-0.10429 0.18655-0.83874 0.34666-1.3705l-5.4629 1.7054c-0.85784 5.5716-8.1891 5.6641-9.3848 0l-5.4746-1.7098c0.16011 0.53174 0.32904 1.2706 0.34813 1.3749l0.56994 3.1816c0.12192 0.78586-0.60225 0.80937-0.99592 0.03232l-2.8482-5.6303a0.20418 0.20418 0 0 1-0.01763-0.04701 0.42304 0.42304 0 0 1 0.2218-0.56553l11.697-5.175a2.9114 2.9114 0 0 1 2.3502 0l11.697 5.175a0.41864 0.41864 0 0 1 0.26294 0.41864z" fill="#ff9329"/>
+ <path class="cls-3" d="m20.801 14.796 5.0574-2.0359a0.21446 0.21446 0 0 0 0-0.39807c-0.58756-0.24531-1.3132-0.52734-2.0242-0.82259-0.13073-0.05435-1.369 0.83434-1.4821 0.92541l-2.1799 1.7421c-0.52734 0.44214-0.07051 0.86959 0.62869 0.58903z" fill="#4e4e4e"/>
+ <circle class="cls-3" cx="17.135" cy="16.785" r="2.6367" fill="#4e4e4e"/>
+ </g>
+ </g>
+</svg>
diff --git a/static/images/host.png b/static/images/host.png
new file mode 100755
index 0000000..fd57cf8
--- /dev/null
+++ b/static/images/host.png
Binary files differ
diff --git a/static/images/host2.png b/static/images/host2.png
new file mode 100755
index 0000000..9eb9a62
--- /dev/null
+++ b/static/images/host2.png
Binary files differ
diff --git a/static/images/mastodon-logo.svg b/static/images/mastodon-logo.svg
new file mode 100755
index 0000000..87ec2c5
--- /dev/null
+++ b/static/images/mastodon-logo.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="61.076954mm" height="65.47831mm" viewBox="0 0 216.4144 232.00976">
+ <path fill="#2b90d9" d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915"/>
+ <path fill="#fff" d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675"/>
+</svg>
diff --git a/static/images/matrix-logo.svg b/static/images/matrix-logo.svg
new file mode 100755
index 0000000..216e199
--- /dev/null
+++ b/static/images/matrix-logo.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 75 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<title>Matrix (protocol) logo</title>
+ <g fill="#040404">
+ <path d="m0.936 0.732v30.52h2.194v0.732h-3.035v-31.98h3.034v0.732zm8.45 9.675v1.544h0.044a4.461 4.461 0 0 1 1.487-1.368c0.58-0.323 1.245-0.485 1.993-0.485 0.72 0 1.377 0.14 1.972 0.42 0.595 0.279 1.047 0.771 1.355 1.477 0.338-0.5 0.796-0.941 1.377-1.323 0.58-0.383 1.266-0.574 2.06-0.574 0.602 0 1.16 0.074 1.674 0.22 0.514 0.148 0.954 0.383 1.322 0.707 0.366 0.323 0.653 0.746 0.859 1.268 0.205 0.522 0.308 1.15 0.308 1.887v7.633h-3.127v-6.464c0-0.383-0.015-0.743-0.044-1.082a2.305 2.305 0 0 0-0.242-0.882 1.473 1.473 0 0 0-0.584-0.596c-0.257-0.146-0.606-0.22-1.047-0.22-0.44 0-0.796 0.085-1.068 0.253-0.272 0.17-0.485 0.39-0.639 0.662a2.654 2.654 0 0 0-0.308 0.927 7.074 7.074 0 0 0-0.078 1.048v6.354h-3.128v-6.398c0-0.338-7e-3 -0.673-0.021-1.004a2.825 2.825 0 0 0-0.188-0.916 1.411 1.411 0 0 0-0.55-0.673c-0.258-0.168-0.636-0.253-1.135-0.253a2.33 2.33 0 0 0-0.584 0.1 1.94 1.94 0 0 0-0.705 0.374c-0.228 0.184-0.422 0.449-0.584 0.794-0.161 0.346-0.242 0.798-0.242 1.357v6.619h-3.129v-11.41zm16.46 1.677a3.751 3.751 0 0 1 1.233-1.17 5.37 5.37 0 0 1 1.685-0.629 9.579 9.579 0 0 1 1.884-0.187c0.573 0 1.153 0.04 1.74 0.121 0.588 0.081 1.124 0.24 1.609 0.475 0.484 0.235 0.88 0.562 1.19 0.981 0.308 0.42 0.462 0.975 0.462 1.666v5.934c0 0.516 0.03 1.008 0.088 1.478 0.058 0.471 0.161 0.824 0.308 1.06h-3.171a4.435 4.435 0 0 1-0.22-1.104c-0.5 0.515-1.087 0.876-1.762 1.081a7.084 7.084 0 0 1-2.071 0.31c-0.544 0-1.05-0.067-1.52-0.2a3.472 3.472 0 0 1-1.234-0.617 2.87 2.87 0 0 1-0.826-1.059c-0.199-0.426-0.298-0.934-0.298-1.522 0-0.647 0.114-1.18 0.342-1.6 0.227-0.419 0.52-0.753 0.881-1.004 0.36-0.25 0.771-0.437 1.234-0.562 0.462-0.125 0.929-0.224 1.399-0.298 0.47-0.073 0.932-0.132 1.387-0.176 0.456-0.044 0.86-0.11 1.212-0.199 0.353-0.088 0.631-0.217 0.837-0.386s0.301-0.415 0.287-0.74c0-0.337-0.055-0.606-0.166-0.804a1.217 1.217 0 0 0-0.44-0.464 1.737 1.737 0 0 0-0.639-0.22 5.292 5.292 0 0 0-0.782-0.055c-0.617 0-1.101 0.132-1.454 0.397-0.352 0.264-0.558 0.706-0.617 1.323h-3.128c0.044-0.735 0.227-1.345 0.55-1.83zm6.179 4.423a5.095 5.095 0 0 1-0.639 0.165 9.68 9.68 0 0 1-0.716 0.11c-0.25 0.03-0.5 0.067-0.749 0.11a5.616 5.616 0 0 0-0.694 0.177 2.057 2.057 0 0 0-0.594 0.298c-0.17 0.125-0.305 0.284-0.408 0.474-0.103 0.192-0.154 0.434-0.154 0.728 0 0.28 0.051 0.515 0.154 0.706 0.103 0.192 0.242 0.342 0.419 0.453 0.176 0.11 0.381 0.187 0.617 0.231 0.234 0.044 0.477 0.066 0.726 0.066 0.617 0 1.094-0.102 1.432-0.309 0.338-0.205 0.587-0.452 0.75-0.739 0.16-0.286 0.26-0.576 0.297-0.87 0.036-0.295 0.055-0.53 0.055-0.707v-1.17a1.4 1.4 0 0 1-0.496 0.277zm11.86-6.1v2.096h-2.291v5.647c0 0.53 0.088 0.883 0.264 1.059 0.176 0.177 0.529 0.265 1.057 0.265 0.177 0 0.345-7e-3 0.507-0.022 0.161-0.015 0.316-0.037 0.463-0.066v2.426a7.49 7.49 0 0 1-0.882 0.089 21.67 21.67 0 0 1-0.947 0.022c-0.484 0-0.944-0.034-1.377-0.1a3.233 3.233 0 0 1-1.145-0.386 2.04 2.04 0 0 1-0.782-0.816c-0.191-0.353-0.287-0.816-0.287-1.39v-6.728h-1.894v-2.096h1.894v-3.42h3.129v3.42h2.29zm4.471 0v2.118h0.044a3.907 3.907 0 0 1 1.454-1.754 4.213 4.213 0 0 1 1.036-0.497 3.734 3.734 0 0 1 1.145-0.176c0.206 0 0.433 0.037 0.683 0.11v2.912a5.862 5.862 0 0 0-0.528-0.077 5.566 5.566 0 0 0-0.595-0.033c-0.573 0-1.058 0.096-1.454 0.287a2.52 2.52 0 0 0-0.958 0.783 3.143 3.143 0 0 0-0.518 1.158 6.32 6.32 0 0 0-0.154 1.434v5.14h-3.128v-11.4zm5.684-1.765v-2.582h3.128v2.582h-3.127zm3.128 1.765v11.4h-3.127v-11.4h3.128zm1.63 0h3.569l2.005 2.978 1.982-2.978h3.459l-3.745 5.339 4.208 6.067h-3.57l-2.378-3.596-2.38 3.596h-3.502l4.097-6.001zm15.3 20.84v-30.52h-2.194v-0.732h3.035v31.98h-3.035v-0.732z"/>
+ </g>
+</svg>
diff --git a/static/images/nextcloud-logo.svg b/static/images/nextcloud-logo.svg
new file mode 100755
index 0000000..cc0cdb6
--- /dev/null
+++ b/static/images/nextcloud-logo.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 132.6422 93.377481" enable-background="new 0 0 196.6 72" xml:space="preserve" inkscape:version="0.92.3 (2405546, 2018-03-11)" sodipodi:docname="nextcloud-logo-inverted.svg" width="141.485" height="99.602654" inkscape:export-filename="nextcloud-logo-inverted.png" inkscape:export-xdpi="299.75104" inkscape:export-ydpi="299.75104"><metadata id="metadata20"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs id="defs18"><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8812"><circle id="circle8814" cx="95.669289" cy="95.669296" r="79.724197" style="fill:#00080d;fill-opacity:1;stroke-width:1"/></clipPath></defs><sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1046" id="namedview16" showgrid="false" inkscape:zoom="2.8284271" inkscape:cx="41.308994" inkscape:cy="33.920203" inkscape:current-layer="Layer_1" fit-margin-top="10" fit-margin-left="10" fit-margin-right="10" fit-margin-bottom="10" inkscape:window-x="0" inkscape:window-y="34" inkscape:window-maximized="1" units="px" inkscape:snap-bbox="true" inkscape:bbox-paths="true" inkscape:bbox-nodes="true" inkscape:snap-bbox-edge-midpoints="true" inkscape:snap-bbox-midpoints="true" inkscape:snap-page="true"/><path inkscape:connector-curvature="0" id="path1052" d="m 66.407896,9.375 c -11.805271,0 -21.811217,8.003196 -24.912392,18.846621 -2.695245,-5.751517 -8.535934,-9.780938 -15.263394,-9.780938 -9.25185,0 -16.85711,7.605263 -16.85711,16.857108 0,9.251833 7.60526,16.860567 16.85711,16.860567 6.72746,0 12.568149,-4.031885 15.263395,-9.784412 3.101175,10.84425 13.10712,18.850106 24.912391,18.850106 11.717964,0 21.67289,-7.885111 24.853382,-18.607048 2.745036,5.621934 8.513436,9.541354 15.145342,9.541354 9.25185,0 16.86057,-7.608734 16.86057,-16.860567 0,-9.251845 -7.60872,-16.857108 -16.86057,-16.857108 -6.631906,0 -12.400306,3.916965 -15.145342,9.537891 C 88.080786,17.257475 78.12586,9.375 66.407896,9.375 Z m 0,9.895518 c 8.911648,0 16.030748,7.115653 16.030748,16.027273 0,8.911605 -7.1191,16.030737 -16.030748,16.030737 -8.911593,0 -16.027247,-7.119132 -16.027247,-16.030737 0,-8.91162 7.115653,-16.027271 16.027247,-16.027273 z M 26.23211,28.336202 c 3.90438,0 6.96505,3.057188 6.96505,6.961589 0,3.904386 -3.06067,6.965049 -6.96505,6.965049 -3.90439,0 -6.96161,-3.060663 -6.96161,-6.965049 0,-3.904401 3.05722,-6.961589 6.96161,-6.961589 z m 80.17451,0 c 3.90442,0 6.96506,3.057188 6.96506,6.961589 0,3.904386 -3.06066,6.965049 -6.96506,6.965049 -3.90436,0 -6.961576,-3.060663 -6.961576,-6.965049 0,-3.904401 3.057226,-6.961589 6.961576,-6.961589 z" style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0082c9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.56590033;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" inkscape:export-filename="Nextcloud Hub logo variants.png" inkscape:export-xdpi="300" inkscape:export-ydpi="300"/><path style="fill:#0082c9;fill-opacity:1;stroke-width:0.47038522" d="m 21.235693,69.043756 c -0.32926,0 -0.47147,0.187936 -0.47147,0.517242 V 83.20368 c 0,0.32927 0.14221,0.51495 0.47147,0.51495 h 0.37763 c 0.32927,0 0.51494,-0.18568 0.51494,-0.51495 V 71.874833 l 7.4473,11.557727 c 0.0324,0.0505 0.0677,0.0842 0.10299,0.12123 0.0106,0.0125 0.0179,0.0256 0.0298,0.0366 0.0317,0.0289 0.0665,0.044 0.10065,0.0618 0.019,0.01 0.0338,0.0247 0.055,0.032 0.0148,0.005 0.0304,0.002 0.0458,0.006 0.0525,0.0135 0.10618,0.0275 0.16936,0.0275 h 0.37534 c 0.32926,0 0.47146,-0.18567 0.47146,-0.51495 V 69.560768 c 0,-0.329305 -0.1422,-0.517241 -0.47146,-0.517241 h -0.37534 c -0.32929,0 -0.51724,0.187936 -0.51724,0.517241 V 80.89011 l -7.4473,-11.557716 c -0.0254,-0.03939 -0.0561,-0.06339 -0.0847,-0.0939 -0.086,-0.121611 -0.2222,-0.194545 -0.41654,-0.194545 z m 89.420157,0.187676 c -0.32926,0 -0.18767,0.187956 -0.18767,0.517241 v 4.657417 c 0,0.47037 0.0456,0.79872 0.0456,0.79872 h -0.0456 c 0,0 -0.89419,-2.06893 -3.38722,-2.06893 -2.72821,0 -4.65771,2.16372 -4.56357,5.36231 0,3.19862 1.74024,5.41041 4.51551,5.41041 2.68118,0 3.5749,-2.16508 3.5749,-2.16508 h 0.048 c 0,0 -0.0939,0.28283 -0.0939,0.65913 v 0.79874 c 0,0.32926 0.18796,0.47148 0.51726,0.47148 h 0.32955 c 0.32927,0 0.46917,-0.18798 0.46917,-0.51724 V 69.748673 c 0,-0.329285 -0.51754,-0.517241 -0.84681,-0.517241 z m -36.549859,0.0481 c -0.329276,0 -0.13961,0.187976 -0.13961,0.517241 V 81.32017 c 0,2.25783 1.503766,2.54039 2.350463,2.54039 0.376301,0 0.517217,-0.18796 0.517217,-0.51721 v -0.32958 c 0,-0.32926 -0.188212,-0.46918 -0.423394,-0.46918 -0.470405,-0.047 -1.080249,-0.18887 -1.080249,-1.50594 V 69.79677 c 0,-0.329266 -0.517531,-0.517241 -0.846807,-0.517241 z M 57.220266,70.50169 c -0.32927,0 -0.517238,0.187975 -0.517238,0.51724 v 2.44659 1.17638 5.31423 c 0,2.44599 1.365105,3.81064 3.622946,3.81064 0.42334,0 0.563011,-0.13993 0.563011,-0.46918 v -0.2838 c 0,-0.37629 -0.139671,-0.47024 -0.563011,-0.51724 -0.799652,-0.047 -2.258905,-0.32912 -2.258905,-2.72809 v -5.17464 h 2.117009 c 0.329268,0 0.517238,-0.1399 0.517238,-0.46918 v -0.1419 c 0,-0.32926 -0.18797,-0.51722 -0.517238,-0.51722 h -2.117009 v -2.44659 c 0,-0.329265 -0.139909,-0.51724 -0.469177,-0.51724 z m -18.734963,2.63427 c -2.82229,0 -5.08192,2.02359 -5.12888,5.41037 0,3.19859 2.35289,5.40809 5.41039,5.40809 1.646328,0 2.86852,-0.70495 3.432986,-1.12831 0.23526,-0.18814 0.283014,-0.42392 0.141896,-0.65912 l -0.141896,-0.23346 c -0.141115,-0.28223 -0.374612,-0.33005 -0.656846,-0.14188 -0.470383,0.37629 -1.413295,0.94064 -2.730371,0.94064 -2.116709,0 -3.951319,-1.50604 -3.998279,-4.14019 h 7.479331 c 0.282247,0 0.517238,-0.23501 0.517238,-0.51725 0,-2.9634 -1.550291,-4.93889 -4.325569,-4.93889 z m 29.223883,0 c -3.057482,0 -5.409203,2.25755 -5.456161,5.45614 0,3.1986 2.352896,5.41039 5.410387,5.41039 1.881541,0 3.151307,-0.89493 3.668718,-1.31828 0.235262,-0.2352 0.280729,-0.42265 0.139619,-0.7049 L 71.33213,81.79165 c -0.188136,-0.28225 -0.376902,-0.33005 -0.659131,-0.14191 -0.470383,0.42334 -1.457552,1.08255 -2.915751,1.08255 -2.257826,0 -4.046348,-1.69419 -4.046348,-4.14019 0,-2.49302 1.788522,-4.18596 4.046348,-4.18596 1.223008,0 2.115816,0.61137 2.58618,0.94065 0.282241,0.18807 0.516748,0.18838 0.704913,-0.0938 l 0.1419,-0.23572 c 0.235271,-0.28224 0.187125,-0.51677 -0.0481,-0.7049 -0.517422,-0.42337 -1.645515,-1.17638 -3.432986,-1.17638 z m 15.899301,0 c -3.010451,0 -5.456156,2.30482 -5.456156,5.36231 0,3.10451 2.445705,5.45615 5.456156,5.45615 3.010478,0 5.456168,-2.35164 5.456168,-5.45615 0,-3.05749 -2.44569,-5.36231 -5.456168,-5.36231 z m -30.429991,0.15793 c -0.11518,0.0184 -0.226037,0.0959 -0.331857,0.22197 l -1.904164,2.26805 -1.423546,1.69818 -2.158205,-2.57015 -1.169505,-1.39608 c -0.105876,-0.12611 -0.225795,-0.19525 -0.350163,-0.20597 -0.124354,-0.01 -0.253796,0.0361 -0.379919,0.14189 l -0.288371,0.24258 c -0.252223,0.21167 -0.23901,0.44583 -0.02745,0.69807 l 1.904166,2.26803 1.579172,1.88357 -2.311543,2.75326 c -0.0024,0.002 -0.0035,0.005 -0.0046,0.006 l -1.167215,1.38923 c -0.211653,0.25223 -0.188132,0.51842 0.06408,0.73009 l 0.288368,0.2403 c 0.252239,0.21164 0.481813,0.15841 0.693465,-0.0939 l 1.901876,-2.26806 1.425834,-1.69818 2.158204,2.57244 c 10e-4,0.002 0.0035,0.004 0.0046,0.005 l 1.164928,1.3915 c 0.211652,0.25223 0.477834,0.27337 0.730081,0.0617 l 0.288371,-0.2403 c 0.252237,-0.21165 0.239134,-0.44581 0.02746,-0.69805 l -1.904161,-2.27034 -1.579177,-1.88129 2.311546,-2.75554 c 0.0024,-0.002 0.0035,-0.004 0.0046,-0.006 l 1.167214,-1.38921 c 0.211651,-0.25224 0.188132,-0.51844 -0.06408,-0.73009 l -0.288371,-0.2403 c -0.126112,-0.10587 -0.246408,-0.14655 -0.361607,-0.12815 z m 38.662308,0.0779 c -0.32928,0 -0.47148,0.18796 -0.47148,0.51723 v 6.06722 c 0,2.6812 1.9757,3.99829 4.42169,3.99829 2.446,0 4.421696,-1.31709 4.421696,-3.99829 v -6.06723 c 0.047,-0.32926 -0.13991,-0.51723 -0.469176,-0.51723 h -0.37763 c -0.32927,0 -0.51724,0.18797 -0.51724,0.51723 v 5.69189 c 0,1.59931 -1.035,3.05766 -3.05765,3.05766 -1.9756,0 -3.05763,-1.45835 -3.05763,-3.05766 v -5.69189 c 0,-0.32926 -0.18797,-0.51723 -0.51726,-0.51723 z m -53.403561,0.94063 c 1.505226,0 2.82161,1.08155 2.915753,3.24531 h -6.490633 c 0.32927,-2.11674 1.83447,-3.24531 3.57488,-3.24531 z m 45.171244,0.0939 c 2.210809,0 3.998303,1.74023 3.998303,4.09214 0,2.44598 -1.787494,4.23401 -3.998303,4.23401 -2.210781,0 -3.999385,-1.83505 -4.046332,-4.23401 0,-2.30488 1.835551,-4.09214 4.046332,-4.09214 z m 23.566303,0 c 2.21082,0 3.29339,2.02346 3.29339,4.1402 0,2.9634 -1.60102,4.18595 -3.34144,4.18595 -1.92856,0 -3.24413,-1.6459 -3.29108,-4.18595 0,-2.63415 1.50465,-4.1402 3.33913,-4.1402 z" id="path1174" inkscape:connector-curvature="0"/></svg> \ No newline at end of file
diff --git a/static/images/peertube-logo.svg b/static/images/peertube-logo.svg
new file mode 100755
index 0000000..0e6e228
--- /dev/null
+++ b/static/images/peertube-logo.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg height="682.68799" viewBox="2799 -911 512 682.688" width="512" xmlns="http://www.w3.org/2000/svg"><g stroke-width="32"><path d="m2799-911v341.344l256-170.656" fill="#211f20"/><path d="m2799-569.656v341.344l256-170.656" fill="#737373"/><path d="m3055-740.344v341.344l256-170.656" fill="#f1680d"/></g></svg> \ No newline at end of file
diff --git a/static/images/rclone-logo.svg b/static/images/rclone-logo.svg
new file mode 100755
index 0000000..9259cbb
--- /dev/null
+++ b/static/images/rclone-logo.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ version="1.1"
+ xml:space="preserve"
+ style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
+ id="svg50"
+ sodipodi:docname="rclone-icon.svg"
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
+ id="metadata56"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs54">
+
+
+
+ <clipPath
+ id="_clip1">
+ <rect
+ x="14"
+ y="579"
+ width="257"
+ height="84"
+ id="rect4" />
+ </clipPath>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </defs><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1531"
+ inkscape:window-height="807"
+ id="namedview52"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="1.539823"
+ inkscape:cx="-84.425288"
+ inkscape:cy="26.5"
+ inkscape:window-x="70"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg50" />
+ <g
+ id="g824"
+ transform="matrix(1.3422256,0,0,1.3422256,-2.2309418e-8,3.8420351)"><path
+ d="m 45.726917,21.83581 c -1.507672,-2.611426 -3.701518,-4.579735 -6.222732,-5.808561 -0.322585,1.72227 -0.932898,3.419936 -1.857594,5.021921 l -1.459147,2.532147 c 0.971853,0.539918 1.817954,1.334759 2.414598,2.368122 1.753027,3.035842 0.712146,6.919151 -2.324383,8.672176 -3.035847,1.753025 -6.919159,0.712829 -8.672186,-2.323698 l -2.944264,-5.091631 h -4.751283 l -2.375642,4.114312 2.946315,5.090948 c 4.025469,6.971776 12.939592,9.360401 19.911375,5.334937 6.971101,-4.024782 9.359727,-12.938896 5.334943,-19.910673"
+ style="fill:#70caf2;fill-rule:nonzero;stroke-width:0.68344086"
+ id="path7"
+ inkscape:connector-curvature="0" /><path
+ d="M 31.127807,0.45456543 C 24.156023,-3.5702158 15.2419,-1.1815912 11.217114,5.7895021 9.7087599,8.4009285 9.1018638,11.285048 9.2980112,14.083052 10.950572,13.501445 12.726153,13.180911 14.576228,13.180911 l 2.921711,-0.0027 c -0.01845,-1.111274 0.247406,-2.241684 0.843367,-3.2743635 1.75371,-3.036526 5.636339,-4.0774059 8.672868,-2.3236971 3.03653,1.7530242 4.076727,5.6356506 2.323701,8.6721766 l -2.936747,5.095732 2.374958,4.114995 4.751283,-6.83e-4 2.93538,-5.097099 C 40.488218,13.394145 38.099591,4.4793466 31.127807,0.45456543"
+ style="fill:#b4e3f9;fill-rule:nonzero;stroke-width:0.68344086"
+ id="path11"
+ inkscape:connector-curvature="0" /><path
+ d="m 19.297646,37.095505 -1.463932,-2.529413 c -0.9534,0.57204 -2.064675,0.906925 -3.25728,0.906925 -3.506736,0 -6.3491688,-2.842428 -6.3491688,-6.349162 0,-3.50605 2.8424328,-6.348479 6.3491688,-6.348479 l 5.881011,-0.0041 2.376326,-4.114312 -2.376326,-4.114312 -5.881695,0.0055 C 6.5254965,14.548074 1.6621211e-8,21.074248 1.6621211e-8,29.12381 1.6621211e-8,37.174056 6.5254965,43.70023 14.57575,43.70023 c 3.014659,0 5.814718,-0.915811 8.139101,-2.48294 -1.329976,-1.140662 -2.49251,-2.520528 -3.417205,-4.12183"
+ style="fill:#3f79ad;fill-rule:nonzero;stroke-width:0.68344086"
+ id="path15"
+ inkscape:connector-curvature="0" /></g>
+</svg> \ No newline at end of file
diff --git a/static/images/store.png b/static/images/store.png
new file mode 100755
index 0000000..817f42f
--- /dev/null
+++ b/static/images/store.png
Binary files differ
diff --git a/static/js/site.js b/static/js/site.js
new file mode 100755
index 0000000..ab6b766
--- /dev/null
+++ b/static/js/site.js
@@ -0,0 +1,330 @@
+"use strict";
+
+function debounce(func, wait) {
+ var timeout;
+
+ return function () {
+ var context = this;
+ var args = arguments;
+ clearTimeout(timeout);
+
+ timeout = setTimeout(function () {
+ timeout = null;
+ func.apply(context, args);
+ }, wait);
+ };
+}
+
+function makeTeaser(body, terms) {
+ var TERM_WEIGHT = 40;
+ var NORMAL_WORD_WEIGHT = 2;
+ var FIRST_WORD_WEIGHT = 8;
+ var TEASER_MAX_WORDS = 10;
+
+ var stemmedTerms = terms.map(function (w) {
+ return elasticlunr.stemmer(w.toLowerCase());
+ });
+ var termFound = false;
+ var index = 0;
+ var weighted = [];
+
+ var sentences = body.toLowerCase().split(". ");
+
+ for (var i in sentences) {
+ var words = sentences[i].split(" ");
+ var value = FIRST_WORD_WEIGHT;
+
+ for (var j in words) {
+ var word = words[j];
+
+ if (word.length > 0) {
+ for (var k in stemmedTerms) {
+ if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) {
+ value = TERM_WEIGHT;
+ termFound = true;
+ }
+ }
+ weighted.push([word, value, index]);
+ value = NORMAL_WORD_WEIGHT;
+ }
+
+ index += word.length;
+ index += 1;
+ }
+
+ index += 1;
+ }
+
+ if (weighted.length === 0) {
+ return body;
+ }
+
+ var windowWeights = [];
+ var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS);
+
+ var curSum = 0;
+ for (var i = 0; i < windowSize; i++) {
+ curSum += weighted[i][1];
+ }
+ windowWeights.push(curSum);
+
+ for (var i = 0; i < weighted.length - windowSize; i++) {
+ curSum -= weighted[i][1];
+ curSum += weighted[i + windowSize][1];
+ windowWeights.push(curSum);
+ }
+
+ var maxSumIndex = 0;
+ if (termFound) {
+ var maxFound = 0;
+ for (var i = windowWeights.length - 1; i >= 0; i--) {
+ if (windowWeights[i] > maxFound) {
+ maxFound = windowWeights[i];
+ maxSumIndex = i;
+ }
+ }
+ }
+
+ var teaser = [];
+ var startIndex = weighted[maxSumIndex][2];
+ for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) {
+ var word = weighted[i];
+ if (startIndex < word[2]) {
+ teaser.push(body.substring(startIndex, word[2]));
+ startIndex = word[2];
+ }
+
+ if (word[1] === TERM_WEIGHT) {
+ teaser.push("<b>");
+ }
+ startIndex = word[2] + word[0].length;
+ teaser.push(body.substring(word[2], startIndex));
+
+ if (word[1] === TERM_WEIGHT) {
+ teaser.push("</b>");
+ }
+ }
+ teaser.push("…");
+ return teaser.join("");
+}
+
+function formatSearchResultItem(item, terms) {
+ return (
+ `<article class='box'>` +
+ `<h1 class='title'>` +
+ `<a class='link' class='link' href='${item.ref}'>${item.doc.title}</a>` +
+ `</h1>` +
+ `<div class='content mt-2'>` +
+ `${makeTeaser(item.doc.body, terms)}` +
+ `<a href='${item.ref}'>` +
+ `Read More <span class="icon is-small"><i class="fas fa-arrow-right fa-xs"></i></span>` +
+ `</a>` +
+ `</div>` +
+ `</article>`
+ );
+}
+
+function search() {
+ var $searchInput = document.getElementById("search");
+ var $searchResults = document.querySelector(".search-results");
+ var $searchResultsItems = document.querySelector(".search-results__items");
+ var MAX_ITEMS = 10;
+
+ var options = {
+ bool: "AND",
+ fields: {
+ title: { boost: 2 },
+ body: { boost: 1 },
+ },
+ };
+ var currentTerm = "";
+ var index = elasticlunr.Index.load(window.searchIndex);
+
+ $searchInput.addEventListener(
+ "keyup",
+ debounce(function () {
+ var term = $searchInput.value.trim();
+ if (term === currentTerm || !index) {
+ return;
+ }
+ $searchResults.style.display = term === "" ? "none" : "block";
+ $searchResultsItems.innerHTML = "";
+ if (term === "") {
+ return;
+ }
+
+ var results = index.search(term, options);
+ if (results.length === 0) {
+ $searchResults.style.display = "none";
+ return;
+ }
+
+ currentTerm = term;
+ for (var i = 0; i < Math.min(results.length, MAX_ITEMS); i++) {
+ var item = document.createElement("div");
+ item.classList.add("mb-4");
+ item.innerHTML = formatSearchResultItem(results[i], term.split(" "));
+ $searchResultsItems.appendChild(item);
+ }
+ }, 150)
+ );
+}
+
+function documentReadyCallback() {
+
+ if (localStorage.getItem("theme") === "dark") {
+ document.body.setAttribute("theme", "dark");
+ document.querySelectorAll("img, picture, video, pre").forEach(img => img.setAttribute("theme", "dark"));
+ document.querySelectorAll(".vimeo, .youtube, .chart").forEach(video => video.setAttribute("theme", "dark"));
+ document.getElementById("dark-mode").setAttribute("title", "Switch to light theme");
+ }
+
+ document.querySelector(".navbar-burger").addEventListener("click", () => {
+ document.querySelector(".navbar-burger").classList.toggle("is-active");
+ document.querySelector(".navbar-menu").classList.toggle("is-active");
+ });
+
+ document.querySelectorAll("div.navbar-end > .navbar-item").forEach((el) => {
+ if (location.href.includes(el.getAttribute("href"))) {
+ document.querySelectorAll("a.navbar-item.is-active").forEach(itm => itm.classList.remove("is-active"));
+ el.classList.add("is-active");
+ }
+ })
+
+ document.getElementById("nav-search").addEventListener("click", (evt) => {
+ //let target = evt.currentTarget.getAttribute("data-target");
+ document.querySelector("html").classList.add("is-clipped");
+ document.getElementById("search-modal").classList.add("is-active");
+
+ document.getElementById("search").focus();
+ document.getElementById("search").select();
+ });
+
+ document.querySelector(".modal-close").addEventListener("click", (evt) => {
+ document.querySelector("html").classList.remove("is-clipped");
+ evt.currentTarget.parentElement.classList.remove("is-active");
+ });
+
+ document.querySelector(".modal-background").addEventListener("click", (evt) => {
+ document.querySelector("html").classList.remove("is-clipped");
+ evt.currentTarget.parentElement.classList.remove("is-active");
+ });
+
+ document.getElementById("search").addEventListener("keyup", () => {
+ search();
+ });
+
+ document.getElementById("dark-mode").addEventListener("click", () => {
+ if (
+ localStorage.getItem("theme") == null ||
+ localStorage.getItem("theme") == "light"
+ ) {
+ localStorage.setItem("theme", "dark");
+ document.body.setAttribute("theme", "dark");
+ document.querySelectorAll("img, picture, video, pre").forEach(img => img.setAttribute("theme", "dark"));
+ document.querySelectorAll(".vimeo, .youtube, .chart").forEach(video => video.setAttribute("theme", "dark"));
+
+ document.getElementById("dark-mode").setAttribute("title", "Switch to light theme");
+ } else {
+ localStorage.setItem("theme", "light");
+ document.body.removeAttribute("theme", "dark");
+ document.querySelectorAll("img, picture, video, pre").forEach(img => img.removeAttribute("theme", "dark"))
+ document.querySelectorAll(".vimeo, .youtube, .chart").forEach(video => video.removeAttribute("theme", "dark"));
+
+ document.getElementById("dark-mode").setAttribute("title", "Switch to dark theme");
+ }
+ });
+
+ if (typeof mermaid !== "undefined") {
+ mermaid.initialize({ startOnLoad: true });
+ }
+
+ if (typeof chartXkcd !== "undefined") {
+ document.querySelectorAll(".chart").forEach((el, i) => {
+ el.setAttribute("id", `chart-${i}`);
+
+ let svg = document.getElementById(`chart-${i}`);
+ let { type, ...chartData } = JSON.parse(el.textContent);
+ new chartXkcd[type](svg, chartData);
+ });
+ }
+
+ if (typeof Galleria !== "undefined") {
+ document.querySelectorAll(".galleria").forEach((el, i) => {
+ el.setAttribute("id", `galleria-${i}`);
+
+ let { images } = JSON.parse(el.textContent);
+
+ for (let image of images) {
+ el.insertAdjacentHTML("beforeend",
+ `<a href="${image.src}"><img src="${image.src}" data-title="${image.title}" data-description="${image.description}"></a>`
+ );
+ }
+
+ Galleria.run(".galleria");
+ });
+ }
+
+ if (typeof mapboxgl !== "undefined") {
+ document.querySelectorAll(".map").forEach((el, i) => {
+ el.setAttribute("id", `map-${i}`);
+
+ mapboxgl.accessToken = el.querySelector(".mapbox-access-token").textContent.trim();
+ let zoom = el.querySelector(".mapbox-zoom").textContent.trim();
+
+ let map = new mapboxgl.Map({
+ container: `map-${i}`,
+ style: "mapbox://styles/mapbox/light-v10",
+ center: [-96, 37.8],
+ zoom: zoom,
+ });
+
+ map.addControl(new mapboxgl.NavigationControl());
+
+ let geojson = JSON.parse(el.querySelector(".mapbox-geojson").textContent.trim());
+
+ const center = [0, 0];
+
+ geojson.features.forEach(function (marker) {
+ center[0] += marker.geometry.coordinates[0];
+ center[1] += marker.geometry.coordinates[1];
+
+ new mapboxgl.Marker()
+ .setLngLat(marker.geometry.coordinates)
+ .setPopup(
+ new mapboxgl.Popup({ offset: 25 }) // add popups
+ .setHTML(
+ "<h3>" +
+ marker.properties.title +
+ "</h3><p>" +
+ marker.properties.description +
+ "</p>"
+ )
+ )
+ .addTo(map);
+ });
+
+ center[0] = center[0] / geojson.features.length;
+ center[1] = center[1] / geojson.features.length;
+
+ map.setCenter(center);
+ });
+ }
+
+ if (typeof renderMathInElement !== "undefined") {
+ renderMathInElement(document.body, {
+ delimiters: [
+ { left: '$$', right: '$$', display: true },
+ { left: '$', right: '$', display: false },
+ { left: '\\(', right: '\\)', display: false },
+ { left: '\\[', right: '\\]', display: true }
+ ]
+ });
+ }
+};
+
+if (document.readyState === 'loading') { // Loading hasn't finished yet
+ document.addEventListener('DOMContentLoaded', documentReadyCallback);
+} else { // `DOMContentLoaded` has already fired
+ documentReadyCallback();
+}