jsperf.com
How to run a local copy of jsPerf
Prerequisites
- Node.js (see preferred version in
.nvmrc
) - MySQL
- Install
1. macOS:
brew install mysql
- Initialize:
mysql -uroot -e "CREATE DATABASE jsperf; GRANT ALL ON jsperf.* TO 'jsuser'@'localhost' IDENTIFIED BY 'jspass'; FLUSH PRIVILEGES;"
- Get a Browserscope.org API key by signing in and going to the settings page.
- Register a new OAuth GitHub application. Leave the callback URL blank. Copy the "Client ID" and "Client Secret".
Setup
- Install dependencies:
npm install
- Create a
.env
file (will be ignored by git) with the following variables (VAR_NAME=value
):
NODE_ENV=development
# from Prerequisites step 2.2
MYSQL_USER=jsuser
MYSQL_PASSWORD=jspass
MYSQL_DATABASE=jsperf
# from Prerequisites step 3
BROWSERSCOPE=
# from Prerequisites step 4
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK=http://localhost:3000
BELL_COOKIE_PASS=password-should-be-32-characters
COOKIE_PASS=password-should-be-32-characters
# customizable but not recommended for local development
# SCHEME=http
# DOMAIN=localhost
# PORT=3000
# MYSQL_HOST=localhost
# MYSQL_PORT=3306
# LOGGLY_TOKEN=
# LOGGLY_SUBDOMAIN=
# REDIS_HOST=
# REDIS_PORT=
# REDIS_PASSWORD=
Start
- correct version of
node
-
mysql
running -
.env
created with your values
npm start
Hopefully everything smoothly started up and you're ready to start contributing. If not, check out the wiki for debugging tips.
Sponsorship
Development of jsperf.com is generously supported by contributions from individuals and corporations. If you are benefiting from jsPerf and would like to help keep the project financially sustainable, please visit https://jsperf.com/sponsor.