Show More
@@ -25,15 +25,15 b' Installation' | |||||
25 | ------------ |
|
25 | ------------ | |
26 | Stable releases of RhodeCode are best installed via:: |
|
26 | Stable releases of RhodeCode are best installed via:: | |
27 |
|
27 | |||
28 |
easy_install |
|
28 | easy_install kallithea | |
29 |
|
29 | |||
30 | Or:: |
|
30 | Or:: | |
31 |
|
31 | |||
32 |
pip install |
|
32 | pip install kallithea | |
33 |
|
33 | |||
34 | Detailed instructions and links may be found on the Installation page. |
|
34 | Detailed instructions and links may be found on the Installation page. | |
35 |
|
35 | |||
36 |
Please visit http://packages.python.org/ |
|
36 | Please visit http://packages.python.org/Kallithea/installation.html for | |
37 | more details |
|
37 | more details | |
38 |
|
38 | |||
39 |
|
39 | |||
@@ -138,8 +138,8 b' Online documentation' | |||||
138 | -------------------- |
|
138 | -------------------- | |
139 |
|
139 | |||
140 | Online documentation for the current version of RhodeCode is available at |
|
140 | Online documentation for the current version of RhodeCode is available at | |
141 |
- http://packages.python.org/ |
|
141 | - http://packages.python.org/Kallithea/ | |
142 |
- http:// |
|
142 | - http://kallithea.readthedocs.org/ | |
143 |
|
143 | |||
144 | You may also build the documentation for yourself - go into ``docs/`` and run:: |
|
144 | You may also build the documentation for yourself - go into ``docs/`` and run:: | |
145 |
|
145 |
@@ -72,17 +72,17 b' qthelp:' | |||||
72 | @echo |
|
72 | @echo | |
73 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ |
|
73 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ | |
74 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" |
|
74 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" | |
75 |
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ |
|
75 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Kallithea.qhcp" | |
76 | @echo "To view the help file:" |
|
76 | @echo "To view the help file:" | |
77 |
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ |
|
77 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Kallithea.qhc" | |
78 |
|
78 | |||
79 | devhelp: |
|
79 | devhelp: | |
80 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp |
|
80 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp | |
81 | @echo |
|
81 | @echo | |
82 | @echo "Build finished." |
|
82 | @echo "Build finished." | |
83 | @echo "To view the help file:" |
|
83 | @echo "To view the help file:" | |
84 |
@echo "# mkdir -p $$HOME/.local/share/devhelp/ |
|
84 | @echo "# mkdir -p $$HOME/.local/share/devhelp/Kallithea" | |
85 |
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ |
|
85 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Kallithea" | |
86 | @echo "# devhelp" |
|
86 | @echo "# devhelp" | |
87 |
|
87 | |||
88 | epub: |
|
88 | epub: |
@@ -5,15 +5,15 b' API' | |||||
5 | === |
|
5 | === | |
6 |
|
6 | |||
7 |
|
7 | |||
8 |
Starting from |
|
8 | Starting from Kallithea version 1.2 a simple API was implemented. | |
9 | There's a single schema for calling all api methods. API is implemented |
|
9 | There's a single schema for calling all api methods. API is implemented | |
10 |
with JSON protocol both ways. An url to send API request to |
|
10 | with JSON protocol both ways. An url to send API request to Kallithea is | |
11 | <your_server>/_admin/api |
|
11 | <your_server>/_admin/api | |
12 |
|
12 | |||
13 | API ACCESS FOR WEB VIEWS |
|
13 | API ACCESS FOR WEB VIEWS | |
14 | ++++++++++++++++++++++++ |
|
14 | ++++++++++++++++++++++++ | |
15 |
|
15 | |||
16 |
API access can also be turned on for each web view in |
|
16 | API access can also be turned on for each web view in Kallithea that is | |
17 | decorated with `@LoginRequired` decorator. To enable API access simple change |
|
17 | decorated with `@LoginRequired` decorator. To enable API access simple change | |
18 | the standard login decorator to `@LoginRequired(api_access=True)`. |
|
18 | the standard login decorator to `@LoginRequired(api_access=True)`. | |
19 |
|
19 | |||
@@ -21,7 +21,7 b' To make this operation easier, starting ' | |||||
21 | of views that will have API access enabled. Simply edit `api_access_controllers_whitelist` |
|
21 | of views that will have API access enabled. Simply edit `api_access_controllers_whitelist` | |
22 | option in your .ini file, and define views that should have API access enabled. |
|
22 | option in your .ini file, and define views that should have API access enabled. | |
23 | Following example shows how to enable API access to patch/diff raw file and archive |
|
23 | Following example shows how to enable API access to patch/diff raw file and archive | |
24 | in RhodeCode:: |
|
24 | in Kallithea:: | |
25 |
|
25 | |||
26 | api_access_controllers_whitelist = |
|
26 | api_access_controllers_whitelist = | |
27 | ChangesetController:changeset_patch, |
|
27 | ChangesetController:changeset_patch, | |
@@ -30,7 +30,7 b' in RhodeCode::' | |||||
30 | FilesController:archivefile |
|
30 | FilesController:archivefile | |
31 |
|
31 | |||
32 |
|
32 | |||
33 |
After this change, a |
|
33 | After this change, a Kallithea view can be accessed without login by adding a | |
34 | GET parameter `?api_key=<api_key>` to url. By default this is only |
|
34 | GET parameter `?api_key=<api_key>` to url. By default this is only | |
35 | enabled on RSS/ATOM feed views. Exposing raw diffs is a good way to integrate with |
|
35 | enabled on RSS/ATOM feed views. Exposing raw diffs is a good way to integrate with | |
36 | 3rd party services like code review, or build farms that could download archives. |
|
36 | 3rd party services like code review, or build farms that could download archives. | |
@@ -62,7 +62,7 b' Simply provide' | |||||
62 | api_key can be found in your user account page |
|
62 | api_key can be found in your user account page | |
63 |
|
63 | |||
64 |
|
64 | |||
65 |
|
|
65 | Kallithea API will return always a JSON-RPC response:: | |
66 |
|
66 | |||
67 | { |
|
67 | { | |
68 | "id":<id>, # matching id sent by request |
|
68 | "id":<id>, # matching id sent by request | |
@@ -78,8 +78,8 b' and result will be null.' | |||||
78 | API CLIENT |
|
78 | API CLIENT | |
79 | ++++++++++ |
|
79 | ++++++++++ | |
80 |
|
80 | |||
81 |
From version 1.4 |
|
81 | From version 1.4 Kallithea adds a script that allows to easily | |
82 |
communicate with API. After installing |
|
82 | communicate with API. After installing Kallithea a `kallithea-api` script | |
83 | will be available. |
|
83 | will be available. | |
84 |
|
84 | |||
85 | To get started quickly simply run:: |
|
85 | To get started quickly simply run:: | |
@@ -96,7 +96,7 b' after that simply run any api command fo' | |||||
96 | kallithea-api get_repo |
|
96 | kallithea-api get_repo | |
97 |
|
97 | |||
98 | calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000 |
|
98 | calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000 | |
99 | rhodecode said: |
|
99 | Kallithea said: | |
100 | {'error': 'Missing non optional `repoid` arg in JSON DATA', |
|
100 | {'error': 'Missing non optional `repoid` arg in JSON DATA', | |
101 | 'id': 75, |
|
101 | 'id': 75, | |
102 | 'result': None} |
|
102 | 'result': None} | |
@@ -105,10 +105,10 b' Ups looks like we forgot to add an argum' | |||||
105 |
|
105 | |||
106 | Let's try again now giving the repoid as parameters:: |
|
106 | Let's try again now giving the repoid as parameters:: | |
107 |
|
107 | |||
108 |
kallithea-api get_repo repoid: |
|
108 | kallithea-api get_repo repoid:myrepo | |
109 |
|
109 | |||
110 |
calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": " |
|
110 | calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "myrepo"}, "method": "get_repo"} to http://127.0.0.1:5000 | |
111 |
|
|
111 | Kallithea said: | |
112 | {'error': None, |
|
112 | {'error': None, | |
113 | 'id': 39, |
|
113 | 'id': 39, | |
114 | 'result': <json data...>} |
|
114 | 'result': <json data...>} | |
@@ -146,7 +146,7 b' rescan_repos' | |||||
146 | ------------ |
|
146 | ------------ | |
147 |
|
147 | |||
148 | Dispatch rescan repositories action. If remove_obsolete is set |
|
148 | Dispatch rescan repositories action. If remove_obsolete is set | |
149 |
|
|
149 | Kallithea will delete repos that are in database but not in the filesystem. | |
150 | This command can be executed only using api_key belonging to user with admin |
|
150 | This command can be executed only using api_key belonging to user with admin | |
151 | rights. |
|
151 | rights. | |
152 |
|
152 | |||
@@ -225,7 +225,7 b' OUTPUT::' | |||||
225 | show_ip |
|
225 | show_ip | |
226 | ------- |
|
226 | ------- | |
227 |
|
227 | |||
228 |
Shows IP address as seen from |
|
228 | Shows IP address as seen from Kallithea server, together with all | |
229 | defined IP addresses for given user. |
|
229 | defined IP addresses for given user. | |
230 | This command can be executed only using api_key belonging to user with admin |
|
230 | This command can be executed only using api_key belonging to user with admin | |
231 | rights. |
|
231 | rights. |
@@ -1,6 +1,6 b'' | |||||
1 | # -*- coding: utf-8 -*- |
|
1 | # -*- coding: utf-8 -*- | |
2 | # |
|
2 | # | |
3 |
# |
|
3 | # Kallithea documentation build configuration file, created by | |
4 | # sphinx-quickstart on Sun Oct 10 16:46:37 2010. |
|
4 | # sphinx-quickstart on Sun Oct 10 16:46:37 2010. | |
5 | # |
|
5 | # | |
6 | # This file is execfile()d with the current directory set to its containing dir. |
|
6 | # This file is execfile()d with the current directory set to its containing dir. | |
@@ -44,7 +44,7 b" source_suffix = '.rst'" | |||||
44 | master_doc = 'index' |
|
44 | master_doc = 'index' | |
45 |
|
45 | |||
46 | # General information about the project. |
|
46 | # General information about the project. | |
47 |
project = u' |
|
47 | project = u'Kallithea' | |
48 | copyright = u'%s, Marcin Kuzminski' % (datetime.datetime.now().year) |
|
48 | copyright = u'%s, Marcin Kuzminski' % (datetime.datetime.now().year) | |
49 |
|
49 | |||
50 | # The version info for the project you're documenting, acts as replacement for |
|
50 | # The version info for the project you're documenting, acts as replacement for | |
@@ -171,7 +171,7 b" html_theme_path = ['theme']" | |||||
171 | #html_file_suffix = None |
|
171 | #html_file_suffix = None | |
172 |
|
172 | |||
173 | # Output file base name for HTML help builder. |
|
173 | # Output file base name for HTML help builder. | |
174 |
htmlhelp_basename = ' |
|
174 | htmlhelp_basename = 'Kallithea-docs' | |
175 |
|
175 | |||
176 |
|
176 | |||
177 | # -- Options for LaTeX output -------------------------------------------------- |
|
177 | # -- Options for LaTeX output -------------------------------------------------- | |
@@ -185,7 +185,7 b" htmlhelp_basename = 'RhodeCodedoc'" | |||||
185 | # Grouping the document tree into LaTeX files. List of tuples |
|
185 | # Grouping the document tree into LaTeX files. List of tuples | |
186 | # (source start file, target name, title, author, documentclass [howto/manual]). |
|
186 | # (source start file, target name, title, author, documentclass [howto/manual]). | |
187 | latex_documents = [ |
|
187 | latex_documents = [ | |
188 |
('index', ' |
|
188 | ('index', 'Kallithea.tex', u'Kallithea Documentation', | |
189 | u'Marcin Kuzminski', 'manual'), |
|
189 | u'Marcin Kuzminski', 'manual'), | |
190 | ] |
|
190 | ] | |
191 |
|
191 | |||
@@ -218,7 +218,7 b' latex_documents = [' | |||||
218 | # One entry per manual page. List of tuples |
|
218 | # One entry per manual page. List of tuples | |
219 | # (source start file, name, description, authors, manual section). |
|
219 | # (source start file, name, description, authors, manual section). | |
220 | man_pages = [ |
|
220 | man_pages = [ | |
221 |
('index', 'kallithea', u' |
|
221 | ('index', 'kallithea', u'Kallithea Documentation', | |
222 | [u'Marcin Kuzminski'], 1) |
|
222 | [u'Marcin Kuzminski'], 1) | |
223 | ] |
|
223 | ] | |
224 |
|
224 |
@@ -1,26 +1,26 b'' | |||||
1 | .. _contributing: |
|
1 | .. _contributing: | |
2 |
|
2 | |||
3 | ========================= |
|
3 | ========================= | |
4 |
Contributing to |
|
4 | Contributing to Kallithea | |
5 | ========================= |
|
5 | ========================= | |
6 |
|
6 | |||
7 |
If you would like to contribute to |
|
7 | If you would like to contribute to Kallithea, please contact us, any help is | |
8 | greatly appreciated! |
|
8 | greatly appreciated! | |
9 |
|
9 | |||
10 | Could I request that you make your source contributions by first forking the |
|
10 | Could I request that you make your source contributions by first forking the | |
11 |
|
|
11 | Kallithea repository on bitbucket_ | |
12 | https://bitbucket.org/conservancy/kallithea and then make your changes to |
|
12 | https://bitbucket.org/conservancy/kallithea and then make your changes to | |
13 | your forked repository. Please post all fixes into **dev** bookmark since your |
|
13 | your forked repository. Please post all fixes into **dev** bookmark since your | |
14 | change might be already fixed there and i try to merge all fixes from dev into |
|
14 | change might be already fixed there and i try to merge all fixes from dev into | |
15 | stable, and not the other way. Finally, when you are finished with your changes, |
|
15 | stable, and not the other way. Finally, when you are finished with your changes, | |
16 |
please send |
|
16 | please send us a pull request. | |
17 |
|
17 | |||
18 |
To run |
|
18 | To run Kallithea in a development version you always need to install the latest | |
19 |
required libs. Simply clone |
|
19 | required libs. Simply clone Kallithea and switch to beta branch:: | |
20 |
|
20 | |||
21 | hg clone https://kallithea-scm.org/repos/kallithea |
|
21 | hg clone https://kallithea-scm.org/repos/kallithea | |
22 |
|
22 | |||
23 |
after downloading/pulling |
|
23 | after downloading/pulling Kallithea make sure you run:: | |
24 |
|
24 | |||
25 | python setup.py develop |
|
25 | python setup.py develop | |
26 |
|
26 | |||
@@ -46,8 +46,6 b" There's a special set of tests for push/" | |||||
46 |
|
46 | |||
47 |
|
47 | |||
48 | | Thank you for any contributions! |
|
48 | | Thank you for any contributions! | |
49 | | Marcin |
|
|||
50 |
|
||||
51 |
|
49 | |||
52 |
|
50 | |||
53 | .. _bitbucket: http://bitbucket.org/ |
|
51 | .. _bitbucket: http://bitbucket.org/ |
@@ -4,28 +4,28 b'' | |||||
4 | Installation |
|
4 | Installation | |
5 | ============ |
|
5 | ============ | |
6 |
|
6 | |||
7 |
`` |
|
7 | ``Kallithea`` is written entirely in Python. Before posting any issues make | |
8 | sure, your not missing any system libraries and using right version of |
|
8 | sure, your not missing any system libraries and using right version of | |
9 |
libraries required by |
|
9 | libraries required by Kallithea. There's also restriction in terms of mercurial | |
10 |
clients. Minimal version of hg client known working fine with |
|
10 | clients. Minimal version of hg client known working fine with Kallithea is | |
11 | **1.6**. If you're using older client, please upgrade. |
|
11 | **1.6**. If you're using older client, please upgrade. | |
12 |
|
12 | |||
13 |
|
13 | |||
14 |
Installing |
|
14 | Installing Kallithea from PyPI (aka "Cheeseshop") | |
15 | ------------------------------------------------- |
|
15 | ------------------------------------------------- | |
16 |
|
16 | |||
17 |
|
|
17 | Kallithea requires python version 2.5 or higher. | |
18 |
|
18 | |||
19 |
The easiest way to install `` |
|
19 | The easiest way to install ``kallithea`` is to run:: | |
20 |
|
20 | |||
21 |
easy_install |
|
21 | easy_install kallithea | |
22 |
|
22 | |||
23 | Or:: |
|
23 | Or:: | |
24 |
|
24 | |||
25 |
pip install |
|
25 | pip install kallithea | |
26 |
|
26 | |||
27 |
If you prefer to install |
|
27 | If you prefer to install Kallithea manually simply grab latest release from | |
28 |
http://pypi.python.org/pypi/ |
|
28 | http://pypi.python.org/pypi/Kallithea, decompress the archive and run:: | |
29 |
|
29 | |||
30 | python setup.py install |
|
30 | python setup.py install | |
31 |
|
31 | |||
@@ -39,8 +39,8 b' Step by step installation example for Li' | |||||
39 | ------------------------------------------- |
|
39 | ------------------------------------------- | |
40 |
|
40 | |||
41 |
|
41 | |||
42 |
For installing |
|
42 | For installing Kallithea i highly recommend using separate virtualenv_. This | |
43 |
way many required by |
|
43 | way many required by Kallithea libraries will remain sandboxed from your main | |
44 | python and making things less problematic when doing system python updates. |
|
44 | python and making things less problematic when doing system python updates. | |
45 |
|
45 | |||
46 | Alternative very detailed installation instructions for Ubuntu Server with |
|
46 | Alternative very detailed installation instructions for Ubuntu Server with | |
@@ -50,64 +50,64 b' celery, indexer and daemon scripts: http' | |||||
50 | - Assuming you have installed virtualenv_ create a new virtual environment |
|
50 | - Assuming you have installed virtualenv_ create a new virtual environment | |
51 | using virtualenv command:: |
|
51 | using virtualenv command:: | |
52 |
|
52 | |||
53 |
virtualenv --no-site-packages /opt/ |
|
53 | virtualenv --no-site-packages /opt/kallithea-venv | |
54 |
|
54 | |||
55 |
|
55 | |||
56 | .. note:: Using ``--no-site-packages`` when generating your |
|
56 | .. note:: Using ``--no-site-packages`` when generating your | |
57 | virtualenv is **very important**. This flag provides the necessary |
|
57 | virtualenv is **very important**. This flag provides the necessary | |
58 | isolation for running the set of packages required by |
|
58 | isolation for running the set of packages required by | |
59 |
|
|
59 | Kallithea. If you do not specify ``--no-site-packages``, | |
60 |
it's possible that |
|
60 | it's possible that Kallithea will not install properly into | |
61 | the virtualenv, or, even if it does, may not run properly, |
|
61 | the virtualenv, or, even if it does, may not run properly, | |
62 | depending on the packages you've already got installed into your |
|
62 | depending on the packages you've already got installed into your | |
63 | Python's "main" site-packages dir. |
|
63 | Python's "main" site-packages dir. | |
64 |
|
64 | |||
65 |
|
65 | |||
66 |
- this will install new virtualenv_ into `/opt/ |
|
66 | - this will install new virtualenv_ into `/opt/kallithea-venv`. | |
67 | - Activate the virtualenv_ by running:: |
|
67 | - Activate the virtualenv_ by running:: | |
68 |
|
68 | |||
69 |
source /opt/ |
|
69 | source /opt/kallithea-venv/bin/activate | |
70 |
|
70 | |||
71 | .. note:: If you're using UNIX, *do not* use ``sudo`` to run the |
|
71 | .. note:: If you're using UNIX, *do not* use ``sudo`` to run the | |
72 | ``virtualenv`` script. It's perfectly acceptable (and desirable) |
|
72 | ``virtualenv`` script. It's perfectly acceptable (and desirable) | |
73 | to create a virtualenv as a normal user. |
|
73 | to create a virtualenv as a normal user. | |
74 |
|
74 | |||
75 |
- Make a folder for |
|
75 | - Make a folder for Kallithea data files, and configuration somewhere on the | |
76 | filesystem. For example:: |
|
76 | filesystem. For example:: | |
77 |
|
77 | |||
78 |
mkdir /opt/ |
|
78 | mkdir /opt/kallithea | |
79 |
|
79 | |||
80 |
|
80 | |||
81 |
- Go into the created directory run this command to install |
|
81 | - Go into the created directory run this command to install kallithea:: | |
82 |
|
82 | |||
83 |
easy_install |
|
83 | easy_install kallithea | |
84 |
|
84 | |||
85 | or:: |
|
85 | or:: | |
86 |
|
86 | |||
87 |
pip install |
|
87 | pip install kallithea | |
88 |
|
88 | |||
89 |
- This will install |
|
89 | - This will install Kallithea together with pylons and all other required | |
90 | python libraries into activated virtualenv |
|
90 | python libraries into activated virtualenv | |
91 |
|
91 | |||
92 | Requirements for Celery (optional) |
|
92 | Requirements for Celery (optional) | |
93 | ---------------------------------- |
|
93 | ---------------------------------- | |
94 |
|
94 | |||
95 | In order to gain maximum performance |
|
95 | In order to gain maximum performance | |
96 |
there are some third-party you must install. When |
|
96 | there are some third-party you must install. When Kallithea is used | |
97 | together with celery you have to install some kind of message broker, |
|
97 | together with celery you have to install some kind of message broker, | |
98 | recommended one is rabbitmq_ to make the async tasks work. |
|
98 | recommended one is rabbitmq_ to make the async tasks work. | |
99 |
|
99 | |||
100 |
Of course |
|
100 | Of course Kallithea works in sync mode also and then you do not have to install | |
101 | any third party applications. However, using Celery_ will give you a large |
|
101 | any third party applications. However, using Celery_ will give you a large | |
102 | speed improvement when using many big repositories. If you plan to use |
|
102 | speed improvement when using many big repositories. If you plan to use | |
103 |
|
|
103 | Kallithea for say 7 to 10 repositories, Kallithea will perform perfectly well | |
104 | without celery running. |
|
104 | without celery running. | |
105 |
|
105 | |||
106 |
If you make the decision to run |
|
106 | If you make the decision to run Kallithea with celery make sure you run | |
107 | celeryd using paster and message broker together with the application. |
|
107 | celeryd using paster and message broker together with the application. | |
108 |
|
108 | |||
109 | .. note:: |
|
109 | .. note:: | |
110 |
Installing message broker and using celery is optional, |
|
110 | Installing message broker and using celery is optional, Kallithea will | |
111 | work perfectly fine without them. |
|
111 | work perfectly fine without them. | |
112 |
|
112 | |||
113 |
|
113 |
@@ -5,7 +5,7 b' Step by step Installation for Windows' | |||||
5 | ===================================== |
|
5 | ===================================== | |
6 |
|
6 | |||
7 |
|
7 | |||
8 |
|
|
8 | Kallithea step-by-step install Guide for Windows | |
9 |
|
9 | |||
10 | Target OS: Windows XP SP3 32bit English (Clean installation) |
|
10 | Target OS: Windows XP SP3 32bit English (Clean installation) | |
11 | + All Windows Updates until 24-may-2012 |
|
11 | + All Windows Updates until 24-may-2012 | |
@@ -121,22 +121,22 b' that came preinstalled in Vista/7 and ca' | |||||
121 | Typically: C:\\Python27 |
|
121 | Typically: C:\\Python27 | |
122 |
|
122 | |||
123 |
|
123 | |||
124 |
Step5 - |
|
124 | Step5 - Kallithea folder structure | |
125 | ---------------------------------- |
|
125 | ---------------------------------- | |
126 |
|
126 | |||
127 |
Create a |
|
127 | Create a Kallithea folder structure | |
128 |
|
128 | |||
129 |
This is only a example to install |
|
129 | This is only a example to install Kallithea, you can of course change | |
130 | it. However, this guide will follow the proposed structure, so please |
|
130 | it. However, this guide will follow the proposed structure, so please | |
131 | later adapt the paths if you change them. My recommendation is to use |
|
131 | later adapt the paths if you change them. My recommendation is to use | |
132 | folders with NO SPACES. But you can try if you are brave... |
|
132 | folders with NO SPACES. But you can try if you are brave... | |
133 |
|
133 | |||
134 | Create the following folder structure:: |
|
134 | Create the following folder structure:: | |
135 |
|
135 | |||
136 | C:\RhodeCode |
|
136 | C:\Kallithea | |
137 |
C:\ |
|
137 | C:\Kallithea\Bin | |
138 |
C:\ |
|
138 | C:\Kallithea\Env | |
139 |
C:\ |
|
139 | C:\Kallithea\Repos | |
140 |
|
140 | |||
141 |
|
141 | |||
142 | Step6 - Install virtualenv |
|
142 | Step6 - Install virtualenv | |
@@ -146,24 +146,24 b' Install Virtual Env for Python' | |||||
146 |
|
146 | |||
147 | Navigate to: http://www.virtualenv.org/en/latest/index.html#installation |
|
147 | Navigate to: http://www.virtualenv.org/en/latest/index.html#installation | |
148 | Right click on "virtualenv.py" file and choose "Save link as...". |
|
148 | Right click on "virtualenv.py" file and choose "Save link as...". | |
149 |
Download to C:\\ |
|
149 | Download to C:\\Kallithea (or whatever you want) | |
150 | (the file is located at |
|
150 | (the file is located at | |
151 | https://raw.github.com/pypa/virtualenv/master/virtualenv.py) |
|
151 | https://raw.github.com/pypa/virtualenv/master/virtualenv.py) | |
152 |
|
152 | |||
153 |
Create a virtual Python environment in C:\\ |
|
153 | Create a virtual Python environment in C:\\Kallithea\\Env (or similar). To | |
154 | do so, open a CMD (Python Path should be included in Step3), navigate |
|
154 | do so, open a CMD (Python Path should be included in Step3), navigate | |
155 | where you downloaded "virtualenv.py", and write:: |
|
155 | where you downloaded "virtualenv.py", and write:: | |
156 |
|
156 | |||
157 |
python virtualenv.py C:\ |
|
157 | python virtualenv.py C:\Kallithea\Env | |
158 |
|
158 | |||
159 | (--no-site-packages is now the default behaviour of virtualenv, no need |
|
159 | (--no-site-packages is now the default behaviour of virtualenv, no need | |
160 | to include it) |
|
160 | to include it) | |
161 |
|
161 | |||
162 |
|
162 | |||
163 |
Step7 - Install |
|
163 | Step7 - Install Kallithea | |
164 | ------------------------- |
|
164 | ------------------------- | |
165 |
|
165 | |||
166 |
Finally, install |
|
166 | Finally, install Kallithea | |
167 |
|
167 | |||
168 | Close previously opened command prompt/s, and open a Visual Studio 2008 |
|
168 | Close previously opened command prompt/s, and open a Visual Studio 2008 | |
169 | Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open |
|
169 | Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open | |
@@ -186,31 +186,31 b' to::' | |||||
186 |
|
186 | |||
187 | In that CMD (loaded with VS2008 PATHs) type:: |
|
187 | In that CMD (loaded with VS2008 PATHs) type:: | |
188 |
|
188 | |||
189 |
cd C:\ |
|
189 | cd C:\Kallithea\Env\Scripts (or similar) | |
190 | activate |
|
190 | activate | |
191 |
|
191 | |||
192 |
The prompt will change into "(Env) C:\\ |
|
192 | The prompt will change into "(Env) C:\\Kallithea\\Env\\Scripts" or similar | |
193 | (depending of your folder structure). Then type:: |
|
193 | (depending of your folder structure). Then type:: | |
194 |
|
194 | |||
195 |
pip install |
|
195 | pip install kallithea | |
196 |
|
196 | |||
197 | (long step, please wait until fully complete) |
|
197 | (long step, please wait until fully complete) | |
198 |
|
198 | |||
199 | Some warnings will appear, don't worry as they are normal. |
|
199 | Some warnings will appear, don't worry as they are normal. | |
200 |
|
200 | |||
201 |
|
201 | |||
202 |
Step8 - Configuring |
|
202 | Step8 - Configuring Kallithea | |
203 | ----------------------------- |
|
203 | ----------------------------- | |
204 |
|
204 | |||
205 |
|
205 | |||
206 |
steps taken from http://packages.python.org/ |
|
206 | steps taken from http://packages.python.org/Kallithea/setup.html | |
207 |
|
207 | |||
208 | You have to use the same Visual Studio 2008 command prompt as Step7, so |
|
208 | You have to use the same Visual Studio 2008 command prompt as Step7, so | |
209 | if you closed it reopen it following the same commands (including the |
|
209 | if you closed it reopen it following the same commands (including the | |
210 | "activate" one). When ready, just type:: |
|
210 | "activate" one). When ready, just type:: | |
211 |
|
211 | |||
212 |
cd C:\ |
|
212 | cd C:\Kallithea\Bin | |
213 |
paster make-config |
|
213 | paster make-config Kallithea production.ini | |
214 |
|
214 | |||
215 | Then, you must edit production.ini to fit your needs (ip address, ip |
|
215 | Then, you must edit production.ini to fit your needs (ip address, ip | |
216 | port, mail settings, database, whatever). I recommend using NotePad++ |
|
216 | port, mail settings, database, whatever). I recommend using NotePad++ | |
@@ -224,11 +224,11 b' your edits (if any), in the previous Com' | |||||
224 | paster setup-db production.ini |
|
224 | paster setup-db production.ini | |
225 |
|
225 | |||
226 | (this time a NEW database will be installed, you must follow a different |
|
226 | (this time a NEW database will be installed, you must follow a different | |
227 |
step to later UPGRADE to a newer |
|
227 | step to later UPGRADE to a newer Kallithea version) | |
228 |
|
228 | |||
229 | The script will ask you for confirmation about creating a NEW database, |
|
229 | The script will ask you for confirmation about creating a NEW database, | |
230 | answer yes (y) |
|
230 | answer yes (y) | |
231 |
The script will ask you for repository path, answer C:\\ |
|
231 | The script will ask you for repository path, answer C:\\Kallithea\\Repos | |
232 | (or similar) |
|
232 | (or similar) | |
233 | The script will ask you for admin username and password, answer "admin" |
|
233 | The script will ask you for admin username and password, answer "admin" | |
234 | + "123456" (or whatever you want) |
|
234 | + "123456" (or whatever you want) | |
@@ -239,11 +239,11 b' If you make some mistake and the script ' | |||||
239 | it again. |
|
239 | it again. | |
240 |
|
240 | |||
241 |
|
241 | |||
242 |
Step9 - Running |
|
242 | Step9 - Running Kallithea | |
243 | ------------------------- |
|
243 | ------------------------- | |
244 |
|
244 | |||
245 |
|
245 | |||
246 |
In the previous command prompt, being in the C:\\ |
|
246 | In the previous command prompt, being in the C:\\Kallithea\\Bin folder, | |
247 | just type:: |
|
247 | just type:: | |
248 |
|
248 | |||
249 | paster serve production.ini |
|
249 | paster serve production.ini | |
@@ -261,7 +261,7 b' again. Don\'t forget the "http://" in Int' | |||||
261 | What this Guide does not cover: |
|
261 | What this Guide does not cover: | |
262 |
|
262 | |||
263 | - Installing Celery |
|
263 | - Installing Celery | |
264 |
- Running |
|
264 | - Running Kallithea as Windows Service. You can investigate here: | |
265 |
|
265 | |||
266 | - http://pypi.python.org/pypi/wsgisvc |
|
266 | - http://pypi.python.org/pypi/wsgisvc | |
267 | - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/ |
|
267 | - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/ | |
@@ -275,18 +275,18 b' What this Guide does not cover:' | |||||
275 | Upgrading |
|
275 | Upgrading | |
276 | ========= |
|
276 | ========= | |
277 |
|
277 | |||
278 |
Stop running |
|
278 | Stop running Kallithea | |
279 | Open a CommandPrompt like in Step7 (VS2008 path + activate) and type:: |
|
279 | Open a CommandPrompt like in Step7 (VS2008 path + activate) and type:: | |
280 |
|
280 | |||
281 |
easy_install -U |
|
281 | easy_install -U kallithea | |
282 |
cd \ |
|
282 | cd \Kallithea\Bin | |
283 |
|
283 | |||
284 | { backup your production.ini file now} :: |
|
284 | { backup your production.ini file now} :: | |
285 |
|
285 | |||
286 |
paster make-config |
|
286 | paster make-config Kallithea production.ini | |
287 |
|
287 | |||
288 | (check changes and update your production.ini accordingly) :: |
|
288 | (check changes and update your production.ini accordingly) :: | |
289 |
|
289 | |||
290 | paster upgrade-db production.ini (update database) |
|
290 | paster upgrade-db production.ini (update database) | |
291 |
|
291 | |||
292 |
Full steps in http://packages.python.org/ |
|
292 | Full steps in http://packages.python.org/Kallithea/upgrade.html |
@@ -88,9 +88,9 b' if "%1" == "qthelp" (' | |||||
88 | echo. |
|
88 | echo. | |
89 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ |
|
89 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ | |
90 | .qhcp project file in %BUILDDIR%/qthelp, like this: |
|
90 | .qhcp project file in %BUILDDIR%/qthelp, like this: | |
91 |
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\ |
|
91 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Kallithea.qhcp | |
92 | echo.To view the help file: |
|
92 | echo.To view the help file: | |
93 |
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\ |
|
93 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Kallithea.ghc | |
94 | goto end |
|
94 | goto end | |
95 | ) |
|
95 | ) | |
96 |
|
96 |
@@ -5,31 +5,31 b' Setup' | |||||
5 | ===== |
|
5 | ===== | |
6 |
|
6 | |||
7 |
|
7 | |||
8 |
Setting up |
|
8 | Setting up Kallithea | |
9 | -------------------- |
|
9 | -------------------- | |
10 |
|
10 | |||
11 |
First, you will need to create a |
|
11 | First, you will need to create a Kallithea configuration file. Run the | |
12 | following command to do this:: |
|
12 | following command to do this:: | |
13 |
|
13 | |||
14 |
paster make-config |
|
14 | paster make-config Kallithea production.ini | |
15 |
|
15 | |||
16 | - This will create the file `production.ini` in the current directory. This |
|
16 | - This will create the file `production.ini` in the current directory. This | |
17 |
configuration file contains the various settings for |
|
17 | configuration file contains the various settings for Kallithea, e.g proxy | |
18 | port, email settings, usage of static files, cache, celery settings and |
|
18 | port, email settings, usage of static files, cache, celery settings and | |
19 | logging. |
|
19 | logging. | |
20 |
|
20 | |||
21 |
|
21 | |||
22 |
Next, you need to create the databases used by |
|
22 | Next, you need to create the databases used by Kallithea. I recommend that you | |
23 | use postgresql or sqlite (default). If you choose a database other than the |
|
23 | use postgresql or sqlite (default). If you choose a database other than the | |
24 | default ensure you properly adjust the db url in your production.ini |
|
24 | default ensure you properly adjust the db url in your production.ini | |
25 |
configuration file to use this other database. |
|
25 | configuration file to use this other database. Kallithea currently supports | |
26 | postgresql, sqlite and mysql databases. Create the database by running |
|
26 | postgresql, sqlite and mysql databases. Create the database by running | |
27 | the following command:: |
|
27 | the following command:: | |
28 |
|
28 | |||
29 | paster setup-db production.ini |
|
29 | paster setup-db production.ini | |
30 |
|
30 | |||
31 | This will prompt you for a "root" path. This "root" path is the location where |
|
31 | This will prompt you for a "root" path. This "root" path is the location where | |
32 |
|
|
32 | Kallithea will store all of its repositories on the current machine. After | |
33 | entering this "root" path ``setup-db`` will also prompt you for a username |
|
33 | entering this "root" path ``setup-db`` will also prompt you for a username | |
34 | and password for the initial admin account which ``setup-db`` sets |
|
34 | and password for the initial admin account which ``setup-db`` sets | |
35 | up for you. |
|
35 | up for you. | |
@@ -42,19 +42,19 b' setup process can be fully automated, ex' | |||||
42 | - The ``setup-db`` command will create all of the needed tables and an |
|
42 | - The ``setup-db`` command will create all of the needed tables and an | |
43 | admin account. When choosing a root path you can either use a new empty |
|
43 | admin account. When choosing a root path you can either use a new empty | |
44 | location, or a location which already contains existing repositories. If you |
|
44 | location, or a location which already contains existing repositories. If you | |
45 |
choose a location which contains existing repositories |
|
45 | choose a location which contains existing repositories Kallithea will simply | |
46 | add all of the repositories at the chosen location to it's database. |
|
46 | add all of the repositories at the chosen location to it's database. | |
47 | (Note: make sure you specify the correct path to the root). |
|
47 | (Note: make sure you specify the correct path to the root). | |
48 | - Note: the given path for mercurial_ repositories **must** be write accessible |
|
48 | - Note: the given path for mercurial_ repositories **must** be write accessible | |
49 |
for the application. It's very important since the |
|
49 | for the application. It's very important since the Kallithea web interface | |
50 | will work without write access, but when trying to do a push it will |
|
50 | will work without write access, but when trying to do a push it will | |
51 | eventually fail with permission denied errors unless it has write access. |
|
51 | eventually fail with permission denied errors unless it has write access. | |
52 |
|
52 | |||
53 |
You are now ready to use |
|
53 | You are now ready to use Kallithea, to run it simply execute:: | |
54 |
|
54 | |||
55 | paster serve production.ini |
|
55 | paster serve production.ini | |
56 |
|
56 | |||
57 |
- This command runs the |
|
57 | - This command runs the Kallithea server. The web app should be available at the | |
58 | 127.0.0.1:5000. This ip and port is configurable via the production.ini |
|
58 | 127.0.0.1:5000. This ip and port is configurable via the production.ini | |
59 | file created in previous step |
|
59 | file created in previous step | |
60 | - Use the admin account you created above when running ``setup-db`` |
|
60 | - Use the admin account you created above when running ``setup-db`` | |
@@ -64,7 +64,7 b' You are now ready to use RhodeCode, to r' | |||||
64 | - In the admin panel you can toggle ldap, anonymous, permissions settings. As |
|
64 | - In the admin panel you can toggle ldap, anonymous, permissions settings. As | |
65 | well as edit more advanced options on users and repositories |
|
65 | well as edit more advanced options on users and repositories | |
66 |
|
66 | |||
67 |
Optionally users can create `rcextensions` package that extends |
|
67 | Optionally users can create `rcextensions` package that extends Kallithea | |
68 | functionality. To do this simply execute:: |
|
68 | functionality. To do this simply execute:: | |
69 |
|
69 | |||
70 | paster make-rcext production.ini |
|
70 | paster make-rcext production.ini | |
@@ -77,36 +77,36 b' Please see the `__init__.py` file inside' | |||||
77 | for more details. |
|
77 | for more details. | |
78 |
|
78 | |||
79 |
|
79 | |||
80 |
Using |
|
80 | Using Kallithea with SSH | |
81 | ------------------------ |
|
81 | ------------------------ | |
82 |
|
82 | |||
83 |
|
|
83 | Kallithea currently only hosts repositories using http and https. (The addition | |
84 | of ssh hosting is a planned future feature.) However you can easily use ssh in |
|
84 | of ssh hosting is a planned future feature.) However you can easily use ssh in | |
85 |
parallel with |
|
85 | parallel with Kallithea. (Repository access via ssh is a standard "out of | |
86 | the box" feature of mercurial_ and you can use this to access any of the |
|
86 | the box" feature of mercurial_ and you can use this to access any of the | |
87 |
repositories that |
|
87 | repositories that Kallithea is hosting. See PublishingRepositories_) | |
88 |
|
88 | |||
89 |
|
|
89 | Kallithea repository structures are kept in directories with the same name | |
90 | as the project. When using repository groups, each group is a subdirectory. |
|
90 | as the project. When using repository groups, each group is a subdirectory. | |
91 | This allows you to easily use ssh for accessing repositories. |
|
91 | This allows you to easily use ssh for accessing repositories. | |
92 |
|
92 | |||
93 | In order to use ssh you need to make sure that your web-server and the users |
|
93 | In order to use ssh you need to make sure that your web-server and the users | |
94 | login accounts have the correct permissions set on the appropriate directories. |
|
94 | login accounts have the correct permissions set on the appropriate directories. | |
95 | (Note that these permissions are independent of any permissions you have set up |
|
95 | (Note that these permissions are independent of any permissions you have set up | |
96 |
using the |
|
96 | using the Kallithea web interface.) | |
97 |
|
97 | |||
98 |
If your main directory (the same as set in |
|
98 | If your main directory (the same as set in Kallithea settings) is for example | |
99 |
set to **/home/hg** and the repository you are using is named ` |
|
99 | set to **/home/hg** and the repository you are using is named `kallithea`, then | |
100 | to clone via ssh you should run:: |
|
100 | to clone via ssh you should run:: | |
101 |
|
101 | |||
102 |
hg clone ssh://user@server.com/home/hg/ |
|
102 | hg clone ssh://user@server.com/home/hg/kallithea | |
103 |
|
103 | |||
104 | Using other external tools such as mercurial-server_ or using ssh key based |
|
104 | Using other external tools such as mercurial-server_ or using ssh key based | |
105 | authentication is fully supported. |
|
105 | authentication is fully supported. | |
106 |
|
106 | |||
107 | Note: In an advanced setup, in order for your ssh access to use the same |
|
107 | Note: In an advanced setup, in order for your ssh access to use the same | |
108 |
permissions as set up via the |
|
108 | permissions as set up via the Kallithea web interface, you can create an | |
109 |
authentication hook to connect to the |
|
109 | authentication hook to connect to the Kallithea db and runs check functions for | |
110 | permissions against that. |
|
110 | permissions against that. | |
111 |
|
111 | |||
112 | Setting up Whoosh full text search |
|
112 | Setting up Whoosh full text search | |
@@ -116,7 +116,7 b' Starting from version 1.1 the whoosh ind' | |||||
116 | command ``make-index``. To use ``make-index`` you must specify the configuration |
|
116 | command ``make-index``. To use ``make-index`` you must specify the configuration | |
117 | file that stores the location of the index. You may specify the location of the |
|
117 | file that stores the location of the index. You may specify the location of the | |
118 | repositories (`--repo-location`). If not specified, this value is retrieved |
|
118 | repositories (`--repo-location`). If not specified, this value is retrieved | |
119 |
from the |
|
119 | from the Kallithea database. This was required prior to 1.2. Starting from | |
120 | version 1.2 it is also possible to specify a comma separated list of |
|
120 | version 1.2 it is also possible to specify a comma separated list of | |
121 | repositories (`--index-only`) to build index only on chooses repositories |
|
121 | repositories (`--index-only`) to build index only on chooses repositories | |
122 | skipping any other found in repos location |
|
122 | skipping any other found in repos location | |
@@ -135,14 +135,14 b' For a full index rebuild use::' | |||||
135 |
|
135 | |||
136 | building index just for chosen repositories is possible with such command:: |
|
136 | building index just for chosen repositories is possible with such command:: | |
137 |
|
137 | |||
138 |
paster make-index production.ini --index-only=vcs, |
|
138 | paster make-index production.ini --index-only=vcs,kallithea | |
139 |
|
139 | |||
140 |
|
140 | |||
141 | In order to do periodical index builds and keep your index always up to date. |
|
141 | In order to do periodical index builds and keep your index always up to date. | |
142 | It's recommended to do a crontab entry for incremental indexing. |
|
142 | It's recommended to do a crontab entry for incremental indexing. | |
143 | An example entry might look like this:: |
|
143 | An example entry might look like this:: | |
144 |
|
144 | |||
145 |
/path/to/python/bin/paster make-index /path/to/ |
|
145 | /path/to/python/bin/paster make-index /path/to/kallithea/production.ini | |
146 |
|
146 | |||
147 | When using incremental mode (the default) whoosh will check the last |
|
147 | When using incremental mode (the default) whoosh will check the last | |
148 | modification date of each file and add it to be reindexed if a newer file is |
|
148 | modification date of each file and add it to be reindexed if a newer file is | |
@@ -156,7 +156,7 b' or in the admin panel you can check `bui' | |||||
156 | Setting up LDAP support |
|
156 | Setting up LDAP support | |
157 | ----------------------- |
|
157 | ----------------------- | |
158 |
|
158 | |||
159 |
|
|
159 | Kallithea starting from version 1.1 supports ldap authentication. In order | |
160 | to use LDAP, you have to install the python-ldap_ package. This package is |
|
160 | to use LDAP, you have to install the python-ldap_ package. This package is | |
161 | available via pypi, so you can install it by running |
|
161 | available via pypi, so you can install it by running | |
162 |
|
162 | |||
@@ -314,7 +314,7 b' LDAP Search Scope : required' | |||||
314 |
|
314 | |||
315 | Login Attribute : required |
|
315 | Login Attribute : required | |
316 | The LDAP record attribute that will be matched as the USERNAME or |
|
316 | The LDAP record attribute that will be matched as the USERNAME or | |
317 |
ACCOUNT used to connect to |
|
317 | ACCOUNT used to connect to Kallithea. This will be added to `LDAP | |
318 | Filter`_ for locating the User object. If `LDAP Filter`_ is specified as |
|
318 | Filter`_ for locating the User object. If `LDAP Filter`_ is specified as | |
319 | "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has |
|
319 | "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has | |
320 | connected as "jsmith" then the `LDAP Filter`_ will be augmented as below |
|
320 | connected as "jsmith" then the `LDAP Filter`_ will be augmented as below | |
@@ -338,19 +338,19 b' Email Attribute : required' | |||||
338 | The LDAP record attribute which represents the user's email address. |
|
338 | The LDAP record attribute which represents the user's email address. | |
339 |
|
339 | |||
340 | If all data are entered correctly, and python-ldap_ is properly installed |
|
340 | If all data are entered correctly, and python-ldap_ is properly installed | |
341 |
users should be granted access to |
|
341 | users should be granted access to Kallithea with ldap accounts. At this | |
342 |
time user information is copied from LDAP into the |
|
342 | time user information is copied from LDAP into the Kallithea user database. | |
343 | This means that updates of an LDAP user object may not be reflected as a |
|
343 | This means that updates of an LDAP user object may not be reflected as a | |
344 |
user update in |
|
344 | user update in Kallithea. | |
345 |
|
345 | |||
346 | If You have problems with LDAP access and believe You entered correct |
|
346 | If You have problems with LDAP access and believe You entered correct | |
347 |
information check out the |
|
347 | information check out the Kallithea logs, any error messages sent from LDAP | |
348 | will be saved there. |
|
348 | will be saved there. | |
349 |
|
349 | |||
350 | Active Directory |
|
350 | Active Directory | |
351 | '''''''''''''''' |
|
351 | '''''''''''''''' | |
352 |
|
352 | |||
353 |
|
|
353 | Kallithea can use Microsoft Active Directory for user authentication. This | |
354 | is done through an LDAP or LDAPS connection to Active Directory. The |
|
354 | is done through an LDAP or LDAPS connection to Active Directory. The | |
355 | following LDAP configuration settings are typical for using Active |
|
355 | following LDAP configuration settings are typical for using Active | |
356 | Directory :: |
|
356 | Directory :: | |
@@ -368,32 +368,32 b' appropriately configured.' | |||||
368 | Authentication by container or reverse-proxy |
|
368 | Authentication by container or reverse-proxy | |
369 | -------------------------------------------- |
|
369 | -------------------------------------------- | |
370 |
|
370 | |||
371 |
Starting with version 1.3, |
|
371 | Starting with version 1.3, Kallithea supports delegating the authentication | |
372 | of users to its WSGI container, or to a reverse-proxy server through which all |
|
372 | of users to its WSGI container, or to a reverse-proxy server through which all | |
373 | clients access the application. |
|
373 | clients access the application. | |
374 |
|
374 | |||
375 |
When these authentication methods are enabled in |
|
375 | When these authentication methods are enabled in Kallithea, it uses the | |
376 | username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't |
|
376 | username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't | |
377 | perform the authentication itself. The authorization, however, is still done by |
|
377 | perform the authentication itself. The authorization, however, is still done by | |
378 |
|
|
378 | Kallithea according to its settings. | |
379 |
|
379 | |||
380 | When a user logs in for the first time using these authentication methods, |
|
380 | When a user logs in for the first time using these authentication methods, | |
381 |
a matching user account is created in |
|
381 | a matching user account is created in Kallithea with default permissions. An | |
382 |
administrator can then modify it using |
|
382 | administrator can then modify it using Kallithea's admin interface. | |
383 | It's also possible for an administrator to create accounts and configure their |
|
383 | It's also possible for an administrator to create accounts and configure their | |
384 | permissions before the user logs in for the first time. |
|
384 | permissions before the user logs in for the first time. | |
385 |
|
385 | |||
386 | Container-based authentication |
|
386 | Container-based authentication | |
387 | '''''''''''''''''''''''''''''' |
|
387 | '''''''''''''''''''''''''''''' | |
388 |
|
388 | |||
389 |
In a container-based authentication setup, |
|
389 | In a container-based authentication setup, Kallithea reads the user name from | |
390 | the ``REMOTE_USER`` server variable provided by the WSGI container. |
|
390 | the ``REMOTE_USER`` server variable provided by the WSGI container. | |
391 |
|
391 | |||
392 | After setting up your container (see `Apache's WSGI config`_), you'd need |
|
392 | After setting up your container (see `Apache's WSGI config`_), you'd need | |
393 | to configure it to require authentication on the location configured for |
|
393 | to configure it to require authentication on the location configured for | |
394 | RhodeCode. |
|
394 | Kallithea. | |
395 |
|
395 | |||
396 |
In order for |
|
396 | In order for Kallithea to start using the provided username, you should set the | |
397 | following in the [app:main] section of your .ini file:: |
|
397 | following in the [app:main] section of your .ini file:: | |
398 |
|
398 | |||
399 | container_auth_enabled = true |
|
399 | container_auth_enabled = true | |
@@ -402,7 +402,7 b' following in the [app:main] section of y' | |||||
402 | Proxy pass-through authentication |
|
402 | Proxy pass-through authentication | |
403 | ''''''''''''''''''''''''''''''''' |
|
403 | ''''''''''''''''''''''''''''''''' | |
404 |
|
404 | |||
405 |
In a proxy pass-through authentication setup, |
|
405 | In a proxy pass-through authentication setup, Kallithea reads the user name | |
406 | from the ``X-Forwarded-User`` request header, which should be configured to be |
|
406 | from the ``X-Forwarded-User`` request header, which should be configured to be | |
407 | sent by the reverse-proxy server. |
|
407 | sent by the reverse-proxy server. | |
408 |
|
408 | |||
@@ -420,8 +420,8 b' reverse-proxy setup with basic auth::' | |||||
420 | SetEnvIf X-Url-Scheme https HTTPS=1 |
|
420 | SetEnvIf X-Url-Scheme https HTTPS=1 | |
421 |
|
421 | |||
422 | AuthType Basic |
|
422 | AuthType Basic | |
423 |
AuthName " |
|
423 | AuthName "Kallithea authentication" | |
424 |
AuthUserFile /home/web/ |
|
424 | AuthUserFile /home/web/kallithea/.htpasswd | |
425 | require valid-user |
|
425 | require valid-user | |
426 |
|
426 | |||
427 | RequestHeader unset X-Forwarded-User |
|
427 | RequestHeader unset X-Forwarded-User | |
@@ -432,7 +432,7 b' reverse-proxy setup with basic auth::' | |||||
432 | RequestHeader set X-Forwarded-User %{RU}e |
|
432 | RequestHeader set X-Forwarded-User %{RU}e | |
433 | </Location> |
|
433 | </Location> | |
434 |
|
434 | |||
435 |
In order for |
|
435 | In order for Kallithea to start using the forwarded username, you should set | |
436 | the following in the [app:main] section of your .ini file:: |
|
436 | the following in the [app:main] section of your .ini file:: | |
437 |
|
437 | |||
438 | proxypass_auth_enabled = true |
|
438 | proxypass_auth_enabled = true | |
@@ -446,7 +446,7 b' the following in the [app:main] section ' | |||||
446 | Integration with Issue trackers |
|
446 | Integration with Issue trackers | |
447 | ------------------------------- |
|
447 | ------------------------------- | |
448 |
|
448 | |||
449 |
|
|
449 | Kallithea provides a simple integration with issue trackers. It's possible | |
450 | to define a regular expression that will fetch issue id stored in commit |
|
450 | to define a regular expression that will fetch issue id stored in commit | |
451 | messages and replace that with an url to this issue. To enable this simply |
|
451 | messages and replace that with an url to this issue. To enable this simply | |
452 | uncomment following variables in the ini file:: |
|
452 | uncomment following variables in the ini file:: | |
@@ -483,18 +483,18 b' can be found at *kallithea.lib.hooks*.' | |||||
483 | Changing default encoding |
|
483 | Changing default encoding | |
484 | ------------------------- |
|
484 | ------------------------- | |
485 |
|
485 | |||
486 |
By default |
|
486 | By default Kallithea uses utf8 encoding, starting from 1.3 series this | |
487 | can be changed, simply edit default_encoding in .ini file to desired one. |
|
487 | can be changed, simply edit default_encoding in .ini file to desired one. | |
488 |
This affects many parts in |
|
488 | This affects many parts in Kallithea including committers names, filenames, | |
489 |
encoding of commit messages. In addition |
|
489 | encoding of commit messages. In addition Kallithea can detect if `chardet` | |
490 |
library is installed. If `chardet` is detected |
|
490 | library is installed. If `chardet` is detected Kallithea will fallback to it | |
491 | when there are encode/decode errors. |
|
491 | when there are encode/decode errors. | |
492 |
|
492 | |||
493 |
|
493 | |||
494 | Setting Up Celery |
|
494 | Setting Up Celery | |
495 | ----------------- |
|
495 | ----------------- | |
496 |
|
496 | |||
497 |
Since version 1.1 celery is configured by the |
|
497 | Since version 1.1 celery is configured by the Kallithea ini configuration files. | |
498 | Simply set use_celery=true in the ini file then add / change the configuration |
|
498 | Simply set use_celery=true in the ini file then add / change the configuration | |
499 | variables inside the ini file. |
|
499 | variables inside the ini file. | |
500 |
|
500 | |||
@@ -509,14 +509,14 b' In order to start using celery run::' | |||||
509 |
|
509 | |||
510 | .. note:: |
|
510 | .. note:: | |
511 | Make sure you run this command from the same virtualenv, and with the same |
|
511 | Make sure you run this command from the same virtualenv, and with the same | |
512 |
user that |
|
512 | user that Kallithea runs. | |
513 |
|
513 | |||
514 | HTTPS support |
|
514 | HTTPS support | |
515 | ------------- |
|
515 | ------------- | |
516 |
|
516 | |||
517 | There are two ways to enable https: |
|
517 | There are two ways to enable https: | |
518 |
|
518 | |||
519 |
- Set HTTP_X_URL_SCHEME in your http server headers, than |
|
519 | - Set HTTP_X_URL_SCHEME in your http server headers, than Kallithea will | |
520 | recognize this headers and make proper https redirections |
|
520 | recognize this headers and make proper https redirections | |
521 | - Alternatively, change the `force_https = true` flag in the ini configuration |
|
521 | - Alternatively, change the `force_https = true` flag in the ini configuration | |
522 | to force using https, no headers are needed than to enable https |
|
522 | to force using https, no headers are needed than to enable https | |
@@ -558,8 +558,8 b' Sample config for nginx using proxy::' | |||||
558 | server { |
|
558 | server { | |
559 | listen 443; |
|
559 | listen 443; | |
560 | server_name your.kallithea.server; |
|
560 | server_name your.kallithea.server; | |
561 |
access_log /var/log/nginx/ |
|
561 | access_log /var/log/nginx/kallithea.access.log; | |
562 |
error_log /var/log/nginx/ |
|
562 | error_log /var/log/nginx/kallithea.error.log; | |
563 |
|
563 | |||
564 | ssl on; |
|
564 | ssl on; | |
565 | ssl_certificate your.kallithea.server.crt; |
|
565 | ssl_certificate your.kallithea.server.crt; | |
@@ -626,7 +626,7 b' Here is a sample configuration file for ' | |||||
626 | #Directive to properly generate url (clone url) for pylons |
|
626 | #Directive to properly generate url (clone url) for pylons | |
627 | ProxyPreserveHost On |
|
627 | ProxyPreserveHost On | |
628 |
|
628 | |||
629 |
# |
|
629 | #kallithea instance | |
630 | ProxyPass / http://127.0.0.1:5000/ |
|
630 | ProxyPass / http://127.0.0.1:5000/ | |
631 | ProxyPassReverse / http://127.0.0.1:5000/ |
|
631 | ProxyPassReverse / http://127.0.0.1:5000/ | |
632 |
|
632 | |||
@@ -668,7 +668,7 b' then change <someprefix> into your chose' | |||||
668 | Apache's WSGI config |
|
668 | Apache's WSGI config | |
669 | -------------------- |
|
669 | -------------------- | |
670 |
|
670 | |||
671 |
Alternatively, |
|
671 | Alternatively, Kallithea can be set up with Apache under mod_wsgi. For | |
672 | that, you'll need to: |
|
672 | that, you'll need to: | |
673 |
|
673 | |||
674 | - Install mod_wsgi. If using a Debian-based distro, you can install |
|
674 | - Install mod_wsgi. If using a Debian-based distro, you can install | |
@@ -681,7 +681,7 b" that, you'll need to:" | |||||
681 | a2enmod wsgi |
|
681 | a2enmod wsgi | |
682 |
|
682 | |||
683 | - Create a wsgi dispatch script, like the one below. Make sure you |
|
683 | - Create a wsgi dispatch script, like the one below. Make sure you | |
684 |
check the paths correctly point to where you installed |
|
684 | check the paths correctly point to where you installed Kallithea | |
685 | and its Python Virtual Environment. |
|
685 | and its Python Virtual Environment. | |
686 | - Enable the WSGIScriptAlias directive for the wsgi dispatch script, |
|
686 | - Enable the WSGIScriptAlias directive for the wsgi dispatch script, | |
687 | as in the following example. Once again, check the paths are |
|
687 | as in the following example. Once again, check the paths are | |
@@ -691,8 +691,8 b' Here is a sample excerpt from an Apache ' | |||||
691 |
|
691 | |||
692 | WSGIDaemonProcess pylons \ |
|
692 | WSGIDaemonProcess pylons \ | |
693 | threads=4 \ |
|
693 | threads=4 \ | |
694 |
python-path=/home/web/ |
|
694 | python-path=/home/web/kallithea/pyenv/lib/python2.6/site-packages | |
695 |
WSGIScriptAlias / /home/web/ |
|
695 | WSGIScriptAlias / /home/web/kallithea/dispatch.wsgi | |
696 | WSGIPassAuthorization On |
|
696 | WSGIPassAuthorization On | |
697 |
|
697 | |||
698 | .. note:: |
|
698 | .. note:: | |
@@ -700,7 +700,7 b' Here is a sample excerpt from an Apache ' | |||||
700 | into above configuration |
|
700 | into above configuration | |
701 |
|
701 | |||
702 | .. note:: |
|
702 | .. note:: | |
703 |
Running |
|
703 | Running Kallithea in multiprocess mode in apache is not supported, | |
704 | make sure you don't specify `processes=num` directive in the config |
|
704 | make sure you don't specify `processes=num` directive in the config | |
705 |
|
705 | |||
706 |
|
706 | |||
@@ -708,22 +708,22 b' Example wsgi dispatch script::' | |||||
708 |
|
708 | |||
709 | import os |
|
709 | import os | |
710 | os.environ["HGENCODING"] = "UTF-8" |
|
710 | os.environ["HGENCODING"] = "UTF-8" | |
711 |
os.environ['PYTHON_EGG_CACHE'] = '/home/web/ |
|
711 | os.environ['PYTHON_EGG_CACHE'] = '/home/web/kallithea/.egg-cache' | |
712 |
|
712 | |||
713 | # sometimes it's needed to set the curent dir |
|
713 | # sometimes it's needed to set the curent dir | |
714 |
os.chdir('/home/web/ |
|
714 | os.chdir('/home/web/kallithea/') | |
715 |
|
715 | |||
716 | import site |
|
716 | import site | |
717 |
site.addsitedir("/home/web/ |
|
717 | site.addsitedir("/home/web/kallithea/pyenv/lib/python2.6/site-packages") | |
718 |
|
718 | |||
719 | from paste.deploy import loadapp |
|
719 | from paste.deploy import loadapp | |
720 | from paste.script.util.logging_config import fileConfig |
|
720 | from paste.script.util.logging_config import fileConfig | |
721 |
|
721 | |||
722 |
fileConfig('/home/web/ |
|
722 | fileConfig('/home/web/kallithea/production.ini') | |
723 |
application = loadapp('config:/home/web/ |
|
723 | application = loadapp('config:/home/web/kallithea/production.ini') | |
724 |
|
724 | |||
725 | Note: when using mod_wsgi you'll need to install the same version of |
|
725 | Note: when using mod_wsgi you'll need to install the same version of | |
726 |
Mercurial that's inside |
|
726 | Mercurial that's inside Kallithea's virtualenv also on the system's Python | |
727 | environment. |
|
727 | environment. | |
728 |
|
728 | |||
729 |
|
729 |
@@ -12,16 +12,16 b' Upgrading from PyPI (aka "Cheeseshop")' | |||||
12 | configuration backup before doing an upgrade. |
|
12 | configuration backup before doing an upgrade. | |
13 |
|
13 | |||
14 | (These directions will use '{version}' to note that this is the version of |
|
14 | (These directions will use '{version}' to note that this is the version of | |
15 |
|
|
15 | Kallithea that these files were used with. If backing up your Kallithea | |
16 | instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be |
|
16 | instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be | |
17 | backed up to ``production.ini.1-3-6``.) |
|
17 | backed up to ``production.ini.1-3-6``.) | |
18 |
|
18 | |||
19 |
|
19 | |||
20 |
If using a sqlite database, stop the |
|
20 | If using a sqlite database, stop the Kallithea process/daemon/service, and | |
21 | then make a copy of the database file:: |
|
21 | then make a copy of the database file:: | |
22 |
|
22 | |||
23 | service kallithea stop |
|
23 | service kallithea stop | |
24 |
cp |
|
24 | cp kallithea.db kallithea.db.{version} | |
25 |
|
25 | |||
26 |
|
26 | |||
27 | Back up your configuration file:: |
|
27 | Back up your configuration file:: | |
@@ -30,30 +30,30 b' Back up your configuration file::' | |||||
30 |
|
30 | |||
31 |
|
31 | |||
32 | Ensure that you are using the Python Virtual Environment that you'd originally |
|
32 | Ensure that you are using the Python Virtual Environment that you'd originally | |
33 |
installed |
|
33 | installed Kallithea in:: | |
34 |
|
34 | |||
35 | pip freeze |
|
35 | pip freeze | |
36 |
|
36 | |||
37 |
will list all packages installed in the current environment. If |
|
37 | will list all packages installed in the current environment. If Kallithea | |
38 | isn't listed, change virtual environments to your venv location:: |
|
38 | isn't listed, change virtual environments to your venv location:: | |
39 |
|
39 | |||
40 |
source /opt/ |
|
40 | source /opt/kallithea-venv/bin/activate | |
41 |
|
41 | |||
42 |
|
42 | |||
43 |
Once you have verified the environment you can upgrade `` |
|
43 | Once you have verified the environment you can upgrade ``Kallithea`` with:: | |
44 |
|
44 | |||
45 |
easy_install -U |
|
45 | easy_install -U kallithea | |
46 |
|
46 | |||
47 | Or:: |
|
47 | Or:: | |
48 |
|
48 | |||
49 |
pip install --upgrade |
|
49 | pip install --upgrade kallithea | |
50 |
|
50 | |||
51 |
|
51 | |||
52 | Then run the following command from the installation directory:: |
|
52 | Then run the following command from the installation directory:: | |
53 |
|
53 | |||
54 |
paster make-config |
|
54 | paster make-config Kallithea production.ini | |
55 |
|
55 | |||
56 |
This will display any changes made by the new version of |
|
56 | This will display any changes made by the new version of Kallithea to your | |
57 | current configuration. It will try to perform an automerge. It's recommended |
|
57 | current configuration. It will try to perform an automerge. It's recommended | |
58 | that you re-check the content after the automerge. |
|
58 | that you re-check the content after the automerge. | |
59 |
|
59 | |||
@@ -80,21 +80,21 b' options that need to be set.' | |||||
80 | DB schema upgrade library has some limitations and can sometimes fail if you try to |
|
80 | DB schema upgrade library has some limitations and can sometimes fail if you try to | |
81 | upgrade from older major releases. In such case simply run upgrades sequentially, eg. |
|
81 | upgrade from older major releases. In such case simply run upgrades sequentially, eg. | |
82 | upgrading from 1.2.X to 1.5.X should be done like that: 1.2.X. > 1.3.X > 1.4.X > 1.5.X |
|
82 | upgrading from 1.2.X to 1.5.X should be done like that: 1.2.X. > 1.3.X > 1.4.X > 1.5.X | |
83 |
You can always specify what version of |
|
83 | You can always specify what version of Kallithea you want to install for example in pip | |
84 |
`pip install |
|
84 | `pip install Kallithea==1.3.6` | |
85 |
|
85 | |||
86 | You may find it helpful to clear out your log file so that new errors are |
|
86 | You may find it helpful to clear out your log file so that new errors are | |
87 | readily apparent:: |
|
87 | readily apparent:: | |
88 |
|
88 | |||
89 |
echo > |
|
89 | echo > kallithea.log | |
90 |
|
90 | |||
91 |
Once that is complete, you may now start your upgraded |
|
91 | Once that is complete, you may now start your upgraded Kallithea Instance:: | |
92 |
|
92 | |||
93 | service kallithea start |
|
93 | service kallithea start | |
94 |
|
94 | |||
95 | Or:: |
|
95 | Or:: | |
96 |
|
96 | |||
97 |
paster serve /var/www/ |
|
97 | paster serve /var/www/kallithea/production.ini | |
98 |
|
98 | |||
99 | .. note:: |
|
99 | .. note:: | |
100 | If you're using Celery, make sure you restart all instances of it after |
|
100 | If you're using Celery, make sure you restart all instances of it after |
@@ -1,26 +1,26 b'' | |||||
1 | .. _backup: |
|
1 | .. _backup: | |
2 |
|
2 | |||
3 | ==================== |
|
3 | ==================== | |
4 |
Backing up |
|
4 | Backing up Kallithea | |
5 | ==================== |
|
5 | ==================== | |
6 |
|
6 | |||
7 |
|
7 | |||
8 | Settings |
|
8 | Settings | |
9 | -------- |
|
9 | -------- | |
10 |
|
10 | |||
11 |
Just copy your .ini file, it contains all |
|
11 | Just copy your .ini file, it contains all Kallithea settings. | |
12 |
|
12 | |||
13 | Whoosh index |
|
13 | Whoosh index | |
14 | ------------ |
|
14 | ------------ | |
15 |
|
15 | |||
16 | Whoosh index is located in **/data/index** directory where you installed |
|
16 | Whoosh index is located in **/data/index** directory where you installed | |
17 |
|
|
17 | Kallithea ie. the same place where the ini file is located | |
18 |
|
18 | |||
19 |
|
19 | |||
20 | Database |
|
20 | Database | |
21 | -------- |
|
21 | -------- | |
22 |
|
22 | |||
23 |
When using sqlite just copy |
|
23 | When using sqlite just copy kallithea.db. | |
24 | Any other database engine requires a manual backup operation. |
|
24 | Any other database engine requires a manual backup operation. | |
25 |
|
25 | |||
26 | Database backup will contain all gathered statistics |
|
26 | Database backup will contain all gathered statistics |
@@ -1,10 +1,10 b'' | |||||
1 | .. _debugging: |
|
1 | .. _debugging: | |
2 |
|
2 | |||
3 | =================== |
|
3 | =================== | |
4 |
Debugging |
|
4 | Debugging Kallithea | |
5 | =================== |
|
5 | =================== | |
6 |
|
6 | |||
7 |
If you encountered problems with |
|
7 | If you encountered problems with Kallithea here are some instructions how to | |
8 | possibly debug them. |
|
8 | possibly debug them. | |
9 |
|
9 | |||
10 | ** First make sure you're using the latest version available.** |
|
10 | ** First make sure you're using the latest version available.** | |
@@ -12,7 +12,7 b' possibly debug them.' | |||||
12 | enable detailed debug |
|
12 | enable detailed debug | |
13 | --------------------- |
|
13 | --------------------- | |
14 |
|
14 | |||
15 |
|
|
15 | Kallithea uses standard python logging modules to log it's output. | |
16 | By default only loggers with INFO level are displayed. To enable full output |
|
16 | By default only loggers with INFO level are displayed. To enable full output | |
17 | change `level = DEBUG` for all logging handlers in currently used .ini file. |
|
17 | change `level = DEBUG` for all logging handlers in currently used .ini file. | |
18 | This change will allow to see much more detailed output in the logfile or |
|
18 | This change will allow to see much more detailed output in the logfile or |
@@ -1,17 +1,17 b'' | |||||
1 | .. _general: |
|
1 | .. _general: | |
2 |
|
2 | |||
3 | ======================= |
|
3 | ======================= | |
4 |
General |
|
4 | General Kallithea usage | |
5 | ======================= |
|
5 | ======================= | |
6 |
|
6 | |||
7 |
|
7 | |||
8 | Repository deleting |
|
8 | Repository deleting | |
9 | ------------------- |
|
9 | ------------------- | |
10 |
|
10 | |||
11 |
Currently when admin/owner deletes a repository, |
|
11 | Currently when admin/owner deletes a repository, Kallithea does not physically | |
12 | delete a repository from filesystem, it renames it in a special way so it's |
|
12 | delete a repository from filesystem, it renames it in a special way so it's | |
13 | not possible to push,clone or access repository. It's worth a notice that, |
|
13 | not possible to push,clone or access repository. It's worth a notice that, | |
14 |
even if someone will be given administrative access to |
|
14 | even if someone will be given administrative access to Kallithea and will | |
15 | delete a repository You can easy restore such action by restoring `rm__<date>` |
|
15 | delete a repository You can easy restore such action by restoring `rm__<date>` | |
16 | from the repository name, and internal repository storage (.hg/.git). There |
|
16 | from the repository name, and internal repository storage (.hg/.git). There | |
17 | is also a special command for cleaning such archived repos:: |
|
17 | is also a special command for cleaning such archived repos:: | |
@@ -60,7 +60,7 b' example::' | |||||
60 |
|
60 | |||
61 | This can be an issue for build systems and any other hardcoded scripts, moving |
|
61 | This can be an issue for build systems and any other hardcoded scripts, moving | |
62 | repository to a group leads to a need for changing external systems. To |
|
62 | repository to a group leads to a need for changing external systems. To | |
63 |
overcome this |
|
63 | overcome this Kallithea introduces a non changable replacement url. It's | |
64 | simply an repository ID prefixed with `_` above urls are also accessible as:: |
|
64 | simply an repository ID prefixed with `_` above urls are also accessible as:: | |
65 |
|
65 | |||
66 | http://server.com/_<ID> |
|
66 | http://server.com/_<ID> | |
@@ -74,13 +74,13 b' Mailing' | |||||
74 | ------- |
|
74 | ------- | |
75 |
|
75 | |||
76 | When administrator will fill up the mailing settings in .ini files |
|
76 | When administrator will fill up the mailing settings in .ini files | |
77 |
|
|
77 | Kallithea will send mails on user registration, or when Kallithea errors occur | |
78 | on errors the mails will have a detailed traceback of error. |
|
78 | on errors the mails will have a detailed traceback of error. | |
79 |
|
79 | |||
80 |
|
80 | |||
81 | Mails are also sent for code comments. If someone comments on a changeset |
|
81 | Mails are also sent for code comments. If someone comments on a changeset | |
82 | mail is sent to all participants, the person who commited the changeset |
|
82 | mail is sent to all participants, the person who commited the changeset | |
83 |
(if present in |
|
83 | (if present in Kallithea), and to all people mentioned with @mention system. | |
84 |
|
84 | |||
85 |
|
85 | |||
86 | Trending source files |
|
86 | Trending source files | |
@@ -95,7 +95,7 b' located in `/kallithea/lib/celerylib/tas' | |||||
95 | Cloning remote repositories |
|
95 | Cloning remote repositories | |
96 | --------------------------- |
|
96 | --------------------------- | |
97 |
|
97 | |||
98 |
|
|
98 | Kallithea has an ability to clone remote repos from given remote locations. | |
99 | Currently it support following options: |
|
99 | Currently it support following options: | |
100 |
|
100 | |||
101 | - hg -> hg clone |
|
101 | - hg -> hg clone | |
@@ -109,9 +109,9 b' Currently it support following options:' | |||||
109 |
|
109 | |||
110 | If you need to clone repositories that are protected via basic auth, you |
|
110 | If you need to clone repositories that are protected via basic auth, you | |
111 | might pass the url with stored credentials inside eg. |
|
111 | might pass the url with stored credentials inside eg. | |
112 |
`http://user:passw@remote.server/repo`, |
|
112 | `http://user:passw@remote.server/repo`, Kallithea will try to login and clone | |
113 | using given credentials. Please take a note that they will be stored as |
|
113 | using given credentials. Please take a note that they will be stored as | |
114 |
plaintext inside the database. |
|
114 | plaintext inside the database. Kallithea will remove auth info when showing the | |
115 | clone url in summary page. |
|
115 | clone url in summary page. | |
116 |
|
116 | |||
117 |
|
117 | |||
@@ -120,7 +120,7 b' Visual settings in admin pannel' | |||||
120 | ------------------------------- |
|
120 | ------------------------------- | |
121 |
|
121 | |||
122 |
|
122 | |||
123 |
Visualisation settings in |
|
123 | Visualisation settings in Kallithea settings view are extra customizations | |
124 | of server behavior. There are 3 main section in the settings. |
|
124 | of server behavior. There are 3 main section in the settings. | |
125 |
|
125 | |||
126 | General |
|
126 | General | |
@@ -133,7 +133,7 b' define company specific information into' | |||||
133 | key that would add give info about a manager of each repository. There's no |
|
133 | key that would add give info about a manager of each repository. There's no | |
134 | limit for adding custom fields. Newly created fields are accessible via API. |
|
134 | limit for adding custom fields. Newly created fields are accessible via API. | |
135 |
|
135 | |||
136 |
`Show |
|
136 | `Show Kallithea version` option toggles displaying exact Kallithea version in | |
137 | the footer |
|
137 | the footer | |
138 |
|
138 | |||
139 |
|
139 | |||
@@ -153,7 +153,7 b' public/private icons should be shown in ' | |||||
153 | Meta-Tagging |
|
153 | Meta-Tagging | |
154 | ~~~~~~~~~~~~ |
|
154 | ~~~~~~~~~~~~ | |
155 |
|
155 | |||
156 |
With this option enabled, special metatags that are recognisible by |
|
156 | With this option enabled, special metatags that are recognisible by Kallithea | |
157 | will be turned into colored tags. Currently available tags are:: |
|
157 | will be turned into colored tags. Currently available tags are:: | |
158 |
|
158 | |||
159 | [featured] |
|
159 | [featured] |
@@ -5,18 +5,18 b' GIT support' | |||||
5 | =========== |
|
5 | =========== | |
6 |
|
6 | |||
7 |
|
7 | |||
8 |
Git support in |
|
8 | Git support in Kallithea 1.3 was enabled by default. You need to have a git | |
9 | client installed on the machine to make git fully work. |
|
9 | client installed on the machine to make git fully work. | |
10 |
|
10 | |||
11 | Although There is one limitation on git usage. |
|
11 | Although There is one limitation on git usage. | |
12 |
|
12 | |||
13 | - large pushes requires a http server with chunked encoding support. |
|
13 | - large pushes requires a http server with chunked encoding support. | |
14 |
|
14 | |||
15 |
if you plan to use git you need to run |
|
15 | if you plan to use git you need to run Kallithea with some | |
16 | http server that supports chunked encoding which git http protocol uses, |
|
16 | http server that supports chunked encoding which git http protocol uses, | |
17 | i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app |
|
17 | i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app | |
18 | replacement. Starting from version 1.4 waitress_ is the default wsgi server |
|
18 | replacement. Starting from version 1.4 waitress_ is the default wsgi server | |
19 |
used in |
|
19 | used in Kallithea. | |
20 |
|
20 | |||
21 | To use, simply change change the following in the .ini file:: |
|
21 | To use, simply change change the following in the .ini file:: | |
22 |
|
22 |
@@ -1,7 +1,7 b'' | |||||
1 | .. _locking: |
|
1 | .. _locking: | |
2 |
|
2 | |||
3 | =================================== |
|
3 | =================================== | |
4 |
|
|
4 | Kallithea repository locking system | |
5 | =================================== |
|
5 | =================================== | |
6 |
|
6 | |||
7 |
|
7 | |||
@@ -20,7 +20,7 b' influence this state:' | |||||
20 | user has write/admin permissions on this repo |
|
20 | user has write/admin permissions on this repo | |
21 |
|
21 | |||
22 |
|
22 | |||
23 |
|
|
23 | Kallithea will remember the user id who locked the repo | |
24 | only this specific user can unlock the repo (locked=false) by calling |
|
24 | only this specific user can unlock the repo (locked=false) by calling | |
25 |
|
25 | |||
26 | - `hg/git push <repo>` |
|
26 | - `hg/git push <repo>` |
@@ -1,15 +1,15 b'' | |||||
1 | .. _performance: |
|
1 | .. _performance: | |
2 |
|
2 | |||
3 | ================================ |
|
3 | ================================ | |
4 |
Optimizing |
|
4 | Optimizing Kallithea Performance | |
5 | ================================ |
|
5 | ================================ | |
6 |
|
6 | |||
7 |
When serving large amount of big repositories |
|
7 | When serving large amount of big repositories Kallithea can start | |
8 | performing slower than expected. Because of demanding nature of handling large |
|
8 | performing slower than expected. Because of demanding nature of handling large | |
9 | amount of data from version control systems here are some tips how to get |
|
9 | amount of data from version control systems here are some tips how to get | |
10 | the best performance. |
|
10 | the best performance. | |
11 |
|
11 | |||
12 |
* |
|
12 | * Kallithea will perform better on machines with faster disks (SSD/SAN). It's | |
13 | more important to have faster disk than faster CPU. |
|
13 | more important to have faster disk than faster CPU. | |
14 |
|
14 | |||
15 | * Slowness on initial page can be easily fixed by grouping repositories, and/or |
|
15 | * Slowness on initial page can be easily fixed by grouping repositories, and/or | |
@@ -17,7 +17,7 b' the best performance.' | |||||
17 | option and vcs_full_cache setting in .ini file |
|
17 | option and vcs_full_cache setting in .ini file | |
18 |
|
18 | |||
19 |
|
19 | |||
20 |
Follow these few steps to improve performance of |
|
20 | Follow these few steps to improve performance of Kallithea system. | |
21 |
|
21 | |||
22 |
|
22 | |||
23 | 1. Increase cache |
|
23 | 1. Increase cache | |
@@ -30,7 +30,7 b' 1. Increase cache' | |||||
30 | few hundreds of repositories on main page can sometimes make the system |
|
30 | few hundreds of repositories on main page can sometimes make the system | |
31 | to behave slow when cache expires for all of them. Increasing `expire` |
|
31 | to behave slow when cache expires for all of them. Increasing `expire` | |
32 | option to day (86400) or a week (604800) will improve general response |
|
32 | option to day (86400) or a week (604800) will improve general response | |
33 |
times for the main page. |
|
33 | times for the main page. Kallithea has an intelligent cache expiration | |
34 | system and it will expire cache for repositories that had been changed. |
|
34 | system and it will expire cache for repositories that had been changed. | |
35 |
|
35 | |||
36 | 2. Switch from sqlite to postgres or mysql |
|
36 | 2. Switch from sqlite to postgres or mysql | |
@@ -40,10 +40,10 b' 2. Switch from sqlite to postgres or mys' | |||||
40 | setup. Switching to mysql or postgres will result in a immediate |
|
40 | setup. Switching to mysql or postgres will result in a immediate | |
41 | performance increase. |
|
41 | performance increase. | |
42 |
|
42 | |||
43 |
3. Scale |
|
43 | 3. Scale Kallithea horizontally | |
44 |
|
44 | |||
45 | Scaling horizontally can give huge performance increase when dealing with |
|
45 | Scaling horizontally can give huge performance increase when dealing with | |
46 |
large traffic (large amount of users, CI servers etc). |
|
46 | large traffic (large amount of users, CI servers etc). Kallithea can be | |
47 | scaled horizontally on one (recommended) or multiple machines. In order |
|
47 | scaled horizontally on one (recommended) or multiple machines. In order | |
48 | to scale horizontally you need to do the following: |
|
48 | to scale horizontally you need to do the following: | |
49 |
|
49 | |||
@@ -53,7 +53,7 b' 3. Scale RhodeCode horizontally' | |||||
53 | dir contains template caches, sessions, whoosh index and it's used for |
|
53 | dir contains template caches, sessions, whoosh index and it's used for | |
54 | tasks locking (so it's safe across multiple instances). Set the |
|
54 | tasks locking (so it's safe across multiple instances). Set the | |
55 | `cache_dir`, `index_dir`, `beaker.cache.data_dir`, `beaker.cache.lock_dir` |
|
55 | `cache_dir`, `index_dir`, `beaker.cache.data_dir`, `beaker.cache.lock_dir` | |
56 |
variables in each .ini file to shared location across |
|
56 | variables in each .ini file to shared location across Kallithea instances | |
57 | - if celery is used each instance should run separate celery instance, but |
|
57 | - if celery is used each instance should run separate celery instance, but | |
58 | the message broken should be common to all of them (ex one rabbitmq |
|
58 | the message broken should be common to all of them (ex one rabbitmq | |
59 | shared server) |
|
59 | shared server) |
@@ -4,9 +4,9 b'' | |||||
4 | Statistics |
|
4 | Statistics | |
5 | ========== |
|
5 | ========== | |
6 |
|
6 | |||
7 |
The |
|
7 | The Kallithea statistics system makes heavy demands of the server resources, so | |
8 | in order to keep a balance between usability and performance, the statistics are |
|
8 | in order to keep a balance between usability and performance, the statistics are | |
9 |
cached inside db and are gathered incrementally, this is how |
|
9 | cached inside db and are gathered incrementally, this is how Kallithea does | |
10 | this: |
|
10 | this: | |
11 |
|
11 | |||
12 | With Celery disabled |
|
12 | With Celery disabled | |
@@ -16,14 +16,14 b' With Celery disabled' | |||||
16 | updates statistics cache. |
|
16 | updates statistics cache. | |
17 | - This happens on each single visit to the statistics page until all commits are |
|
17 | - This happens on each single visit to the statistics page until all commits are | |
18 | fetched. Statistics are kept cached until additional commits are added to the |
|
18 | fetched. Statistics are kept cached until additional commits are added to the | |
19 |
repository. In such a case |
|
19 | repository. In such a case Kallithea will only fetch the new commits when | |
20 | updating it's cache. |
|
20 | updating it's cache. | |
21 |
|
21 | |||
22 |
|
22 | |||
23 | With Celery enabled |
|
23 | With Celery enabled | |
24 | ------------------- |
|
24 | ------------------- | |
25 |
|
25 | |||
26 |
- On the first visit to the summary page |
|
26 | - On the first visit to the summary page Kallithea will create tasks that will | |
27 | execute on celery workers. This task will gather all of the stats until all |
|
27 | execute on celery workers. This task will gather all of the stats until all | |
28 | commits are parsed, each task will parse 250 commits, and run the next task to |
|
28 | commits are parsed, each task will parse 250 commits, and run the next task to | |
29 | parse next 250 commits, until all of the commits are parsed. |
|
29 | parse next 250 commits, until all of the commits are parsed. |
@@ -1,10 +1,10 b'' | |||||
1 | .. _subrepos: |
|
1 | .. _subrepos: | |
2 |
|
2 | |||
3 | ============================================= |
|
3 | ============================================= | |
4 |
working with |
|
4 | working with Kallithea and mercurial subrepos | |
5 | ============================================= |
|
5 | ============================================= | |
6 |
|
6 | |||
7 |
example usage of Subrepos with |
|
7 | example usage of Subrepos with Kallithea:: | |
8 |
|
8 | |||
9 | ## init a simple repo |
|
9 | ## init a simple repo | |
10 | hg init repo1 |
|
10 | hg init repo1 | |
@@ -16,7 +16,7 b' example usage of Subrepos with RhodeCode' | |||||
16 | #clone subrepo we want to add |
|
16 | #clone subrepo we want to add | |
17 | hg clone http://rc.local/subrepo |
|
17 | hg clone http://rc.local/subrepo | |
18 |
|
18 | |||
19 |
## use path like url to existing repo in |
|
19 | ## use path like url to existing repo in Kallithea | |
20 | echo "subrepo = http://rc.local/subrepo" > .hgsub |
|
20 | echo "subrepo = http://rc.local/subrepo" > .hgsub | |
21 |
|
21 | |||
22 | hg add .hgsub |
|
22 | hg add .hgsub | |
@@ -26,11 +26,11 b' example usage of Subrepos with RhodeCode' | |||||
26 |
|
26 | |||
27 | In file list of repo1 you will see a connected subrepo at revision it was |
|
27 | In file list of repo1 you will see a connected subrepo at revision it was | |
28 | during cloning. |
|
28 | during cloning. | |
29 |
Clicking in subrepos link should send you to proper repository in |
|
29 | Clicking in subrepos link should send you to proper repository in Kallithea | |
30 |
|
30 | |||
31 | cloning repo1 will also clone attached subrepository. |
|
31 | cloning repo1 will also clone attached subrepository. | |
32 |
|
32 | |||
33 |
Next we can edit the subrepo data, and push back to |
|
33 | Next we can edit the subrepo data, and push back to Kallithea. This will update | |
34 | both of repositories. |
|
34 | both of repositories. | |
35 |
|
35 | |||
36 | see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more |
|
36 | see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more |
@@ -14,14 +14,14 b' Troubleshooting' | |||||
14 | | |
|
14 | | | |
15 |
|
15 | |||
16 | :Q: **Can't install celery/rabbitmq?** |
|
16 | :Q: **Can't install celery/rabbitmq?** | |
17 |
:A: Don't worry |
|
17 | :A: Don't worry Kallithea works without them too. No extra setup is required. | |
18 | Try out great celery docs for further help. |
|
18 | Try out great celery docs for further help. | |
19 |
|
19 | |||
20 | | |
|
20 | | | |
21 |
|
21 | |||
22 | :Q: **Long lasting push timeouts?** |
|
22 | :Q: **Long lasting push timeouts?** | |
23 | :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts |
|
23 | :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts | |
24 |
are caused by https server and not |
|
24 | are caused by https server and not Kallithea. | |
25 |
|
25 | |||
26 | | |
|
26 | | | |
27 |
|
27 | |||
@@ -43,16 +43,16 b' Troubleshooting' | |||||
43 |
|
43 | |||
44 | | |
|
44 | | | |
45 |
|
45 | |||
46 |
:Q: **How i use hooks in |
|
46 | :Q: **How i use hooks in Kallithea?** | |
47 | :A: It's easy if they are python hooks just use advanced link in hooks section |
|
47 | :A: It's easy if they are python hooks just use advanced link in hooks section | |
48 | in Admin panel, that works only for Mercurial. If you want to use githooks, |
|
48 | in Admin panel, that works only for Mercurial. If you want to use githooks, | |
49 | just install proper one in repository eg. create file in |
|
49 | just install proper one in repository eg. create file in | |
50 |
`/gitrepo/hooks/pre-receive`. You can also use |
|
50 | `/gitrepo/hooks/pre-receive`. You can also use Kallithea-extensions to | |
51 | connect to callback hooks, for both Git and Mercurial. |
|
51 | connect to callback hooks, for both Git and Mercurial. | |
52 |
|
52 | |||
53 | | |
|
53 | | | |
54 |
|
54 | |||
55 |
:Q: ** |
|
55 | :Q: **Kallithea is slow for me, how can i make it faster?** | |
56 | :A: See the :ref:`performance` section |
|
56 | :A: See the :ref:`performance` section | |
57 |
|
57 | |||
58 | | |
|
58 | | |
General Comments 0
You need to be logged in to leave comments.
Login now