install.rst 163 lines (115 with data), 6.0 kB
Getting Started Guide
Quickstart Script
If you have or can acquire a copy of the quickstart script setup-local.bash, that's probably the way to go. For those who are gluttons for punishment, here are the manual directions....
Setup your python development stack on a Mac
If you use a mac, you'll want to follow the Mac OS install instructions now.
Setting up a virtual environment
The first step to installing the Forge platform is installing a virtual environment ("virtualenv"). To do this, you need to first download a copy of ez_setup.py. Once you have this, you need to install virtualenv. You can do this by executing:
$ sudo python ez_setup.py virtualenv
Once you have virtualenv installed, you need to create a virtual environment. We'll call our environment 'anvil':
$ virtualenv anvil --no-site-packages
This gives us a nice, clean environment into which we can install all the forge dependencies. In order to use the virtual environment, you'll need to activate it:
~$ . anvil/bin/activate (anvil)~$
Now that that's out of the way, we'll go ahead and install turbogears:
(anvil)~$ easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools TurboGears2
Installing the code
OK, now we can get down to actually getting the forge code and dependencies downloaded and ready to go. The first thing we'll need to set up is Ming. To do this, we'll check out the source from git:
(anvil)~$ mkdir src (anvil)~$ cd src (anvil)~/src$ git clone ssh://merciless.git.sourceforge.net/gitroot/merciless/merciless Ming
Now, we'll need to set up Ming for development work:
(anvil)~/src$ cd Ming (anvil)~/src/Ming$ python setup.py develop
Once this is done, we'll check out & set up out forge codebase:
(anvil)~/src/Ming$ cd .. (anvil)~/src$ git clone ssh://engr.geek.net/forge (anvil)~/src$ cd forge/pyforge (anvil)~/src/forge/pyforge$ python setup.py develop (anvil)~/src/forge/pyforge$ cd ../ForgeForum (anvil)~/src/forge/ForgeForum$ python setup.py develop (anvil)~/src/forge/ForgeForum$ cd ../ForgeMail (anvil)~/src/forge/ForgeMail$ python setup.py develop (anvil)~/src/forge/ForgeMail$ cd ../ForgeSCM (anvil)~/src/forge/ForgeSCM$ python setup.py develop (anvil)~/src/forge/ForgeSCM$ cd ../ForgeTracker (anvil)~/src/forge/ForgeTracker$ python setup.py develop (anvil)~/src/forge/ForgeTracker$ cd ../ForgeWiki (anvil)~/src/forge/ForgeWiki$ python setup.py develop (anvil)~/src/forge/ForgeWiki$ cd ../HelloForge (anvil)~/src/forge/HelloForge$ python setup.py develop (anvil)~/src/forge/HelloForge$ cd ..
Hopefully everything completed without errors.
Initializing the environment
The forge consists of several components, all of which need to be running to have full functionality:
- mongod
MongoDB database server -- generally set up with its own directory (I like ~/var/mongodata). To run, execute the following:
(anvil)~/src$ mkdir -p ~/var/mongodata (anvil)~/src$ mongod --dbpath ~/var/mongodata
- RabbitMQ
Message Queue -- to set this up for use, you'll need to run the following commands:
(anvil)~/src$ sudo rabbitmqctl add_user testuser testpw (anvil)~/src$ sudo rabbitmqctl add_vhost testvhost (anvil)~/src$ sudo rabbitmqctl set_permissions -p testvhost testuser "" ".*" ".*"
If you get errors running these, it's likely because rabbit isn't running. It can be run as a daemon (instructions vary per architecture) or directly from a console window, e.g.:
$ cd <rabbitmq_server_directory> # not needed on MACOS $ sudo rabbitmq-server
- Forge "reactor" server
This is the server that will respond to RabbitMQ messages. To set it up to receive messages, you'll need to run the following commands:
(anvil)~/src$ cd forge/pyforge (anvil)~/src/forge/pyforge$ paster reactor_setup development.ini (anvil)~/src/forge/pyforge$ paster reactor development.ini
- Forge SMTP server
This server routes messages from email addresses to plugins in the forge:
(anvil)~/src/forge/pyforge$ paster smtp_server development.ini
- SOLR server
This is our search and indexing server. We can use the example schema directly from the SOLR download:
(anvil)~/<path_to_solr>/example$ java -jar start.jar
- TurboGears application server
- This is the main application that will respond to web requests. We'll get into details later.
In order to initialize the forge database, you'll need to run the following:
(anvil)~/src/forge/pyforge$ paster setup-app development.ini
This shouldn't take too long, but it will start the reactor server doing tons of stuff in the background. It should complete in 5-6 minutes. Once this is done, you can start the application server:
(anvil)~/src/forge/pyforge$ paster serve --reload development.ini
And now you should be able to visit the server running on your local machine.
Logging In, Getting Around
Part of the base system includes the test_admin and test_user accounts. The password for both accounts is foo. The test project has several plugins already configured; to configure more, you can visit the Admin plugin (accessible in the top navigation bar when inside the test project).
Happy hacking!