diff docs/installation.rst @ 568:5f481e4e888b

updated docs, added sphinx build
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 10 Oct 2010 17:24:41 +0200
parents
children a60cd29ba7e2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/installation.rst	Sun Oct 10 17:24:41 2010 +0200
@@ -0,0 +1,95 @@
+.. _installation:
+
+Installation
+============
+
+``RhodeCode`` is written entirely in Python, but in order to use it's full
+potential there are some third-party requirements. When RhodeCode is used 
+together with celery You have to install some kind of message broker,
+recommended one is rabbitmq to make the async tasks work.
+For installation instructions You can visit: 
+http://ask.github.com/celery/getting-started/index.html.
+
+Of course RhodeCode works in sync mode also, then You don't have to install
+any third party apps. Celery will give You large speed improvement when using
+many big repositories. If You plan to use it for 2 or 3 small repositories, it
+will work just fine without celery running.
+   
+After You decide to Run it with celery make sure You run celeryd and
+message broker together with the application.   
+
+Requirements for Celery
+-----------------------
+
+**Message Broker** 
+
+- preferred is `RabbitMq <http://www.rabbitmq.com/>`_
+- possible other is `Redis <http://code.google.com/p/redis/>`_
+
+
+Install from Cheese Shop
+------------------------
+
+Easiest way to install ``rhodecode`` is to run::
+
+   easy_install rhodecode
+
+Or::
+
+   pip install rhodecode
+
+If you prefer to install manually simply grab latest release from
+http://pypi.python.org/pypi/rhodecode, decompres archive and run::
+
+   python setup.py install
+
+
+**Setting up the application**
+I recommend to run the RhodeCode in separate virtualenv.
+See http://pypi.python.org/pypi/virtualenv for more details.
+
+- run `paster make-config RhodeCode production.ini` make specific application
+  config, 
+- run `paster setup-app production.ini` makes the database, and propagates it
+  with default data, In this step You have to provide admin username and repositories
+  location, it can be a new location or with existing ones in that case RhodeCode
+  will scann all new found repos and put it into database.
+- run `paster runserver production.ini` runs the server.
+
+
+**STEP BY STEP EXAMPLE INSTRUCTION**
+
+
+- Assuming You have setup virtualenv create one using 
+  `virtualenv --no-site-packages /var/www/rhodecode-venv`
+  this will install new virtual env into /var/www/rhodecode-venv. 
+- Activate the virtualenv by running 
+  `source activate /var/www/rhodecode-venv/bin/activate`   
+- Make a folder for rhodecode somewhere on the filesystem for example 
+  /var/www/rhodecode  
+- Run easy_install rhodecode, this will install rhodecode together with pylons
+  and all other required python libraries
+- Run `paster make-config RhodeCode production.ini` in order to install 
+  the application config. 
+- Run `paster setup-app production.ini` it should create all needed tables 
+  and an admin account. Also make sure You specify correct path to repositories.
+  You can either use a new location of one with already exising ones. RhodeCode
+  will simply add all new found repositories to it's database. 
+- Remember that the given path for mercurial repositories must be write 
+  accessible for the application. It's very important since RhodeCode web interface
+  will work even without such an access but, when trying to do a push it's eventually
+  failed with permission denied. 
+- Run `paster serve production.ini`
+  the app should be available at the 127.0.0.1:5000
+- Use admin account you created to login.
+- Default permissions on each repository is read, and owner is admin. So remember
+  to update these.
+
+- All needed configs are inside rhodecode sources ie. celeryconfig.py, 
+  development.ini, production.ini You can configure the email, ports, loggers, 
+  workers from there.
+- For full text search You can either put crontab entry for 
+  `python /var/www/rhodecode/rhodecode/lib/indexers/daemon.py incremental <path_to_repos>`
+  or run indexer from admin panel. This will scann the repos given in the 
+  application setup or given path for daemon.py and each scann in incremental 
+  mode will scan only changed files.
\ No newline at end of file