##// END OF EJS Templates
updated apache wsgi example ref #535
marcink -
r2800:6540ee91 beta
parent child Browse files
Show More
@@ -1,739 +1,740 b''
1 1 .. _changelog:
2 2
3 3 =========
4 4 Changelog
5 5 =========
6 6
7 7
8 8 1.4.1 (**2012-09-04**)
9 9 ----------------------
10 10
11 11 :status: in-progress
12 12 :branch: beta
13 13
14 14 news
15 15 ++++
16 16
17 17 - always put a comment about code-review status change even if user send
18 18 empty data
19 19 - modified_on column saves repository update and it's going to be used
20 20 later for light version of main page ref #500
21 21 - pull request notifications send much nicer emails with details about pull
22 22 request
23 23
24 24 fixes
25 25 +++++
26 26
27 27 - fixed migrations of permissions that can lead to inconsistency.
28 28 Some users sent feedback that after upgrading from older versions issues
29 29 with updating default permissions occurred. RhodeCode detects that now and
30 30 resets default user permission to initial state if there is a need for that.
31 31 Also forces users to set the default value for new forking permission.
32 - #535 improved apache wsgi example configuration in docs
32 33
33 34
34 35 1.4.0 (**2012-09-03**)
35 36 ----------------------
36 37
37 38 news
38 39 ++++
39 40
40 41 - new codereview system
41 42 - email map, allowing users to have multiple email addresses mapped into
42 43 their accounts
43 44 - improved git-hook system. Now all actions for git are logged into journal
44 45 including pushed revisions, user and IP address
45 46 - changed setup-app into setup-rhodecode and added default options to it.
46 47 - new git repos are created as bare now by default
47 48 - #464 added links to groups in permission box
48 49 - #465 mentions autocomplete inside comments boxes
49 50 - #469 added --update-only option to whoosh to re-index only given list
50 51 of repos in index
51 52 - rhodecode-api CLI client
52 53 - new git http protocol replaced buggy dulwich implementation.
53 54 Now based on pygrack & gitweb
54 55 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
55 56 reformated based on user suggestions. Additional rss/atom feeds for user
56 57 journal
57 58 - various i18n improvements
58 59 - #478 permissions overview for admin in user edit view
59 60 - File view now displays small gravatars off all authors of given file
60 61 - Implemented landing revisions. Each repository will get landing_rev attribute
61 62 that defines 'default' revision/branch for generating readme files
62 63 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
63 64 earliest possible call.
64 65 - Import remote svn repositories to mercurial using hgsubversion.
65 66 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
66 67 - RhodeCode can use alternative server for generating avatar icons
67 68 - implemented repositories locking. Pull locks, push unlocks. Also can be done
68 69 via API calls
69 70 - #538 form for permissions can handle multiple users at once
70 71
71 72 fixes
72 73 +++++
73 74
74 75 - improved translations
75 76 - fixes issue #455 Creating an archive generates an exception on Windows
76 77 - fixes #448 Download ZIP archive keeps file in /tmp open and results
77 78 in out of disk space
78 79 - fixes issue #454 Search results under Windows include proceeding
79 80 backslash
80 81 - fixed issue #450. Rhodecode no longer will crash when bad revision is
81 82 present in journal data.
82 83 - fix for issue #417, git execution was broken on windows for certain
83 84 commands.
84 85 - fixed #413. Don't disable .git directory for bare repos on deleting
85 86 - fixed issue #459. Changed the way of obtaining logger in reindex task.
86 87 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
87 88 reindexing modified files
88 89 - fixed #481 rhodecode emails are sent without Date header
89 90 - fixed #458 wrong count when no repos are present
90 91 - fixed issue #492 missing `\ No newline at end of file` test at the end of
91 92 new chunk in html diff
92 93 - full text search now works also for commit messages
93 94
94 95 1.3.6 (**2012-05-17**)
95 96 ----------------------
96 97
97 98 news
98 99 ++++
99 100
100 101 - chinese traditional translation
101 102 - changed setup-app into setup-rhodecode and added arguments for auto-setup
102 103 mode that doesn't need user interaction
103 104
104 105 fixes
105 106 +++++
106 107
107 108 - fixed no scm found warning
108 109 - fixed __future__ import error on rcextensions
109 110 - made simplejson required lib for speedup on JSON encoding
110 111 - fixes #449 bad regex could get more than revisions from parsing history
111 112 - don't clear DB session when CELERY_EAGER is turned ON
112 113
113 114 1.3.5 (**2012-05-10**)
114 115 ----------------------
115 116
116 117 news
117 118 ++++
118 119
119 120 - use ext_json for json module
120 121 - unified annotation view with file source view
121 122 - notification improvements, better inbox + css
122 123 - #419 don't strip passwords for login forms, make rhodecode
123 124 more compatible with LDAP servers
124 125 - Added HTTP_X_FORWARDED_FOR as another method of extracting
125 126 IP for pull/push logs. - moved all to base controller
126 127 - #415: Adding comment to changeset causes reload.
127 128 Comments are now added via ajax and doesn't reload the page
128 129 - #374 LDAP config is discarded when LDAP can't be activated
129 130 - limited push/pull operations are now logged for git in the journal
130 131 - bumped mercurial to 2.2.X series
131 132 - added support for displaying submodules in file-browser
132 133 - #421 added bookmarks in changelog view
133 134
134 135 fixes
135 136 +++++
136 137
137 138 - fixed dev-version marker for stable when served from source codes
138 139 - fixed missing permission checks on show forks page
139 140 - #418 cast to unicode fixes in notification objects
140 141 - #426 fixed mention extracting regex
141 142 - fixed remote-pulling for git remotes remopositories
142 143 - fixed #434: Error when accessing files or changesets of a git repository
143 144 with submodules
144 145 - fixed issue with empty APIKEYS for users after registration ref. #438
145 146 - fixed issue with getting README files from git repositories
146 147
147 148 1.3.4 (**2012-03-28**)
148 149 ----------------------
149 150
150 151 news
151 152 ++++
152 153
153 154 - Whoosh logging is now controlled by the .ini files logging setup
154 155 - added clone-url into edit form on /settings page
155 156 - added help text into repo add/edit forms
156 157 - created rcextensions module with additional mappings (ref #322) and
157 158 post push/pull/create repo hooks callbacks
158 159 - implemented #377 Users view for his own permissions on account page
159 160 - #399 added inheritance of permissions for users group on repos groups
160 161 - #401 repository group is automatically pre-selected when adding repos
161 162 inside a repository group
162 163 - added alternative HTTP 403 response when client failed to authenticate. Helps
163 164 solving issues with Mercurial and LDAP
164 165 - #402 removed group prefix from repository name when listing repositories
165 166 inside a group
166 167 - added gravatars into permission view and permissions autocomplete
167 168 - #347 when running multiple RhodeCode instances, properly invalidates cache
168 169 for all registered servers
169 170
170 171 fixes
171 172 +++++
172 173
173 174 - fixed #390 cache invalidation problems on repos inside group
174 175 - fixed #385 clone by ID url was loosing proxy prefix in URL
175 176 - fixed some unicode problems with waitress
176 177 - fixed issue with escaping < and > in changeset commits
177 178 - fixed error occurring during recursive group creation in API
178 179 create_repo function
179 180 - fixed #393 py2.5 fixes for routes url generator
180 181 - fixed #397 Private repository groups shows up before login
181 182 - fixed #396 fixed problems with revoking users in nested groups
182 183 - fixed mysql unicode issues + specified InnoDB as default engine with
183 184 utf8 charset
184 185 - #406 trim long branch/tag names in changelog to not break UI
185 186
186 187 1.3.3 (**2012-03-02**)
187 188 ----------------------
188 189
189 190 news
190 191 ++++
191 192
192 193
193 194 fixes
194 195 +++++
195 196
196 197 - fixed some python2.5 compatibility issues
197 198 - fixed issues with removed repos was accidentally added as groups, after
198 199 full rescan of paths
199 200 - fixes #376 Cannot edit user (using container auth)
200 201 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
201 202 configuration
202 203 - fixed initial sorting of repos inside repo group
203 204 - fixes issue when user tried to resubmit same permission into user/user_groups
204 205 - bumped beaker version that fixes #375 leap error bug
205 206 - fixed raw_changeset for git. It was generated with hg patch headers
206 207 - fixed vcs issue with last_changeset for filenodes
207 208 - fixed missing commit after hook delete
208 209 - fixed #372 issues with git operation detection that caused a security issue
209 210 for git repos
210 211
211 212 1.3.2 (**2012-02-28**)
212 213 ----------------------
213 214
214 215 news
215 216 ++++
216 217
217 218
218 219 fixes
219 220 +++++
220 221
221 222 - fixed git protocol issues with repos-groups
222 223 - fixed git remote repos validator that prevented from cloning remote git repos
223 224 - fixes #370 ending slashes fixes for repo and groups
224 225 - fixes #368 improved git-protocol detection to handle other clients
225 226 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
226 227 Moved To Root
227 228 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
228 229 - fixed #373 missing cascade drop on user_group_to_perm table
229 230
230 231 1.3.1 (**2012-02-27**)
231 232 ----------------------
232 233
233 234 news
234 235 ++++
235 236
236 237
237 238 fixes
238 239 +++++
239 240
240 241 - redirection loop occurs when remember-me wasn't checked during login
241 242 - fixes issues with git blob history generation
242 243 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
243 244
244 245 1.3.0 (**2012-02-26**)
245 246 ----------------------
246 247
247 248 news
248 249 ++++
249 250
250 251 - code review, inspired by github code-comments
251 252 - #215 rst and markdown README files support
252 253 - #252 Container-based and proxy pass-through authentication support
253 254 - #44 branch browser. Filtering of changelog by branches
254 255 - mercurial bookmarks support
255 256 - new hover top menu, optimized to add maximum size for important views
256 257 - configurable clone url template with possibility to specify protocol like
257 258 ssh:// or http:// and also manually alter other parts of clone_url.
258 259 - enabled largefiles extension by default
259 260 - optimized summary file pages and saved a lot of unused space in them
260 261 - #239 option to manually mark repository as fork
261 262 - #320 mapping of commit authors to RhodeCode users
262 263 - #304 hashes are displayed using monospace font
263 264 - diff configuration, toggle white lines and context lines
264 265 - #307 configurable diffs, whitespace toggle, increasing context lines
265 266 - sorting on branches, tags and bookmarks using YUI datatable
266 267 - improved file filter on files page
267 268 - implements #330 api method for listing nodes ar particular revision
268 269 - #73 added linking issues in commit messages to chosen issue tracker url
269 270 based on user defined regular expression
270 271 - added linking of changesets in commit messages
271 272 - new compact changelog with expandable commit messages
272 273 - firstname and lastname are optional in user creation
273 274 - #348 added post-create repository hook
274 275 - #212 global encoding settings is now configurable from .ini files
275 276 - #227 added repository groups permissions
276 277 - markdown gets codehilite extensions
277 278 - new API methods, delete_repositories, grante/revoke permissions for groups
278 279 and repos
279 280
280 281
281 282 fixes
282 283 +++++
283 284
284 285 - rewrote dbsession management for atomic operations, and better error handling
285 286 - fixed sorting of repo tables
286 287 - #326 escape of special html entities in diffs
287 288 - normalized user_name => username in api attributes
288 289 - fixes #298 ldap created users with mixed case emails created conflicts
289 290 on saving a form
290 291 - fixes issue when owner of a repo couldn't revoke permissions for users
291 292 and groups
292 293 - fixes #271 rare JSON serialization problem with statistics
293 294 - fixes #337 missing validation check for conflicting names of a group with a
294 295 repositories group
295 296 - #340 fixed session problem for mysql and celery tasks
296 297 - fixed #331 RhodeCode mangles repository names if the a repository group
297 298 contains the "full path" to the repositories
298 299 - #355 RhodeCode doesn't store encrypted LDAP passwords
299 300
300 301 1.2.5 (**2012-01-28**)
301 302 ----------------------
302 303
303 304 news
304 305 ++++
305 306
306 307 fixes
307 308 +++++
308 309
309 310 - #340 Celery complains about MySQL server gone away, added session cleanup
310 311 for celery tasks
311 312 - #341 "scanning for repositories in None" log message during Rescan was missing
312 313 a parameter
313 314 - fixed creating archives with subrepos. Some hooks were triggered during that
314 315 operation leading to crash.
315 316 - fixed missing email in account page.
316 317 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
317 318 forking on windows impossible
318 319
319 320 1.2.4 (**2012-01-19**)
320 321 ----------------------
321 322
322 323 news
323 324 ++++
324 325
325 326 - RhodeCode is bundled with mercurial series 2.0.X by default, with
326 327 full support to largefiles extension. Enabled by default in new installations
327 328 - #329 Ability to Add/Remove Groups to/from a Repository via AP
328 329 - added requires.txt file with requirements
329 330
330 331 fixes
331 332 +++++
332 333
333 334 - fixes db session issues with celery when emailing admins
334 335 - #331 RhodeCode mangles repository names if the a repository group
335 336 contains the "full path" to the repositories
336 337 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
337 338 - DB session cleanup after hg protocol operations, fixes issues with
338 339 `mysql has gone away` errors
339 340 - #333 doc fixes for get_repo api function
340 341 - #271 rare JSON serialization problem with statistics enabled
341 342 - #337 Fixes issues with validation of repository name conflicting with
342 343 a group name. A proper message is now displayed.
343 344 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
344 345 doesn't work
345 346 - #316 fixes issues with web description in hgrc files
346 347
347 348 1.2.3 (**2011-11-02**)
348 349 ----------------------
349 350
350 351 news
351 352 ++++
352 353
353 354 - added option to manage repos group for non admin users
354 355 - added following API methods for get_users, create_user, get_users_groups,
355 356 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
356 357 get_repo, create_repo, add_user_to_repo
357 358 - implements #237 added password confirmation for my account
358 359 and admin edit user.
359 360 - implements #291 email notification for global events are now sent to all
360 361 administrator users, and global config email.
361 362
362 363 fixes
363 364 +++++
364 365
365 366 - added option for passing auth method for smtp mailer
366 367 - #276 issue with adding a single user with id>10 to usergroups
367 368 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
368 369 - #288 fixes managing of repos in a group for non admin user
369 370
370 371 1.2.2 (**2011-10-17**)
371 372 ----------------------
372 373
373 374 news
374 375 ++++
375 376
376 377 - #226 repo groups are available by path instead of numerical id
377 378
378 379 fixes
379 380 +++++
380 381
381 382 - #259 Groups with the same name but with different parent group
382 383 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
383 384 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
384 385 - #265 ldap save fails sometimes on converting attributes to booleans,
385 386 added getter and setter into model that will prevent from this on db model level
386 387 - fixed problems with timestamps issues #251 and #213
387 388 - fixes #266 RhodeCode allows to create repo with the same name and in
388 389 the same parent as group
389 390 - fixes #245 Rescan of the repositories on Windows
390 391 - fixes #248 cannot edit repos inside a group on windows
391 392 - fixes #219 forking problems on windows
392 393
393 394 1.2.1 (**2011-10-08**)
394 395 ----------------------
395 396
396 397 news
397 398 ++++
398 399
399 400
400 401 fixes
401 402 +++++
402 403
403 404 - fixed problems with basic auth and push problems
404 405 - gui fixes
405 406 - fixed logger
406 407
407 408 1.2.0 (**2011-10-07**)
408 409 ----------------------
409 410
410 411 news
411 412 ++++
412 413
413 414 - implemented #47 repository groups
414 415 - implemented #89 Can setup google analytics code from settings menu
415 416 - implemented #91 added nicer looking archive urls with more download options
416 417 like tags, branches
417 418 - implemented #44 into file browsing, and added follow branch option
418 419 - implemented #84 downloads can be enabled/disabled for each repository
419 420 - anonymous repository can be cloned without having to pass default:default
420 421 into clone url
421 422 - fixed #90 whoosh indexer can index chooses repositories passed in command
422 423 line
423 424 - extended journal with day aggregates and paging
424 425 - implemented #107 source code lines highlight ranges
425 426 - implemented #93 customizable changelog on combined revision ranges -
426 427 equivalent of githubs compare view
427 428 - implemented #108 extended and more powerful LDAP configuration
428 429 - implemented #56 users groups
429 430 - major code rewrites optimized codes for speed and memory usage
430 431 - raw and diff downloads are now in git format
431 432 - setup command checks for write access to given path
432 433 - fixed many issues with international characters and unicode. It uses utf8
433 434 decode with replace to provide less errors even with non utf8 encoded strings
434 435 - #125 added API KEY access to feeds
435 436 - #109 Repository can be created from external Mercurial link (aka. remote
436 437 repository, and manually updated (via pull) from admin panel
437 438 - beta git support - push/pull server + basic view for git repos
438 439 - added followers page and forks page
439 440 - server side file creation (with binary file upload interface)
440 441 and edition with commits powered by codemirror
441 442 - #111 file browser file finder, quick lookup files on whole file tree
442 443 - added quick login sliding menu into main page
443 444 - changelog uses lazy loading of affected files details, in some scenarios
444 445 this can improve speed of changelog page dramatically especially for
445 446 larger repositories.
446 447 - implements #214 added support for downloading subrepos in download menu.
447 448 - Added basic API for direct operations on rhodecode via JSON
448 449 - Implemented advanced hook management
449 450
450 451 fixes
451 452 +++++
452 453
453 454 - fixed file browser bug, when switching into given form revision the url was
454 455 not changing
455 456 - fixed propagation to error controller on simplehg and simplegit middlewares
456 457 - fixed error when trying to make a download on empty repository
457 458 - fixed problem with '[' chars in commit messages in journal
458 459 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
459 460 - journal fork fixes
460 461 - removed issue with space inside renamed repository after deletion
461 462 - fixed strange issue on formencode imports
462 463 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
463 464 - #150 fixes for errors on repositories mapped in db but corrupted in
464 465 filesystem
465 466 - fixed problem with ascendant characters in realm #181
466 467 - fixed problem with sqlite file based database connection pool
467 468 - whoosh indexer and code stats share the same dynamic extensions map
468 469 - fixes #188 - relationship delete of repo_to_perm entry on user removal
469 470 - fixes issue #189 Trending source files shows "show more" when no more exist
470 471 - fixes issue #197 Relative paths for pidlocks
471 472 - fixes issue #198 password will require only 3 chars now for login form
472 473 - fixes issue #199 wrong redirection for non admin users after creating a repository
473 474 - fixes issues #202, bad db constraint made impossible to attach same group
474 475 more than one time. Affects only mysql/postgres
475 476 - fixes #218 os.kill patch for windows was missing sig param
476 477 - improved rendering of dag (they are not trimmed anymore when number of
477 478 heads exceeds 5)
478 479
479 480 1.1.8 (**2011-04-12**)
480 481 ----------------------
481 482
482 483 news
483 484 ++++
484 485
485 486 - improved windows support
486 487
487 488 fixes
488 489 +++++
489 490
490 491 - fixed #140 freeze of python dateutil library, since new version is python2.x
491 492 incompatible
492 493 - setup-app will check for write permission in given path
493 494 - cleaned up license info issue #149
494 495 - fixes for issues #137,#116 and problems with unicode and accented characters.
495 496 - fixes crashes on gravatar, when passed in email as unicode
496 497 - fixed tooltip flickering problems
497 498 - fixed came_from redirection on windows
498 499 - fixed logging modules, and sql formatters
499 500 - windows fixes for os.kill issue #133
500 501 - fixes path splitting for windows issues #148
501 502 - fixed issue #143 wrong import on migration to 1.1.X
502 503 - fixed problems with displaying binary files, thanks to Thomas Waldmann
503 504 - removed name from archive files since it's breaking ui for long repo names
504 505 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
505 506 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
506 507 Thomas Waldmann
507 508 - fixed issue #166 summary pager was skipping 10 revisions on second page
508 509
509 510
510 511 1.1.7 (**2011-03-23**)
511 512 ----------------------
512 513
513 514 news
514 515 ++++
515 516
516 517 fixes
517 518 +++++
518 519
519 520 - fixed (again) #136 installation support for FreeBSD
520 521
521 522
522 523 1.1.6 (**2011-03-21**)
523 524 ----------------------
524 525
525 526 news
526 527 ++++
527 528
528 529 fixes
529 530 +++++
530 531
531 532 - fixed #136 installation support for FreeBSD
532 533 - RhodeCode will check for python version during installation
533 534
534 535 1.1.5 (**2011-03-17**)
535 536 ----------------------
536 537
537 538 news
538 539 ++++
539 540
540 541 - basic windows support, by exchanging pybcrypt into sha256 for windows only
541 542 highly inspired by idea of mantis406
542 543
543 544 fixes
544 545 +++++
545 546
546 547 - fixed sorting by author in main page
547 548 - fixed crashes with diffs on binary files
548 549 - fixed #131 problem with boolean values for LDAP
549 550 - fixed #122 mysql problems thanks to striker69
550 551 - fixed problem with errors on calling raw/raw_files/annotate functions
551 552 with unknown revisions
552 553 - fixed returned rawfiles attachment names with international character
553 554 - cleaned out docs, big thanks to Jason Harris
554 555
555 556 1.1.4 (**2011-02-19**)
556 557 ----------------------
557 558
558 559 news
559 560 ++++
560 561
561 562 fixes
562 563 +++++
563 564
564 565 - fixed formencode import problem on settings page, that caused server crash
565 566 when that page was accessed as first after server start
566 567 - journal fixes
567 568 - fixed option to access repository just by entering http://server/<repo_name>
568 569
569 570 1.1.3 (**2011-02-16**)
570 571 ----------------------
571 572
572 573 news
573 574 ++++
574 575
575 576 - implemented #102 allowing the '.' character in username
576 577 - added option to access repository just by entering http://server/<repo_name>
577 578 - celery task ignores result for better performance
578 579
579 580 fixes
580 581 +++++
581 582
582 583 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
583 584 apollo13 and Johan Walles
584 585 - small fixes in journal
585 586 - fixed problems with getting setting for celery from .ini files
586 587 - registration, password reset and login boxes share the same title as main
587 588 application now
588 589 - fixed #113: to high permissions to fork repository
589 590 - fixed problem with '[' chars in commit messages in journal
590 591 - removed issue with space inside renamed repository after deletion
591 592 - db transaction fixes when filesystem repository creation failed
592 593 - fixed #106 relation issues on databases different than sqlite
593 594 - fixed static files paths links to use of url() method
594 595
595 596 1.1.2 (**2011-01-12**)
596 597 ----------------------
597 598
598 599 news
599 600 ++++
600 601
601 602
602 603 fixes
603 604 +++++
604 605
605 606 - fixes #98 protection against float division of percentage stats
606 607 - fixed graph bug
607 608 - forced webhelpers version since it was making troubles during installation
608 609
609 610 1.1.1 (**2011-01-06**)
610 611 ----------------------
611 612
612 613 news
613 614 ++++
614 615
615 616 - added force https option into ini files for easier https usage (no need to
616 617 set server headers with this options)
617 618 - small css updates
618 619
619 620 fixes
620 621 +++++
621 622
622 623 - fixed #96 redirect loop on files view on repositories without changesets
623 624 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
624 625 and server crashed with errors
625 626 - fixed large tooltips problems on main page
626 627 - fixed #92 whoosh indexer is more error proof
627 628
628 629 1.1.0 (**2010-12-18**)
629 630 ----------------------
630 631
631 632 news
632 633 ++++
633 634
634 635 - rewrite of internals for vcs >=0.1.10
635 636 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
636 637 with older clients
637 638 - anonymous access, authentication via ldap
638 639 - performance upgrade for cached repos list - each repository has its own
639 640 cache that's invalidated when needed.
640 641 - performance upgrades on repositories with large amount of commits (20K+)
641 642 - main page quick filter for filtering repositories
642 643 - user dashboards with ability to follow chosen repositories actions
643 644 - sends email to admin on new user registration
644 645 - added cache/statistics reset options into repository settings
645 646 - more detailed action logger (based on hooks) with pushed changesets lists
646 647 and options to disable those hooks from admin panel
647 648 - introduced new enhanced changelog for merges that shows more accurate results
648 649 - new improved and faster code stats (based on pygments lexers mapping tables,
649 650 showing up to 10 trending sources for each repository. Additionally stats
650 651 can be disabled in repository settings.
651 652 - gui optimizations, fixed application width to 1024px
652 653 - added cut off (for large files/changesets) limit into config files
653 654 - whoosh, celeryd, upgrade moved to paster command
654 655 - other than sqlite database backends can be used
655 656
656 657 fixes
657 658 +++++
658 659
659 660 - fixes #61 forked repo was showing only after cache expired
660 661 - fixes #76 no confirmation on user deletes
661 662 - fixes #66 Name field misspelled
662 663 - fixes #72 block user removal when he owns repositories
663 664 - fixes #69 added password confirmation fields
664 665 - fixes #87 RhodeCode crashes occasionally on updating repository owner
665 666 - fixes #82 broken annotations on files with more than 1 blank line at the end
666 667 - a lot of fixes and tweaks for file browser
667 668 - fixed detached session issues
668 669 - fixed when user had no repos he would see all repos listed in my account
669 670 - fixed ui() instance bug when global hgrc settings was loaded for server
670 671 instance and all hgrc options were merged with our db ui() object
671 672 - numerous small bugfixes
672 673
673 674 (special thanks for TkSoh for detailed feedback)
674 675
675 676
676 677 1.0.2 (**2010-11-12**)
677 678 ----------------------
678 679
679 680 news
680 681 ++++
681 682
682 683 - tested under python2.7
683 684 - bumped sqlalchemy and celery versions
684 685
685 686 fixes
686 687 +++++
687 688
688 689 - fixed #59 missing graph.js
689 690 - fixed repo_size crash when repository had broken symlinks
690 691 - fixed python2.5 crashes.
691 692
692 693
693 694 1.0.1 (**2010-11-10**)
694 695 ----------------------
695 696
696 697 news
697 698 ++++
698 699
699 700 - small css updated
700 701
701 702 fixes
702 703 +++++
703 704
704 705 - fixed #53 python2.5 incompatible enumerate calls
705 706 - fixed #52 disable mercurial extension for web
706 707 - fixed #51 deleting repositories don't delete it's dependent objects
707 708
708 709
709 710 1.0.0 (**2010-11-02**)
710 711 ----------------------
711 712
712 713 - security bugfix simplehg wasn't checking for permissions on commands
713 714 other than pull or push.
714 715 - fixed doubled messages after push or pull in admin journal
715 716 - templating and css corrections, fixed repo switcher on chrome, updated titles
716 717 - admin menu accessible from options menu on repository view
717 718 - permissions cached queries
718 719
719 720 1.0.0rc4 (**2010-10-12**)
720 721 --------------------------
721 722
722 723 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
723 724 - removed cache_manager settings from sqlalchemy meta
724 725 - added sqlalchemy cache settings to ini files
725 726 - validated password length and added second try of failure on paster setup-app
726 727 - fixed setup database destroy prompt even when there was no db
727 728
728 729
729 730 1.0.0rc3 (**2010-10-11**)
730 731 -------------------------
731 732
732 733 - fixed i18n during installation.
733 734
734 735 1.0.0rc2 (**2010-10-11**)
735 736 -------------------------
736 737
737 738 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
738 739 occure. After vcs is fixed it'll be put back again.
739 740 - templating/css rewrites, optimized css. No newline at end of file
@@ -1,715 +1,724 b''
1 1 .. _setup:
2 2
3 3 =====
4 4 Setup
5 5 =====
6 6
7 7
8 8 Setting up RhodeCode
9 9 --------------------
10 10
11 11 First, you will need to create a RhodeCode configuration file. Run the
12 12 following command to do this::
13 13
14 14 paster make-config RhodeCode production.ini
15 15
16 16 - This will create the file `production.ini` in the current directory. This
17 17 configuration file contains the various settings for RhodeCode, e.g proxy
18 18 port, email settings, usage of static files, cache, celery settings and
19 19 logging.
20 20
21 21
22 22 Next, you need to create the databases used by RhodeCode. I recommend that you
23 23 use postgresql or sqlite (default). If you choose a database other than the
24 24 default ensure you properly adjust the db url in your production.ini
25 25 configuration file to use this other database. RhodeCode currently supports
26 26 postgresql, sqlite and mysql databases. Create the database by running
27 27 the following command::
28 28
29 29 paster setup-rhodecode production.ini
30 30
31 31 This will prompt you for a "root" path. This "root" path is the location where
32 32 RhodeCode will store all of its repositories on the current machine. After
33 33 entering this "root" path ``setup-rhodecode`` will also prompt you for a username
34 34 and password for the initial admin account which ``setup-rhodecode`` sets
35 35 up for you.
36 36
37 37 setup process can be fully automated, example for lazy::
38 38
39 39 paster setup-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
40 40
41 41
42 42 - The ``setup-rhodecode`` command will create all of the needed tables and an
43 43 admin account. When choosing a root path you can either use a new empty
44 44 location, or a location which already contains existing repositories. If you
45 45 choose a location which contains existing repositories RhodeCode will simply
46 46 add all of the repositories at the chosen location to it's database.
47 47 (Note: make sure you specify the correct path to the root).
48 48 - Note: the given path for mercurial_ repositories **must** be write accessible
49 49 for the application. It's very important since the RhodeCode web interface
50 50 will work without write access, but when trying to do a push it will
51 51 eventually fail with permission denied errors unless it has write access.
52 52
53 53 You are now ready to use RhodeCode, to run it simply execute::
54 54
55 55 paster serve production.ini
56 56
57 57 - This command runs the RhodeCode server. The web app should be available at the
58 58 127.0.0.1:5000. This ip and port is configurable via the production.ini
59 59 file created in previous step
60 60 - Use the admin account you created above when running ``setup-rhodecode``
61 61 to login to the web app.
62 62 - The default permissions on each repository is read, and the owner is admin.
63 63 Remember to update these if needed.
64 64 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
65 65 well as edit more advanced options on users and repositories
66 66
67 67 Optionally users can create `rcextensions` package that extends RhodeCode
68 68 functionality. To do this simply execute::
69 69
70 70 paster make-rcext production.ini
71 71
72 72 This will create `rcextensions` package in the same place that your `ini` file
73 73 lives. With `rcextensions` it's possible to add additional mapping for whoosh,
74 74 stats and add additional code into the push/pull/create repo hooks. For example
75 75 for sending signals to build-bots such as jenkins.
76 76 Please see the `__init__.py` file inside `rcextensions` package
77 77 for more details.
78 78
79 79
80 80 Using RhodeCode with SSH
81 81 ------------------------
82 82
83 83 RhodeCode currently only hosts repositories using http and https. (The addition
84 84 of ssh hosting is a planned future feature.) However you can easily use ssh in
85 85 parallel with RhodeCode. (Repository access via ssh is a standard "out of
86 86 the box" feature of mercurial_ and you can use this to access any of the
87 87 repositories that RhodeCode is hosting. See PublishingRepositories_)
88 88
89 89 RhodeCode repository structures are kept in directories with the same name
90 90 as the project. When using repository groups, each group is a subdirectory.
91 91 This allows you to easily use ssh for accessing repositories.
92 92
93 93 In order to use ssh you need to make sure that your web-server and the users
94 94 login accounts have the correct permissions set on the appropriate directories.
95 95 (Note that these permissions are independent of any permissions you have set up
96 96 using the RhodeCode web interface.)
97 97
98 98 If your main directory (the same as set in RhodeCode settings) is for example
99 99 set to **/home/hg** and the repository you are using is named `rhodecode`, then
100 100 to clone via ssh you should run::
101 101
102 102 hg clone ssh://user@server.com/home/hg/rhodecode
103 103
104 104 Using other external tools such as mercurial-server_ or using ssh key based
105 105 authentication is fully supported.
106 106
107 107 Note: In an advanced setup, in order for your ssh access to use the same
108 108 permissions as set up via the RhodeCode web interface, you can create an
109 109 authentication hook to connect to the rhodecode db and runs check functions for
110 110 permissions against that.
111 111
112 112 Setting up Whoosh full text search
113 113 ----------------------------------
114 114
115 115 Starting from version 1.1 the whoosh index can be build by using the paster
116 116 command ``make-index``. To use ``make-index`` you must specify the configuration
117 117 file that stores the location of the index. You may specify the location of the
118 118 repositories (`--repo-location`). If not specified, this value is retrieved
119 119 from the RhodeCode database. This was required prior to 1.2. Starting from
120 120 version 1.2 it is also possible to specify a comma separated list of
121 121 repositories (`--index-only`) to build index only on chooses repositories
122 122 skipping any other found in repos location
123 123
124 124 You may optionally pass the option `-f` to enable a full index rebuild. Without
125 125 the `-f` option, indexing will run always in "incremental" mode.
126 126
127 127 For an incremental index build use::
128 128
129 129 paster make-index production.ini
130 130
131 131 For a full index rebuild use::
132 132
133 133 paster make-index production.ini -f
134 134
135 135
136 136 building index just for chosen repositories is possible with such command::
137 137
138 138 paster make-index production.ini --index-only=vcs,rhodecode
139 139
140 140
141 141 In order to do periodical index builds and keep your index always up to date.
142 142 It's recommended to do a crontab entry for incremental indexing.
143 143 An example entry might look like this::
144 144
145 145 /path/to/python/bin/paster make-index /path/to/rhodecode/production.ini
146 146
147 147 When using incremental mode (the default) whoosh will check the last
148 148 modification date of each file and add it to be reindexed if a newer file is
149 149 available. The indexing daemon checks for any removed files and removes them
150 150 from index.
151 151
152 152 If you want to rebuild index from scratch, you can use the `-f` flag as above,
153 153 or in the admin panel you can check `build from scratch` flag.
154 154
155 155
156 156 Setting up LDAP support
157 157 -----------------------
158 158
159 159 RhodeCode starting from version 1.1 supports ldap authentication. In order
160 160 to use LDAP, you have to install the python-ldap_ package. This package is
161 161 available via pypi, so you can install it by running
162 162
163 163 using easy_install::
164 164
165 165 easy_install python-ldap
166 166
167 167 using pip::
168 168
169 169 pip install python-ldap
170 170
171 171 .. note::
172 172 python-ldap requires some certain libs on your system, so before installing
173 173 it check that you have at least `openldap`, and `sasl` libraries.
174 174
175 175 LDAP settings are located in admin->ldap section,
176 176
177 177 Here's a typical ldap setup::
178 178
179 179 Connection settings
180 180 Enable LDAP = checked
181 181 Host = host.example.org
182 182 Port = 389
183 183 Account = <account>
184 184 Password = <password>
185 185 Connection Security = LDAPS connection
186 186 Certificate Checks = DEMAND
187 187
188 188 Search settings
189 189 Base DN = CN=users,DC=host,DC=example,DC=org
190 190 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
191 191 LDAP Search Scope = SUBTREE
192 192
193 193 Attribute mappings
194 194 Login Attribute = uid
195 195 First Name Attribute = firstName
196 196 Last Name Attribute = lastName
197 197 E-mail Attribute = mail
198 198
199 199 .. _enable_ldap:
200 200
201 201 Enable LDAP : required
202 202 Whether to use LDAP for authenticating users.
203 203
204 204 .. _ldap_host:
205 205
206 206 Host : required
207 207 LDAP server hostname or IP address.
208 208
209 209 .. _Port:
210 210
211 211 Port : required
212 212 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
213 213
214 214 .. _ldap_account:
215 215
216 216 Account : optional
217 217 Only required if the LDAP server does not allow anonymous browsing of
218 218 records. This should be a special account for record browsing. This
219 219 will require `LDAP Password`_ below.
220 220
221 221 .. _LDAP Password:
222 222
223 223 Password : optional
224 224 Only required if the LDAP server does not allow anonymous browsing of
225 225 records.
226 226
227 227 .. _Enable LDAPS:
228 228
229 229 Connection Security : required
230 230 Defines the connection to LDAP server
231 231
232 232 No encryption
233 233 Plain non encrypted connection
234 234
235 235 LDAPS connection
236 236 Enable ldaps connection. It will likely require `Port`_ to be set to
237 237 a different value (standard LDAPS port is 636). When LDAPS is enabled
238 238 then `Certificate Checks`_ is required.
239 239
240 240 START_TLS on LDAP connection
241 241 START TLS connection
242 242
243 243 .. _Certificate Checks:
244 244
245 245 Certificate Checks : optional
246 246 How SSL certificates verification is handled - this is only useful when
247 247 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
248 248 while the other options are susceptible to man-in-the-middle attacks. SSL
249 249 certificates can be installed to /etc/openldap/cacerts so that the
250 250 DEMAND or HARD options can be used with self-signed certificates or
251 251 certificates that do not have traceable certificates of authority.
252 252
253 253 NEVER
254 254 A serve certificate will never be requested or checked.
255 255
256 256 ALLOW
257 257 A server certificate is requested. Failure to provide a
258 258 certificate or providing a bad certificate will not terminate the
259 259 session.
260 260
261 261 TRY
262 262 A server certificate is requested. Failure to provide a
263 263 certificate does not halt the session; providing a bad certificate
264 264 halts the session.
265 265
266 266 DEMAND
267 267 A server certificate is requested and must be provided and
268 268 authenticated for the session to proceed.
269 269
270 270 HARD
271 271 The same as DEMAND.
272 272
273 273 .. _Base DN:
274 274
275 275 Base DN : required
276 276 The Distinguished Name (DN) where searches for users will be performed.
277 277 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
278 278
279 279 .. _LDAP Filter:
280 280
281 281 LDAP Filter : optional
282 282 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
283 283 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
284 284 which LDAP objects are identified as representing Users for
285 285 authentication. The filter is augmented by `Login Attribute`_ below.
286 286 This can commonly be left blank.
287 287
288 288 .. _LDAP Search Scope:
289 289
290 290 LDAP Search Scope : required
291 291 This limits how far LDAP will search for a matching object.
292 292
293 293 BASE
294 294 Only allows searching of `Base DN`_ and is usually not what you
295 295 want.
296 296
297 297 ONELEVEL
298 298 Searches all entries under `Base DN`_, but not Base DN itself.
299 299
300 300 SUBTREE
301 301 Searches all entries below `Base DN`_, but not Base DN itself.
302 302 When using SUBTREE `LDAP Filter`_ is useful to limit object
303 303 location.
304 304
305 305 .. _Login Attribute:
306 306
307 307 Login Attribute : required
308 308 The LDAP record attribute that will be matched as the USERNAME or
309 309 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
310 310 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
311 311 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
312 312 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
313 313 ::
314 314
315 315 (&(LDAPFILTER)(uid=jsmith))
316 316
317 317 .. _ldap_attr_firstname:
318 318
319 319 First Name Attribute : required
320 320 The LDAP record attribute which represents the user's first name.
321 321
322 322 .. _ldap_attr_lastname:
323 323
324 324 Last Name Attribute : required
325 325 The LDAP record attribute which represents the user's last name.
326 326
327 327 .. _ldap_attr_email:
328 328
329 329 Email Attribute : required
330 330 The LDAP record attribute which represents the user's email address.
331 331
332 332 If all data are entered correctly, and python-ldap_ is properly installed
333 333 users should be granted access to RhodeCode with ldap accounts. At this
334 334 time user information is copied from LDAP into the RhodeCode user database.
335 335 This means that updates of an LDAP user object may not be reflected as a
336 336 user update in RhodeCode.
337 337
338 338 If You have problems with LDAP access and believe You entered correct
339 339 information check out the RhodeCode logs, any error messages sent from LDAP
340 340 will be saved there.
341 341
342 342 Active Directory
343 343 ''''''''''''''''
344 344
345 345 RhodeCode can use Microsoft Active Directory for user authentication. This
346 346 is done through an LDAP or LDAPS connection to Active Directory. The
347 347 following LDAP configuration settings are typical for using Active
348 348 Directory ::
349 349
350 350 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
351 351 Login Attribute = sAMAccountName
352 352 First Name Attribute = givenName
353 353 Last Name Attribute = sn
354 354 E-mail Attribute = mail
355 355
356 356 All other LDAP settings will likely be site-specific and should be
357 357 appropriately configured.
358 358
359 359
360 360 Authentication by container or reverse-proxy
361 361 --------------------------------------------
362 362
363 363 Starting with version 1.3, RhodeCode supports delegating the authentication
364 364 of users to its WSGI container, or to a reverse-proxy server through which all
365 365 clients access the application.
366 366
367 367 When these authentication methods are enabled in RhodeCode, it uses the
368 368 username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
369 369 perform the authentication itself. The authorization, however, is still done by
370 370 RhodeCode according to its settings.
371 371
372 372 When a user logs in for the first time using these authentication methods,
373 373 a matching user account is created in RhodeCode with default permissions. An
374 374 administrator can then modify it using RhodeCode's admin interface.
375 375 It's also possible for an administrator to create accounts and configure their
376 376 permissions before the user logs in for the first time.
377 377
378 378 Container-based authentication
379 379 ''''''''''''''''''''''''''''''
380 380
381 381 In a container-based authentication setup, RhodeCode reads the user name from
382 382 the ``REMOTE_USER`` server variable provided by the WSGI container.
383 383
384 384 After setting up your container (see `Apache's WSGI config`_), you'd need
385 385 to configure it to require authentication on the location configured for
386 386 RhodeCode.
387 387
388 388 In order for RhodeCode to start using the provided username, you should set the
389 389 following in the [app:main] section of your .ini file::
390 390
391 391 container_auth_enabled = true
392 392
393 393
394 394 Proxy pass-through authentication
395 395 '''''''''''''''''''''''''''''''''
396 396
397 397 In a proxy pass-through authentication setup, RhodeCode reads the user name
398 398 from the ``X-Forwarded-User`` request header, which should be configured to be
399 399 sent by the reverse-proxy server.
400 400
401 401 After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
402 402 `Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
403 403 configure the authentication and add the username in a request header named
404 404 ``X-Forwarded-User``.
405 405
406 406 For example, the following config section for Apache sets a subdirectory in a
407 407 reverse-proxy setup with basic auth::
408 408
409 409 <Location /<someprefix> >
410 410 ProxyPass http://127.0.0.1:5000/<someprefix>
411 411 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
412 412 SetEnvIf X-Url-Scheme https HTTPS=1
413 413
414 414 AuthType Basic
415 415 AuthName "RhodeCode authentication"
416 416 AuthUserFile /home/web/rhodecode/.htpasswd
417 417 require valid-user
418 418
419 419 RequestHeader unset X-Forwarded-User
420 420
421 421 RewriteEngine On
422 422 RewriteCond %{LA-U:REMOTE_USER} (.+)
423 423 RewriteRule .* - [E=RU:%1]
424 424 RequestHeader set X-Forwarded-User %{RU}e
425 425 </Location>
426 426
427 427 In order for RhodeCode to start using the forwarded username, you should set
428 428 the following in the [app:main] section of your .ini file::
429 429
430 430 proxypass_auth_enabled = true
431 431
432 432 .. note::
433 433 If you enable proxy pass-through authentication, make sure your server is
434 434 only accessible through the proxy. Otherwise, any client would be able to
435 435 forge the authentication header and could effectively become authenticated
436 436 using any account of their liking.
437 437
438 438 Integration with Issue trackers
439 439 -------------------------------
440 440
441 441 RhodeCode provides a simple integration with issue trackers. It's possible
442 442 to define a regular expression that will fetch issue id stored in commit
443 443 messages and replace that with an url to this issue. To enable this simply
444 444 uncomment following variables in the ini file::
445 445
446 446 url_pat = (?:^#|\s#)(\w+)
447 447 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
448 448 issue_prefix = #
449 449
450 450 `url_pat` is the regular expression that will fetch issues from commit messages.
451 451 Default regex will match issues in format of #<number> eg. #300.
452 452
453 453 Matched issues will be replace with the link specified as `issue_server_link`
454 454 {id} will be replaced with issue id, and {repo} with repository name.
455 455 Since the # is striped `issue_prefix` is added as a prefix to url.
456 456 `issue_prefix` can be something different than # if you pass
457 457 ISSUE- as issue prefix this will generate an url in format::
458 458
459 459 <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
460 460
461 461 Hook management
462 462 ---------------
463 463
464 464 Hooks can be managed in similar way to this used in .hgrc files.
465 465 To access hooks setting click `advanced setup` on Hooks section of Mercurial
466 466 Settings in Admin.
467 467
468 468 There are 4 built in hooks that cannot be changed (only enable/disable by
469 469 checkboxes on previos section).
470 470 To add another custom hook simply fill in first section with
471 471 <name>.<hook_type> and the second one with hook path. Example hooks
472 472 can be found at *rhodecode.lib.hooks*.
473 473
474 474
475 475 Changing default encoding
476 476 -------------------------
477 477
478 478 By default RhodeCode uses utf8 encoding, starting from 1.3 series this
479 479 can be changed, simply edit default_encoding in .ini file to desired one.
480 480 This affects many parts in rhodecode including commiters names, filenames,
481 481 encoding of commit messages. In addition RhodeCode can detect if `chardet`
482 482 library is installed. If `chardet` is detected RhodeCode will fallback to it
483 483 when there are encode/decode errors.
484 484
485 485
486 486 Setting Up Celery
487 487 -----------------
488 488
489 489 Since version 1.1 celery is configured by the rhodecode ini configuration files.
490 490 Simply set use_celery=true in the ini file then add / change the configuration
491 491 variables inside the ini file.
492 492
493 493 Remember that the ini files use the format with '.' not with '_' like celery.
494 494 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
495 495 the config file.
496 496
497 497 In order to start using celery run::
498 498
499 499 paster celeryd <configfile.ini>
500 500
501 501
502 502 .. note::
503 503 Make sure you run this command from the same virtualenv, and with the same
504 504 user that rhodecode runs.
505 505
506 506 HTTPS support
507 507 -------------
508 508
509 509 There are two ways to enable https:
510 510
511 511 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
512 512 recognize this headers and make proper https redirections
513 513 - Alternatively, change the `force_https = true` flag in the ini configuration
514 514 to force using https, no headers are needed than to enable https
515 515
516 516
517 517 Nginx virtual host example
518 518 --------------------------
519 519
520 520 Sample config for nginx using proxy::
521 521
522 522 upstream rc {
523 523 server 127.0.0.1:5000;
524 524 # add more instances for load balancing
525 525 #server 127.0.0.1:5001;
526 526 #server 127.0.0.1:5002;
527 527 }
528 528
529 529 server {
530 530 listen 80;
531 531 server_name hg.myserver.com;
532 532 access_log /var/log/nginx/rhodecode.access.log;
533 533 error_log /var/log/nginx/rhodecode.error.log;
534 534
535 535 # uncomment if you have nginx with chunking module compiled
536 536 # fixes the issues of having to put postBuffer data for large git
537 537 # pushes
538 538 #chunkin on;
539 539 #error_page 411 = @my_411_error;
540 540 #location @my_411_error {
541 541 # chunkin_resume;
542 542 #}
543 543
544 544 # uncomment if you want to serve static files by nginx
545 545 #root /path/to/installation/rhodecode/public;
546 546
547 547 location / {
548 548 try_files $uri @rhode;
549 549 }
550 550
551 551 location @rhode {
552 552 proxy_pass http://rc;
553 553 include /etc/nginx/proxy.conf;
554 554 }
555 555
556 556 }
557 557
558 558 Here's the proxy.conf. It's tuned so it will not timeout on long
559 559 pushes or large pushes::
560 560
561 561 proxy_redirect off;
562 562 proxy_set_header Host $host;
563 563 proxy_set_header X-Url-Scheme $scheme;
564 564 proxy_set_header X-Host $http_host;
565 565 proxy_set_header X-Real-IP $remote_addr;
566 566 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
567 567 proxy_set_header Proxy-host $proxy_host;
568 568 client_max_body_size 400m;
569 569 client_body_buffer_size 128k;
570 570 proxy_buffering off;
571 571 proxy_connect_timeout 7200;
572 572 proxy_send_timeout 7200;
573 573 proxy_read_timeout 7200;
574 574 proxy_buffers 8 32k;
575 575
576 576 Also, when using root path with nginx you might set the static files to false
577 577 in the production.ini file::
578 578
579 579 [app:main]
580 580 use = egg:rhodecode
581 581 full_stack = true
582 582 static_files = false
583 583 lang=en
584 584 cache_dir = %(here)s/data
585 585
586 586 In order to not have the statics served by the application. This improves speed.
587 587
588 588
589 589 Apache virtual host reverse proxy example
590 590 -----------------------------------------
591 591
592 592 Here is a sample configuration file for apache using proxy::
593 593
594 594 <VirtualHost *:80>
595 595 ServerName hg.myserver.com
596 596 ServerAlias hg.myserver.com
597 597
598 598 <Proxy *>
599 599 Order allow,deny
600 600 Allow from all
601 601 </Proxy>
602 602
603 603 #important !
604 604 #Directive to properly generate url (clone url) for pylons
605 605 ProxyPreserveHost On
606 606
607 607 #rhodecode instance
608 608 ProxyPass / http://127.0.0.1:5000/
609 609 ProxyPassReverse / http://127.0.0.1:5000/
610 610
611 611 #to enable https use line below
612 612 #SetEnvIf X-Url-Scheme https HTTPS=1
613 613
614 614 </VirtualHost>
615 615
616 616
617 617 Additional tutorial
618 618 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
619 619
620 620
621 621 Apache as subdirectory
622 622 ----------------------
623 623
624 624 Apache subdirectory part::
625 625
626 626 <Location /<someprefix> >
627 627 ProxyPass http://127.0.0.1:5000/<someprefix>
628 628 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
629 629 SetEnvIf X-Url-Scheme https HTTPS=1
630 630 </Location>
631 631
632 632 Besides the regular apache setup you will need to add the following line
633 633 into [app:main] section of your .ini file::
634 634
635 635 filter-with = proxy-prefix
636 636
637 637 Add the following at the end of the .ini file::
638 638
639 639 [filter:proxy-prefix]
640 640 use = egg:PasteDeploy#prefix
641 641 prefix = /<someprefix>
642 642
643 643
644 644 then change <someprefix> into your choosen prefix
645 645
646 646 Apache's WSGI config
647 647 --------------------
648 648
649 649 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
650 650 that, you'll need to:
651 651
652 652 - Install mod_wsgi. If using a Debian-based distro, you can install
653 653 the package libapache2-mod-wsgi::
654 654
655 655 aptitude install libapache2-mod-wsgi
656 656
657 657 - Enable mod_wsgi::
658 658
659 659 a2enmod wsgi
660 660
661 661 - Create a wsgi dispatch script, like the one below. Make sure you
662 662 check the paths correctly point to where you installed RhodeCode
663 663 and its Python Virtual Environment.
664 664 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
665 665 as in the following example. Once again, check the paths are
666 666 correctly specified.
667 667
668 668 Here is a sample excerpt from an Apache Virtual Host configuration file::
669 669
670 WSGIDaemonProcess pylons user=www-data group=www-data processes=1 \
670 WSGIDaemonProcess pylons \
671 671 threads=4 \
672 672 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
673 673 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
674 674 WSGIPassAuthorization On
675 675
676 .. note::
677 when running apache as root please add: `user=www-data group=www-data`
678 into above configuration
679
680 .. note::
681 RhodeCode cannot be runned in multiprocess mode in apache, make sure
682 you don't specify `processes=num` directive in the config
683
684
676 685 Example wsgi dispatch script::
677 686
678 687 import os
679 688 os.environ["HGENCODING"] = "UTF-8"
680 689 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
681 690
682 691 # sometimes it's needed to set the curent dir
683 692 os.chdir('/home/web/rhodecode/')
684 693
685 694 import site
686 695 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
687 696
688 697 from paste.deploy import loadapp
689 698 from paste.script.util.logging_config import fileConfig
690 699
691 700 fileConfig('/home/web/rhodecode/production.ini')
692 701 application = loadapp('config:/home/web/rhodecode/production.ini')
693 702
694 703 Note: when using mod_wsgi you'll need to install the same version of
695 704 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
696 705 environment.
697 706
698 707
699 708 Other configuration files
700 709 -------------------------
701 710
702 711 Some example init.d scripts can be found in init.d directory::
703 712
704 713 https://secure.rhodecode.org/rhodecode/files/beta/init.d
705 714
706 715 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
707 716 .. _python: http://www.python.org/
708 717 .. _mercurial: http://mercurial.selenic.com/
709 718 .. _celery: http://celeryproject.org/
710 719 .. _rabbitmq: http://www.rabbitmq.com/
711 720 .. _python-ldap: http://www.python-ldap.org/
712 721 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
713 722 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
714 723 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
715 724 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now