Mercurial > kallithea
diff docs/setup.rst @ 572:a60cd29ba7e2
more docs update
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 10 Oct 2010 21:34:24 +0200 |
parents | 5f481e4e888b |
children | 1e2adb37cab6 |
line wrap: on
line diff
--- a/docs/setup.rst Sun Oct 10 18:00:54 2010 +0200 +++ b/docs/setup.rst Sun Oct 10 21:34:24 2010 +0200 @@ -4,13 +4,118 @@ ===== +Setting up the application +-------------------------- + +:: + + paster make-config RhodeCode production.ini + +- This will create `production.ini` config inside the directory + this config contain various settings for rhodecode, e.g port, email settings + static files, cache and logging. + +:: + + paster setup-app production.ini` + +- This command will create all needed tables and an admin account. + When asked for a path You can either use a new location of one with already + existing ones. RhodeCode will simply add all new found repositories to + it's database. Also make sure You specify correct path to repositories. +- 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'll + eventually faile with permission denied errors. +- Run + +:: + + paster serve production.ini + +- This command runs the rhodecode server the app should be available at the + 127.0.0.1:5000. This ip and port is configurable via the production.ini + file created in previos step +- 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. + +Setting up Whoosh +----------------- + +- For full text search You can either put crontab entry for + +:: + + python /var/www/rhodecode/rhodecode/lib/indexers/daemon.py incremental <put_here_path_to_repos> + +When using incremental mode whoosh will check last modification date of each file +and add it to reindex if newer file is available. Also indexing daemon checks +for removed files and removes them from index. Sometime You might want to rebuild +index from scrach, in admin pannel You can check `build from scratch` flag +and in standalone daemon You can pass `full` instead on incremental to build +remove previos index and build new one. + +Nginx virtual host example +-------------------------- + +Sample config for nginx:: + + server { + listen 80; + server_name hg.myserver.com; + access_log /var/log/nginx/rhodecode.access.log; + error_log /var/log/nginx/rhodecode.error.log; + location / { + root /var/www/rhodecode/rhodecode/public/; + if (!-f $request_filename){ + proxy_pass http://127.0.0.1:5000; + } + #this is important for https !!! + proxy_set_header X-Url-Scheme $scheme; + include /etc/nginx/proxy.conf; + } + } -TODO: write that ! \ No newline at end of file +Here's the proxy.conf. It's tunned so it'll not timeout on long +pushes and also on large pushes:: + + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Proxy-host $proxy_host; + client_max_body_size 400m; + client_body_buffer_size 128k; + proxy_buffering off; + proxy_connect_timeout 3600; + proxy_send_timeout 3600; + proxy_read_timeout 3600; + proxy_buffer_size 8k; + proxy_buffers 8 32k; + proxy_busy_buffers_size 64k; + proxy_temp_file_write_size 64k; + +Also when using root path with nginx You might set the static files to false +in production.ini file:: + + [app:main] + use = egg:rhodecode + full_stack = true + static_files = false + lang=en + cache_dir = %(here)s/data + +To not have the statics served by the application. + + +.. _virtualenv: http://pypi.python.org/pypi/virtualenv +.. _python: http://www.python.org/ +.. _mercurial: http://mercurial.selenic.com/ +.. _celery: http://celeryproject.org/ +.. _rabbitmq: http://www.rabbitmq.com/ \ No newline at end of file