Speedtest Tracker
v1.0.0Schedule internet speed tests and chart connection performance.
x-arcane:
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/speedtest-tracker.svg
urls:
- https://docs.linuxserver.io/images/docker-speedtest-tracker/
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
restart: unless-stopped
ports:
- "${BIND_ADDRESS:-127.0.0.1}:${PORT:-8085}:80"
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/speedtest-tracker.svg
environment:
PUID: ${PUID:-1000}
PGID: ${PGID:-1000}
TZ: ${TZ:-Etc/UTC}
APP_KEY: ${APP_KEY:?Generate a base64 application key}
APP_URL: ${APP_URL:-http://localhost:8085}
DB_CONNECTION: sqlite
ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@example.com}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?Set a strong administrator password}
SPEEDTEST_SCHEDULE: ${SPEEDTEST_SCHEDULE:-0 */6 * * *}
volumes:
- config:/config
volumes:
config:
BIND_ADDRESS=127.0.0.1
PORT=8085
TZ=Etc/UTC
PUID=1000
PGID=1000
# Replace this example value before deployment; never use it in production.
APP_KEY=base64:change-me-run-openssl-rand-base64-32
APP_URL=http://localhost:8085
ADMIN_EMAIL=admin@example.com
# Replace this example value before deployment; never use it in production.
ADMIN_PASSWORD=change-me-use-a-long-random-secret-admin_password
SPEEDTEST_SCHEDULE=0 */6 * * *
README
Schedule internet speed tests and chart connection performance.
Copy .env.example to .env, replace every example secret with a unique generated value, adjust the settings, then deploy with docker compose up -d or import this template in Arcane. Open http://localhost:8085 on the Docker host. Ports bind to localhost by default; set BIND_ADDRESS to a trusted interface for LAN access, or use a reverse proxy with HTTPS.
Set APP_KEY to base64: followed by the output of openssl rand -base64 32; keep this key stable. Set ADMIN_EMAIL, ADMIN_PASSWORD, and APP_URL before the first launch. Credentials seed the initial account only. Tests consume bandwidth; adjust the cron schedule as needed. SQLite stores results in the named configuration volume.
Named volumes retain internal application state across container upgrades. Keep a backup before updating images; docker compose down -v deletes named volume data.
Upstream: installation and configuration.