##// END OF EJS Templates
fixed sphinx build errors
marcink -
r1095:3cdacd15 default
parent child Browse files
Show More
@@ -1,104 +1,105 b''
1 .. _installation:
1 .. _installation:
2
2
3 Installation
3 Installation
4 ============
4 ============
5
5
6 ``RhodeCode`` is written entirely in Python. In order to gain maximum performance
6 ``RhodeCode`` is written entirely in Python. In order to gain maximum performance
7 there are some third-party you must install. When RhodeCode is used
7 there are some third-party you must install. When RhodeCode is used
8 together with celery you have to install some kind of message broker,
8 together with celery you have to install some kind of message broker,
9 recommended one is rabbitmq_ to make the async tasks work.
9 recommended one is rabbitmq_ to make the async tasks work.
10
10
11 Of course RhodeCode works in sync mode also and then you do not have to install
11 Of course RhodeCode works in sync mode also and then you do not have to install
12 any third party applications. However, using Celery_ will give you a large speed improvement when using
12 any third party applications. However, using Celery_ will give you a large speed improvement when using
13 many big repositories. If you plan to use RhodeCode for say 7 to 10 small repositories, RhodeCode
13 many big repositories. If you plan to use RhodeCode for say 7 to 10 small repositories, RhodeCode
14 will perform perfectly well without celery running.
14 will perform perfectly well without celery running.
15
15
16 If you make the decision to run RhodeCode with celery make sure you run celeryd using paster
16 If you make the decision to run RhodeCode with celery make sure you run celeryd using paster
17 and message broker together with the application.
17 and message broker together with the application.
18
18
19 Installing RhodeCode from Cheese Shop
19 Installing RhodeCode from Cheese Shop
20 ------------------------
20 -------------------------------------
21
21 Rhodecode requires python version 2.5 or higher.
22 Rhodecode requires python version 2.5 or higher.
22
23
23 The easiest way to install ``rhodecode`` is to run::
24 The easiest way to install ``rhodecode`` is to run::
24
25
25 easy_install rhodecode
26 easy_install rhodecode
26
27
27 Or::
28 Or::
28
29
29 pip install rhodecode
30 pip install rhodecode
30
31
31 If you prefer to install RhodeCode manually simply grab latest release from
32 If you prefer to install RhodeCode manually simply grab latest release from
32 http://pypi.python.org/pypi/rhodecode, decompress the archive and run::
33 http://pypi.python.org/pypi/rhodecode, decompress the archive and run::
33
34
34 python setup.py install
35 python setup.py install
35
36
36
37
37 Step by step installation example
38 Step by step installation example
38 ---------------------------------
39 ---------------------------------
39
40
40
41
41 - Assuming you have installed virtualenv_ create a new virtual environment using virtualenv::
42 - Assuming you have installed virtualenv_ create a new virtual environment using virtualenv::
42
43
43 virtualenv --no-site-packages /var/www/rhodecode-venv
44 virtualenv --no-site-packages /var/www/rhodecode-venv
44
45
45
46
46 .. note:: Using ``--no-site-packages`` when generating your
47 .. note:: Using ``--no-site-packages`` when generating your
47 virtualenv is **very important**. This flag provides the necessary
48 virtualenv is **very important**. This flag provides the necessary
48 isolation for running the set of packages required by
49 isolation for running the set of packages required by
49 RhodeCode. If you do not specify ``--no-site-packages``,
50 RhodeCode. If you do not specify ``--no-site-packages``,
50 it's possible that RhodeCode will not install properly into
51 it's possible that RhodeCode will not install properly into
51 the virtualenv, or, even if it does, may not run properly,
52 the virtualenv, or, even if it does, may not run properly,
52 depending on the packages you've already got installed into your
53 depending on the packages you've already got installed into your
53 Python's "main" site-packages dir.
54 Python's "main" site-packages dir.
54
55
55
56
56 - this will install new virtualenv_ into `/var/www/rhodecode-venv`.
57 - this will install new virtualenv_ into `/var/www/rhodecode-venv`.
57 - Activate the virtualenv_ by running::
58 - Activate the virtualenv_ by running::
58
59
59 source /var/www/rhodecode-venv/bin/activate
60 source /var/www/rhodecode-venv/bin/activate
60
61
61 .. note:: If you're using UNIX, *do not* use ``sudo`` to run the
62 .. note:: If you're using UNIX, *do not* use ``sudo`` to run the
62 ``virtualenv`` script. It's perfectly acceptable (and desirable)
63 ``virtualenv`` script. It's perfectly acceptable (and desirable)
63 to create a virtualenv as a normal user.
64 to create a virtualenv as a normal user.
64
65
65 - Make a folder for rhodecode somewhere on the filesystem for example::
66 - Make a folder for rhodecode somewhere on the filesystem for example::
66
67
67 mkdir /var/www/rhodecode
68 mkdir /var/www/rhodecode
68
69
69
70
70 - Run this command to install rhodecode::
71 - Run this command to install rhodecode::
71
72
72 easy_install rhodecode
73 easy_install rhodecode
73
74
74 - This will install rhodecode together with pylons and all other required python
75 - This will install rhodecode together with pylons and all other required python
75 libraries
76 libraries
76
77
77 Requirements for Celery (optional)
78 Requirements for Celery (optional)
78 ----------------------------------
79 ----------------------------------
79
80
80 .. note::
81 .. note::
81 Installing message broker and using celery is optional, RhodeCode will
82 Installing message broker and using celery is optional, RhodeCode will
82 work perfectly fine without them.
83 work perfectly fine without them.
83
84
84
85
85 **Message Broker**
86 **Message Broker**
86
87
87 - preferred is `RabbitMq <http://www.rabbitmq.com/>`_
88 - preferred is `RabbitMq <http://www.rabbitmq.com/>`_
88 - A possible alternative is `Redis <http://code.google.com/p/redis/>`_
89 - A possible alternative is `Redis <http://code.google.com/p/redis/>`_
89
90
90 For installation instructions you can visit:
91 For installation instructions you can visit:
91 http://ask.github.com/celery/getting-started/index.html.
92 http://ask.github.com/celery/getting-started/index.html.
92 This is a very nice tutorial on how to start using celery_ with rabbitmq_
93 This is a very nice tutorial on how to start using celery_ with rabbitmq_
93
94
94
95
95 You can now proceed to :ref:`setup`
96 You can now proceed to :ref:`setup`
96 -----------------------------------
97 -----------------------------------
97
98
98
99
99
100
100 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
101 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
101 .. _python: http://www.python.org/
102 .. _python: http://www.python.org/
102 .. _mercurial: http://mercurial.selenic.com/
103 .. _mercurial: http://mercurial.selenic.com/
103 .. _celery: http://celeryproject.org/
104 .. _celery: http://celeryproject.org/
104 .. _rabbitmq: http://www.rabbitmq.com/ No newline at end of file
105 .. _rabbitmq: http://www.rabbitmq.com/
@@ -1,380 +1,384 b''
1 .. _setup:
1 .. _setup:
2
2
3 Setup
3 Setup
4 =====
4 =====
5
5
6
6
7 Setting up RhodeCode
7 Setting up RhodeCode
8 --------------------------
8 --------------------------
9
9
10 First, you will need to create a RhodeCode configuration file. Run the following
10 First, you will need to create a RhodeCode configuration file. Run the following
11 command to do this::
11 command to do this::
12
12
13 paster make-config RhodeCode production.ini
13 paster make-config RhodeCode production.ini
14
14
15 - This will create the file `production.ini` in the current directory. This
15 - This will create the file `production.ini` in the current directory. This
16 configuration file contains the various settings for RhodeCode, e.g proxy port,
16 configuration file contains the various settings for RhodeCode, e.g proxy port,
17 email settings, usage of static files, cache, celery settings and logging.
17 email settings, usage of static files, cache, celery settings and logging.
18
18
19
19
20 Next, you need to create the databases used by RhodeCode. I recommend that you
20 Next, you need to create the databases used by RhodeCode. I recommend that you
21 use sqlite (default) or postgresql. If you choose a database other than the
21 use sqlite (default) or postgresql. If you choose a database other than the
22 default ensure you properly adjust the db url in your production.ini
22 default ensure you properly adjust the db url in your production.ini
23 configuration file to use this other database. Create the databases by running
23 configuration file to use this other database. Create the databases by running
24 the following command::
24 the following command::
25
25
26 paster setup-app production.ini
26 paster setup-app production.ini
27
27
28 This will prompt you for a "root" path. This "root" path is the location where
28 This will prompt you for a "root" path. This "root" path is the location where
29 RhodeCode will store all of its repositories on the current machine. After
29 RhodeCode will store all of its repositories on the current machine. After
30 entering this "root" path ``setup-app`` will also prompt you for a username and password
30 entering this "root" path ``setup-app`` will also prompt you for a username and password
31 for the initial admin account which ``setup-app`` sets up for you.
31 for the initial admin account which ``setup-app`` sets up for you.
32
32
33 - The ``setup-app`` command will create all of the needed tables and an admin
33 - The ``setup-app`` command will create all of the needed tables and an admin
34 account. When choosing a root path you can either use a new empty location, or a
34 account. When choosing a root path you can either use a new empty location, or a
35 location which already contains existing repositories. If you choose a location
35 location which already contains existing repositories. If you choose a location
36 which contains existing repositories RhodeCode will simply add all of the
36 which contains existing repositories RhodeCode will simply add all of the
37 repositories at the chosen location to it's database. (Note: make sure you
37 repositories at the chosen location to it's database. (Note: make sure you
38 specify the correct path to the root).
38 specify the correct path to the root).
39 - Note: the given path for mercurial_ repositories **must** be write accessible
39 - Note: the given path for mercurial_ repositories **must** be write accessible
40 for the application. It's very important since the RhodeCode web interface will
40 for the application. It's very important since the RhodeCode web interface will
41 work without write access, but when trying to do a push it will eventually fail
41 work without write access, but when trying to do a push it will eventually fail
42 with permission denied errors unless it has write access.
42 with permission denied errors unless it has write access.
43
43
44 You are now ready to use RhodeCode, to run it simply execute::
44 You are now ready to use RhodeCode, to run it simply execute::
45
45
46 paster serve production.ini
46 paster serve production.ini
47
47
48 - This command runs the RhodeCode server. The web app should be available at the
48 - This command runs the RhodeCode server. The web app should be available at the
49 127.0.0.1:5000. This ip and port is configurable via the production.ini
49 127.0.0.1:5000. This ip and port is configurable via the production.ini
50 file created in previous step
50 file created in previous step
51 - Use the admin account you created above when running ``setup-app`` to login to the web app.
51 - Use the admin account you created above when running ``setup-app`` to login to the web app.
52 - The default permissions on each repository is read, and the owner is admin.
52 - The default permissions on each repository is read, and the owner is admin.
53 Remember to update these if needed.
53 Remember to update these if needed.
54 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
54 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
55 well as edit more advanced options on users and repositories
55 well as edit more advanced options on users and repositories
56
56
57 Try copying your own mercurial repository into the "root" directory you are
57 Try copying your own mercurial repository into the "root" directory you are
58 using, then from within the RhodeCode web application choose Admin >
58 using, then from within the RhodeCode web application choose Admin >
59 repositories. Then choose Add New Repository. Add the repository you copied into
59 repositories. Then choose Add New Repository. Add the repository you copied into
60 the root. Test that you can browse your repository from within RhodeCode and then
60 the root. Test that you can browse your repository from within RhodeCode and then
61 try cloning your repository from RhodeCode with::
61 try cloning your repository from RhodeCode with::
62
62
63 hg clone http://127.0.0.1:5000/<repository name>
63 hg clone http://127.0.0.1:5000/<repository name>
64
64
65 where *repository name* is replaced by the name of your repository.
65 where *repository name* is replaced by the name of your repository.
66
66
67 Using RhodeCode with SSH
67 Using RhodeCode with SSH
68 ------------------------
68 ------------------------
69
69
70 RhodeCode currently only hosts repositories using http and https. (The addition of
70 RhodeCode currently only hosts repositories using http and https. (The addition of
71 ssh hosting is a planned future feature.) However you can easily use ssh in
71 ssh hosting is a planned future feature.) However you can easily use ssh in
72 parallel with RhodeCode. (Repository access via ssh is a standard "out of
72 parallel with RhodeCode. (Repository access via ssh is a standard "out of
73 the box" feature of mercurial_ and you can use this to access any of the
73 the box" feature of mercurial_ and you can use this to access any of the
74 repositories that RhodeCode is hosting. See PublishingRepositories_)
74 repositories that RhodeCode is hosting. See PublishingRepositories_)
75
75
76 RhodeCode repository structures are kept in directories with the same name
76 RhodeCode repository structures are kept in directories with the same name
77 as the project. When using repository groups, each group is a subdirectory.
77 as the project. When using repository groups, each group is a subdirectory.
78 This allows you to easily use ssh for accessing repositories.
78 This allows you to easily use ssh for accessing repositories.
79
79
80 In order to use ssh you need to make sure that your web-server and the users login
80 In order to use ssh you need to make sure that your web-server and the users login
81 accounts have the correct permissions set on the appropriate directories. (Note
81 accounts have the correct permissions set on the appropriate directories. (Note
82 that these permissions are independent of any permissions you have set up using
82 that these permissions are independent of any permissions you have set up using
83 the RhodeCode web interface.)
83 the RhodeCode web interface.)
84
84
85 If your main directory (the same as set in RhodeCode settings) is for example
85 If your main directory (the same as set in RhodeCode settings) is for example
86 set to **/home/hg** and the repository you are using is named `rhodecode`, then
86 set to **/home/hg** and the repository you are using is named `rhodecode`, then
87 to clone via ssh you should run::
87 to clone via ssh you should run::
88
88
89 hg clone ssh://user@server.com/home/hg/rhodecode
89 hg clone ssh://user@server.com/home/hg/rhodecode
90
90
91 Using other external tools such as mercurial-server_ or using ssh key based
91 Using other external tools such as mercurial-server_ or using ssh key based
92 authentication is fully supported.
92 authentication is fully supported.
93
93
94 Note: In an advanced setup, in order for your ssh access to use the same
94 Note: In an advanced setup, in order for your ssh access to use the same
95 permissions as set up via the RhodeCode web interface, you can create an
95 permissions as set up via the RhodeCode web interface, you can create an
96 authentication hook to connect to the rhodecode db and runs check functions for
96 authentication hook to connect to the rhodecode db and runs check functions for
97 permissions against that.
97 permissions against that.
98
98
99
99
100
100
101 Setting up Whoosh full text search
101 Setting up Whoosh full text search
102 ----------------------------------
102 ----------------------------------
103
103
104 Starting from version 1.1 the whoosh index can be build by using the paster
104 Starting from version 1.1 the whoosh index can be build by using the paster
105 command ``make-index``. To use ``make-index`` you must specify the configuration
105 command ``make-index``. To use ``make-index`` you must specify the configuration
106 file that stores the location of the index, and the location of the repositories
106 file that stores the location of the index, and the location of the repositories
107 (`--repo-location`).
107 (`--repo-location`).
108
108
109 You may optionally pass the option `-f` to enable a full index rebuild. Without
109 You may optionally pass the option `-f` to enable a full index rebuild. Without
110 the `-f` option, indexing will run always in "incremental" mode.
110 the `-f` option, indexing will run always in "incremental" mode.
111
111
112 For an incremental index build use::
112 For an incremental index build use::
113
113
114 paster make-index production.ini --repo-location=<location for repos>
114 paster make-index production.ini --repo-location=<location for repos>
115
115
116 For a full index rebuild use::
116 For a full index rebuild use::
117
117
118 paster make-index production.ini -f --repo-location=<location for repos>
118 paster make-index production.ini -f --repo-location=<location for repos>
119
119
120 - For full text search you can either put crontab entry for
120 - For full text search you can either put crontab entry for
121
121
122 In order to do periodical index builds and keep your index always up to date.
122 In order to do periodical index builds and keep your index always up to date.
123 It's recommended to do a crontab entry for incremental indexing.
123 It's recommended to do a crontab entry for incremental indexing.
124 An example entry might look like this::
124 An example entry might look like this::
125
125
126 /path/to/python/bin/paster /path/to/rhodecode/production.ini --repo-location=<location for repos>
126 /path/to/python/bin/paster /path/to/rhodecode/production.ini --repo-location=<location for repos>
127
127
128 When using incremental mode (the default) whoosh will check the last
128 When using incremental mode (the default) whoosh will check the last
129 modification date of each file and add it to be reindexed if a newer file is
129 modification date of each file and add it to be reindexed if a newer file is
130 available. The indexing daemon checks for any removed files and removes them
130 available. The indexing daemon checks for any removed files and removes them
131 from index.
131 from index.
132
132
133 If you want to rebuild index from scratch, you can use the `-f` flag as above,
133 If you want to rebuild index from scratch, you can use the `-f` flag as above,
134 or in the admin panel you can check `build from scratch` flag.
134 or in the admin panel you can check `build from scratch` flag.
135
135
136
136
137 Setting up LDAP support
137 Setting up LDAP support
138 -----------------------
138 -----------------------
139
139
140 RhodeCode starting from version 1.1 supports ldap authentication. In order
140 RhodeCode starting from version 1.1 supports ldap authentication. In order
141 to use LDAP, you have to install the python-ldap_ package. This package is available
141 to use LDAP, you have to install the python-ldap_ package. This package is available
142 via pypi, so you can install it by running
142 via pypi, so you can install it by running
143
143
144 ::
144 ::
145
145
146 easy_install python-ldap
146 easy_install python-ldap
147
147
148 ::
148 ::
149
149
150 pip install python-ldap
150 pip install python-ldap
151
151
152 .. note::
152 .. note::
153 python-ldap requires some certain libs on your system, so before installing
153 python-ldap requires some certain libs on your system, so before installing
154 it check that you have at least `openldap`, and `sasl` libraries.
154 it check that you have at least `openldap`, and `sasl` libraries.
155
155
156 ldap settings are located in admin->ldap section,
156 ldap settings are located in admin->ldap section,
157
157
158 Here's a typical ldap setup::
158 Here's a typical ldap setup::
159
159
160 Enable ldap = checked #controls if ldap access is enabled
160 Enable ldap = checked #controls if ldap access is enabled
161 Host = host.domain.org #actual ldap server to connect
161 Host = host.domain.org #actual ldap server to connect
162 Port = 389 or 689 for ldaps #ldap server ports
162 Port = 389 or 689 for ldaps #ldap server ports
163 Enable LDAPS = unchecked #enable disable ldaps
163 Enable LDAPS = unchecked #enable disable ldaps
164 Account = <account> #access for ldap server(if required)
164 Account = <account> #access for ldap server(if required)
165 Password = <password> #password for ldap server(if required)
165 Password = <password> #password for ldap server(if required)
166 Base DN = uid=%(user)s,CN=users,DC=host,DC=domain,DC=org
166 Base DN = uid=%(user)s,CN=users,DC=host,DC=domain,DC=org
167
167
168
168
169 `Account` and `Password` are optional, and used for two-phase ldap
169 `Account` and `Password` are optional, and used for two-phase ldap
170 authentication so those are credentials to access your ldap, if it doesn't
170 authentication so those are credentials to access your ldap, if it doesn't
171 support anonymous search/user lookups.
171 support anonymous search/user lookups.
172
172
173 Base DN must have the %(user)s template inside, it's a place holder where your uid
173 Base DN must have the %(user)s template inside, it's a place holder where your uid
174 used to login would go. It allows admins to specify non-standard schema for the
174 used to login would go. It allows admins to specify non-standard schema for the
175 uid variable.
175 uid variable.
176
176
177 If all of the data is correctly entered, and `python-ldap` is properly
177 If all of the data is correctly entered, and `python-ldap` is properly
178 installed, then users should be granted access to RhodeCode with ldap accounts.
178 installed, then users should be granted access to RhodeCode with ldap accounts.
179 When logging in the first time a special ldap account is created inside
179 When logging in the first time a special ldap account is created inside
180 RhodeCode, so you can control the permissions even on ldap users. If such users
180 RhodeCode, so you can control the permissions even on ldap users. If such users
181 already exist in the RhodeCode database, then the ldap user with the same
181 already exist in the RhodeCode database, then the ldap user with the same
182 username would be not be able to access RhodeCode.
182 username would be not be able to access RhodeCode.
183
183
184 If you have problems with ldap access and believe you have correctly entered the
184 If you have problems with ldap access and believe you have correctly entered the
185 required information then proceed by investigating the RhodeCode logs. Any
185 required information then proceed by investigating the RhodeCode logs. Any
186 error messages sent from ldap will be saved there.
186 error messages sent from ldap will be saved there.
187
187
188
188
189
189
190 Setting Up Celery
190 Setting Up Celery
191 -----------------
191 -----------------
192
192
193 Since version 1.1 celery is configured by the rhodecode ini configuration files.
193 Since version 1.1 celery is configured by the rhodecode ini configuration files.
194 Simply set use_celery=true in the ini file then add / change the configuration
194 Simply set use_celery=true in the ini file then add / change the configuration
195 variables inside the ini file.
195 variables inside the ini file.
196
196
197 Remember that the ini files use the format with '.' not with '_' like celery.
197 Remember that the ini files use the format with '.' not with '_' like celery.
198 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
198 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
199 the config file.
199 the config file.
200
200
201 In order to start using celery run::
201 In order to start using celery run::
202
202
203 paster celeryd <configfile.ini>
203 paster celeryd <configfile.ini>
204
204
205
205
206 .. note::
206 .. note::
207 Make sure you run this command from the same virtualenv, and with the same user
207 Make sure you run this command from the same virtualenv, and with the same user
208 that rhodecode runs.
208 that rhodecode runs.
209
209
210 HTTPS support
210 HTTPS support
211 -------------
211 -------------
212
212
213 There are two ways to enable https:
213 There are two ways to enable https:
214
214
215 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
215 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
216 recognize this headers and make proper https redirections
216 recognize this headers and make proper https redirections
217 - Alternatively, set `force_https = true` in the ini configuration to force using
217 - Alternatively, set `force_https = true` in the ini configuration to force using
218 https, no headers are needed than to enable https
218 https, no headers are needed than to enable https
219
219
220
220
221 Nginx virtual host example
221 Nginx virtual host example
222 --------------------------
222 --------------------------
223
223
224 Sample config for nginx using proxy::
224 Sample config for nginx using proxy::
225
225
226 server {
226 server {
227 listen 80;
227 listen 80;
228 server_name hg.myserver.com;
228 server_name hg.myserver.com;
229 access_log /var/log/nginx/rhodecode.access.log;
229 access_log /var/log/nginx/rhodecode.access.log;
230 error_log /var/log/nginx/rhodecode.error.log;
230 error_log /var/log/nginx/rhodecode.error.log;
231 location / {
231 location / {
232 root /var/www/rhodecode/rhodecode/public/;
232 root /var/www/rhodecode/rhodecode/public/;
233 if (!-f $request_filename){
233 if (!-f $request_filename){
234 proxy_pass http://127.0.0.1:5000;
234 proxy_pass http://127.0.0.1:5000;
235 }
235 }
236 #this is important if you want to use https !!!
236 #this is important if you want to use https !!!
237 proxy_set_header X-Url-Scheme $scheme;
237 proxy_set_header X-Url-Scheme $scheme;
238 include /etc/nginx/proxy.conf;
238 include /etc/nginx/proxy.conf;
239 }
239 }
240 }
240 }
241
241
242 Here's the proxy.conf. It's tuned so it will not timeout on long
242 Here's the proxy.conf. It's tuned so it will not timeout on long
243 pushes or large pushes::
243 pushes or large pushes::
244
244
245 proxy_redirect off;
245 proxy_redirect off;
246 proxy_set_header Host $host;
246 proxy_set_header Host $host;
247 proxy_set_header X-Host $http_host;
247 proxy_set_header X-Host $http_host;
248 proxy_set_header X-Real-IP $remote_addr;
248 proxy_set_header X-Real-IP $remote_addr;
249 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
249 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
250 proxy_set_header Proxy-host $proxy_host;
250 proxy_set_header Proxy-host $proxy_host;
251 client_max_body_size 400m;
251 client_max_body_size 400m;
252 client_body_buffer_size 128k;
252 client_body_buffer_size 128k;
253 proxy_buffering off;
253 proxy_buffering off;
254 proxy_connect_timeout 3600;
254 proxy_connect_timeout 3600;
255 proxy_send_timeout 3600;
255 proxy_send_timeout 3600;
256 proxy_read_timeout 3600;
256 proxy_read_timeout 3600;
257 proxy_buffer_size 16k;
257 proxy_buffer_size 16k;
258 proxy_buffers 4 16k;
258 proxy_buffers 4 16k;
259 proxy_busy_buffers_size 64k;
259 proxy_busy_buffers_size 64k;
260 proxy_temp_file_write_size 64k;
260 proxy_temp_file_write_size 64k;
261
261
262 Also, when using root path with nginx you might set the static files to false
262 Also, when using root path with nginx you might set the static files to false
263 in the production.ini file::
263 in the production.ini file::
264
264
265 [app:main]
265 [app:main]
266 use = egg:rhodecode
266 use = egg:rhodecode
267 full_stack = true
267 full_stack = true
268 static_files = false
268 static_files = false
269 lang=en
269 lang=en
270 cache_dir = %(here)s/data
270 cache_dir = %(here)s/data
271
271
272 In order to not have the statics served by the application. This improves speed.
272 In order to not have the statics served by the application. This improves speed.
273
273
274
274
275 Apache virtual host example
275 Apache virtual host example
276 ---------------------------
276 ---------------------------
277
277
278 Here is a sample configuration file for apache using proxy::
278 Here is a sample configuration file for apache using proxy::
279
279
280 <VirtualHost *:80>
280 <VirtualHost *:80>
281 ServerName hg.myserver.com
281 ServerName hg.myserver.com
282 ServerAlias hg.myserver.com
282 ServerAlias hg.myserver.com
283
283
284 <Proxy *>
284 <Proxy *>
285 Order allow,deny
285 Order allow,deny
286 Allow from all
286 Allow from all
287 </Proxy>
287 </Proxy>
288
288
289 #important !
289 #important !
290 #Directive to properly generate url (clone url) for pylons
290 #Directive to properly generate url (clone url) for pylons
291 ProxyPreserveHost On
291 ProxyPreserveHost On
292
292
293 #rhodecode instance
293 #rhodecode instance
294 ProxyPass / http://127.0.0.1:5000/
294 ProxyPass / http://127.0.0.1:5000/
295 ProxyPassReverse / http://127.0.0.1:5000/
295 ProxyPassReverse / http://127.0.0.1:5000/
296
296
297 #to enable https use line below
297 #to enable https use line below
298 #SetEnvIf X-Url-Scheme https HTTPS=1
298 #SetEnvIf X-Url-Scheme https HTTPS=1
299
299
300 </VirtualHost>
300 </VirtualHost>
301
301
302
302
303 Additional tutorial
303 Additional tutorial
304 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
304 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
305
305
306
306
307 Apache as subdirectory
307 Apache as subdirectory
308 ----------------------
308 ----------------------
309
309
310
310
311 Apache subdirectory part::
311 Apache subdirectory part::
312
312
313 <Location /rhodecode>
313 <Location /rhodecode>
314 ProxyPass http://127.0.0.1:59542/rhodecode
314 ProxyPass http://127.0.0.1:59542/rhodecode
315 ProxyPassReverse http://127.0.0.1:59542/rhodecode
315 ProxyPassReverse http://127.0.0.1:59542/rhodecode
316 SetEnvIf X-Url-Scheme https HTTPS=1
316 SetEnvIf X-Url-Scheme https HTTPS=1
317 </Location>
317 </Location>
318
318
319 Besides the regular apache setup you will need to add the following to your .ini file::
319 Besides the regular apache setup you will need to add the following to your .ini file::
320
320
321 filter-with = proxy-prefix
321 filter-with = proxy-prefix
322
322
323 Add the following at the end of the .ini file::
323 Add the following at the end of the .ini file::
324
324
325 [filter:proxy-prefix]
325 [filter:proxy-prefix]
326 use = egg:PasteDeploy#prefix
326 use = egg:PasteDeploy#prefix
327 prefix = /<someprefix>
327 prefix = /<someprefix>
328
328
329
329
330 Apache's example FCGI config
330 Apache's example FCGI config
331 ----------------------------
331 ----------------------------
332
332
333 TODO !
333 TODO !
334
334
335 Other configuration files
335 Other configuration files
336 -------------------------
336 -------------------------
337
337
338 Some example init.d scripts can be found here, for debian and gentoo:
338 Some example init.d scripts can be found here, for debian and gentoo:
339
339
340 https://rhodeocode.org/rhodecode/files/tip/init.d
340 https://rhodeocode.org/rhodecode/files/tip/init.d
341
341
342
342
343 Troubleshooting
343 Troubleshooting
344 ---------------
344 ---------------
345
345
346 :Q: **Missing static files?**
346 :Q: **Missing static files?**
347 :A: Make sure either to set the `static_files = true` in the .ini file or
347 :A: Make sure either to set the `static_files = true` in the .ini file or
348 double check the root path for your http setup. It should point to
348 double check the root path for your http setup. It should point to
349 for example:
349 for example:
350 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
350 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
351
351
352 |
352 |
353
353 :Q: **Can't install celery/rabbitmq**
354 :Q: **Can't install celery/rabbitmq**
354 :A: Don't worry RhodeCode works without them too. No extra setup is required.
355 :A: Don't worry RhodeCode works without them too. No extra setup is required.
355
356
356 |
357 |
358
357 :Q: **Long lasting push timeouts?**
359 :Q: **Long lasting push timeouts?**
358 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
360 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
359 are caused by https server and not RhodeCode.
361 are caused by https server and not RhodeCode.
360
362
361 |
363 |
364
362 :Q: **Large pushes timeouts?**
365 :Q: **Large pushes timeouts?**
363 :A: Make sure you set a proper max_body_size for the http server.
366 :A: Make sure you set a proper max_body_size for the http server.
364
367
365 |
368 |
369
366 :Q: **Apache doesn't pass basicAuth on pull/push?**
370 :Q: **Apache doesn't pass basicAuth on pull/push?**
367 :A: Make sure you added `WSGIPassAuthorization true`.
371 :A: Make sure you added `WSGIPassAuthorization true`.
368
372
369 For further questions search the `Issues tracker`_, or post a message in the `google group rhodecode`_
373 For further questions search the `Issues tracker`_, or post a message in the `google group rhodecode`_
370
374
371 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
375 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
372 .. _python: http://www.python.org/
376 .. _python: http://www.python.org/
373 .. _mercurial: http://mercurial.selenic.com/
377 .. _mercurial: http://mercurial.selenic.com/
374 .. _celery: http://celeryproject.org/
378 .. _celery: http://celeryproject.org/
375 .. _rabbitmq: http://www.rabbitmq.com/
379 .. _rabbitmq: http://www.rabbitmq.com/
376 .. _python-ldap: http://www.python-ldap.org/
380 .. _python-ldap: http://www.python-ldap.org/
377 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
381 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
378 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
382 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
379 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
383 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
380 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
384 .. _google group rhodecode: http://groups.google.com/group/rhodecode
@@ -1,51 +1,51 b''
1 .. _upgrade:
1 .. _upgrade:
2
2
3 Upgrade
3 Upgrade
4 =======
4 =======
5
5
6 Upgrading from Cheese Shop
6 Upgrading from Cheese Shop
7 ------------------------
7 --------------------------
8
8
9 .. note::
9 .. note::
10 Firstly, it is recommended that you **always** perform a database backup before doing an upgrade.
10 Firstly, it is recommended that you **always** perform a database backup before doing an upgrade.
11
11
12 The easiest way to upgrade ``rhodecode`` is to run::
12 The easiest way to upgrade ``rhodecode`` is to run::
13
13
14 easy_install -U rhodecode
14 easy_install -U rhodecode
15
15
16 Or::
16 Or::
17
17
18 pip install --upgrade rhodecode
18 pip install --upgrade rhodecode
19
19
20
20
21 Then make sure you run the following command from the installation directory::
21 Then make sure you run the following command from the installation directory::
22
22
23 paster make-config RhodeCode production.ini
23 paster make-config RhodeCode production.ini
24
24
25 This will display any changes made by the new version of RhodeCode to your
25 This will display any changes made by the new version of RhodeCode to your
26 current configuration. It will try to perform an automerge. It's always better
26 current configuration. It will try to perform an automerge. It's always better
27 to make a backup of your configuration file before hand and recheck the content after the automerge.
27 to make a backup of your configuration file before hand and recheck the content after the automerge.
28
28
29 .. note::
29 .. note::
30 The next steps only apply to upgrading from non bugfix releases eg. from
30 The next steps only apply to upgrading from non bugfix releases eg. from
31 any minor or major releases. Bugfix releases (eg. 1.1.2->1.1.3) will
31 any minor or major releases. Bugfix releases (eg. 1.1.2->1.1.3) will
32 not have any database schema changes or whoosh library updates.
32 not have any database schema changes or whoosh library updates.
33
33
34 It is also recommended that you rebuild the whoosh index after upgrading since the new whoosh
34 It is also recommended that you rebuild the whoosh index after upgrading since the new whoosh
35 version could introduce some incompatible index changes.
35 version could introduce some incompatible index changes.
36
36
37
37
38 The final step is to upgrade the database. To do this simply run::
38 The final step is to upgrade the database. To do this simply run::
39
39
40 paster upgrade-db production.ini
40 paster upgrade-db production.ini
41
41
42 This will upgrade the schema and update some of the defaults in the database,
42 This will upgrade the schema and update some of the defaults in the database,
43 and will always recheck the settings of the application, if there are no new options
43 and will always recheck the settings of the application, if there are no new options
44 that need to be set.
44 that need to be set.
45
45
46
46
47 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
47 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
48 .. _python: http://www.python.org/
48 .. _python: http://www.python.org/
49 .. _mercurial: http://mercurial.selenic.com/
49 .. _mercurial: http://mercurial.selenic.com/
50 .. _celery: http://celeryproject.org/
50 .. _celery: http://celeryproject.org/
51 .. _rabbitmq: http://www.rabbitmq.com/ No newline at end of file
51 .. _rabbitmq: http://www.rabbitmq.com/
General Comments 0
You need to be logged in to leave comments. Login now