Initial commit
15
Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
FROM caddy
|
||||
|
||||
COPY root/ /
|
||||
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-noarch.tar.xz /tmp
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-x86_64.tar.xz /tmp
|
||||
|
||||
RUN tar -C / -Jxpf /tmp/s6-overlay-x86_64.tar.xz && \
|
||||
tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
ENTRYPOINT ["/init"]
|
||||
CMD caddy run --config /config/Caddyfile
|
7
docker-compose.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
services:
|
||||
caddy:
|
||||
build: .
|
||||
container_name: leekspin
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 80:80
|
4
root/config/Caddyfile
Normal file
@@ -0,0 +1,4 @@
|
||||
:80 {
|
||||
root * /config/www
|
||||
file_server
|
||||
}
|
BIN
root/config/www/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
root/config/www/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
root/config/www/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
9
root/config/www/browserconfig.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#000000</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
BIN
root/config/www/favicon-16x16.png
Normal file
After Width: | Height: | Size: 606 B |
BIN
root/config/www/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
root/config/www/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
132
root/config/www/index.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>LEEKSPIN 2.0</title>
|
||||
<meta name="description" content="Non-Flash version of the old meme">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<!-- Icon from stockio.com -->
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#2ebc6d">
|
||||
<meta name="msapplication-TileColor" content="#000000">
|
||||
<meta name="theme-color" content="#000000">
|
||||
|
||||
<style>
|
||||
body {
|
||||
background: black;
|
||||
margin: 0;
|
||||
height: 97vh;
|
||||
}
|
||||
|
||||
video {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
height: 97vh;
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: white;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
height: 3vh;
|
||||
}
|
||||
|
||||
#overlay {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: black;
|
||||
opacity: 0.5;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#overlay img {
|
||||
position: relative;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
display: block;
|
||||
width: 30%;
|
||||
height: 30%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="overlay" onclick="play()">
|
||||
<img alt="Play button" src="play-arrow.svg">
|
||||
</div>
|
||||
<video id="video1" loop preload="auto">
|
||||
<source src="leekspin.webm" type="video/webm">
|
||||
</video>
|
||||
<audio id="audio1" loop preload="auto">
|
||||
<source src="leekspin.opus" type="audio/ogg">
|
||||
</audio>
|
||||
<h3>You've been spinning for <span id="timer">00:00:00</span></h3>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
var v1 = document.getElementById("video1");
|
||||
var a1 = document.getElementById("audio1");
|
||||
var o1 = document.getElementById("overlay");
|
||||
|
||||
var time
|
||||
var output
|
||||
|
||||
function play() {
|
||||
time = 0;
|
||||
v1.play();
|
||||
a1.play();
|
||||
o1.style.display = "none";
|
||||
StartTimer();
|
||||
}
|
||||
|
||||
function convertOutput() {
|
||||
var hours = 0
|
||||
var mins = 0
|
||||
var secs = time
|
||||
|
||||
while (secs >= 60) {
|
||||
secs -= 60;
|
||||
mins += 1;
|
||||
}
|
||||
|
||||
while (mins >= 60) {
|
||||
mins -= 60;
|
||||
hours += 1;
|
||||
}
|
||||
|
||||
if (secs < 10) {
|
||||
secs = "0" + secs;
|
||||
}
|
||||
|
||||
if (mins < 10) {
|
||||
mins = "0" + mins;
|
||||
}
|
||||
|
||||
if (hours < 10) {
|
||||
hours = "0" + hours;
|
||||
}
|
||||
|
||||
output = hours + ":" + mins + ":" + secs;
|
||||
}
|
||||
|
||||
function StartTimer() {
|
||||
time += 1;
|
||||
convertOutput();
|
||||
document.getElementById("timer").innerHTML = output;
|
||||
self.setTimeout("StartTimer()", 1000);
|
||||
}
|
||||
</script>
|
||||
|
||||
</html>
|
BIN
root/config/www/leekspin.opus
Normal file
BIN
root/config/www/leekspin.webm
Normal file
BIN
root/config/www/mstile-144x144.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
root/config/www/mstile-150x150.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
root/config/www/mstile-310x150.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
root/config/www/mstile-310x310.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
root/config/www/mstile-70x70.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
18
root/config/www/play-arrow.svg
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="11px" height="14px" viewBox="0 0 11 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>play_arrow</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Rounded" transform="translate(-753.000000, -955.000000)">
|
||||
<g id="AV" transform="translate(100.000000, 852.000000)">
|
||||
<g id="-Round-/-AV-/-play_arrow" transform="translate(646.000000, 98.000000)">
|
||||
<g>
|
||||
<rect id="Rectangle-Copy-50" x="0" y="0" width="24" height="24"></rect>
|
||||
<path d="M7,6.82 L7,17.18 C7,17.97 7.87,18.45 8.54,18.02 L16.68,12.84 C17.3,12.45 17.3,11.55 16.68,11.15 L8.54,5.98 C7.87,5.55 7,6.03 7,6.82 Z" id="🔹Icon-Color" fill="#FFF"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
38
root/config/www/safari-pinned-tab.svg
Normal file
@@ -0,0 +1,38 @@
|
||||
<?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="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M4972 6975 c-17 -14 -41 -43 -53 -63 -21 -34 -256 -404 -374 -587
|
||||
-84 -131 -828 -1298 -1228 -1925 -43 -69 -92 -144 -108 -167 -16 -23 -29 -44
|
||||
-29 -48 0 -18 -98 -130 -181 -206 -52 -48 -107 -99 -124 -114 -16 -16 -82 -76
|
||||
-145 -134 -62 -58 -141 -131 -174 -161 -33 -30 -78 -73 -102 -95 -23 -22 -64
|
||||
-60 -90 -84 -27 -24 -79 -71 -115 -105 -36 -33 -97 -90 -135 -125 -38 -35
|
||||
-101 -94 -140 -130 -39 -36 -98 -91 -130 -121 -33 -30 -113 -104 -179 -165
|
||||
-65 -60 -126 -117 -135 -125 -16 -15 -254 -235 -276 -255 -34 -31 -221 -205
|
||||
-249 -230 -43 -41 -243 -225 -280 -260 -111 -101 -234 -215 -261 -240 -17 -16
|
||||
-82 -77 -144 -135 -155 -144 -159 -148 -189 -210 -22 -46 -26 -68 -25 -135 0
|
||||
-97 23 -151 95 -227 27 -29 49 -54 49 -58 0 -3 -38 -13 -85 -23 -107 -22 -133
|
||||
-34 -151 -68 -21 -42 -17 -84 11 -117 30 -36 69 -47 122 -33 21 5 52 12 68 14
|
||||
17 3 57 12 90 20 122 31 133 31 158 1 l23 -26 -127 -127 c-73 -74 -128 -137
|
||||
-131 -152 -13 -69 36 -129 105 -129 38 0 47 7 172 130 l131 130 27 -28 27 -28
|
||||
-35 -154 c-19 -85 -35 -167 -35 -182 0 -43 47 -89 97 -93 35 -4 46 0 72 24 16
|
||||
15 32 39 35 52 4 13 14 59 24 101 l17 77 53 -50 c79 -74 132 -98 227 -103 97
|
||||
-6 190 38 269 126 22 23 85 93 141 153 56 61 113 122 126 136 13 14 71 77 129
|
||||
139 58 62 118 127 133 144 16 17 73 78 126 136 54 58 118 127 142 154 24 26
|
||||
64 70 89 96 25 26 83 89 130 140 47 51 105 113 129 139 24 25 76 82 116 126
|
||||
40 44 93 101 117 126 23 26 86 93 138 150 94 102 196 212 235 253 19 21 240
|
||||
260 260 282 27 29 286 309 380 410 17 18 73 79 125 136 151 164 191 200 265
|
||||
246 71 43 358 226 502 319 43 28 350 224 683 436 333 212 610 389 616 394 5 4
|
||||
19 13 30 19 21 13 717 457 856 546 48 31 91 66 97 77 15 28 14 83 -3 106 -28
|
||||
39 -842 847 -867 860 -36 19 -84 6 -155 -42 -32 -21 -76 -50 -97 -62 l-38 -23
|
||||
64 98 c35 55 67 107 70 118 21 56 11 69 -434 513 -236 235 -431 429 -432 431
|
||||
-2 1 -22 5 -44 8 -33 4 -45 1 -71 -21z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
18
root/config/www/site.webmanifest
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "Leekspin 2.0",
|
||||
"short_name": "Leekspin 2.0",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#000000"
|
||||
}
|