##// END OF EJS Templates
Added documentation for container-based and proxy pass-through authentication
Liad Shani -
r1657:d2a10836 beta
parent child Browse files
Show More
@@ -1,417 +1,417 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 Changelog
3 Changelog
4 =========
4 =========
5
5
6
6
7 1.3.0 (**XXXX-XX-XX**)
7 1.3.0 (**XXXX-XX-XX**)
8 ======================
8 ======================
9
9
10 :status: in-progress
10 :status: in-progress
11 :branch: beta
11 :branch: beta
12
12
13 news
13 news
14 ----
14 ----
15
15
16 - #215 rst and markdown README files support
16 - #215 rst and markdown README files support
17 - #252 pass-through user identity
17 - Container-based and proxy pass-through authentication support (#252)
18 - hover top menu
18 - hover top menu
19 - configurable clone url posibility to specify ssh:// manually as
19 - configurable clone url posibility to specify ssh:// manually as
20 alternative clone url.
20 alternative clone url.
21
21
22 fixes
22 fixes
23 -----
23 -----
24
24
25 1.2.3 (**2011-11-02**)
25 1.2.3 (**2011-11-02**)
26 ======================
26 ======================
27
27
28 news
28 news
29 ----
29 ----
30
30
31 - added option to manage repos group for non admin users
31 - added option to manage repos group for non admin users
32 - added following API methods for get_users, create_user, get_users_groups,
32 - added following API methods for get_users, create_user, get_users_groups,
33 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
33 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
34 get_repo, create_repo, add_user_to_repo
34 get_repo, create_repo, add_user_to_repo
35 - implements #237 added password confirmation for my account
35 - implements #237 added password confirmation for my account
36 and admin edit user.
36 and admin edit user.
37 - implements #291 email notification for global events are now sent to all
37 - implements #291 email notification for global events are now sent to all
38 administrator users, and global config email.
38 administrator users, and global config email.
39
39
40 fixes
40 fixes
41 -----
41 -----
42
42
43 - added option for passing auth method for smtp mailer
43 - added option for passing auth method for smtp mailer
44 - #276 issue with adding a single user with id>10 to usergroups
44 - #276 issue with adding a single user with id>10 to usergroups
45 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
45 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
46 - #288 fixes managing of repos in a group for non admin user
46 - #288 fixes managing of repos in a group for non admin user
47
47
48 1.2.2 (**2011-10-17**)
48 1.2.2 (**2011-10-17**)
49 ======================
49 ======================
50
50
51 news
51 news
52 ----
52 ----
53
53
54 - #226 repo groups are available by path instead of numerical id
54 - #226 repo groups are available by path instead of numerical id
55
55
56 fixes
56 fixes
57 -----
57 -----
58
58
59 - #259 Groups with the same name but with different parent group
59 - #259 Groups with the same name but with different parent group
60 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
60 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
61 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
61 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
62 - #265 ldap save fails sometimes on converting attributes to booleans,
62 - #265 ldap save fails sometimes on converting attributes to booleans,
63 added getter and setter into model that will prevent from this on db model level
63 added getter and setter into model that will prevent from this on db model level
64 - fixed problems with timestamps issues #251 and #213
64 - fixed problems with timestamps issues #251 and #213
65 - fixes #266 RhodeCode allows to create repo with the same name and in
65 - fixes #266 RhodeCode allows to create repo with the same name and in
66 the same parent as group
66 the same parent as group
67 - fixes #245 Rescan of the repositories on Windows
67 - fixes #245 Rescan of the repositories on Windows
68 - fixes #248 cannot edit repos inside a group on windows
68 - fixes #248 cannot edit repos inside a group on windows
69 - fixes #219 forking problems on windows
69 - fixes #219 forking problems on windows
70
70
71 1.2.1 (**2011-10-08**)
71 1.2.1 (**2011-10-08**)
72 ======================
72 ======================
73
73
74 news
74 news
75 ----
75 ----
76
76
77
77
78 fixes
78 fixes
79 -----
79 -----
80
80
81 - fixed problems with basic auth and push problems
81 - fixed problems with basic auth and push problems
82 - gui fixes
82 - gui fixes
83 - fixed logger
83 - fixed logger
84
84
85 1.2.0 (**2011-10-07**)
85 1.2.0 (**2011-10-07**)
86 ======================
86 ======================
87
87
88 news
88 news
89 ----
89 ----
90
90
91 - implemented #47 repository groups
91 - implemented #47 repository groups
92 - implemented #89 Can setup google analytics code from settings menu
92 - implemented #89 Can setup google analytics code from settings menu
93 - implemented #91 added nicer looking archive urls with more download options
93 - implemented #91 added nicer looking archive urls with more download options
94 like tags, branches
94 like tags, branches
95 - implemented #44 into file browsing, and added follow branch option
95 - implemented #44 into file browsing, and added follow branch option
96 - implemented #84 downloads can be enabled/disabled for each repository
96 - implemented #84 downloads can be enabled/disabled for each repository
97 - anonymous repository can be cloned without having to pass default:default
97 - anonymous repository can be cloned without having to pass default:default
98 into clone url
98 into clone url
99 - fixed #90 whoosh indexer can index chooses repositories passed in command
99 - fixed #90 whoosh indexer can index chooses repositories passed in command
100 line
100 line
101 - extended journal with day aggregates and paging
101 - extended journal with day aggregates and paging
102 - implemented #107 source code lines highlight ranges
102 - implemented #107 source code lines highlight ranges
103 - implemented #93 customizable changelog on combined revision ranges -
103 - implemented #93 customizable changelog on combined revision ranges -
104 equivalent of githubs compare view
104 equivalent of githubs compare view
105 - implemented #108 extended and more powerful LDAP configuration
105 - implemented #108 extended and more powerful LDAP configuration
106 - implemented #56 users groups
106 - implemented #56 users groups
107 - major code rewrites optimized codes for speed and memory usage
107 - major code rewrites optimized codes for speed and memory usage
108 - raw and diff downloads are now in git format
108 - raw and diff downloads are now in git format
109 - setup command checks for write access to given path
109 - setup command checks for write access to given path
110 - fixed many issues with international characters and unicode. It uses utf8
110 - fixed many issues with international characters and unicode. It uses utf8
111 decode with replace to provide less errors even with non utf8 encoded strings
111 decode with replace to provide less errors even with non utf8 encoded strings
112 - #125 added API KEY access to feeds
112 - #125 added API KEY access to feeds
113 - #109 Repository can be created from external Mercurial link (aka. remote
113 - #109 Repository can be created from external Mercurial link (aka. remote
114 repository, and manually updated (via pull) from admin panel
114 repository, and manually updated (via pull) from admin panel
115 - beta git support - push/pull server + basic view for git repos
115 - beta git support - push/pull server + basic view for git repos
116 - added followers page and forks page
116 - added followers page and forks page
117 - server side file creation (with binary file upload interface)
117 - server side file creation (with binary file upload interface)
118 and edition with commits powered by codemirror
118 and edition with commits powered by codemirror
119 - #111 file browser file finder, quick lookup files on whole file tree
119 - #111 file browser file finder, quick lookup files on whole file tree
120 - added quick login sliding menu into main page
120 - added quick login sliding menu into main page
121 - changelog uses lazy loading of affected files details, in some scenarios
121 - changelog uses lazy loading of affected files details, in some scenarios
122 this can improve speed of changelog page dramatically especially for
122 this can improve speed of changelog page dramatically especially for
123 larger repositories.
123 larger repositories.
124 - implements #214 added support for downloading subrepos in download menu.
124 - implements #214 added support for downloading subrepos in download menu.
125 - Added basic API for direct operations on rhodecode via JSON
125 - Added basic API for direct operations on rhodecode via JSON
126 - Implemented advanced hook management
126 - Implemented advanced hook management
127
127
128 fixes
128 fixes
129 -----
129 -----
130
130
131 - fixed file browser bug, when switching into given form revision the url was
131 - fixed file browser bug, when switching into given form revision the url was
132 not changing
132 not changing
133 - fixed propagation to error controller on simplehg and simplegit middlewares
133 - fixed propagation to error controller on simplehg and simplegit middlewares
134 - fixed error when trying to make a download on empty repository
134 - fixed error when trying to make a download on empty repository
135 - fixed problem with '[' chars in commit messages in journal
135 - fixed problem with '[' chars in commit messages in journal
136 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
136 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
137 - journal fork fixes
137 - journal fork fixes
138 - removed issue with space inside renamed repository after deletion
138 - removed issue with space inside renamed repository after deletion
139 - fixed strange issue on formencode imports
139 - fixed strange issue on formencode imports
140 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
140 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
141 - #150 fixes for errors on repositories mapped in db but corrupted in
141 - #150 fixes for errors on repositories mapped in db but corrupted in
142 filesystem
142 filesystem
143 - fixed problem with ascendant characters in realm #181
143 - fixed problem with ascendant characters in realm #181
144 - fixed problem with sqlite file based database connection pool
144 - fixed problem with sqlite file based database connection pool
145 - whoosh indexer and code stats share the same dynamic extensions map
145 - whoosh indexer and code stats share the same dynamic extensions map
146 - fixes #188 - relationship delete of repo_to_perm entry on user removal
146 - fixes #188 - relationship delete of repo_to_perm entry on user removal
147 - fixes issue #189 Trending source files shows "show more" when no more exist
147 - fixes issue #189 Trending source files shows "show more" when no more exist
148 - fixes issue #197 Relative paths for pidlocks
148 - fixes issue #197 Relative paths for pidlocks
149 - fixes issue #198 password will require only 3 chars now for login form
149 - fixes issue #198 password will require only 3 chars now for login form
150 - fixes issue #199 wrong redirection for non admin users after creating a repository
150 - fixes issue #199 wrong redirection for non admin users after creating a repository
151 - fixes issues #202, bad db constraint made impossible to attach same group
151 - fixes issues #202, bad db constraint made impossible to attach same group
152 more than one time. Affects only mysql/postgres
152 more than one time. Affects only mysql/postgres
153 - fixes #218 os.kill patch for windows was missing sig param
153 - fixes #218 os.kill patch for windows was missing sig param
154 - improved rendering of dag (they are not trimmed anymore when number of
154 - improved rendering of dag (they are not trimmed anymore when number of
155 heads exceeds 5)
155 heads exceeds 5)
156
156
157 1.1.8 (**2011-04-12**)
157 1.1.8 (**2011-04-12**)
158 ======================
158 ======================
159
159
160 news
160 news
161 ----
161 ----
162
162
163 - improved windows support
163 - improved windows support
164
164
165 fixes
165 fixes
166 -----
166 -----
167
167
168 - fixed #140 freeze of python dateutil library, since new version is python2.x
168 - fixed #140 freeze of python dateutil library, since new version is python2.x
169 incompatible
169 incompatible
170 - setup-app will check for write permission in given path
170 - setup-app will check for write permission in given path
171 - cleaned up license info issue #149
171 - cleaned up license info issue #149
172 - fixes for issues #137,#116 and problems with unicode and accented characters.
172 - fixes for issues #137,#116 and problems with unicode and accented characters.
173 - fixes crashes on gravatar, when passed in email as unicode
173 - fixes crashes on gravatar, when passed in email as unicode
174 - fixed tooltip flickering problems
174 - fixed tooltip flickering problems
175 - fixed came_from redirection on windows
175 - fixed came_from redirection on windows
176 - fixed logging modules, and sql formatters
176 - fixed logging modules, and sql formatters
177 - windows fixes for os.kill issue #133
177 - windows fixes for os.kill issue #133
178 - fixes path splitting for windows issues #148
178 - fixes path splitting for windows issues #148
179 - fixed issue #143 wrong import on migration to 1.1.X
179 - fixed issue #143 wrong import on migration to 1.1.X
180 - fixed problems with displaying binary files, thanks to Thomas Waldmann
180 - fixed problems with displaying binary files, thanks to Thomas Waldmann
181 - removed name from archive files since it's breaking ui for long repo names
181 - removed name from archive files since it's breaking ui for long repo names
182 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
182 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
183 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
183 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
184 Thomas Waldmann
184 Thomas Waldmann
185 - fixed issue #166 summary pager was skipping 10 revisions on second page
185 - fixed issue #166 summary pager was skipping 10 revisions on second page
186
186
187
187
188 1.1.7 (**2011-03-23**)
188 1.1.7 (**2011-03-23**)
189 ======================
189 ======================
190
190
191 news
191 news
192 ----
192 ----
193
193
194 fixes
194 fixes
195 -----
195 -----
196
196
197 - fixed (again) #136 installation support for FreeBSD
197 - fixed (again) #136 installation support for FreeBSD
198
198
199
199
200 1.1.6 (**2011-03-21**)
200 1.1.6 (**2011-03-21**)
201 ======================
201 ======================
202
202
203 news
203 news
204 ----
204 ----
205
205
206 fixes
206 fixes
207 -----
207 -----
208
208
209 - fixed #136 installation support for FreeBSD
209 - fixed #136 installation support for FreeBSD
210 - RhodeCode will check for python version during installation
210 - RhodeCode will check for python version during installation
211
211
212 1.1.5 (**2011-03-17**)
212 1.1.5 (**2011-03-17**)
213 ======================
213 ======================
214
214
215 news
215 news
216 ----
216 ----
217
217
218 - basic windows support, by exchanging pybcrypt into sha256 for windows only
218 - basic windows support, by exchanging pybcrypt into sha256 for windows only
219 highly inspired by idea of mantis406
219 highly inspired by idea of mantis406
220
220
221 fixes
221 fixes
222 -----
222 -----
223
223
224 - fixed sorting by author in main page
224 - fixed sorting by author in main page
225 - fixed crashes with diffs on binary files
225 - fixed crashes with diffs on binary files
226 - fixed #131 problem with boolean values for LDAP
226 - fixed #131 problem with boolean values for LDAP
227 - fixed #122 mysql problems thanks to striker69
227 - fixed #122 mysql problems thanks to striker69
228 - fixed problem with errors on calling raw/raw_files/annotate functions
228 - fixed problem with errors on calling raw/raw_files/annotate functions
229 with unknown revisions
229 with unknown revisions
230 - fixed returned rawfiles attachment names with international character
230 - fixed returned rawfiles attachment names with international character
231 - cleaned out docs, big thanks to Jason Harris
231 - cleaned out docs, big thanks to Jason Harris
232
232
233 1.1.4 (**2011-02-19**)
233 1.1.4 (**2011-02-19**)
234 ======================
234 ======================
235
235
236 news
236 news
237 ----
237 ----
238
238
239 fixes
239 fixes
240 -----
240 -----
241
241
242 - fixed formencode import problem on settings page, that caused server crash
242 - fixed formencode import problem on settings page, that caused server crash
243 when that page was accessed as first after server start
243 when that page was accessed as first after server start
244 - journal fixes
244 - journal fixes
245 - fixed option to access repository just by entering http://server/<repo_name>
245 - fixed option to access repository just by entering http://server/<repo_name>
246
246
247 1.1.3 (**2011-02-16**)
247 1.1.3 (**2011-02-16**)
248 ======================
248 ======================
249
249
250 news
250 news
251 ----
251 ----
252
252
253 - implemented #102 allowing the '.' character in username
253 - implemented #102 allowing the '.' character in username
254 - added option to access repository just by entering http://server/<repo_name>
254 - added option to access repository just by entering http://server/<repo_name>
255 - celery task ignores result for better performance
255 - celery task ignores result for better performance
256
256
257 fixes
257 fixes
258 -----
258 -----
259
259
260 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
260 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
261 apollo13 and Johan Walles
261 apollo13 and Johan Walles
262 - small fixes in journal
262 - small fixes in journal
263 - fixed problems with getting setting for celery from .ini files
263 - fixed problems with getting setting for celery from .ini files
264 - registration, password reset and login boxes share the same title as main
264 - registration, password reset and login boxes share the same title as main
265 application now
265 application now
266 - fixed #113: to high permissions to fork repository
266 - fixed #113: to high permissions to fork repository
267 - fixed problem with '[' chars in commit messages in journal
267 - fixed problem with '[' chars in commit messages in journal
268 - removed issue with space inside renamed repository after deletion
268 - removed issue with space inside renamed repository after deletion
269 - db transaction fixes when filesystem repository creation failed
269 - db transaction fixes when filesystem repository creation failed
270 - fixed #106 relation issues on databases different than sqlite
270 - fixed #106 relation issues on databases different than sqlite
271 - fixed static files paths links to use of url() method
271 - fixed static files paths links to use of url() method
272
272
273 1.1.2 (**2011-01-12**)
273 1.1.2 (**2011-01-12**)
274 ======================
274 ======================
275
275
276 news
276 news
277 ----
277 ----
278
278
279
279
280 fixes
280 fixes
281 -----
281 -----
282
282
283 - fixes #98 protection against float division of percentage stats
283 - fixes #98 protection against float division of percentage stats
284 - fixed graph bug
284 - fixed graph bug
285 - forced webhelpers version since it was making troubles during installation
285 - forced webhelpers version since it was making troubles during installation
286
286
287 1.1.1 (**2011-01-06**)
287 1.1.1 (**2011-01-06**)
288 ======================
288 ======================
289
289
290 news
290 news
291 ----
291 ----
292
292
293 - added force https option into ini files for easier https usage (no need to
293 - added force https option into ini files for easier https usage (no need to
294 set server headers with this options)
294 set server headers with this options)
295 - small css updates
295 - small css updates
296
296
297 fixes
297 fixes
298 -----
298 -----
299
299
300 - fixed #96 redirect loop on files view on repositories without changesets
300 - fixed #96 redirect loop on files view on repositories without changesets
301 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
301 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
302 and server crashed with errors
302 and server crashed with errors
303 - fixed large tooltips problems on main page
303 - fixed large tooltips problems on main page
304 - fixed #92 whoosh indexer is more error proof
304 - fixed #92 whoosh indexer is more error proof
305
305
306 1.1.0 (**2010-12-18**)
306 1.1.0 (**2010-12-18**)
307 ======================
307 ======================
308
308
309 news
309 news
310 ----
310 ----
311
311
312 - rewrite of internals for vcs >=0.1.10
312 - rewrite of internals for vcs >=0.1.10
313 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
313 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
314 with older clients
314 with older clients
315 - anonymous access, authentication via ldap
315 - anonymous access, authentication via ldap
316 - performance upgrade for cached repos list - each repository has it's own
316 - performance upgrade for cached repos list - each repository has it's own
317 cache that's invalidated when needed.
317 cache that's invalidated when needed.
318 - performance upgrades on repositories with large amount of commits (20K+)
318 - performance upgrades on repositories with large amount of commits (20K+)
319 - main page quick filter for filtering repositories
319 - main page quick filter for filtering repositories
320 - user dashboards with ability to follow chosen repositories actions
320 - user dashboards with ability to follow chosen repositories actions
321 - sends email to admin on new user registration
321 - sends email to admin on new user registration
322 - added cache/statistics reset options into repository settings
322 - added cache/statistics reset options into repository settings
323 - more detailed action logger (based on hooks) with pushed changesets lists
323 - more detailed action logger (based on hooks) with pushed changesets lists
324 and options to disable those hooks from admin panel
324 and options to disable those hooks from admin panel
325 - introduced new enhanced changelog for merges that shows more accurate results
325 - introduced new enhanced changelog for merges that shows more accurate results
326 - new improved and faster code stats (based on pygments lexers mapping tables,
326 - new improved and faster code stats (based on pygments lexers mapping tables,
327 showing up to 10 trending sources for each repository. Additionally stats
327 showing up to 10 trending sources for each repository. Additionally stats
328 can be disabled in repository settings.
328 can be disabled in repository settings.
329 - gui optimizations, fixed application width to 1024px
329 - gui optimizations, fixed application width to 1024px
330 - added cut off (for large files/changesets) limit into config files
330 - added cut off (for large files/changesets) limit into config files
331 - whoosh, celeryd, upgrade moved to paster command
331 - whoosh, celeryd, upgrade moved to paster command
332 - other than sqlite database backends can be used
332 - other than sqlite database backends can be used
333
333
334 fixes
334 fixes
335 -----
335 -----
336
336
337 - fixes #61 forked repo was showing only after cache expired
337 - fixes #61 forked repo was showing only after cache expired
338 - fixes #76 no confirmation on user deletes
338 - fixes #76 no confirmation on user deletes
339 - fixes #66 Name field misspelled
339 - fixes #66 Name field misspelled
340 - fixes #72 block user removal when he owns repositories
340 - fixes #72 block user removal when he owns repositories
341 - fixes #69 added password confirmation fields
341 - fixes #69 added password confirmation fields
342 - fixes #87 RhodeCode crashes occasionally on updating repository owner
342 - fixes #87 RhodeCode crashes occasionally on updating repository owner
343 - fixes #82 broken annotations on files with more than 1 blank line at the end
343 - fixes #82 broken annotations on files with more than 1 blank line at the end
344 - a lot of fixes and tweaks for file browser
344 - a lot of fixes and tweaks for file browser
345 - fixed detached session issues
345 - fixed detached session issues
346 - fixed when user had no repos he would see all repos listed in my account
346 - fixed when user had no repos he would see all repos listed in my account
347 - fixed ui() instance bug when global hgrc settings was loaded for server
347 - fixed ui() instance bug when global hgrc settings was loaded for server
348 instance and all hgrc options were merged with our db ui() object
348 instance and all hgrc options were merged with our db ui() object
349 - numerous small bugfixes
349 - numerous small bugfixes
350
350
351 (special thanks for TkSoh for detailed feedback)
351 (special thanks for TkSoh for detailed feedback)
352
352
353
353
354 1.0.2 (**2010-11-12**)
354 1.0.2 (**2010-11-12**)
355 ======================
355 ======================
356
356
357 news
357 news
358 ----
358 ----
359
359
360 - tested under python2.7
360 - tested under python2.7
361 - bumped sqlalchemy and celery versions
361 - bumped sqlalchemy and celery versions
362
362
363 fixes
363 fixes
364 -----
364 -----
365
365
366 - fixed #59 missing graph.js
366 - fixed #59 missing graph.js
367 - fixed repo_size crash when repository had broken symlinks
367 - fixed repo_size crash when repository had broken symlinks
368 - fixed python2.5 crashes.
368 - fixed python2.5 crashes.
369
369
370
370
371 1.0.1 (**2010-11-10**)
371 1.0.1 (**2010-11-10**)
372 ======================
372 ======================
373
373
374 news
374 news
375 ----
375 ----
376
376
377 - small css updated
377 - small css updated
378
378
379 fixes
379 fixes
380 -----
380 -----
381
381
382 - fixed #53 python2.5 incompatible enumerate calls
382 - fixed #53 python2.5 incompatible enumerate calls
383 - fixed #52 disable mercurial extension for web
383 - fixed #52 disable mercurial extension for web
384 - fixed #51 deleting repositories don't delete it's dependent objects
384 - fixed #51 deleting repositories don't delete it's dependent objects
385
385
386
386
387 1.0.0 (**2010-11-02**)
387 1.0.0 (**2010-11-02**)
388 ======================
388 ======================
389
389
390 - security bugfix simplehg wasn't checking for permissions on commands
390 - security bugfix simplehg wasn't checking for permissions on commands
391 other than pull or push.
391 other than pull or push.
392 - fixed doubled messages after push or pull in admin journal
392 - fixed doubled messages after push or pull in admin journal
393 - templating and css corrections, fixed repo switcher on chrome, updated titles
393 - templating and css corrections, fixed repo switcher on chrome, updated titles
394 - admin menu accessible from options menu on repository view
394 - admin menu accessible from options menu on repository view
395 - permissions cached queries
395 - permissions cached queries
396
396
397 1.0.0rc4 (**2010-10-12**)
397 1.0.0rc4 (**2010-10-12**)
398 ==========================
398 ==========================
399
399
400 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
400 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
401 - removed cache_manager settings from sqlalchemy meta
401 - removed cache_manager settings from sqlalchemy meta
402 - added sqlalchemy cache settings to ini files
402 - added sqlalchemy cache settings to ini files
403 - validated password length and added second try of failure on paster setup-app
403 - validated password length and added second try of failure on paster setup-app
404 - fixed setup database destroy prompt even when there was no db
404 - fixed setup database destroy prompt even when there was no db
405
405
406
406
407 1.0.0rc3 (**2010-10-11**)
407 1.0.0rc3 (**2010-10-11**)
408 =========================
408 =========================
409
409
410 - fixed i18n during installation.
410 - fixed i18n during installation.
411
411
412 1.0.0rc2 (**2010-10-11**)
412 1.0.0rc2 (**2010-10-11**)
413 =========================
413 =========================
414
414
415 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
415 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
416 occure. After vcs is fixed it'll be put back again.
416 occure. After vcs is fixed it'll be put back again.
417 - templating/css rewrites, optimized css. No newline at end of file
417 - templating/css rewrites, optimized css.
@@ -1,605 +1,685 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
348
349
349
350 Authentication by container or reverse-proxy
351 --------------------------------------------
352
353 Starting with version 1.3, RhodeCode supports delegating the authentication
354 of users to its WSGI container, or to a reverse-proxy server through which all
355 clients access the application.
356
357 When these authentication methods are enabled in RhodeCode, it uses the
358 username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
359 perform the authentication itself. The authorization, however, is still done by
360 RhodeCode according to its settings.
361
362 When a user logs in for the first time using these authentication methods,
363 a matching user account is created in RhodeCode with default permissions. An
364 administrator can then modify it using RhodeCode's admin interface.
365 It's also possible for an administrator to create accounts and configure their
366 permissions before the user logs in for the first time.
367
368 Container-based authentication
369 ''''''''''''''''''''''''''''''
370
371 In a container-based authentication setup, RhodeCode reads the user name from
372 the ``REMOTE_USER`` server variable provided by the WSGI container.
373
374 After setting up your container (see `Apache's WSGI config`_), you'd need
375 to configure it to require authentication on the location configured for
376 RhodeCode.
377
378 In order for RhodeCode to start using the provided username, you should set the
379 following in the [app:main] section of your .ini file::
380
381 container_auth_enabled = true
382
383
384 Proxy pass-through authentication
385 '''''''''''''''''''''''''''''''''
386
387 In a proxy pass-through authentication setup, RhodeCode reads the user name
388 from the ``X-Forwarded-User`` request header, which should be configured to be
389 sent by the reverse-proxy server.
390
391 After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
392 `Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
393 configure the authentication and add the username in a request header named
394 ``X-Forwarded-User``.
395
396 For example, the following config section for Apache sets a subdirectory in a
397 reverse-proxy setup with basic auth::
398
399 <Location /<someprefix> >
400 ProxyPass http://127.0.0.1:5000/<someprefix>
401 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
402 SetEnvIf X-Url-Scheme https HTTPS=1
403
404 AuthType Basic
405 AuthName "RhodeCode authentication"
406 AuthUserFile /home/web/rhodecode/.htpasswd
407 require valid-user
408
409 RequestHeader unset X-Forwarded-User
410
411 RewriteEngine On
412 RewriteCond %{LA-U:REMOTE_USER} (.+)
413 RewriteRule .* - [E=RU:%1]
414 RequestHeader set X-Forwarded-User %{RU}e
415 </Location>
416
417 In order for RhodeCode to start using the forwarded username, you should set
418 the following in the [app:main] section of your .ini file::
419
420 proxypass_auth_enabled = true
421
422 .. note::
423 If you enable proxy pass-through authentication, make sure your server is
424 only accessible through the proxy. Otherwise, any client would be able to
425 forge the authentication header and could effectively become authenticated
426 using any account of their liking.
427
428
429
350 Hook management
430 Hook management
351 ---------------
431 ---------------
352
432
353 Hooks can be managed in similar way to this used in .hgrc files.
433 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
434 To access hooks setting click `advanced setup` on Hooks section of Mercurial
355 Settings in Admin.
435 Settings in Admin.
356
436
357 There are 4 built in hooks that cannot be changed (only enable/disable by
437 There are 4 built in hooks that cannot be changed (only enable/disable by
358 checkboxes on previos section).
438 checkboxes on previos section).
359 To add another custom hook simply fill in first section with
439 To add another custom hook simply fill in first section with
360 <name>.<hook_type> and the second one with hook path. Example hooks
440 <name>.<hook_type> and the second one with hook path. Example hooks
361 can be found at *rhodecode.lib.hooks*.
441 can be found at *rhodecode.lib.hooks*.
362
442
363
443
364 Setting Up Celery
444 Setting Up Celery
365 -----------------
445 -----------------
366
446
367 Since version 1.1 celery is configured by the rhodecode ini configuration files.
447 Since version 1.1 celery is configured by the rhodecode ini configuration files.
368 Simply set use_celery=true in the ini file then add / change the configuration
448 Simply set use_celery=true in the ini file then add / change the configuration
369 variables inside the ini file.
449 variables inside the ini file.
370
450
371 Remember that the ini files use the format with '.' not with '_' like celery.
451 Remember that the ini files use the format with '.' not with '_' like celery.
372 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
452 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
373 the config file.
453 the config file.
374
454
375 In order to start using celery run::
455 In order to start using celery run::
376
456
377 paster celeryd <configfile.ini>
457 paster celeryd <configfile.ini>
378
458
379
459
380 .. note::
460 .. note::
381 Make sure you run this command from the same virtualenv, and with the same
461 Make sure you run this command from the same virtualenv, and with the same
382 user that rhodecode runs.
462 user that rhodecode runs.
383
463
384 HTTPS support
464 HTTPS support
385 -------------
465 -------------
386
466
387 There are two ways to enable https:
467 There are two ways to enable https:
388
468
389 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
469 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
390 recognize this headers and make proper https redirections
470 recognize this headers and make proper https redirections
391 - Alternatively, change the `force_https = true` flag in the ini configuration
471 - Alternatively, change the `force_https = true` flag in the ini configuration
392 to force using https, no headers are needed than to enable https
472 to force using https, no headers are needed than to enable https
393
473
394
474
395 Nginx virtual host example
475 Nginx virtual host example
396 --------------------------
476 --------------------------
397
477
398 Sample config for nginx using proxy::
478 Sample config for nginx using proxy::
399
479
400 server {
480 server {
401 listen 80;
481 listen 80;
402 server_name hg.myserver.com;
482 server_name hg.myserver.com;
403 access_log /var/log/nginx/rhodecode.access.log;
483 access_log /var/log/nginx/rhodecode.access.log;
404 error_log /var/log/nginx/rhodecode.error.log;
484 error_log /var/log/nginx/rhodecode.error.log;
405 location / {
485 location / {
406 root /var/www/rhodecode/rhodecode/public/;
486 root /var/www/rhodecode/rhodecode/public/;
407 if (!-f $request_filename){
487 if (!-f $request_filename){
408 proxy_pass http://127.0.0.1:5000;
488 proxy_pass http://127.0.0.1:5000;
409 }
489 }
410 #this is important if you want to use https !!!
490 #this is important if you want to use https !!!
411 proxy_set_header X-Url-Scheme $scheme;
491 proxy_set_header X-Url-Scheme $scheme;
412 include /etc/nginx/proxy.conf;
492 include /etc/nginx/proxy.conf;
413 }
493 }
414 }
494 }
415
495
416 Here's the proxy.conf. It's tuned so it will not timeout on long
496 Here's the proxy.conf. It's tuned so it will not timeout on long
417 pushes or large pushes::
497 pushes or large pushes::
418
498
419 proxy_redirect off;
499 proxy_redirect off;
420 proxy_set_header Host $host;
500 proxy_set_header Host $host;
421 proxy_set_header X-Host $http_host;
501 proxy_set_header X-Host $http_host;
422 proxy_set_header X-Real-IP $remote_addr;
502 proxy_set_header X-Real-IP $remote_addr;
423 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
503 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
424 proxy_set_header Proxy-host $proxy_host;
504 proxy_set_header Proxy-host $proxy_host;
425 client_max_body_size 400m;
505 client_max_body_size 400m;
426 client_body_buffer_size 128k;
506 client_body_buffer_size 128k;
427 proxy_buffering off;
507 proxy_buffering off;
428 proxy_connect_timeout 7200;
508 proxy_connect_timeout 7200;
429 proxy_send_timeout 7200;
509 proxy_send_timeout 7200;
430 proxy_read_timeout 7200;
510 proxy_read_timeout 7200;
431 proxy_buffers 8 32k;
511 proxy_buffers 8 32k;
432
512
433 Also, when using root path with nginx you might set the static files to false
513 Also, when using root path with nginx you might set the static files to false
434 in the production.ini file::
514 in the production.ini file::
435
515
436 [app:main]
516 [app:main]
437 use = egg:rhodecode
517 use = egg:rhodecode
438 full_stack = true
518 full_stack = true
439 static_files = false
519 static_files = false
440 lang=en
520 lang=en
441 cache_dir = %(here)s/data
521 cache_dir = %(here)s/data
442
522
443 In order to not have the statics served by the application. This improves speed.
523 In order to not have the statics served by the application. This improves speed.
444
524
445
525
446 Apache virtual host reverse proxy example
526 Apache virtual host reverse proxy example
447 -----------------------------------------
527 -----------------------------------------
448
528
449 Here is a sample configuration file for apache using proxy::
529 Here is a sample configuration file for apache using proxy::
450
530
451 <VirtualHost *:80>
531 <VirtualHost *:80>
452 ServerName hg.myserver.com
532 ServerName hg.myserver.com
453 ServerAlias hg.myserver.com
533 ServerAlias hg.myserver.com
454
534
455 <Proxy *>
535 <Proxy *>
456 Order allow,deny
536 Order allow,deny
457 Allow from all
537 Allow from all
458 </Proxy>
538 </Proxy>
459
539
460 #important !
540 #important !
461 #Directive to properly generate url (clone url) for pylons
541 #Directive to properly generate url (clone url) for pylons
462 ProxyPreserveHost On
542 ProxyPreserveHost On
463
543
464 #rhodecode instance
544 #rhodecode instance
465 ProxyPass / http://127.0.0.1:5000/
545 ProxyPass / http://127.0.0.1:5000/
466 ProxyPassReverse / http://127.0.0.1:5000/
546 ProxyPassReverse / http://127.0.0.1:5000/
467
547
468 #to enable https use line below
548 #to enable https use line below
469 #SetEnvIf X-Url-Scheme https HTTPS=1
549 #SetEnvIf X-Url-Scheme https HTTPS=1
470
550
471 </VirtualHost>
551 </VirtualHost>
472
552
473
553
474 Additional tutorial
554 Additional tutorial
475 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
555 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
476
556
477
557
478 Apache as subdirectory
558 Apache as subdirectory
479 ----------------------
559 ----------------------
480
560
481 Apache subdirectory part::
561 Apache subdirectory part::
482
562
483 <Location /<someprefix> >
563 <Location /<someprefix> >
484 ProxyPass http://127.0.0.1:5000/<someprefix>
564 ProxyPass http://127.0.0.1:5000/<someprefix>
485 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
565 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
486 SetEnvIf X-Url-Scheme https HTTPS=1
566 SetEnvIf X-Url-Scheme https HTTPS=1
487 </Location>
567 </Location>
488
568
489 Besides the regular apache setup you will need to add the following line
569 Besides the regular apache setup you will need to add the following line
490 into [app:main] section of your .ini file::
570 into [app:main] section of your .ini file::
491
571
492 filter-with = proxy-prefix
572 filter-with = proxy-prefix
493
573
494 Add the following at the end of the .ini file::
574 Add the following at the end of the .ini file::
495
575
496 [filter:proxy-prefix]
576 [filter:proxy-prefix]
497 use = egg:PasteDeploy#prefix
577 use = egg:PasteDeploy#prefix
498 prefix = /<someprefix>
578 prefix = /<someprefix>
499
579
500
580
501 then change <someprefix> into your choosen prefix
581 then change <someprefix> into your choosen prefix
502
582
503 Apache's WSGI config
583 Apache's WSGI config
504 --------------------
584 --------------------
505
585
506 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
586 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
507 that, you'll need to:
587 that, you'll need to:
508
588
509 - Install mod_wsgi. If using a Debian-based distro, you can install
589 - Install mod_wsgi. If using a Debian-based distro, you can install
510 the package libapache2-mod-wsgi::
590 the package libapache2-mod-wsgi::
511
591
512 aptitude install libapache2-mod-wsgi
592 aptitude install libapache2-mod-wsgi
513
593
514 - Enable mod_wsgi::
594 - Enable mod_wsgi::
515
595
516 a2enmod wsgi
596 a2enmod wsgi
517
597
518 - Create a wsgi dispatch script, like the one below. Make sure you
598 - Create a wsgi dispatch script, like the one below. Make sure you
519 check the paths correctly point to where you installed RhodeCode
599 check the paths correctly point to where you installed RhodeCode
520 and its Python Virtual Environment.
600 and its Python Virtual Environment.
521 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
601 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
522 as in the following example. Once again, check the paths are
602 as in the following example. Once again, check the paths are
523 correctly specified.
603 correctly specified.
524
604
525 Here is a sample excerpt from an Apache Virtual Host configuration file::
605 Here is a sample excerpt from an Apache Virtual Host configuration file::
526
606
527 WSGIDaemonProcess pylons user=www-data group=www-data processes=1 \
607 WSGIDaemonProcess pylons user=www-data group=www-data processes=1 \
528 threads=4 \
608 threads=4 \
529 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
609 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
530 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
610 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
531
611
532 Example wsgi dispatch script::
612 Example wsgi dispatch script::
533
613
534 import os
614 import os
535 os.environ["HGENCODING"] = "UTF-8"
615 os.environ["HGENCODING"] = "UTF-8"
536 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
616 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
537
617
538 # sometimes it's needed to set the curent dir
618 # sometimes it's needed to set the curent dir
539 os.chdir('/home/web/rhodecode/')
619 os.chdir('/home/web/rhodecode/')
540
620
541 import site
621 import site
542 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
622 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
543
623
544 from paste.deploy import loadapp
624 from paste.deploy import loadapp
545 from paste.script.util.logging_config import fileConfig
625 from paste.script.util.logging_config import fileConfig
546
626
547 fileConfig('/home/web/rhodecode/production.ini')
627 fileConfig('/home/web/rhodecode/production.ini')
548 application = loadapp('config:/home/web/rhodecode/production.ini')
628 application = loadapp('config:/home/web/rhodecode/production.ini')
549
629
550 Note: when using mod_wsgi you'll need to install the same version of
630 Note: when using mod_wsgi you'll need to install the same version of
551 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
631 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
552 environment.
632 environment.
553
633
554
634
555 Other configuration files
635 Other configuration files
556 -------------------------
636 -------------------------
557
637
558 Some example init.d scripts can be found here, for debian and gentoo:
638 Some example init.d scripts can be found here, for debian and gentoo:
559
639
560 https://rhodecode.org/rhodecode/files/tip/init.d
640 https://rhodecode.org/rhodecode/files/tip/init.d
561
641
562
642
563 Troubleshooting
643 Troubleshooting
564 ---------------
644 ---------------
565
645
566 :Q: **Missing static files?**
646 :Q: **Missing static files?**
567 :A: Make sure either to set the `static_files = true` in the .ini file or
647 :A: Make sure either to set the `static_files = true` in the .ini file or
568 double check the root path for your http setup. It should point to
648 double check the root path for your http setup. It should point to
569 for example:
649 for example:
570 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
650 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
571
651
572 |
652 |
573
653
574 :Q: **Can't install celery/rabbitmq**
654 :Q: **Can't install celery/rabbitmq**
575 :A: Don't worry RhodeCode works without them too. No extra setup is required.
655 :A: Don't worry RhodeCode works without them too. No extra setup is required.
576
656
577 |
657 |
578
658
579 :Q: **Long lasting push timeouts?**
659 :Q: **Long lasting push timeouts?**
580 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
660 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
581 are caused by https server and not RhodeCode.
661 are caused by https server and not RhodeCode.
582
662
583 |
663 |
584
664
585 :Q: **Large pushes timeouts?**
665 :Q: **Large pushes timeouts?**
586 :A: Make sure you set a proper max_body_size for the http server.
666 :A: Make sure you set a proper max_body_size for the http server.
587
667
588 |
668 |
589
669
590 :Q: **Apache doesn't pass basicAuth on pull/push?**
670 :Q: **Apache doesn't pass basicAuth on pull/push?**
591 :A: Make sure you added `WSGIPassAuthorization true`.
671 :A: Make sure you added `WSGIPassAuthorization true`.
592
672
593 For further questions search the `Issues tracker`_, or post a message in the
673 For further questions search the `Issues tracker`_, or post a message in the
594 `google group rhodecode`_
674 `google group rhodecode`_
595
675
596 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
676 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
597 .. _python: http://www.python.org/
677 .. _python: http://www.python.org/
598 .. _mercurial: http://mercurial.selenic.com/
678 .. _mercurial: http://mercurial.selenic.com/
599 .. _celery: http://celeryproject.org/
679 .. _celery: http://celeryproject.org/
600 .. _rabbitmq: http://www.rabbitmq.com/
680 .. _rabbitmq: http://www.rabbitmq.com/
601 .. _python-ldap: http://www.python-ldap.org/
681 .. _python-ldap: http://www.python-ldap.org/
602 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
682 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
603 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
683 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
604 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
684 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
605 .. _google group rhodecode: http://groups.google.com/group/rhodecode
685 .. _google group rhodecode: http://groups.google.com/group/rhodecode
General Comments 0
You need to be logged in to leave comments. Login now