Skip to content

Deploy your own version of sitespeed.io online.

License

Notifications You must be signed in to change notification settings

sitespeedio/onlinetest

Repository files navigation

Test the API Test the GUI Using Docker Lint

Website | Documentation | Changelog server | Changelog testrunner | Mastodon

Onlinetest - deploy your own version of sitespeed.io online.

This project helps you set up your own online version of sitespeed.io. You get:

  • A server with GUI and API:

    • Add tests using a HTML frontend
    • Add tests using the the command line (using sitespeed.io) through the API
  • Test Runners:

    • Run your tests on different platforms: desktop, emulated mobile and Android.
  • Search Functionality:

    • Easily find the results of your tests.

Quick setup on your local machine

Follow these steps to quickly set up and run the online version of sitespeed.io on your local machine. Make sure you have Docker, docker-compose, sitespeed.io and NodeJS installed on your machine.

  1. Clone the repository:

    git clone https://github.com/sitespeedio/onlinetest.git
  2. Navigate to the project directory:

    cd onlinetest
  3. Start the Docker containers (Redis/PostgreSQL/Minio):

    docker compose up
  4. Open a new terminal tab or window and navigate to the server directory:

    cd server
  5. Start the server:

    node app.js
  6. Open another new terminal tab or window and navigate to the testrunner directory:

    cd ../testrunner
  7. Start the testrunner:

    node app.js

Now you can open your web browser and navigate to http://127.0.0.1:3000 to run your first test.

What's in the box?

To get it up and running (the docker-compose file), you need:

  • A Message broker: - A Redis-like data storage/message broker. The default setup uses keydb and has also been tested with Valkey.

  • A Database: - PostgreSQL - the open source database.

  • A Test Result Storage: - Somewhere to store test results. The default setup uses minio, an open source implementation of S3 but you can use all the result storages that work with sitespeed.io: S3, Google Cloud Storage or your own storage where you can scp the result.

Additionally, there's a server and one or multiple test runners that run the sitespeed.io tests.

Setup for production

Onlinetest is super flexible and highly configurable. I'm working on the documentation and you will find the full documentation at https://www.sitespeed.io/documentation/onlinetest when it's ready.

Support

Running servers and testing costs money and you can help support sitespeed.io at Open Collective.

License

AGPL-3.0 license.