Speedtest Tracker Documentation

repository·1.x·Indexed 26 days ago

https://github.com/alexjustesen/speedtest-tracker

A self-hosted application for monitoring internet connection performance and uptime. It schedules regular speed tests to capture metrics including download/upload speeds, ping, and packet loss. Features include Docker deployment, environment variable configuration, performance notifications, and CLI tools for managing Ookla servers, user roles, and passwords.

Tokens
1.5K
Snippets
0
Records
13
Agent score
91%

What's inside Speedtest Tracker

  1. Configure initial admin account settings

    1.x

    Set the default credentials for the admin user created during installation using these environment variables:

    • ADMIN_NAME: The name of the admin user (default: Admin).
    • ADMIN_EMAIL: The email address for the admin user (default: admin@example.com).
    • ADMIN_PASSWORD: The password for the admin user (default: password).
  2. Configure Speedtest Tracker via Docker Compose environment variables

    1.x

    The compose.yaml file uses several environment variables to configure the application, database, mail testing, and notification services. You can override these in your .env file.

    Application (laravel.test)

    • APP_PORT: The port for the web application (defaults to 80).
    • VITE_PORT: The port for Vite development server (defaults to 5173).
    • WWWGROUP: The group ID for the user inside the container.
    • WWWUSER: The user ID for the user inside the container.
    • SAIL_XDEBUG_MODE: Xdebug mode (defaults to off).
    • SAIL_XDEBUG_CONFIG: Xdebug configuration (defaults to client_host=host.docker.internal).

    Database (pgsql)

    • FORWARD_DB_PORT: The port to map the PostgreSQL database to on your host (defaults to 5432).
    • DB_DATABASE: The name of the database.
    • DB_USERNAME: The database username.
    • DB_PASSWORD: The database password (defaults to secret).

    Mail Testing (mailpit)

    • FORWARD_MAILPIT_PORT: The port for the SMTP server (defaults to 1025).
    • FORWARD_MAILPIT_DASHBOARD_PORT: The port for the Mailpit web dashboard (defaults to 8025).

    Notifications (apprise)

    • FORWARD_APPRISE_PORT: The port for the Apprise notification service (defaults to 8000).
  3. Configure application encryption and security

    1.x

    Security settings for encryption are managed via the following environment variables:

    • APP_KEY: The primary encryption key. This should be a random 32-character string.
    • APP_PREVIOUS_KEYS: A comma-separated list of previous encryption keys to allow decryption of older data during key rotation.
    • cipher: The encryption algorithm used (default: AES-256-CBC).
  4. Configure maintenance mode settings

    1.x

    Maintenance mode behavior is controlled by the following environment variables:

    • APP_MAINTENANCE_DRIVER: The driver used to manage maintenance mode. Supported values are file and cache (default: file).
    • APP_MAINTENANCE_STORE: The storage mechanism for maintenance mode (default: database).
  5. Configure charts and data display formats

    1.x

    Customize how data and charts are presented in the UI using these environment variables:

    • CHART_BEGIN_AT_ZERO: Boolean determining if charts start at zero (default: true).
    • CHART_DATETIME_FORMAT: The datetime format used specifically for charts (default: M. j - G:i).
    • DATETIME_FORMAT: The general datetime format used in the application (default: M. j, Y g:ia).
    • DISPLAY_TIMEZONE: The timezone used for displaying dates in the UI (default: UTC).
  6. Configure core application settings via environment variables

    1.x

    The application's core behavior is controlled through environment variables. You can configure the following settings in your .env file:

    • APP_NAME: The name of the application used in UI elements (default: Speedtest Tracker).
    • APP_ENV: The current environment (e.g., production, local).
    • APP_DEBUG: Boolean to enable/disable detailed error messages and stack traces (default: false).
    • APP_URL: The root URL of the application, used for generating URLs in console commands (default: http://localhost).
    • FORCE_HTTPS: Boolean to force HTTPS connections (default: false).
    • APP_TIMEZONE: The default PHP timezone for date/time functions (default: UTC).
    • APP_LOCALE: The default locale for translations (default: en).
    • APP_FALLBACK_LOCALE: The fallback locale if a translation is missing (default: en).
    • APP_FAKER_LOCALE: The locale used for generating fake data (default: en_US).
  7. Fix result statuses via app:result-fix-statuses

    1.x

    Use this command to review the data payload of each speedtest result and correct the status attribute. It specifically checks results from the ookla service and updates them to either completed or failed based on the contents of the data column (checking for the presence of level and message keys).

    Note: This command is interactive and will prompt for confirmation before proceeding.

  8. List available Ookla speedtest servers via CLI

    1.x

    Use the app:ookla-list-servers command to retrieve a list of local Ookla speedtest servers. You can optionally provide a search term to filter the results by server name.

    Output is displayed in a table containing the following fields:

    • id: The server ID
    • sponsor: The server sponsor
    • name: The server name
    • country: The server country
    • distance: The distance to the server