##// END OF EJS Templates
doc update - hooks
marcink -
r1467:da60cdb4 beta
parent child Browse files
Show More
@@ -1,339 +1,340 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 Changelog
3 Changelog
4 =========
4 =========
5
5
6 1.2.0 (**2011-XX-XX**)
6 1.2.0 (**2011-XX-XX**)
7 ======================
7 ======================
8
8
9 :status: in-progress
9 :status: in-progress
10 :branch: beta
10 :branch: beta
11
11
12 news
12 news
13 ----
13 ----
14
14
15 - implemented #47 repository groups
15 - implemented #47 repository groups
16 - implemented #89 Can setup google analytics code from settings menu
16 - implemented #89 Can setup google analytics code from settings menu
17 - implemented #91 added nicer looking archive urls with more download options
17 - implemented #91 added nicer looking archive urls with more download options
18 like tags, branches
18 like tags, branches
19 - implemented #44 into file browsing, and added follow branch option
19 - implemented #44 into file browsing, and added follow branch option
20 - implemented #84 downloads can be enabled/disabled for each repository
20 - implemented #84 downloads can be enabled/disabled for each repository
21 - anonymous repository can be cloned without having to pass default:default
21 - anonymous repository can be cloned without having to pass default:default
22 into clone url
22 into clone url
23 - fixed #90 whoosh indexer can index chooses repositories passed in command
23 - fixed #90 whoosh indexer can index chooses repositories passed in command
24 line
24 line
25 - extended journal with day aggregates and paging
25 - extended journal with day aggregates and paging
26 - implemented #107 source code lines highlight ranges
26 - implemented #107 source code lines highlight ranges
27 - implemented #93 customizable changelog on combined revision ranges -
27 - implemented #93 customizable changelog on combined revision ranges -
28 equivalent of githubs compare view
28 equivalent of githubs compare view
29 - implemented #108 extended and more powerful LDAP configuration
29 - implemented #108 extended and more powerful LDAP configuration
30 - implemented #56 users groups
30 - implemented #56 users groups
31 - major code rewrites optimized codes for speed and memory usage
31 - major code rewrites optimized codes for speed and memory usage
32 - raw and diff downloads are now in git format
32 - raw and diff downloads are now in git format
33 - setup command checks for write access to given path
33 - setup command checks for write access to given path
34 - fixed many issues with international characters and unicode. It uses utf8
34 - fixed many issues with international characters and unicode. It uses utf8
35 decode with replace to provide less errors even with non utf8 encoded strings
35 decode with replace to provide less errors even with non utf8 encoded strings
36 - #125 added API KEY access to feeds
36 - #125 added API KEY access to feeds
37 - #109 Repository can be created from external Mercurial link (aka. remote
37 - #109 Repository can be created from external Mercurial link (aka. remote
38 repository, and manually updated (via pull) from admin panel
38 repository, and manually updated (via pull) from admin panel
39 - beta git support - push/pull server + basic view for git repos
39 - beta git support - push/pull server + basic view for git repos
40 - added followers page and forks page
40 - added followers page and forks page
41 - server side file edition with commits powered by codemirror
41 - server side file edition with commits powered by codemirror
42 - #111 file browser file finder, quick lookup files on whole file tree
42 - #111 file browser file finder, quick lookup files on whole file tree
43 - added quick login sliding menu into main page
43 - added quick login sliding menu into main page
44 - changelog uses lazy loading of affected files details, in some scenarios
44 - changelog uses lazy loading of affected files details, in some scenarios
45 this can improve speed of changelog page dramatically especially for
45 this can improve speed of changelog page dramatically especially for
46 larger repositories.
46 larger repositories.
47 - implements #214 added support for downloading subrepos in download menu.
47 - implements #214 added support for downloading subrepos in download menu.
48 - Added basic API for direct operations on rhodecode via JSON
48 - Added basic API for direct operations on rhodecode via JSON
49 - Implemented advanced hook management
49
50
50 fixes
51 fixes
51 -----
52 -----
52
53
53 - fixed file browser bug, when switching into given form revision the url was
54 - fixed file browser bug, when switching into given form revision the url was
54 not changing
55 not changing
55 - fixed propagation to error controller on simplehg and simplegit middlewares
56 - fixed propagation to error controller on simplehg and simplegit middlewares
56 - fixed error when trying to make a download on empty repository
57 - fixed error when trying to make a download on empty repository
57 - fixed problem with '[' chars in commit messages in journal
58 - fixed problem with '[' chars in commit messages in journal
58 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
59 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
59 - journal fork fixes
60 - journal fork fixes
60 - removed issue with space inside renamed repository after deletion
61 - removed issue with space inside renamed repository after deletion
61 - fixed strange issue on formencode imports
62 - fixed strange issue on formencode imports
62 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
63 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
63 - #150 fixes for errors on repositories mapped in db but corrupted in
64 - #150 fixes for errors on repositories mapped in db but corrupted in
64 filesystem
65 filesystem
65 - fixed problem with ascendant characters in realm #181
66 - fixed problem with ascendant characters in realm #181
66 - fixed problem with sqlite file based database connection pool
67 - fixed problem with sqlite file based database connection pool
67 - whoosh indexer and code stats share the same dynamic extensions map
68 - whoosh indexer and code stats share the same dynamic extensions map
68 - fixes #188 - relationship delete of repo_to_perm entry on user removal
69 - fixes #188 - relationship delete of repo_to_perm entry on user removal
69 - fixes issue #189 Trending source files shows "show more" when no more exist
70 - fixes issue #189 Trending source files shows "show more" when no more exist
70 - fixes issue #197 Relative paths for pidlocks
71 - fixes issue #197 Relative paths for pidlocks
71 - fixes issue #198 password will require only 3 chars now for login form
72 - fixes issue #198 password will require only 3 chars now for login form
72 - fixes issue #199 wrong redirection for non admin users after creating a repository
73 - fixes issue #199 wrong redirection for non admin users after creating a repository
73 - fixes issues #202, bad db constraint made impossible to attach same group
74 - fixes issues #202, bad db constraint made impossible to attach same group
74 more than one time. Affects only mysql/postgres
75 more than one time. Affects only mysql/postgres
75 - fixes #218 os.kill patch for windows was missing sig param
76 - fixes #218 os.kill patch for windows was missing sig param
76 - improved rendering of dag (they are not trimmed anymore when number of
77 - improved rendering of dag (they are not trimmed anymore when number of
77 heads exceeds 5)
78 heads exceeds 5)
78
79
79 1.1.8 (**2011-04-12**)
80 1.1.8 (**2011-04-12**)
80 ======================
81 ======================
81
82
82 news
83 news
83 ----
84 ----
84
85
85 - improved windows support
86 - improved windows support
86
87
87 fixes
88 fixes
88 -----
89 -----
89
90
90 - fixed #140 freeze of python dateutil library, since new version is python2.x
91 - fixed #140 freeze of python dateutil library, since new version is python2.x
91 incompatible
92 incompatible
92 - setup-app will check for write permission in given path
93 - setup-app will check for write permission in given path
93 - cleaned up license info issue #149
94 - cleaned up license info issue #149
94 - fixes for issues #137,#116 and problems with unicode and accented characters.
95 - fixes for issues #137,#116 and problems with unicode and accented characters.
95 - fixes crashes on gravatar, when passed in email as unicode
96 - fixes crashes on gravatar, when passed in email as unicode
96 - fixed tooltip flickering problems
97 - fixed tooltip flickering problems
97 - fixed came_from redirection on windows
98 - fixed came_from redirection on windows
98 - fixed logging modules, and sql formatters
99 - fixed logging modules, and sql formatters
99 - windows fixes for os.kill issue #133
100 - windows fixes for os.kill issue #133
100 - fixes path splitting for windows issues #148
101 - fixes path splitting for windows issues #148
101 - fixed issue #143 wrong import on migration to 1.1.X
102 - fixed issue #143 wrong import on migration to 1.1.X
102 - fixed problems with displaying binary files, thanks to Thomas Waldmann
103 - fixed problems with displaying binary files, thanks to Thomas Waldmann
103 - removed name from archive files since it's breaking ui for long repo names
104 - removed name from archive files since it's breaking ui for long repo names
104 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
105 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
105 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
106 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
106 Thomas Waldmann
107 Thomas Waldmann
107 - fixed issue #166 summary pager was skipping 10 revisions on second page
108 - fixed issue #166 summary pager was skipping 10 revisions on second page
108
109
109
110
110 1.1.7 (**2011-03-23**)
111 1.1.7 (**2011-03-23**)
111 ======================
112 ======================
112
113
113 news
114 news
114 ----
115 ----
115
116
116 fixes
117 fixes
117 -----
118 -----
118
119
119 - fixed (again) #136 installation support for FreeBSD
120 - fixed (again) #136 installation support for FreeBSD
120
121
121
122
122 1.1.6 (**2011-03-21**)
123 1.1.6 (**2011-03-21**)
123 ======================
124 ======================
124
125
125 news
126 news
126 ----
127 ----
127
128
128 fixes
129 fixes
129 -----
130 -----
130
131
131 - fixed #136 installation support for FreeBSD
132 - fixed #136 installation support for FreeBSD
132 - RhodeCode will check for python version during installation
133 - RhodeCode will check for python version during installation
133
134
134 1.1.5 (**2011-03-17**)
135 1.1.5 (**2011-03-17**)
135 ======================
136 ======================
136
137
137 news
138 news
138 ----
139 ----
139
140
140 - basic windows support, by exchanging pybcrypt into sha256 for windows only
141 - basic windows support, by exchanging pybcrypt into sha256 for windows only
141 highly inspired by idea of mantis406
142 highly inspired by idea of mantis406
142
143
143 fixes
144 fixes
144 -----
145 -----
145
146
146 - fixed sorting by author in main page
147 - fixed sorting by author in main page
147 - fixed crashes with diffs on binary files
148 - fixed crashes with diffs on binary files
148 - fixed #131 problem with boolean values for LDAP
149 - fixed #131 problem with boolean values for LDAP
149 - fixed #122 mysql problems thanks to striker69
150 - fixed #122 mysql problems thanks to striker69
150 - fixed problem with errors on calling raw/raw_files/annotate functions
151 - fixed problem with errors on calling raw/raw_files/annotate functions
151 with unknown revisions
152 with unknown revisions
152 - fixed returned rawfiles attachment names with international character
153 - fixed returned rawfiles attachment names with international character
153 - cleaned out docs, big thanks to Jason Harris
154 - cleaned out docs, big thanks to Jason Harris
154
155
155 1.1.4 (**2011-02-19**)
156 1.1.4 (**2011-02-19**)
156 ======================
157 ======================
157
158
158 news
159 news
159 ----
160 ----
160
161
161 fixes
162 fixes
162 -----
163 -----
163
164
164 - fixed formencode import problem on settings page, that caused server crash
165 - fixed formencode import problem on settings page, that caused server crash
165 when that page was accessed as first after server start
166 when that page was accessed as first after server start
166 - journal fixes
167 - journal fixes
167 - fixed option to access repository just by entering http://server/<repo_name>
168 - fixed option to access repository just by entering http://server/<repo_name>
168
169
169 1.1.3 (**2011-02-16**)
170 1.1.3 (**2011-02-16**)
170 ======================
171 ======================
171
172
172 news
173 news
173 ----
174 ----
174
175
175 - implemented #102 allowing the '.' character in username
176 - implemented #102 allowing the '.' character in username
176 - added option to access repository just by entering http://server/<repo_name>
177 - added option to access repository just by entering http://server/<repo_name>
177 - celery task ignores result for better performance
178 - celery task ignores result for better performance
178
179
179 fixes
180 fixes
180 -----
181 -----
181
182
182 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
183 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
183 apollo13 and Johan Walles
184 apollo13 and Johan Walles
184 - small fixes in journal
185 - small fixes in journal
185 - fixed problems with getting setting for celery from .ini files
186 - fixed problems with getting setting for celery from .ini files
186 - registration, password reset and login boxes share the same title as main
187 - registration, password reset and login boxes share the same title as main
187 application now
188 application now
188 - fixed #113: to high permissions to fork repository
189 - fixed #113: to high permissions to fork repository
189 - fixed problem with '[' chars in commit messages in journal
190 - fixed problem with '[' chars in commit messages in journal
190 - removed issue with space inside renamed repository after deletion
191 - removed issue with space inside renamed repository after deletion
191 - db transaction fixes when filesystem repository creation failed
192 - db transaction fixes when filesystem repository creation failed
192 - fixed #106 relation issues on databases different than sqlite
193 - fixed #106 relation issues on databases different than sqlite
193 - fixed static files paths links to use of url() method
194 - fixed static files paths links to use of url() method
194
195
195 1.1.2 (**2011-01-12**)
196 1.1.2 (**2011-01-12**)
196 ======================
197 ======================
197
198
198 news
199 news
199 ----
200 ----
200
201
201
202
202 fixes
203 fixes
203 -----
204 -----
204
205
205 - fixes #98 protection against float division of percentage stats
206 - fixes #98 protection against float division of percentage stats
206 - fixed graph bug
207 - fixed graph bug
207 - forced webhelpers version since it was making troubles during installation
208 - forced webhelpers version since it was making troubles during installation
208
209
209 1.1.1 (**2011-01-06**)
210 1.1.1 (**2011-01-06**)
210 ======================
211 ======================
211
212
212 news
213 news
213 ----
214 ----
214
215
215 - added force https option into ini files for easier https usage (no need to
216 - added force https option into ini files for easier https usage (no need to
216 set server headers with this options)
217 set server headers with this options)
217 - small css updates
218 - small css updates
218
219
219 fixes
220 fixes
220 -----
221 -----
221
222
222 - fixed #96 redirect loop on files view on repositories without changesets
223 - fixed #96 redirect loop on files view on repositories without changesets
223 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
224 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
224 and server crashed with errors
225 and server crashed with errors
225 - fixed large tooltips problems on main page
226 - fixed large tooltips problems on main page
226 - fixed #92 whoosh indexer is more error proof
227 - fixed #92 whoosh indexer is more error proof
227
228
228 1.1.0 (**2010-12-18**)
229 1.1.0 (**2010-12-18**)
229 ======================
230 ======================
230
231
231 news
232 news
232 ----
233 ----
233
234
234 - rewrite of internals for vcs >=0.1.10
235 - rewrite of internals for vcs >=0.1.10
235 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
236 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
236 with older clients
237 with older clients
237 - anonymous access, authentication via ldap
238 - anonymous access, authentication via ldap
238 - performance upgrade for cached repos list - each repository has it's own
239 - performance upgrade for cached repos list - each repository has it's own
239 cache that's invalidated when needed.
240 cache that's invalidated when needed.
240 - performance upgrades on repositories with large amount of commits (20K+)
241 - performance upgrades on repositories with large amount of commits (20K+)
241 - main page quick filter for filtering repositories
242 - main page quick filter for filtering repositories
242 - user dashboards with ability to follow chosen repositories actions
243 - user dashboards with ability to follow chosen repositories actions
243 - sends email to admin on new user registration
244 - sends email to admin on new user registration
244 - added cache/statistics reset options into repository settings
245 - added cache/statistics reset options into repository settings
245 - more detailed action logger (based on hooks) with pushed changesets lists
246 - more detailed action logger (based on hooks) with pushed changesets lists
246 and options to disable those hooks from admin panel
247 and options to disable those hooks from admin panel
247 - introduced new enhanced changelog for merges that shows more accurate results
248 - introduced new enhanced changelog for merges that shows more accurate results
248 - new improved and faster code stats (based on pygments lexers mapping tables,
249 - new improved and faster code stats (based on pygments lexers mapping tables,
249 showing up to 10 trending sources for each repository. Additionally stats
250 showing up to 10 trending sources for each repository. Additionally stats
250 can be disabled in repository settings.
251 can be disabled in repository settings.
251 - gui optimizations, fixed application width to 1024px
252 - gui optimizations, fixed application width to 1024px
252 - added cut off (for large files/changesets) limit into config files
253 - added cut off (for large files/changesets) limit into config files
253 - whoosh, celeryd, upgrade moved to paster command
254 - whoosh, celeryd, upgrade moved to paster command
254 - other than sqlite database backends can be used
255 - other than sqlite database backends can be used
255
256
256 fixes
257 fixes
257 -----
258 -----
258
259
259 - fixes #61 forked repo was showing only after cache expired
260 - fixes #61 forked repo was showing only after cache expired
260 - fixes #76 no confirmation on user deletes
261 - fixes #76 no confirmation on user deletes
261 - fixes #66 Name field misspelled
262 - fixes #66 Name field misspelled
262 - fixes #72 block user removal when he owns repositories
263 - fixes #72 block user removal when he owns repositories
263 - fixes #69 added password confirmation fields
264 - fixes #69 added password confirmation fields
264 - fixes #87 RhodeCode crashes occasionally on updating repository owner
265 - fixes #87 RhodeCode crashes occasionally on updating repository owner
265 - fixes #82 broken annotations on files with more than 1 blank line at the end
266 - fixes #82 broken annotations on files with more than 1 blank line at the end
266 - a lot of fixes and tweaks for file browser
267 - a lot of fixes and tweaks for file browser
267 - fixed detached session issues
268 - fixed detached session issues
268 - fixed when user had no repos he would see all repos listed in my account
269 - fixed when user had no repos he would see all repos listed in my account
269 - fixed ui() instance bug when global hgrc settings was loaded for server
270 - fixed ui() instance bug when global hgrc settings was loaded for server
270 instance and all hgrc options were merged with our db ui() object
271 instance and all hgrc options were merged with our db ui() object
271 - numerous small bugfixes
272 - numerous small bugfixes
272
273
273 (special thanks for TkSoh for detailed feedback)
274 (special thanks for TkSoh for detailed feedback)
274
275
275
276
276 1.0.2 (**2010-11-12**)
277 1.0.2 (**2010-11-12**)
277 ======================
278 ======================
278
279
279 news
280 news
280 ----
281 ----
281
282
282 - tested under python2.7
283 - tested under python2.7
283 - bumped sqlalchemy and celery versions
284 - bumped sqlalchemy and celery versions
284
285
285 fixes
286 fixes
286 -----
287 -----
287
288
288 - fixed #59 missing graph.js
289 - fixed #59 missing graph.js
289 - fixed repo_size crash when repository had broken symlinks
290 - fixed repo_size crash when repository had broken symlinks
290 - fixed python2.5 crashes.
291 - fixed python2.5 crashes.
291
292
292
293
293 1.0.1 (**2010-11-10**)
294 1.0.1 (**2010-11-10**)
294 ======================
295 ======================
295
296
296 news
297 news
297 ----
298 ----
298
299
299 - small css updated
300 - small css updated
300
301
301 fixes
302 fixes
302 -----
303 -----
303
304
304 - fixed #53 python2.5 incompatible enumerate calls
305 - fixed #53 python2.5 incompatible enumerate calls
305 - fixed #52 disable mercurial extension for web
306 - fixed #52 disable mercurial extension for web
306 - fixed #51 deleting repositories don't delete it's dependent objects
307 - fixed #51 deleting repositories don't delete it's dependent objects
307
308
308
309
309 1.0.0 (**2010-11-02**)
310 1.0.0 (**2010-11-02**)
310 ======================
311 ======================
311
312
312 - security bugfix simplehg wasn't checking for permissions on commands
313 - security bugfix simplehg wasn't checking for permissions on commands
313 other than pull or push.
314 other than pull or push.
314 - fixed doubled messages after push or pull in admin journal
315 - fixed doubled messages after push or pull in admin journal
315 - templating and css corrections, fixed repo switcher on chrome, updated titles
316 - templating and css corrections, fixed repo switcher on chrome, updated titles
316 - admin menu accessible from options menu on repository view
317 - admin menu accessible from options menu on repository view
317 - permissions cached queries
318 - permissions cached queries
318
319
319 1.0.0rc4 (**2010-10-12**)
320 1.0.0rc4 (**2010-10-12**)
320 ==========================
321 ==========================
321
322
322 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
323 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
323 - removed cache_manager settings from sqlalchemy meta
324 - removed cache_manager settings from sqlalchemy meta
324 - added sqlalchemy cache settings to ini files
325 - added sqlalchemy cache settings to ini files
325 - validated password length and added second try of failure on paster setup-app
326 - validated password length and added second try of failure on paster setup-app
326 - fixed setup database destroy prompt even when there was no db
327 - fixed setup database destroy prompt even when there was no db
327
328
328
329
329 1.0.0rc3 (**2010-10-11**)
330 1.0.0rc3 (**2010-10-11**)
330 =========================
331 =========================
331
332
332 - fixed i18n during installation.
333 - fixed i18n during installation.
333
334
334 1.0.0rc2 (**2010-10-11**)
335 1.0.0rc2 (**2010-10-11**)
335 =========================
336 =========================
336
337
337 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
338 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
338 occure. After vcs is fixed it'll be put back again.
339 occure. After vcs is fixed it'll be put back again.
339 - templating/css rewrites, optimized css. No newline at end of file
340 - templating/css rewrites, optimized css.
@@ -1,557 +1,573 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
10 First, you will need to create a RhodeCode configuration file. Run the
11 following command to do this::
11 following 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
16 configuration file contains the various settings for RhodeCode, e.g proxy
17 port, email settings, usage of static files, cache, celery settings and
17 port, email settings, usage of static files, cache, celery settings and
18 logging.
18 logging.
19
19
20
20
21 Next, you need to create the databases used by RhodeCode. I recommend that you
21 Next, you need to create the databases used by RhodeCode. I recommend that you
22 use sqlite (default) or postgresql. If you choose a database other than the
22 use sqlite (default) or postgresql. If you choose a database other than the
23 default ensure you properly adjust the db url in your production.ini
23 default ensure you properly adjust the db url in your production.ini
24 configuration file to use this other database. Create the databases by running
24 configuration file to use this other database. Create the databases by running
25 the following command::
25 the following command::
26
26
27 paster setup-app production.ini
27 paster setup-app production.ini
28
28
29 This will prompt you for a "root" path. This "root" path is the location where
29 This will prompt you for a "root" path. This "root" path is the location where
30 RhodeCode will store all of its repositories on the current machine. After
30 RhodeCode will store all of its repositories on the current machine. After
31 entering this "root" path ``setup-app`` will also prompt you for a username
31 entering this "root" path ``setup-app`` will also prompt you for a username
32 and password for the initial admin account which ``setup-app`` sets up for you.
32 and password for the initial admin account which ``setup-app`` sets up for you.
33
33
34 - The ``setup-app`` command will create all of the needed tables and an admin
34 - The ``setup-app`` command will create all of the needed tables and an admin
35 account. When choosing a root path you can either use a new empty location,
35 account. When choosing a root path you can either use a new empty location,
36 or a location which already contains existing repositories. If you choose a
36 or a location which already contains existing repositories. If you choose a
37 location which contains existing repositories RhodeCode will simply add all
37 location which contains existing repositories RhodeCode will simply add all
38 of the repositories at the chosen location to it's database. (Note: make
38 of the repositories at the chosen location to it's database. (Note: make
39 sure you specify the correct path to the root).
39 sure you specify the correct path to the root).
40 - Note: the given path for mercurial_ repositories **must** be write accessible
40 - Note: the given path for mercurial_ repositories **must** be write accessible
41 for the application. It's very important since the RhodeCode web interface
41 for the application. It's very important since the RhodeCode web interface
42 will work without write access, but when trying to do a push it will
42 will work without write access, but when trying to do a push it will
43 eventually fail with permission denied errors unless it has write access.
43 eventually fail with permission denied errors unless it has write access.
44
44
45 You are now ready to use RhodeCode, to run it simply execute::
45 You are now ready to use RhodeCode, to run it simply execute::
46
46
47 paster serve production.ini
47 paster serve production.ini
48
48
49 - This command runs the RhodeCode server. The web app should be available at the
49 - This command runs the RhodeCode server. The web app should be available at the
50 127.0.0.1:5000. This ip and port is configurable via the production.ini
50 127.0.0.1:5000. This ip and port is configurable via the production.ini
51 file created in previous step
51 file created in previous step
52 - Use the admin account you created above when running ``setup-app`` to login
52 - Use the admin account you created above when running ``setup-app`` to login
53 to the web app.
53 to the web app.
54 - The default permissions on each repository is read, and the owner is admin.
54 - The default permissions on each repository is read, and the owner is admin.
55 Remember to update these if needed.
55 Remember to update these if needed.
56 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
56 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
57 well as edit more advanced options on users and repositories
57 well as edit more advanced options on users and repositories
58
58
59 Try copying your own mercurial repository into the "root" directory you are
59 Try copying your own mercurial repository into the "root" directory you are
60 using, then from within the RhodeCode web application choose Admin >
60 using, then from within the RhodeCode web application choose Admin >
61 repositories. Then choose Add New Repository. Add the repository you copied
61 repositories. Then choose Add New Repository. Add the repository you copied
62 into the root. Test that you can browse your repository from within RhodeCode
62 into the root. Test that you can browse your repository from within RhodeCode
63 and then try cloning your repository from RhodeCode with::
63 and then try cloning your repository from RhodeCode with::
64
64
65 hg clone http://127.0.0.1:5000/<repository name>
65 hg clone http://127.0.0.1:5000/<repository name>
66
66
67 where *repository name* is replaced by the name of your repository.
67 where *repository name* is replaced by the name of your repository.
68
68
69 Using RhodeCode with SSH
69 Using RhodeCode with SSH
70 ------------------------
70 ------------------------
71
71
72 RhodeCode currently only hosts repositories using http and https. (The addition
72 RhodeCode currently only hosts repositories using http and https. (The addition
73 of ssh hosting is a planned future feature.) However you can easily use ssh in
73 of ssh hosting is a planned future feature.) However you can easily use ssh in
74 parallel with RhodeCode. (Repository access via ssh is a standard "out of
74 parallel with RhodeCode. (Repository access via ssh is a standard "out of
75 the box" feature of mercurial_ and you can use this to access any of the
75 the box" feature of mercurial_ and you can use this to access any of the
76 repositories that RhodeCode is hosting. See PublishingRepositories_)
76 repositories that RhodeCode is hosting. See PublishingRepositories_)
77
77
78 RhodeCode repository structures are kept in directories with the same name
78 RhodeCode repository structures are kept in directories with the same name
79 as the project. When using repository groups, each group is a subdirectory.
79 as the project. When using repository groups, each group is a subdirectory.
80 This allows you to easily use ssh for accessing repositories.
80 This allows you to easily use ssh for accessing repositories.
81
81
82 In order to use ssh you need to make sure that your web-server and the users
82 In order to use ssh you need to make sure that your web-server and the users
83 login accounts have the correct permissions set on the appropriate directories.
83 login accounts have the correct permissions set on the appropriate directories.
84 (Note that these permissions are independent of any permissions you have set up
84 (Note that these permissions are independent of any permissions you have set up
85 using the RhodeCode web interface.)
85 using the RhodeCode web interface.)
86
86
87 If your main directory (the same as set in RhodeCode settings) is for example
87 If your main directory (the same as set in RhodeCode settings) is for example
88 set to **/home/hg** and the repository you are using is named `rhodecode`, then
88 set to **/home/hg** and the repository you are using is named `rhodecode`, then
89 to clone via ssh you should run::
89 to clone via ssh you should run::
90
90
91 hg clone ssh://user@server.com/home/hg/rhodecode
91 hg clone ssh://user@server.com/home/hg/rhodecode
92
92
93 Using other external tools such as mercurial-server_ or using ssh key based
93 Using other external tools such as mercurial-server_ or using ssh key based
94 authentication is fully supported.
94 authentication is fully supported.
95
95
96 Note: In an advanced setup, in order for your ssh access to use the same
96 Note: In an advanced setup, in order for your ssh access to use the same
97 permissions as set up via the RhodeCode web interface, you can create an
97 permissions as set up via the RhodeCode web interface, you can create an
98 authentication hook to connect to the rhodecode db and runs check functions for
98 authentication hook to connect to the rhodecode db and runs check functions for
99 permissions against that.
99 permissions against that.
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. You may specify the location of the
106 file that stores the location of the index. You may specify the location of the
107 repositories (`--repo-location`). If not specified, this value is retrieved
107 repositories (`--repo-location`). If not specified, this value is retrieved
108 from the RhodeCode database. This was required prior to 1.2. Starting from
108 from the RhodeCode database. This was required prior to 1.2. Starting from
109 version 1.2 it is also possible to specify a comma separated list of
109 version 1.2 it is also possible to specify a comma separated list of
110 repositories (`--index-only`) to build index only on chooses repositories
110 repositories (`--index-only`) to build index only on chooses repositories
111 skipping any other found in repos location
111 skipping any other found in repos location
112
112
113 You may optionally pass the option `-f` to enable a full index rebuild. Without
113 You may optionally pass the option `-f` to enable a full index rebuild. Without
114 the `-f` option, indexing will run always in "incremental" mode.
114 the `-f` option, indexing will run always in "incremental" mode.
115
115
116 For an incremental index build use::
116 For an incremental index build use::
117
117
118 paster make-index production.ini
118 paster make-index production.ini
119
119
120 For a full index rebuild use::
120 For a full index rebuild use::
121
121
122 paster make-index production.ini -f
122 paster make-index production.ini -f
123
123
124
124
125 building index just for chosen repositories is possible with such command::
125 building index just for chosen repositories is possible with such command::
126
126
127 paster make-index production.ini --index-only=vcs,rhodecode
127 paster make-index production.ini --index-only=vcs,rhodecode
128
128
129
129
130 In order to do periodical index builds and keep your index always up to date.
130 In order to do periodical index builds and keep your index always up to date.
131 It's recommended to do a crontab entry for incremental indexing.
131 It's recommended to do a crontab entry for incremental indexing.
132 An example entry might look like this::
132 An example entry might look like this::
133
133
134 /path/to/python/bin/paster make-index /path/to/rhodecode/production.ini
134 /path/to/python/bin/paster make-index /path/to/rhodecode/production.ini
135
135
136 When using incremental mode (the default) whoosh will check the last
136 When using incremental mode (the default) whoosh will check the last
137 modification date of each file and add it to be reindexed if a newer file is
137 modification date of each file and add it to be reindexed if a newer file is
138 available. The indexing daemon checks for any removed files and removes them
138 available. The indexing daemon checks for any removed files and removes them
139 from index.
139 from index.
140
140
141 If you want to rebuild index from scratch, you can use the `-f` flag as above,
141 If you want to rebuild index from scratch, you can use the `-f` flag as above,
142 or in the admin panel you can check `build from scratch` flag.
142 or in the admin panel you can check `build from scratch` flag.
143
143
144
144
145 Setting up LDAP support
145 Setting up LDAP support
146 -----------------------
146 -----------------------
147
147
148 RhodeCode starting from version 1.1 supports ldap authentication. In order
148 RhodeCode starting from version 1.1 supports ldap authentication. In order
149 to use LDAP, you have to install the python-ldap_ package. This package is
149 to use LDAP, you have to install the python-ldap_ package. This package is
150 available via pypi, so you can install it by running
150 available via pypi, so you can install it by running
151
151
152 using easy_install::
152 using easy_install::
153
153
154 easy_install python-ldap
154 easy_install python-ldap
155
155
156 using pip::
156 using pip::
157
157
158 pip install python-ldap
158 pip install python-ldap
159
159
160 .. note::
160 .. note::
161 python-ldap requires some certain libs on your system, so before installing
161 python-ldap requires some certain libs on your system, so before installing
162 it check that you have at least `openldap`, and `sasl` libraries.
162 it check that you have at least `openldap`, and `sasl` libraries.
163
163
164 LDAP settings are located in admin->ldap section,
164 LDAP settings are located in admin->ldap section,
165
165
166 Here's a typical ldap setup::
166 Here's a typical ldap setup::
167
167
168 Connection settings
168 Connection settings
169 Enable LDAP = checked
169 Enable LDAP = checked
170 Host = host.example.org
170 Host = host.example.org
171 Port = 389
171 Port = 389
172 Account = <account>
172 Account = <account>
173 Password = <password>
173 Password = <password>
174 Connection Security = LDAPS connection
174 Connection Security = LDAPS connection
175 Certificate Checks = DEMAND
175 Certificate Checks = DEMAND
176
176
177 Search settings
177 Search settings
178 Base DN = CN=users,DC=host,DC=example,DC=org
178 Base DN = CN=users,DC=host,DC=example,DC=org
179 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
179 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
180 LDAP Search Scope = SUBTREE
180 LDAP Search Scope = SUBTREE
181
181
182 Attribute mappings
182 Attribute mappings
183 Login Attribute = uid
183 Login Attribute = uid
184 First Name Attribute = firstName
184 First Name Attribute = firstName
185 Last Name Attribute = lastName
185 Last Name Attribute = lastName
186 E-mail Attribute = mail
186 E-mail Attribute = mail
187
187
188 .. _enable_ldap:
188 .. _enable_ldap:
189
189
190 Enable LDAP : required
190 Enable LDAP : required
191 Whether to use LDAP for authenticating users.
191 Whether to use LDAP for authenticating users.
192
192
193 .. _ldap_host:
193 .. _ldap_host:
194
194
195 Host : required
195 Host : required
196 LDAP server hostname or IP address.
196 LDAP server hostname or IP address.
197
197
198 .. _Port:
198 .. _Port:
199
199
200 Port : required
200 Port : required
201 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
201 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
202
202
203 .. _ldap_account:
203 .. _ldap_account:
204
204
205 Account : optional
205 Account : optional
206 Only required if the LDAP server does not allow anonymous browsing of
206 Only required if the LDAP server does not allow anonymous browsing of
207 records. This should be a special account for record browsing. This
207 records. This should be a special account for record browsing. This
208 will require `LDAP Password`_ below.
208 will require `LDAP Password`_ below.
209
209
210 .. _LDAP Password:
210 .. _LDAP Password:
211
211
212 Password : optional
212 Password : optional
213 Only required if the LDAP server does not allow anonymous browsing of
213 Only required if the LDAP server does not allow anonymous browsing of
214 records.
214 records.
215
215
216 .. _Enable LDAPS:
216 .. _Enable LDAPS:
217
217
218 Connection Security : required
218 Connection Security : required
219 Defines the connection to LDAP server
219 Defines the connection to LDAP server
220
220
221 No encryption
221 No encryption
222 Plain non encrypted connection
222 Plain non encrypted connection
223
223
224 LDAPS connection
224 LDAPS connection
225 Enable ldaps connection. It will likely require `Port`_ to be set to
225 Enable ldaps connection. It will likely require `Port`_ to be set to
226 a different value (standard LDAPS port is 636). When LDAPS is enabled
226 a different value (standard LDAPS port is 636). When LDAPS is enabled
227 then `Certificate Checks`_ is required.
227 then `Certificate Checks`_ is required.
228
228
229 START_TLS on LDAP connection
229 START_TLS on LDAP connection
230 START TLS connection
230 START TLS connection
231
231
232 .. _Certificate Checks:
232 .. _Certificate Checks:
233
233
234 Certificate Checks : optional
234 Certificate Checks : optional
235 How SSL certificates verification is handled - this is only useful when
235 How SSL certificates verification is handled - this is only useful when
236 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
236 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
237 while the other options are susceptible to man-in-the-middle attacks. SSL
237 while the other options are susceptible to man-in-the-middle attacks. SSL
238 certificates can be installed to /etc/openldap/cacerts so that the
238 certificates can be installed to /etc/openldap/cacerts so that the
239 DEMAND or HARD options can be used with self-signed certificates or
239 DEMAND or HARD options can be used with self-signed certificates or
240 certificates that do not have traceable certificates of authority.
240 certificates that do not have traceable certificates of authority.
241
241
242 NEVER
242 NEVER
243 A serve certificate will never be requested or checked.
243 A serve certificate will never be requested or checked.
244
244
245 ALLOW
245 ALLOW
246 A server certificate is requested. Failure to provide a
246 A server certificate is requested. Failure to provide a
247 certificate or providing a bad certificate will not terminate the
247 certificate or providing a bad certificate will not terminate the
248 session.
248 session.
249
249
250 TRY
250 TRY
251 A server certificate is requested. Failure to provide a
251 A server certificate is requested. Failure to provide a
252 certificate does not halt the session; providing a bad certificate
252 certificate does not halt the session; providing a bad certificate
253 halts the session.
253 halts the session.
254
254
255 DEMAND
255 DEMAND
256 A server certificate is requested and must be provided and
256 A server certificate is requested and must be provided and
257 authenticated for the session to proceed.
257 authenticated for the session to proceed.
258
258
259 HARD
259 HARD
260 The same as DEMAND.
260 The same as DEMAND.
261
261
262 .. _Base DN:
262 .. _Base DN:
263
263
264 Base DN : required
264 Base DN : required
265 The Distinguished Name (DN) where searches for users will be performed.
265 The Distinguished Name (DN) where searches for users will be performed.
266 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
266 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
267
267
268 .. _LDAP Filter:
268 .. _LDAP Filter:
269
269
270 LDAP Filter : optional
270 LDAP Filter : optional
271 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
271 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
272 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
272 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
273 which LDAP objects are identified as representing Users for
273 which LDAP objects are identified as representing Users for
274 authentication. The filter is augmented by `Login Attribute`_ below.
274 authentication. The filter is augmented by `Login Attribute`_ below.
275 This can commonly be left blank.
275 This can commonly be left blank.
276
276
277 .. _LDAP Search Scope:
277 .. _LDAP Search Scope:
278
278
279 LDAP Search Scope : required
279 LDAP Search Scope : required
280 This limits how far LDAP will search for a matching object.
280 This limits how far LDAP will search for a matching object.
281
281
282 BASE
282 BASE
283 Only allows searching of `Base DN`_ and is usually not what you
283 Only allows searching of `Base DN`_ and is usually not what you
284 want.
284 want.
285
285
286 ONELEVEL
286 ONELEVEL
287 Searches all entries under `Base DN`_, but not Base DN itself.
287 Searches all entries under `Base DN`_, but not Base DN itself.
288
288
289 SUBTREE
289 SUBTREE
290 Searches all entries below `Base DN`_, but not Base DN itself.
290 Searches all entries below `Base DN`_, but not Base DN itself.
291 When using SUBTREE `LDAP Filter`_ is useful to limit object
291 When using SUBTREE `LDAP Filter`_ is useful to limit object
292 location.
292 location.
293
293
294 .. _Login Attribute:
294 .. _Login Attribute:
295
295
296 Login Attribute : required
296 Login Attribute : required
297 The LDAP record attribute that will be matched as the USERNAME or
297 The LDAP record attribute that will be matched as the USERNAME or
298 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
298 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
299 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
299 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
300 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
300 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
301 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
301 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
302 ::
302 ::
303
303
304 (&(LDAPFILTER)(uid=jsmith))
304 (&(LDAPFILTER)(uid=jsmith))
305
305
306 .. _ldap_attr_firstname:
306 .. _ldap_attr_firstname:
307
307
308 First Name Attribute : required
308 First Name Attribute : required
309 The LDAP record attribute which represents the user's first name.
309 The LDAP record attribute which represents the user's first name.
310
310
311 .. _ldap_attr_lastname:
311 .. _ldap_attr_lastname:
312
312
313 Last Name Attribute : required
313 Last Name Attribute : required
314 The LDAP record attribute which represents the user's last name.
314 The LDAP record attribute which represents the user's last name.
315
315
316 .. _ldap_attr_email:
316 .. _ldap_attr_email:
317
317
318 Email Attribute : required
318 Email Attribute : required
319 The LDAP record attribute which represents the user's email address.
319 The LDAP record attribute which represents the user's email address.
320
320
321 If all data are entered correctly, and python-ldap_ is properly installed
321 If all data are entered correctly, and python-ldap_ is properly installed
322 users should be granted access to RhodeCode with ldap accounts. At this
322 users should be granted access to RhodeCode with ldap accounts. At this
323 time user information is copied from LDAP into the RhodeCode user database.
323 time user information is copied from LDAP into the RhodeCode user database.
324 This means that updates of an LDAP user object may not be reflected as a
324 This means that updates of an LDAP user object may not be reflected as a
325 user update in RhodeCode.
325 user update in RhodeCode.
326
326
327 If You have problems with LDAP access and believe You entered correct
327 If You have problems with LDAP access and believe You entered correct
328 information check out the RhodeCode logs, any error messages sent from LDAP
328 information check out the RhodeCode logs, any error messages sent from LDAP
329 will be saved there.
329 will be saved there.
330
330
331 Active Directory
331 Active Directory
332 ''''''''''''''''
332 ''''''''''''''''
333
333
334 RhodeCode can use Microsoft Active Directory for user authentication. This
334 RhodeCode can use Microsoft Active Directory for user authentication. This
335 is done through an LDAP or LDAPS connection to Active Directory. The
335 is done through an LDAP or LDAPS connection to Active Directory. The
336 following LDAP configuration settings are typical for using Active
336 following LDAP configuration settings are typical for using Active
337 Directory ::
337 Directory ::
338
338
339 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
339 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
340 Login Attribute = sAMAccountName
340 Login Attribute = sAMAccountName
341 First Name Attribute = givenName
341 First Name Attribute = givenName
342 Last Name Attribute = sn
342 Last Name Attribute = sn
343 E-mail Attribute = mail
343 E-mail Attribute = mail
344
344
345 All other LDAP settings will likely be site-specific and should be
345 All other LDAP settings will likely be site-specific and should be
346 appropriately configured.
346 appropriately configured.
347
347
348
349
350 Hook management
351 ---------------
352
353 Hooks can be managed in similar way to this used in .hgrc files.
354 To access hooks setting click `advanced setup` on Hooks section of Mercurial
355 Settings in Admin.
356
357 There are 4 built in hooks that cannot be changed (only enable/disable by
358 checkboxes on previos section).
359 To add another custom hook simply fill in first section with
360 <name>.<hook_type> and the second one with hook path. Example hooks
361 can be found at *rhodecode.lib.hooks*.
362
363
348 Setting Up Celery
364 Setting Up Celery
349 -----------------
365 -----------------
350
366
351 Since version 1.1 celery is configured by the rhodecode ini configuration files.
367 Since version 1.1 celery is configured by the rhodecode ini configuration files.
352 Simply set use_celery=true in the ini file then add / change the configuration
368 Simply set use_celery=true in the ini file then add / change the configuration
353 variables inside the ini file.
369 variables inside the ini file.
354
370
355 Remember that the ini files use the format with '.' not with '_' like celery.
371 Remember that the ini files use the format with '.' not with '_' like celery.
356 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
372 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
357 the config file.
373 the config file.
358
374
359 In order to start using celery run::
375 In order to start using celery run::
360
376
361 paster celeryd <configfile.ini>
377 paster celeryd <configfile.ini>
362
378
363
379
364 .. note::
380 .. note::
365 Make sure you run this command from the same virtualenv, and with the same
381 Make sure you run this command from the same virtualenv, and with the same
366 user that rhodecode runs.
382 user that rhodecode runs.
367
383
368 HTTPS support
384 HTTPS support
369 -------------
385 -------------
370
386
371 There are two ways to enable https:
387 There are two ways to enable https:
372
388
373 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
389 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
374 recognize this headers and make proper https redirections
390 recognize this headers and make proper https redirections
375 - Alternatively, change the `force_https = true` flag in the ini configuration
391 - Alternatively, change the `force_https = true` flag in the ini configuration
376 to force using https, no headers are needed than to enable https
392 to force using https, no headers are needed than to enable https
377
393
378
394
379 Nginx virtual host example
395 Nginx virtual host example
380 --------------------------
396 --------------------------
381
397
382 Sample config for nginx using proxy::
398 Sample config for nginx using proxy::
383
399
384 server {
400 server {
385 listen 80;
401 listen 80;
386 server_name hg.myserver.com;
402 server_name hg.myserver.com;
387 access_log /var/log/nginx/rhodecode.access.log;
403 access_log /var/log/nginx/rhodecode.access.log;
388 error_log /var/log/nginx/rhodecode.error.log;
404 error_log /var/log/nginx/rhodecode.error.log;
389 location / {
405 location / {
390 root /var/www/rhodecode/rhodecode/public/;
406 root /var/www/rhodecode/rhodecode/public/;
391 if (!-f $request_filename){
407 if (!-f $request_filename){
392 proxy_pass http://127.0.0.1:5000;
408 proxy_pass http://127.0.0.1:5000;
393 }
409 }
394 #this is important if you want to use https !!!
410 #this is important if you want to use https !!!
395 proxy_set_header X-Url-Scheme $scheme;
411 proxy_set_header X-Url-Scheme $scheme;
396 include /etc/nginx/proxy.conf;
412 include /etc/nginx/proxy.conf;
397 }
413 }
398 }
414 }
399
415
400 Here's the proxy.conf. It's tuned so it will not timeout on long
416 Here's the proxy.conf. It's tuned so it will not timeout on long
401 pushes or large pushes::
417 pushes or large pushes::
402
418
403 proxy_redirect off;
419 proxy_redirect off;
404 proxy_set_header Host $host;
420 proxy_set_header Host $host;
405 proxy_set_header X-Host $http_host;
421 proxy_set_header X-Host $http_host;
406 proxy_set_header X-Real-IP $remote_addr;
422 proxy_set_header X-Real-IP $remote_addr;
407 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
423 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
408 proxy_set_header Proxy-host $proxy_host;
424 proxy_set_header Proxy-host $proxy_host;
409 client_max_body_size 400m;
425 client_max_body_size 400m;
410 client_body_buffer_size 128k;
426 client_body_buffer_size 128k;
411 proxy_buffering off;
427 proxy_buffering off;
412 proxy_connect_timeout 7200;
428 proxy_connect_timeout 7200;
413 proxy_send_timeout 7200;
429 proxy_send_timeout 7200;
414 proxy_read_timeout 7200;
430 proxy_read_timeout 7200;
415 proxy_buffers 8 32k;
431 proxy_buffers 8 32k;
416
432
417 Also, when using root path with nginx you might set the static files to false
433 Also, when using root path with nginx you might set the static files to false
418 in the production.ini file::
434 in the production.ini file::
419
435
420 [app:main]
436 [app:main]
421 use = egg:rhodecode
437 use = egg:rhodecode
422 full_stack = true
438 full_stack = true
423 static_files = false
439 static_files = false
424 lang=en
440 lang=en
425 cache_dir = %(here)s/data
441 cache_dir = %(here)s/data
426
442
427 In order to not have the statics served by the application. This improves speed.
443 In order to not have the statics served by the application. This improves speed.
428
444
429
445
430 Apache virtual host example
446 Apache virtual host example
431 ---------------------------
447 ---------------------------
432
448
433 Here is a sample configuration file for apache using proxy::
449 Here is a sample configuration file for apache using proxy::
434
450
435 <VirtualHost *:80>
451 <VirtualHost *:80>
436 ServerName hg.myserver.com
452 ServerName hg.myserver.com
437 ServerAlias hg.myserver.com
453 ServerAlias hg.myserver.com
438
454
439 <Proxy *>
455 <Proxy *>
440 Order allow,deny
456 Order allow,deny
441 Allow from all
457 Allow from all
442 </Proxy>
458 </Proxy>
443
459
444 #important !
460 #important !
445 #Directive to properly generate url (clone url) for pylons
461 #Directive to properly generate url (clone url) for pylons
446 ProxyPreserveHost On
462 ProxyPreserveHost On
447
463
448 #rhodecode instance
464 #rhodecode instance
449 ProxyPass / http://127.0.0.1:5000/
465 ProxyPass / http://127.0.0.1:5000/
450 ProxyPassReverse / http://127.0.0.1:5000/
466 ProxyPassReverse / http://127.0.0.1:5000/
451
467
452 #to enable https use line below
468 #to enable https use line below
453 #SetEnvIf X-Url-Scheme https HTTPS=1
469 #SetEnvIf X-Url-Scheme https HTTPS=1
454
470
455 </VirtualHost>
471 </VirtualHost>
456
472
457
473
458 Additional tutorial
474 Additional tutorial
459 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
475 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
460
476
461
477
462 Apache as subdirectory
478 Apache as subdirectory
463 ----------------------
479 ----------------------
464
480
465 Apache subdirectory part::
481 Apache subdirectory part::
466
482
467 <Location /<someprefix> >
483 <Location /<someprefix> >
468 ProxyPass http://127.0.0.1:5000/<someprefix>
484 ProxyPass http://127.0.0.1:5000/<someprefix>
469 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
485 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
470 SetEnvIf X-Url-Scheme https HTTPS=1
486 SetEnvIf X-Url-Scheme https HTTPS=1
471 </Location>
487 </Location>
472
488
473 Besides the regular apache setup you will need to add the following line
489 Besides the regular apache setup you will need to add the following line
474 into [app:main] section of your .ini file::
490 into [app:main] section of your .ini file::
475
491
476 filter-with = proxy-prefix
492 filter-with = proxy-prefix
477
493
478 Add the following at the end of the .ini file::
494 Add the following at the end of the .ini file::
479
495
480 [filter:proxy-prefix]
496 [filter:proxy-prefix]
481 use = egg:PasteDeploy#prefix
497 use = egg:PasteDeploy#prefix
482 prefix = /<someprefix>
498 prefix = /<someprefix>
483
499
484
500
485 then change <someprefix> into your choosen prefix
501 then change <someprefix> into your choosen prefix
486
502
487 Apache's WSGI config
503 Apache's WSGI config
488 --------------------
504 --------------------
489
505
490
506
491 Example wsgi dispatch script::
507 Example wsgi dispatch script::
492
508
493 import os
509 import os
494 os.environ["HGENCODING"] = "UTF-8"
510 os.environ["HGENCODING"] = "UTF-8"
495 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
511 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
496
512
497 # sometimes it's needed to set the curent dir
513 # sometimes it's needed to set the curent dir
498 os.chdir('/home/web/rhodecode/')
514 os.chdir('/home/web/rhodecode/')
499
515
500 from paste.deploy import loadapp
516 from paste.deploy import loadapp
501 from paste.script.util.logging_config import fileConfig
517 from paste.script.util.logging_config import fileConfig
502
518
503 fileConfig('/home/web/rhodecode/production.ini')
519 fileConfig('/home/web/rhodecode/production.ini')
504 application = loadapp('config:/home/web/rhodecode/production.ini')
520 application = loadapp('config:/home/web/rhodecode/production.ini')
505
521
506
522
507 Other configuration files
523 Other configuration files
508 -------------------------
524 -------------------------
509
525
510 Some example init.d scripts can be found here, for debian and gentoo:
526 Some example init.d scripts can be found here, for debian and gentoo:
511
527
512 https://rhodecode.org/rhodecode/files/tip/init.d
528 https://rhodecode.org/rhodecode/files/tip/init.d
513
529
514
530
515 Troubleshooting
531 Troubleshooting
516 ---------------
532 ---------------
517
533
518 :Q: **Missing static files?**
534 :Q: **Missing static files?**
519 :A: Make sure either to set the `static_files = true` in the .ini file or
535 :A: Make sure either to set the `static_files = true` in the .ini file or
520 double check the root path for your http setup. It should point to
536 double check the root path for your http setup. It should point to
521 for example:
537 for example:
522 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
538 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
523
539
524 |
540 |
525
541
526 :Q: **Can't install celery/rabbitmq**
542 :Q: **Can't install celery/rabbitmq**
527 :A: Don't worry RhodeCode works without them too. No extra setup is required.
543 :A: Don't worry RhodeCode works without them too. No extra setup is required.
528
544
529 |
545 |
530
546
531 :Q: **Long lasting push timeouts?**
547 :Q: **Long lasting push timeouts?**
532 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
548 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
533 are caused by https server and not RhodeCode.
549 are caused by https server and not RhodeCode.
534
550
535 |
551 |
536
552
537 :Q: **Large pushes timeouts?**
553 :Q: **Large pushes timeouts?**
538 :A: Make sure you set a proper max_body_size for the http server.
554 :A: Make sure you set a proper max_body_size for the http server.
539
555
540 |
556 |
541
557
542 :Q: **Apache doesn't pass basicAuth on pull/push?**
558 :Q: **Apache doesn't pass basicAuth on pull/push?**
543 :A: Make sure you added `WSGIPassAuthorization true`.
559 :A: Make sure you added `WSGIPassAuthorization true`.
544
560
545 For further questions search the `Issues tracker`_, or post a message in the
561 For further questions search the `Issues tracker`_, or post a message in the
546 `google group rhodecode`_
562 `google group rhodecode`_
547
563
548 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
564 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
549 .. _python: http://www.python.org/
565 .. _python: http://www.python.org/
550 .. _mercurial: http://mercurial.selenic.com/
566 .. _mercurial: http://mercurial.selenic.com/
551 .. _celery: http://celeryproject.org/
567 .. _celery: http://celeryproject.org/
552 .. _rabbitmq: http://www.rabbitmq.com/
568 .. _rabbitmq: http://www.rabbitmq.com/
553 .. _python-ldap: http://www.python-ldap.org/
569 .. _python-ldap: http://www.python-ldap.org/
554 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
570 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
555 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
571 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
556 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
572 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
557 .. _google group rhodecode: http://groups.google.com/group/rhodecode
573 .. _google group rhodecode: http://groups.google.com/group/rhodecode
General Comments 0
You need to be logged in to leave comments. Login now