Firefox Monitor notifies users when their credentials have been compromised in a data breach.
This code is for the monitor.firefox.com service & website.
Breach data is powered by haveibeenpwned.com.
See the Have I Been Pwned about page for the "what" and "why" of data breach alerts.
-
Clone and change to the directory:
git clone https://github.com/mozilla/blurts-server.git cd blurts-server
-
Install dependencies:
npm install
-
Copy the
.env-dist
file to.env
:cp .env-dist .env
-
Run the server:
npm start
Note: npm start
uses onchange
and nodemon
to automatically detect file
changes, re-compile static assets, and restart the express process. If you want
more control, see the scripts
section of package.json
for more commands.
- Navigate to localhost:6060/
To create the database tables ...
-
Create the
blurts
database:createdb blurts createdb test-blurts # for tests
-
Update the
DATABASE_URL
value in your.env
file with your local db credentials:DATABASE_URL="postgres://<username>@localhost:<port>/blurts"
-
Run the migrations:
npm run db:migrate
The included .env-dist
sets DEBUG_DUMMY_SMTP=1
which disables emails.
To send emails, you'll need to unset DEBUG_DUMMY_SMTP
and supply real SMTP
config values for sending email.
You can set and source these via the .env
file, or set them directly:
export DEBUG_DUMMY_SMTP=
export SMTP_HOST=<your-smtp-host>
export SMTP_PORT=<your-smtp-port>
export SMTP_USERNAME=<your-username>
export SMTP_PASSWORD=<your-password>
Subscribe with a Firefox Account is controlled via the FXA_ENABLED
environment variable. (See .env-dist
)
The repo comes with a development FxA oauth app pre-configured in .env
, which
should work fine running the app on http://localhost:6060. You'll need to get
the OAUTH_CLIENT_SECRET
value from someone in #fxmonitor-engineering.
The full test suite can be run via npm test
.
To run individual tests, use NODE_ENV=tests
and jest
:
NODE_ENV=tests jest --runInBand tests/home.test.js
To run tests with interactive debugger
lines enabled:
NODE_ENV=tests node inspect --harmony ./node_modules/.bin/jest tests/home.test.js
After installing the dependencies, you can lint the code by calling:
npm run lint
Firefox Monitor Breach Alerts is designed with 12-factor methodology.
You will need to set some required environment variables on Heroku.
heroku config:set COOKIE_SECRET=unsafe-cookie-secret-for-heroku
heroku config:set DEBUG_DUMMY_SMTP=1
And any others, depending on the features you're running on Heroku - e.g., Email or Firefox Accounts.