Developer Quickstart for *nix/macOS¶
This is the quickstart to development guide. If you are looking for a quickstart guide for running GeoMoose then you should look at installing one of the GeoMoose examples. This quickstart utilizes the GeoMoose docker image for serving the demo data and MapServer.
Basic requirements¶
Git
Docker or MapServer 7.0+ or Newer
NodeJS with Npm v10 or Newer
Node Version Manager¶
Recent LTS versions of Linux do not have a sufficiently modern version of Node for developing GeoMoose. As such, we recommend using nvm. NVM allows running multiple versions of Node, NPM, and allows installing “global” packages without requiring sudo or root access.
Create your fork¶
GeoMoose contributions are done using Pull Requests. You can read more about pull requests on GitHub.
Click here to create your own Fork
Cloning the repositories¶
This will download all the data necessary to get started.
cd ~
mkdir geomoose
cd geomoose
git clone git@github.com:[YOUR_USER_NAME]/gm3.git
git clone git@github.com:geomoose/gm3-demo-data.git
Starting the docker image¶
The Docker image is a quickstart way of setting up MapServer.
cd ~/geomoose/gm3-demo-data/docker
./build.sh
./run.sh
Next, test that the docker image is running correctly:
curl http://localhost:8000/cgi-bin/mapserv
If the message below appears then MapServer is running:
No query information to decode. QUERY_STRING is set, but empty.
Getting GeoMoose started¶
This step installs all the dependencies for GeoMoose:
cd ~/geomoose/gm3
npm install
Build the GeoMoose package¶
This will create the combined geomoose.min.js
file.
npm run build
Create a config.js file¶
To configure the example application, it needs to know where MapServer and the Mapfiles are on the server.
Add the following to ~/geomoose/gm3/examples/desktop/config.js
:
CONFIG = {
mapserver_url: '/mapserver/cgi-bin/mapserv',
mapfile_root: '/data/'
};
Fun fact! This is the same contents as
~/geomoose/gm3/examples/config.js.example
, so you could also
cp ../config.js.example config.js
.
Running the tests¶
Then, let’s see that all of the tests are working:
npm test
Starting up the built-in web server¶
If the test are working then let’s open up GeoMoose!
npm start
Open GeoMoose in a browser: http://localhost:4000/examples/desktop/index.html