Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
00599905c2
|
|||
|
fb9b974e0d
|
|||
|
c7fcf0ecd5
|
|||
|
eda39bd47e
|
|||
|
4e417871a8
|
|||
|
3fae41e34f
|
|||
|
1c9c1d40df
|
|||
|
259ac9c652
|
|||
|
07bcf0073e
|
|||
|
edd3693fb6
|
|||
|
ea0a34258b
|
@@ -25,9 +25,11 @@ RUN mkdir -p /var/www && mkdir -p /var/www/data/speed
|
|||||||
WORKDIR /var/www
|
WORKDIR /var/www
|
||||||
|
|
||||||
# Copy web assets and scripts
|
# Copy web assets and scripts
|
||||||
COPY index.html /var/www/index.html
|
COPY src/index.html /var/www/index.html
|
||||||
COPY run_speed_test.sh /usr/local/bin/run_speed_test.sh
|
COPY src/favicon.ico /var/www/favicon.ico
|
||||||
COPY start.sh /usr/local/bin/start.sh
|
COPY src/gem_nw_128.png /var/www/icon.png
|
||||||
|
COPY src/run_speed_test.sh /usr/local/bin/run_speed_test.sh
|
||||||
|
COPY src/start.sh /usr/local/bin/start.sh
|
||||||
|
|
||||||
# Ensure scripts are executable
|
# Ensure scripts are executable
|
||||||
RUN chmod +x /usr/local/bin/run_speed_test.sh /usr/local/bin/start.sh
|
RUN chmod +x /usr/local/bin/run_speed_test.sh /usr/local/bin/start.sh
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://git.heshapps.com/asolkar/speed-data-docker/raw/branch/main/src/gem_nw_256.png" />
|
||||||
|
</p>
|
||||||
|
|
||||||
# speed-data-docker
|
# speed-data-docker
|
||||||
|
|
||||||
Debian-based Docker image that runs hourly network speed tests (using speedtest-cli) and serves a simple web UI.
|
Debian-based Docker image that runs hourly network speed tests (using speedtest-cli) and serves a simple web UI.
|
||||||
@@ -47,7 +51,9 @@ docker run -d --name speed-data -e PORT=8080 -p 8080:8080 --restart unless-stopp
|
|||||||
Alternatively, run with a host bind mount (for direct access to files on the host):
|
Alternatively, run with a host bind mount (for direct access to files on the host):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker rm -f speed-data || true \
|
docker build -t speed-data-app .
|
||||||
|
|
||||||
|
docker rm -f $(docker ps -a -q --filter name=speed\-data --filter status=running) || true \
|
||||||
&& docker volume create speed-data-volume && \
|
&& docker volume create speed-data-volume && \
|
||||||
docker run -d --name speed-data -e CRON_MINUTE=18 -e PORT=8080 -p 8585:8080 --restart unless-stopped \
|
docker run -d --name speed-data -e CRON_MINUTE=18 -e PORT=8080 -p 8585:8080 --restart unless-stopped \
|
||||||
-v ~/docker-data/speed-data-app/data:/var/www/data/speed speed-data-app
|
-v ~/docker-data/speed-data-app/data:/var/www/data/speed speed-data-app
|
||||||
|
|||||||
BIN
media/gem_nw_light.alpha.png
Normal file
BIN
media/gem_nw_light.alpha.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 708 KiB |
BIN
media/gem_nw_light.png
Normal file
BIN
media/gem_nw_light.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
BIN
media/gem_nw_light.xcf
Normal file
BIN
media/gem_nw_light.xcf
Normal file
Binary file not shown.
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
VERSION=0.2.0
|
VERSION=0.4.0
|
||||||
|
|
||||||
docker image build --no-cache -t asolkar/speed-data-docker:${VERSION} . && \
|
docker image build --no-cache -t asolkar/speed-data-docker:${VERSION} . && \
|
||||||
docker push asolkar/speed-data-docker:${VERSION}
|
docker push asolkar/speed-data-docker:${VERSION}
|
||||||
6
scripts/vscode
Executable file
6
scripts/vscode
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
/opt/vscode/VSCode-linux-x64/code \
|
||||||
|
--enable-features=UseOzonePlatform,WaylandWindowDecorations \
|
||||||
|
--ozone-platform-hint=auto \
|
||||||
|
--unity-launch %F . & disown %1
|
||||||
BIN
src/favicon.ico
Normal file
BIN
src/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
BIN
src/gem_nw_128.png
Normal file
BIN
src/gem_nw_128.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
src/gem_nw_256.png
Normal file
BIN
src/gem_nw_256.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 98 KiB |
@@ -58,6 +58,7 @@ body {
|
|||||||
}
|
}
|
||||||
h1, h2, h5 {
|
h1, h2, h5 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Recent boxes */
|
/* Recent boxes */
|
||||||
@@ -149,8 +150,12 @@ h1, h2, h5 {
|
|||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Responsive */
|
/* Responsive: Small screen, mobile, etc. */
|
||||||
@media only screen and (max-width: 1100px) {
|
@media only screen and (max-width: 1100px) {
|
||||||
|
#hd-cont img#app-icon {
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
}
|
||||||
#recent #recent_1 .recent_dn, #recent #recent_1 .recent_up {
|
#recent #recent_1 .recent_dn, #recent #recent_1 .recent_up {
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
}
|
}
|
||||||
@@ -198,7 +203,13 @@ h1, h2, h5 {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Responsive: Larger screen, desktop, etc. */
|
||||||
@media only screen and (min-width: 1100px) {
|
@media only screen and (min-width: 1100px) {
|
||||||
|
#hd-cont img#app-icon {
|
||||||
|
width: 4em;
|
||||||
|
height: 4em;
|
||||||
|
}
|
||||||
#recent #recent_1 .recent_dn, #recent #recent_1 .recent_up {
|
#recent #recent_1 .recent_dn, #recent #recent_1 .recent_up {
|
||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
}
|
}
|
||||||
@@ -233,6 +244,50 @@ h1, h2, h5 {
|
|||||||
float: left;
|
float: left;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
height: 1.5em;
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
#hd-cont {
|
||||||
|
width: max-content;
|
||||||
|
font-size: 1.5em;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-top: 0.25em;
|
||||||
|
padding-bottom: 0.25em;
|
||||||
|
}
|
||||||
|
#hd-cont .hd-txt {
|
||||||
|
font-size: 1.5em;
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
#hd-cont img#app-icon {
|
||||||
|
padding-right: 0.25em;
|
||||||
|
display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
#app-advt {
|
||||||
|
display: block;
|
||||||
|
width: max-content;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
padding-bottom: 0.5em;
|
||||||
|
font-size: 0.5em;
|
||||||
|
}
|
||||||
|
#app-advt img {
|
||||||
|
padding-right: 0.5em;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
/* #app-advt img:hover {
|
||||||
|
width: 128px;
|
||||||
|
height: 128px;
|
||||||
|
}*/
|
||||||
|
#app-advt a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: grey;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
@@ -458,7 +513,11 @@ function show_content() {
|
|||||||
$("#spinner")
|
$("#spinner")
|
||||||
.after("<h2>Most recent samples</h2>")
|
.after("<h2>Most recent samples</h2>")
|
||||||
.after("<h5>(ISP: " + isp + ")</h5>")
|
.after("<h5>(ISP: " + isp + ")</h5>")
|
||||||
.after("<h1>Network Speed Data</h1>")
|
.after("<div id=\"app-advt\"><a href=\"https://git.heshapps.com/asolkar/speed-data-docker\">Presented by Heshapps.com - speed-data-docker</a></div>")
|
||||||
|
.after($('<div id="hd-cont"></div>').append(
|
||||||
|
$('<img id="app-icon" src="icon.png" />'),
|
||||||
|
$('<div class="hd-txt">Network Speed</div>')
|
||||||
|
))
|
||||||
.hide();
|
.hide();
|
||||||
console.timeEnd("speedtest");
|
console.timeEnd("speedtest");
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user