Skip to content

speedtest

Speedtest Tracker web UI.

speedtest

Prepare

podman pull lscr.io/linuxserver/speedtest-tracker:latest
mkdir -p $HOME/apps/{variables,container_data}
touch $HOME/apps/variables/speedtest.env
mkdir -p $HOME/apps/container_data/speedtest

Edit environment file

Edit the environment file and paste your default values for this service:

nano $HOME/apps/variables/speedtest.env
Save the result for APP_KEY

openssl rand -base64 32

Example contents:

PUID=1000
PGID=1000
TZ=Europe/Athens
SSL_MODE=off
APP_KEY=base64:<change_me>
DB_CONNECTION=sqlite
SPEEDTEST_SCHEDULE="0 */12 * * *"
APP_TRUSTED_PROXIES=*

Installation

touch $HOME/.config/containers/systemd/speedtest.container
# speedtest.container
[Container]
ContainerName=speedtest
HostName=speedtest
AutoUpdate=registry
Image=lscr.io/linuxserver/speedtest-tracker:latest
Network=skynet.network
AddCapability=NET_RAW
EnvironmentFile=%h/apps/variables/speedtest.env
Volume=%h/apps/container_data/speedtest:/config
#linuxserver.io specific
UIDMap=1000:0:1
UIDMap=0:1:1000
UIDMap=1001:1001:64536
[Service]
Restart=always
TimeoutStartSec=300
[Install]
WantedBy=default.target

Configuration of Nginx (Reverse Proxy)

Create nginx conf.

touch $HOME/apps/container_data/nginx/speedtest.conf

Configuration for nginx conf for port 80.

server {
  listen 80;
  server_name speedtest.skynet.lan;

  access_log /var/log/nginx/speedtest_access.log;
  error_log /var/log/nginx/speedtest_error.log;

  location / {
    proxy_pass http://speedtest:80;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Restart Nginx

systemctl --user restart nginx

Usage

Open http://speedtest.skynet.lan

Troubleshooting

podman logs -f speedtest
journalctl --user -u nginx -n 200