Support #718
Updated by Daniel Curtis over 8 years ago
This is a guide on how I installed the Firefox Auth and Content components to form the Firefox Accounts Server on FreeBSD. h2. Prepare the Environment * Make sure the system is up to date: <pre> pkg update && pkg upgrade -y </pre> * Install a few dependencies: <pre> pkg install portmaster bash git gmp graphicsmagick redis gmake python2 py27-virtualenv sqlite py27-sqlite3 gcc48 scrypt </pre> * Install node4 and npm2 from ports: <pre> portmaster www/node4 www/npm2 </pre> * Add the Firefox Accounts user: <pre> pw add user -n ff-accounts -m -s /bin/sh -c "Firefox Accounts" </pre> h2. MySQL Database * Install MariaDB: <pre> pkg install mariadb100-server </pre> * Start and enable MariaDB at boot: <pre> echo 'mysql_enable="YES"' >> /etc/rc.conf service mysql-server start </pre> * Secure the mysql installation: <pre> mysql_secure_installation </pre> * Log into the MySQL console: <pre> mysql -u root -p </pre> #* Create the fxauser user with the SuperSecretPassword password and the fxadb database: <pre> CREATE USER 'fxauser'@'localhost' IDENTIFIED BY 'SuperSecretPassword'; CREATE DATABASE IF NOT EXISTS `fxadb` CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON `fxadb`.* TO 'fxauser'@'localhost'; </pre> #* Create the fxasyncuser user with the SuperDuperPassword password and the fxasyncdb database: <pre> CREATE USER 'fxasyncuser'@'localhost' IDENTIFIED BY 'SuperDuperPassword'; CREATE DATABASE IF NOT EXISTS `fxasyncdb` CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON `fxasyncdb`.* TO 'fxasyncuser'@'localhost'; </pre> #* Exit the mysql console: <pre> flush privileges; exit </pre> h2. Install Accounts Server * Add the Firefox Accounts user: <pre> pw add user -n ff-accounts -m -s /bin/sh -c "Firefox Accounts" </pre> * Switch to the Firfox accounts user: <pre> su - ff-accounts </pre> * Download the firefox auth server from GitHub: <pre> git clone https://github.com/mozilla/fxa-auth-server.git cd fxa-auth-server </pre> * Install the auth server: <pre> npm install </pre> #* And test the auth server: <pre> npm start </pre> *NOTE*: Press Ctrl+C to stop the test server. * Download the firefox content server from GitHub: <pre> cd .. git clone https://github.com/mozilla/fxa-content-server.git cd fxa-content-server </pre> * Install the content server: <pre> npm install </pre> #* And test the content server: <pre> npm run start-remote </pre> *NOTE*: Press Ctrl+C to stop the test server. * Create a dev config file: <pre> vi config/dev.js ~/fxa-auth-server/config/dev.js </pre> #* And add the following: <pre> { "master": { "user": "fxauser", "password": "SuperSecretPassword", "database": "fxadb", "host": "db.example.com", "port": "3306" }, "slave": { "user": "fxauser", "password": "SuperSecretPassword" "database": "fxadb", "host": "db.example.com", "port": "3306" } } </pre> * Start the server in dev MySQL store mode: <pre> npm run start-mysql </pre> * Exit from the firefox auth server account: <pre> exit </pre> h2. Firefox Content Server * Add the Firefox Content user: <pre> pw add user -n ff-content -m -s /bin/sh -c "Firefox Content" </pre> * Switch to the Firefox Content user: <pre> su - ff-content </pre> * Download the firefox content server from GitHub: <pre> cd .. git clone https://github.com/mozilla/fxa-content-server.git cd fxa-content-server </pre> * Install the content server: <pre> npm install </pre> #* And test the content server: <pre> npm run start-remote </pre> *NOTE*: Press Ctrl+C to stop the test server. h2. Firefox Sync Server * Get the latest version of the syncserver: <pre> cd ~ git clone https://github.com/mozilla-services/syncserver.git cd syncserver </pre> * Build the Sync Server: <pre> gmake build </pre> * Edit the syncserver config file: <pre> vi syncserver.ini </pre> #* And modify the following values: <pre> [syncserver] public_url = http://ff-sync.example.com:5000/ sqluri = pymysql://fxasyncuser:SuperDuperPassword@db.example.com/fxasyncdb </pre> * Test run the syncserver: <pre> gmake serve </pre> h2. Init Scripts * h2. Connect Firefox h2. Resources * https://docs.services.mozilla.com/howtos/run-fxa.html * https://docs.services.mozilla.com/howtos/run-sync-1.5.html * https://github.com/mozilla/fxa-auth-server/ * https://github.com/mozilla/fxa-content-server/