comparison README.rst @ 572:a60cd29ba7e2

more docs update
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 10 Oct 2010 21:34:24 +0200
parents ba7e24cd4786
children 5c734b99c4db
comparison
equal deleted inserted replaced
571:39d9aca6e266 572:a60cd29ba7e2
1 ------------------------------------------------
2 Pylons based repository management for mercurial
3 ------------------------------------------------
4 1
5 **Overview** 2 RhodeCode (RhodiumCode)
3 =======================
6 4
7 - Has it's own middleware to handle mercurial protocol request. Each request can 5 ``RhodeCode`` (formerly hg-app) is Pylons based repository management and
6 serving for mercurial_. It's similar to github or bitbucket, but it's suppose to run
7 as standalone app, it's open source and focuses more on restricted access to repositories
8 There's no default free access to RhodeCode You have to create an account in order
9 to use the application. It's powered by vcs_ library that we created to handle
10 many various version control systems.
11
12 RhodeCode uses `Semantic Versioning <http://semver.org/>`_
13
14
15 RhodeCode demo
16 --------------
17
18 http://hg.python-works.com
19
20 The default access is
21
22 - username: demo
23 - password: demo
24
25 Source code
26 -----------
27
28 Source code is along with issue tracker is available at
29 http://bitbucket.org/marcinkuzminski/rhodecode
30
31 Also a source codes can be obtained from demo rhodecode instance
32 http://hg.python-works.com/rhodecode/summary
33
34 Instalation
35 -----------
36
37 Please visit http://packages.python.org/rhodecode/installation.html
38
39
40 Features
41 --------
42
43 - Has it's own middleware to handle mercurial_ protocol request. Each request can
8 be logged and authenticated. Runs on threads unlikely to hgweb You can make 44 be logged and authenticated. Runs on threads unlikely to hgweb You can make
9 multiple pulls/pushes simultaneous 45 multiple pulls/pushes simultaneous
10 - Full permissions and authentication per project private/read/write/admin. 46 - Full permissions and authentication per project private/read/write/admin.
11 One account for web interface and mercurial push/pull/clone. 47 One account for web interface and mercurial_ push/pull/clone.
12 - Mako templates let's you customize look and feel of application. 48 - Mako templates let's you customize look and feel of application.
13 - Beautiful diffs, annotations and source codes all colored by pygments. 49 - Beautiful diffs, annotations and source codes all colored by pygments.
14 - Mercurial branch graph and yui-flot powered graphs with zooming and statistics 50 - Mercurial_ branch graph and yui-flot powered graphs with zooming and statistics
15 - Admin interface with user/permission management. User activity journal logs 51 - Admin interface with user/permission management. User activity journal logs
16 pulls, pushes, forks,registrations. Possible to disable built in hooks 52 pulls, pushes, forks,registrations. Possible to disable built in hooks
17 - Server side forks, it's possible to fork a project and hack it free without 53 - Server side forks, it's possible to fork a project and hack it free without
18 breaking the main. 54 breaking the main.
19 - Full text search on source codes, search on file names. All powered by whoosh 55 - Full text search on source codes, search on file names. All powered by whoosh
20 and build in indexing daemons 56 and build in indexing daemons
21 (no external search servers required all in one application) 57 (no external search servers required all in one application)
22 - Rss / atom feeds, gravatar support, download sources as zip/tarballs 58 - Rss / atom feeds, gravatar support, download sources as zip/tarballs
23 - Async tasks for speed and performance using celery (works without them too) 59 - Async tasks for speed and performance using celery_ (works without them too)
24 - Backup scripts can do backup of whole app and send it over scp to desired 60 - Backup scripts can do backup of whole app and send it over scp to desired
25 location 61 location
26 - Setup project descriptions and info inside built in db for easy, non 62 - Setup project descriptions and info inside built in db for easy, non
27 file-system operations 63 file-system operations
28 - Added cache with invalidation on push/repo management for high performance and 64 - Added cache with invalidation on push/repo management for high performance and
29 always up to date data. 65 always up to date data.
30 - Based on pylons 1.0 / sqlalchemy 0.6 / sqlite 66 - Based on pylons 1.0 / sqlalchemy 0.6 / sqlite
31 67
32 **Incoming**
33 68
34 - code review based on hg-review (when it's stable) 69 Incoming
35 - git support (when vcs can handle it - almost there !) 70 --------
36 - commit based wikis 71
37 - clonning from remote repositories into rhodecode (git/mercurial) 72 - code review (probably based on hg-review)
73 - git_ support (when vcs_ can handle it - it's almost there !)
74 - commit based build in wiki system
75 - clone points and cloning from remote repositories into rhodecode (git_ and mercurial_)
76 - some cache optimizations
38 - other cools stuff that i can figure out (or You can help me figure out) 77 - other cools stuff that i can figure out (or You can help me figure out)
39
40 ------------
41 Installation
42 ------------
43 78
44 **quick setup** 79 License
45 80 -------
46 - pip install -E rhodecode-venv rhodecode
47 - activate virtualenv
48 - run `paster make-config RhodeCode production.ini`
49 - run `paster setup-app production.ini`
50 - run `paster runserver production.ini`
51 81
52 You're ready to go. 82 ``rhodecode`` is released under GPL_ license.
53 83
54 **MORE DETAILED INSTRUCTIONS**
55 84
56 - I highly recommend to install new virtualenv for rhodecode see 85 Documentation
57 http://pypi.python.org/pypi/virtualenv for more details. 86 -------------
58 - Create new virtualenv using `virtualenv --no-site-packages /var/www/rhodecode-venv` 87
59 this will install new virtual env into /var/www/rhodecode-venv. 88 Online documentation for current version is available at
60 Activate the virtualenv by running 89 http://packages.python.org/rhodecode/.
61 `source activate /var/www/rhodecode-venv/bin/activate` 90 You may also build documentation for yourself - go into ``docs/`` and run::
62 - Make a folder for rhodecode somewhere on the filesystem for example /var/www/rhodecode 91
63 - Run easy_install rhodecode 92 make html
64 - Run `paster make-config RhodeCode production.inii` in order to install 93
65 the application config. You can play with the app settings later
66 - Run `paster setup-app production.ini` it should create all needed tables
67 and an admin account make sure You specify correct path to repositories.
68 - Remember that the given path for mercurial repositories must be write
69 accessible for the application
70 - Run paster serve production.ini - or you can use sample init.d scripts.
71 the app should be available at the 127.0.0.1:5000
72 - Use admin account you created to login.
73 - Default permissions on each repository is read, and owner is admin. So remember
74 to update these.
75 - In order to use full power of async tasks, You must install message broker
76 preferably rabbitmq and start celeryd daemon together with rhodecode.
77 The app should gain a lot of speed and become much more responsible.
78 For installation instructions You can visit:
79 http://ask.github.com/celery/getting-started/index.html.
80 - All needed configs are inside rhodecode sources ie. celeryconfig.py,
81 development.ini, production.ini You can configure the email, ports, loggers,
82 workers from there.
83 - For full text search You can either put crontab entry for
84 `python /var/www/rhodecode/rhodecode/lib/indexers/daemon.py incremental <path_to_repos>`
85 or run indexer from admin panel. This will scann the repos given in the
86 application setup or given path for daemon.py and each scann in incremental
87 mode will scann only changed files.