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
|
||||
|
||||
# Copy web assets and scripts
|
||||
COPY index.html /var/www/index.html
|
||||
COPY run_speed_test.sh /usr/local/bin/run_speed_test.sh
|
||||
COPY start.sh /usr/local/bin/start.sh
|
||||
COPY src/index.html /var/www/index.html
|
||||
COPY src/favicon.ico /var/www/favicon.ico
|
||||
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
|
||||
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
|
||||
|
||||
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):
|
||||
|
||||
```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 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
|
||||
|
||||
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
|
||||
|
||||
VERSION=0.2.0
|
||||
VERSION=0.4.0
|
||||
|
||||
docker image build --no-cache -t 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 {
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Recent boxes */
|
||||
@@ -149,8 +150,12 @@ h1, h2, h5 {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
/* Responsive: Small screen, mobile, etc. */
|
||||
@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 {
|
||||
font-size: 2em;
|
||||
}
|
||||
@@ -198,7 +203,13 @@ h1, h2, h5 {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Responsive: Larger screen, desktop, etc. */
|
||||
@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 {
|
||||
font-size: 3em;
|
||||
}
|
||||
@@ -233,6 +244,50 @@ h1, h2, h5 {
|
||||
float: left;
|
||||
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>
|
||||
</head>
|
||||
@@ -458,7 +513,11 @@ function show_content() {
|
||||
$("#spinner")
|
||||
.after("<h2>Most recent samples</h2>")
|
||||
.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();
|
||||
console.timeEnd("speedtest");
|
||||
}
|
||||
@@ -29,14 +29,14 @@ service cron start || cron || true
|
||||
|
||||
# Run the initial speed test once (in background) to populate files if possible
|
||||
# We run it in background so server starts promptly. The cron will run hourly.
|
||||
/usr/local/bin/run_speed_test.sh >> /var/log/cron.log 2>&1 || true &
|
||||
/usr/local/bin/run_speed_test.sh >> /var/log/cron.log 2>&1 || true &
|
||||
|
||||
# Start busybox httpd serving /var/www on configured port in foreground
|
||||
if command -v busybox >/dev/null 2>&1; then
|
||||
echo "starting busybox httpd on port ${PORT} serving /var/www"
|
||||
busybox httpd -f -p ${PORT} -h /var/www
|
||||
busybox httpd -f -p ${PORT} -h /var/www
|
||||
else
|
||||
echo "warning: busybox httpd not found; container will keep running with cron only" >&2
|
||||
# keep the script running so container doesn't exit
|
||||
tail -f /var/log/cron.log
|
||||
echo "warning: busybox httpd not found; container will keep running with cron only" >&2
|
||||
# keep the script running so container doesn't exit
|
||||
tail -f /var/log/cron.log
|
||||
fi
|
||||
Reference in New Issue
Block a user