20
edits
| Line 5: | Line 5: | ||
Before you can test or make improvements to Webmaker, you need to get it running locally. This involves setting up your OS to host the Webmaker servers and apps, and installing various development tools you'll need. We strongly recommend a Unix-like OS, such as Linux or OS X, but it is also possible to use Windows. | Before you can test or make improvements to Webmaker, you need to get it running locally. This involves setting up your OS to host the Webmaker servers and apps, and installing various development tools you'll need. We strongly recommend a Unix-like OS, such as Linux or OS X, but it is also possible to use Windows. | ||
== | == Option 1: Installing Webmaker Locally == | ||
Webmaker can be configured locally to allow for development and testing. This process can be accomplished in a number of ways, but they all require all dependancies to be working before they can succeed. | |||
=== Dependancies === | |||
Webmaker relies on a number of technologies and tools, which must first be installed. The following list needs to be installed and working before you can run or test Webmaker locally, and we provide instructions for doing so on Linux, Mac OS X and Windows below. | Webmaker relies on a number of technologies and tools, which must first be installed. The following list needs to be installed and working before you can run or test Webmaker locally, and we provide instructions for doing so on Linux, Mac OS X and Windows below. | ||
| Line 20: | Line 22: | ||
* A stable build environment for your OS | * A stable build environment for your OS | ||
= | ==== Setting up your dev environment in Mac OS X ==== | ||
=== Setting up your dev environment | |||
This is the easiest method of setting up a Webmaker dev environment in Mac OS X, but requires the use of the [http://brew.sh/ Homebrew] package manager. | This is the easiest method of setting up a Webmaker dev environment in Mac OS X, but requires the use of the [http://brew.sh/ Homebrew] package manager. | ||
| Line 43: | Line 34: | ||
# Install mongodb with <code>brew install mongodb</code> | # Install mongodb with <code>brew install mongodb</code> | ||
=== Setting up your dev environment in Ubuntu Linux === | ==== Setting up your dev environment in Ubuntu Linux ==== | ||
This is the easiest way to setup a Webmaker dev environment on Ubuntu Linux, but requires that NodeJS be compiled from source. | This is the easiest way to setup a Webmaker dev environment on Ubuntu Linux, but requires that NodeJS be compiled from source. | ||
| Line 64: | Line 55: | ||
## Run <code>sudo make install > output.txt</code> | ## Run <code>sudo make install > output.txt</code> | ||
=== Set up NodeJS dependancies === | ==== Set up NodeJS dependancies ==== | ||
Once your Development environment is set up, you must install some global NPM packages. | Once your Development environment is set up, you must install some global NPM packages. | ||
| Line 70: | Line 61: | ||
# Install [http://gruntjs.com/ grunt] with <code>sudo npm install -g grunt</code> | # Install [http://gruntjs.com/ grunt] with <code>sudo npm install -g grunt</code> | ||
=== Installing Webmaker Core === | === Installing Webmaker Option 1: Webmaker-suite === | ||
By far the easiest way to get all of Webmaker set up and installed locally, on any platform, is to use [https://github.com/mozilla/webmaker-suite Webmaker Suite]. This is a set of automation scripts written in node.js by one of our lead developers, and is meant to provide turn-key installation by automatically downloading all the code, and setting default environment variables. | |||
Note that this won't install external dependancies above automatically. | |||
Complete instructions are available in the [https://github.com/mozilla/webmaker-suite#webmaker-suite-bootstrapinstallation-script README for Webmaker Suite] on github. | |||
=== Installing Webmaker Option 2: Manual Installation === | |||
Each server that makes up a part of the Webmaker.org ecosystem is configured with <code>.env</code> or ''environment'' files. The servers come with a sample version of this file that is fully functional, assuming that the sample files are used for all the servers in the local installation. Instructions on configuring these manually can be found in the Github repository of each server. | |||
==== Installing Webmaker Core ==== | |||
Webmaker's core apps are the ''Login'', ''MakeAPI'' and ''Webmaker.org'' servers. These three must be run together in order to function properly with each other, and the other apps that make up Webmaker. You can find installation instructions in the <code>readme</code> file in each server's Github repository: | Webmaker's core apps are the ''Login'', ''MakeAPI'' and ''Webmaker.org'' servers. These three must be run together in order to function properly with each other, and the other apps that make up Webmaker. You can find installation instructions in the <code>readme</code> file in each server's Github repository: | ||
| Line 77: | Line 78: | ||
* '''Webmaker.org''' - [https://github.com/mozilla/webmaker.org/blob/master/README.md https://github.com/mozilla/webmaker.org/blob/master/README.md] | * '''Webmaker.org''' - [https://github.com/mozilla/webmaker.org/blob/master/README.md https://github.com/mozilla/webmaker.org/blob/master/README.md] | ||
=== Installing Webmaker Tools === | ==== Installing Webmaker Tools ==== | ||
Webmaker's tools (''Thimble'', ''Goggles'' and ''Popcorn Maker'') follow similar procedures for installation and configuration. Keep in mind that they won't function properly without the '''Webmaker Core''' services running. You can find installation instructions in the <code>readme</code> file in each server's Github repository: | Webmaker's tools (''Thimble'', ''Goggles'' and ''Popcorn Maker'') follow similar procedures for installation and configuration. Keep in mind that they won't function properly without the '''Webmaker Core''' services running. You can find installation instructions in the <code>readme</code> file in each server's Github repository: | ||
| Line 89: | Line 90: | ||
* Dirty update (try this first): <code>git checkout master && git pull [mozilla upstream remote] master && npm install</code> | * Dirty update (try this first): <code>git checkout master && git pull [mozilla upstream remote] master && npm install</code> | ||
* Clean update (time intensive) <code>git checkout master && git pull [mozilla upstream remote] master && rm -rf node_modules && npm cache clear && npm install</code> | * Clean update (time intensive) <code>git checkout master && git pull [mozilla upstream remote] master && rm -rf node_modules && npm cache clear && npm install</code> | ||
edits