Show More
@@ -4,12 +4,14 b' Welcome to RhodeCode (RhodiumCode) docum' | |||
|
4 | 4 | ================================================= |
|
5 | 5 | |
|
6 | 6 | ``RhodeCode`` (formerly hg-app) is Pylons framework based Mercurial repository |
|
7 | browser/management with build in push/pull server and full text search. | |
|
8 |
It works on http/https, has build in permission/authentication |
|
|
9 | It's similar to github or bitbucket, but it's suppose to run as standalone | |
|
10 | hosted application, it's open source and focuses more on restricted access to | |
|
11 | repositories. It's powered by vcs_ library that me and Lukasz Balcerzak created | |
|
12 | to handle many various version control systems. | |
|
7 | browser/management tool with build in push/pull server and full text search. | |
|
8 | It works on http/https, has build in permission/authentication system with | |
|
9 | ability to auth via LDAP. It's similar in some parts to github or bitbucket, | |
|
10 | but it's suppose to run as standalone hosted application, it's open source | |
|
11 | and donation ware and focuses more on providing customized, self administered | |
|
12 | interface for Mercurial(and soon GIT) repositories. It's powered by vcs_ | |
|
13 | library that me and Lukasz Balcerzak created to handle many various version | |
|
14 | control systems. | |
|
13 | 15 | |
|
14 | 16 | RhodeCode uses `Semantic Versioning <http://semver.org/>`_ |
|
15 | 17 | |
@@ -45,23 +47,28 b' Features' | |||
|
45 | 47 | - Has it's own middleware to handle mercurial_ protocol request. |
|
46 | 48 | Each request can be logged and authenticated. Runs on threads unlikely to |
|
47 | 49 | hgweb. You can make multiple pulls/pushes simultaneous. Supports http/https |
|
48 |
and |
|
|
50 | and LDAP | |
|
49 | 51 | - Full permissions (private/read/write/admin) and authentication per project. |
|
50 | 52 | One account for web interface and mercurial_ push/pull/clone operations. |
|
53 | - Have built in users groups for easier permission management | |
|
54 | - Users can fork other users repo. RhodeCode have also compare view to see | |
|
55 | combined changeset for all changeset made within single push. | |
|
51 | 56 | - Mako templates let's you customize look and feel of application. |
|
52 | - Beautiful diffs, annotations and source codes all colored by pygments. | |
|
57 | - Beautiful diffs, annotations and source codes all colored by pygments. Raw | |
|
58 | diffs are made in git-diff format, including git binary-patches | |
|
53 | 59 | - Mercurial_ branch graph and yui-flot powered graphs with zooming and statistics |
|
54 | 60 | - Admin interface with user/permission management. Admin activity journal, logs |
|
55 | 61 | pulls, pushes, forks, registrations and other actions made by all users. |
|
56 | 62 | - Server side forks, it's possible to fork a project and hack it free without |
|
57 | breaking the main repository. | |
|
63 | breaking the main repository. You can even write Your own hooks and install | |
|
64 | them | |
|
58 | 65 | - Full text search powered by Whoosh on source codes, and file names. |
|
59 | 66 | Build in indexing daemons, with optional incremental index build |
|
60 |
(no external search servers required |
|
|
67 | (no external search servers required. All in one application !) | |
|
61 | 68 | - Setup project descriptions and info inside built in db for easy, non |
|
62 | 69 | file-system operations |
|
63 |
- Intelligent cache with invalidation after push or project change, provides |
|
|
64 | performance and always up to date data. | |
|
70 | - Intelligent cache with invalidation after push or project change, provides | |
|
71 | high performance and always up to date data. | |
|
65 | 72 | - Rss / atom feeds, gravatar support, download sources as zip/tar/gz |
|
66 | 73 | - Async tasks for speed and performance using celery_ (works without them too) |
|
67 | 74 | - Backup scripts can do backup of whole app and send it over scp to desired |
@@ -76,7 +83,6 b' Incoming / Plans' | |||
|
76 | 83 | ---------------- |
|
77 | 84 | |
|
78 | 85 | - project grouping |
|
79 | - User groups/teams | |
|
80 | 86 | - code review (probably based on hg-review) |
|
81 | 87 | - full git_ support, with push/pull server (currently in beta tests) |
|
82 | 88 | - redmine integration |
@@ -6,4 +6,12 b' Contributing in RhodeCode' | |||
|
6 | 6 | If You would like to contribute to RhodeCode, please contact me, any help is |
|
7 | 7 | greatly appreciated. |
|
8 | 8 | |
|
9 | Preferable method Would be to fork RhodeCode repository from bitbucket | |
|
10 | https://bitbucket.org/marcinkuzminski/rhodecode and then open a pull request. | |
|
11 | This way it's easier for me to merge. | |
|
12 | ||
|
13 | To run RhodeCode in a development version You always need to install tip | |
|
14 | version of RhodeCode and VCS library. | |
|
15 | ||
|
16 | ||
|
9 | 17 | Thank You. |
@@ -22,16 +22,16 b' Rhodecode requires python 2.x greater th' | |||
|
22 | 22 | |
|
23 | 23 | Easiest way to install ``rhodecode`` is to run:: |
|
24 | 24 | |
|
25 | easy_install rhodecode | |
|
25 | easy_install rhodecode | |
|
26 | 26 | |
|
27 | 27 | Or:: |
|
28 | 28 | |
|
29 | pip install rhodecode | |
|
29 | pip install rhodecode | |
|
30 | 30 | |
|
31 | 31 | If you prefer to install manually simply grab latest release from |
|
32 | 32 | http://pypi.python.org/pypi/rhodecode, decompres archive and run:: |
|
33 | 33 | |
|
34 | python setup.py install | |
|
34 | python setup.py install | |
|
35 | 35 | |
|
36 | 36 | |
|
37 | 37 | Step by step installation example |
@@ -44,27 +44,27 b' Step by step installation example' | |||
|
44 | 44 | |
|
45 | 45 | :: |
|
46 | 46 | |
|
47 | virtualenv --no-site-packages /var/www/rhodecode-venv | |
|
47 | virtualenv --no-site-packages /var/www/rhodecode-venv | |
|
48 | 48 | |
|
49 | 49 | - this will install new virtualenv_ into `/var/www/rhodecode-venv`. |
|
50 | 50 | - Activate the virtualenv_ by running |
|
51 | 51 | |
|
52 | 52 | :: |
|
53 | 53 | |
|
54 | source /var/www/rhodecode-venv/bin/activate | |
|
54 | source /var/www/rhodecode-venv/bin/activate | |
|
55 | 55 | |
|
56 | 56 | - Make a folder for rhodecode somewhere on the filesystem for example |
|
57 | 57 | |
|
58 | 58 | :: |
|
59 | 59 | |
|
60 | mkdir /var/www/rhodecode | |
|
60 | mkdir /var/www/rhodecode | |
|
61 | 61 | |
|
62 | 62 | |
|
63 | 63 | - Run this command to install rhodecode |
|
64 | 64 | |
|
65 | 65 | :: |
|
66 | 66 | |
|
67 | easy_install rhodecode | |
|
67 | easy_install rhodecode | |
|
68 | 68 | |
|
69 | 69 | - this will install rhodecode together with pylons |
|
70 | 70 | and all other required python libraries |
@@ -7,7 +7,7 b' Setup' | |||
|
7 | 7 | Setting up the application |
|
8 | 8 | -------------------------- |
|
9 | 9 | |
|
10 | First You'll ned to create RhodeCode config file. Run the following command | |
|
10 | First You'll need to create RhodeCode config file. Run the following command | |
|
11 | 11 | to do this |
|
12 | 12 | |
|
13 | 13 | :: |
@@ -19,8 +19,10 b' to do this' | |||
|
19 | 19 | email settings, usage of static files, cache, celery settings and logging. |
|
20 | 20 | |
|
21 | 21 | |
|
22 | Next we need to create the database. I'll recommend to use sqlite (default) | |
|
23 | or postgresql. Make sure You properly adjust the db url in the .ini file to use | |
|
24 | other than the default sqlite database | |
|
22 | 25 | |
|
23 | Next we need to create the database. | |
|
24 | 26 | |
|
25 | 27 | :: |
|
26 | 28 | |
@@ -35,7 +37,7 b' Next we need to create the database.' | |||
|
35 | 37 | interface will work even without such an access but, when trying to do a |
|
36 | 38 | push it'll eventually fail with permission denied errors. |
|
37 | 39 | |
|
38 |
You are ready to use |
|
|
40 | You are ready to use RhodeCode, to run it simply execute | |
|
39 | 41 | |
|
40 | 42 | :: |
|
41 | 43 | |
@@ -92,13 +94,13 b' incremental mode.' | |||
|
92 | 94 | |
|
93 | 95 | incremental mode:: |
|
94 | 96 | |
|
95 |
|
|
|
97 | paster make-index production.ini --repo-location=<location for repos> | |
|
96 | 98 | |
|
97 | 99 | |
|
98 | 100 | |
|
99 | 101 | for full index rebuild You can use:: |
|
100 | 102 | |
|
101 |
|
|
|
103 | paster make-index production.ini -f --repo-location=<location for repos> | |
|
102 | 104 | |
|
103 | 105 | |
|
104 | 106 | building index just for chosen repositories is possible with such command:: |
@@ -334,10 +336,18 b' In order to make start using celery run:' | |||
|
334 | 336 | paster celeryd <configfile.ini> |
|
335 | 337 | |
|
336 | 338 | |
|
337 | ||
|
338 | 339 | .. note:: |
|
339 | 340 | Make sure You run this command from same virtualenv, and with the same user |
|
340 | 341 | that rhodecode runs. |
|
342 | ||
|
343 | HTTPS support | |
|
344 | ------------- | |
|
345 | ||
|
346 | There are two ways to enable https, first is to set HTTP_X_URL_SCHEME in | |
|
347 | Your http server headers, than rhodecode will recognise this headers and make | |
|
348 | proper https redirections, another way is to set `force_https = true` | |
|
349 | in the ini cofiguration to force using https, no headers are needed than to | |
|
350 | enable https | |
|
341 | 351 | |
|
342 | 352 | |
|
343 | 353 | Nginx virtual host example |
@@ -426,6 +436,29 b' Additional tutorial' | |||
|
426 | 436 | http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons |
|
427 | 437 | |
|
428 | 438 | |
|
439 | Apache as subdirectory | |
|
440 | ---------------------- | |
|
441 | ||
|
442 | ||
|
443 | Apache subdirectory part:: | |
|
444 | ||
|
445 | <Location /rhodecode> | |
|
446 | ProxyPass http://127.0.0.1:59542/rhodecode | |
|
447 | ProxyPassReverse http://127.0.0.1:59542/rhodecode | |
|
448 | SetEnvIf X-Url-Scheme https HTTPS=1 | |
|
449 | </Location> | |
|
450 | ||
|
451 | Besides the regular apache setup You'll need to add such part to .ini file:: | |
|
452 | ||
|
453 | filter-with = proxy-prefix | |
|
454 | ||
|
455 | Add the following at the end of the .ini file:: | |
|
456 | ||
|
457 | [filter:proxy-prefix] | |
|
458 | use = egg:PasteDeploy#prefix | |
|
459 | prefix = /<someprefix> | |
|
460 | ||
|
461 | ||
|
429 | 462 | Apache's example FCGI config |
|
430 | 463 | ---------------------------- |
|
431 | 464 | |
@@ -462,7 +495,9 b' Troubleshooting' | |||
|
462 | 495 | |
|
463 | 496 | - make sure You set a proper max_body_size for the http server |
|
464 | 497 | |
|
498 | - Apache doesn't pass basicAuth on pull/push ? | |
|
465 | 499 | |
|
500 | - Make sure You added `WSGIPassAuthorization true` | |
|
466 | 501 | |
|
467 | 502 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv |
|
468 | 503 | .. _python: http://www.python.org/ |
@@ -25,15 +25,20 b' This will display any changes made from ' | |||
|
25 | 25 | current config. And tries to do an automerge. It's always better to do a backup |
|
26 | 26 | of config file and recheck the content after merge. |
|
27 | 27 | |
|
28 | .. note:: | |
|
29 | The next steps only apply to upgrading from non bugfix releases eg. from | |
|
30 | 1.1 to 1.2. Bugfix releases (eg. 1.1.2->1.1.3) will not have any database | |
|
31 | schema changes or whoosh library updates | |
|
32 | ||
|
28 | 33 | It's also good to rebuild the whoosh index since after upgrading the whoosh |
|
29 | version there could be introduced incompatible index changes. | |
|
34 | version there could be introduced incompatible index changes. | |
|
30 | 35 | |
|
31 | 36 | |
|
32 | 37 | The last step is to upgrade the database. To do this simply run |
|
33 | 38 | |
|
34 | 39 | :: |
|
35 | 40 | |
|
36 | paster upgrade-db production.ini | |
|
41 | paster upgrade-db production.ini | |
|
37 | 42 | |
|
38 | 43 | This will upgrade schema, as well as update some default on the database, |
|
39 | 44 | always recheck the settings of the application, if there are no new options |
General Comments 0
You need to be logged in to leave comments.
Login now