Skip to content

jpetto/fxa-content-server

 
 

Repository files navigation

Firefox Accounts Content Server

Travis Tests: Build Status: Travis Coverage Status Functional Tests: Build Status: Functional Tests

Static server that hosts Firefox Account sign up, sign in, email verification, etc. flows.

Prerequisites

  • node 0.10.x
  • npm
  • Grunt (npm install -g grunt-cli)
  • libgmp
    • On Linux, Install libgmp and libgmp-dev packages: sudo apt-get install libgmp3-dev
    • On Mac OS X: brew install gmp
  • fxa-auth-server running on 127.0.0.1:9000.

Development Setup

cp server/config/local.json-dist server/config/local.json
npm install
npm start

It will listen on http://127.0.0.1:3030 by default.

Note: If you have issues with npm install please update to npm 2.0+ using npm install -g npm@2 (Issue #1594)

Docker Based Development

To run the content server via Docker, three steps are required:

$ docker build --rm -t mozilla/fxa_content_server .
$ docker run --rm -v $PWD:/opt/fxa mozilla/fxa_content_server npm install
$ docker run -it --rm -v $PWD:/opt/fxa --net=host mozilla/fxa_content_server

This method shares the codebase into the running container so that you can install npm and various modules required by package.json. It then runs FxA content server in a container, while allowing you to use your IDE of choice from your normal desktop environment to develop code.

Be sure to copy server/config/local.json-dist to server/config/local.json per usual before the final docker invocation to run the service.

Note to boot2docker users: you must edit your server/config/local.json to use the correct IP of your boot2docker VM. Check with the command: boot2docker ip

Then replace the public_url IP address in local.json that reads: "public_url": "http://127.0.0.1:3030" with the IP that you noted above. It should be something like 192.168.59.103.

To stop the container, first try CTRL+C. If that does not work, run docker ps |grep fxa_content_server to get the hexadecimal Container ID (the first column of output). Run docker stop nnnnnnnnnnnn where the nnnn part is the Container ID.

Testing

Prerequisites:

Setup

  • Run Selenium Server
  • Run the Firefox Content Server locally: npm start
  • Run an instance of the fxa-auth-server at 127.0.0.1:9000.

e.g. in shell form:

java -jar selenium-server-standalone-2.43.1.jar &
cd fxa-auth-server
npm start &
cd ../fxa-content-server
npm start &

To run tests locally with Selenium:

npm test

To change the default auth server edit server/config/*.json on your deployed instance.

{
  "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 is used to run common tasks to build, test, and run local servers.

TASK DESCRIPTION
grunt build build production resources. See task source for more documentation
grunt clean remove any built production resources.
grunt lint run JSHint, JSONLint, and JSCS (code style checker) on client side and testing JavaScript.
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

License

MPL 2.0

About

Firefox Accounts Content Server

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 93.1%
  • HTML 3.7%
  • CSS 2.6%
  • Shell 0.6%