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