├── Dockerfile ├── README.md ├── crontab.txt └── deployment └── deployment.yaml /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.8 2 | RUN apk update \ 3 | && apk upgrade \ 4 | && apk add --no-cache \ 5 | ca-certificates \ 6 | && update-ca-certificates 2>/dev/null || true \ 7 | && apk add --no-cache python speedtest-cli 8 | RUN touch /var/log/cron.log 9 | ADD crontab.txt /crontab.txt 10 | RUN /usr/bin/crontab /crontab.txt 11 | ENTRYPOINT ["sh" , "-c", "speedtest && /usr/sbin/crond -f -L /var/log/cron.log"] 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # speedInspectorRPI 2 | > A docker image running speedtest every 10 minutes. 3 | 4 | 5 | Intended Use: Run in a Raspberry Pi connected via ethernet to your main router. 6 | 7 | > Note: When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter. The Raspberry Pi 3+ models comes with a Gigabit LAN adapter which [supports a maximum throughput of 300 Mbit/s](https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/). 8 | 9 | Log the connection speed to docker logs and run in in a Raspberry Pi or your main machine. 10 | 11 | ### Build docker image 12 | 13 | ```bash 14 | docker build -t speedtest . 15 | ``` 16 | 17 | ### Run docker container 18 | 19 | ```bash 20 | docker run -d --name=speedInspector --rm speedtest 21 | ``` 22 | 23 | ### Check previous recorded speeds: 24 | 25 | ```bash 26 | docker logs speedInspector 27 | 28 | Ping: 29.826 ms 29 | Download: 18.15 Mbit/s 30 | Upload: 5.21 Mbit/s 31 | Ping: 20.798 ms 32 | Download: 18.14 Mbit/s 33 | Upload: 4.83 Mbit/s 34 | Ping: 20.489 ms 35 | Download: 19.20 Mbit/s 36 | Upload: 4.75 Mbit/s 37 | Ping: 38.398 ms 38 | Download: 19.46 Mbit/s 39 | Upload: 4.40 Mbit/s 40 | Ping: 28.94 ms 41 | Download: 10.01 Mbit/s 42 | Upload: 5.06 Mbit/s 43 | Ping: 31.304 ms 44 | Download: 19.83 Mbit/s 45 | Upload: 4.90 Mbit/s 46 | Ping: 19.648 ms 47 | Download: 17.38 Mbit/s 48 | Upload: 5.14 Mbit/s 49 | Ping: 20.523 ms 50 | Download: 19.15 Mbit/s 51 | Upload: 5.17 Mbit/s 52 | Ping: 20.937 ms 53 | Download: 19.36 Mbit/s 54 | Upload: 5.07 Mbit/s 55 | Ping: 20.604 ms 56 | Download: 12.80 Mbit/s 57 | Upload: 5.27 Mbit/s 58 | Ping: 19.774 ms 59 | Download: 18.87 Mbit/s 60 | Upload: 4.14 Mbit/s 61 | ``` 62 | 63 | > While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network. 64 | -------------------------------------------------------------------------------- /crontab.txt: -------------------------------------------------------------------------------- 1 | */1 * * * * speedtest-cli --simple 2>&1 | tee /var/log/cron.log 2 | 3 | -------------------------------------------------------------------------------- /deployment/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: speedtest-inspector-deployment 5 | labels: 6 | app: speedtest-inspector 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: speedtest-inspector 12 | template: 13 | metadata: 14 | labels: 15 | app: speedtest-inspector 16 | spec: 17 | containers: 18 | - name: speddtest 19 | image: igomeza/speedinspector 20 | resources: 21 | limits: 22 | cpu: 100m 23 | memory: 400Mi 24 | --------------------------------------------------------------------------------