# Firefox Accounts Content Server [![Build Status: Travis](https://travis-ci.org/mozilla/fxa-content-server.svg?branch=master)](https://travis-ci.org/mozilla/fxa-content-server) [![Build Status: Circle CI](https://circleci.com/gh/mozilla/fxa-content-server.svg?style=shield)](https://circleci.com/gh/mozilla/fxa-content-server) [![Coverage Status](https://img.shields.io/coveralls/mozilla/fxa-content-server.svg)](https://coveralls.io/r/mozilla/fxa-content-server) Static server that hosts [Firefox Account sign up](https://accounts.firefox.com), sign in, email verification, etc. flows. * [Quick Start](#quick-start) * [Development Notes](#development-notes) * [Changes to Stylesheets](#changes-to-stylesheets) * [Changes to Scripts and Templates](#changes-to-scripts-and-templates) * [Testing](#testing) * [Prerequisites](#prerequisites) * [Setup](#setup) * [Grunt Commands](#grunt-commands) * [Servers](#servers) * [License](#license) ## Quick Start Clone the repository, make sure you have [required prerequisites](https://github.com/mozilla/fxa-local-dev#dependencies) installed. Run `npm install` and `npm run start-remote`. This will start a local fxa-content-server on [http://127.0.0.1:3030](http://127.0.0.1:3030) that works with remote Firefox Accounts servers. If you want to install all Firefox Accounts servers locally follow the instructions on: [fxa-local-dev](https://github.com/mozilla/fxa-local-dev) to get a full development setup running. Please note that fxa-local-dev is the preferred way of contributing to Firefox Accounts. ## Development Notes ### Changes to stylesheets To have the css resources automatically rebuilt after changes, run `grunt sass watch`. Now whenever a change is made to the `.scss` files, the corresponding css resources will be rebuilt. ### Changes to scripts and templates Any changes made to the scripts or the template files will automatically be reflected on page refresh. ## Testing ### Prerequisites * Java JDK or JRE (http://www.oracle.com/technetwork/java/javase/downloads/index.html) ### Setup To run tests locally with Selenium: ```sh npm test ``` To change the default auth server edit `server/config/*.json` on your deployed instance. ```json { "fxaccount_url": "http://your.auth.server.here.org" } ``` **Note that testing with Selenium via Docker does *not* work at present, so all testing must be carried out via your normal operating system's npm & Java tooling.** ## Grunt Commands [Grunt](http://gruntjs.com/) is used to run common tasks to build, test, and run local servers. | TASK | DESCRIPTION | |------|-------------| | `grunt build` | build production resources. See [task source](grunttasks/build.js) for more documentation | | `grunt clean` | remove any built production resources. | | `grunt lint` | run ESLint, Sass-lint, amdcheck and JSONLint on client side and testing JavaScript. | | `grunt sass watch` | rebuild css resources automatically when changes are made to the `.scss` files (file needs to be saved). | | `grunt server` | run a local server running on port 3030 with development resources. | | `grunt server:dist` | run a local server running on port 3030 with production resources. Production resources will be built as part of the task. | | `grunt test` | run local Intern tests. | | `grunt version` | stamp a new minor version. Updates the version number and creates a new CHANGELOG.md. | | `grunt version:patch` | stamp a new patch version. Updates the version number and creates a new CHANGELOG.md. | ## Servers * latest development - https://latest.dev.lcip.org/ * content - https://content.dev.lcip.org/ * stable - https://stable.dev.lcip.org/ * stage - https://accounts.stage.mozaws.net/ * production - https://accounts.firefox.com/ ## License MPL 2.0