Getting Started

Quick start

Run BenchKit on the server you want to measure.

BenchKit is available to deploy from source or a container image. The easiest way to deploy BenchKit is with Docker, which is what this quick start guide will cover.

Deploy a server

Pick any size server and host you want to test. BenchKit is designed to be run as a standalone application and since it runs as a container image, it's very easy to clean up after you finish.

Install Docker

On a fresh server, the quickest way to install Docker is Docker's own script.

Terminal
curl -fsSL https://get.docker.com | bash

Installing Docker needs root. Run the command as root, or put sudo in front of bash.

On a machine you intend to keep, follow the official Docker Engine install guide instead. It sets up the package repository, which keeps Docker updated along with the rest of the system.

Start the container

By default we ship FPM-NGINX. For FrankenPHP and FPM-Apache variations see Image variations.
Terminal
docker run -p 80:8080 \
  -v benchkit-runs:/var/www/html/storage/app/runs \
  serversideup/benchkit-laravel:latest

The app listens on port 8080 inside the container, and the command above publishes it on port 80 of the host. The volume holds your run history. Without it, your results disappear with the container.

Run a benchmark

Once the container is running, simply visit:

http://<your-server-ip>/
Notice the default is http:// since there's no login or sensitive data with BenchKit. If you prefer to use the self-signed certificate, expose the HTTPS port instead:
Terminal
docker run -p 443:8443 \
  -v benchkit-runs:/var/www/html/storage/app/runs \
  serversideup/benchkit-laravel:latest
Then use https://<your-server-ip>/ to access BenchKit.

Open the server in your browser and press Start Benchmark. The run happens on the server rather than in the browser. You can close the tab, reload the page, or follow the run from another device without disturbing it.

Before you start, the settings drawer lets you pick the Quick preset for a shorter run or Full to measure everything, and it estimates how long your choice will take.

Share your result

When the run finishes, press Submit result. BenchKit opens a pre-filled GitHub issue containing your numbers. A bot checks the submission and opens a pull request, and your run appears in the community gallery once a maintainer merges it.

Next steps

Image variations

Run the same application on FrankenPHP, FPM-NGINX, or FPM-Apache and compare them.

Customizing the image

Change OPcache, JIT, and the FPM pool with environment variables.

Running from source

Deploy to a host that takes a repository instead of a container.