##// END OF EJS Templates
docs: changelog + setup update
marcink -
r912:8378122a beta
parent child Browse files
Show More
@@ -1,136 +1,144 b''
1 1 .. _changelog:
2 2
3 3 Changelog
4 4 =========
5 5
6 6 1.2.0 (**2010-12-18**)
7 7 ----------------------
8 8
9 9 :status: in-progress
10 10 :branch: beta
11 11
12 12 news
13 13 ++++
14 14
15 - implemented #89 Can setup google analytics code from settings menu
15 16 - implemented #91 added nicer looking archive urls
16 17 - implemented #44 into file browsing, and added follow branch option
18 - anonymous repository can be cloned without having to pass default:default
19 into clone url
20 - fixed #90 whoosh indexer can index chooses repositories passed in command
21 line
17 22
18 23 fixes
19 24 ++++
20 25
21 26 - fixed file browser bug, when switching into given form revision the url was
22 27 not changing
23 - fixed #92
28 - fixed #92 whoosh indexer is more error proof
29 - fixed large tooltips problems
30 - fixed propagation to error controller on simplehg and simplegit middlewares
31
24 32
25 33 1.1.0 (**2010-12-18**)
26 34 ----------------------
27 35
28 36 news
29 37 ++++
30 38
31 39 - rewrite of internals for vcs >=0.1.10
32 40 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
33 41 with older clients
34 42 - anonymous access, authentication via ldap
35 43 - performance upgrade for cached repos list - each repository has it's own
36 44 cache that's invalidated when needed.
37 45 - performance upgrades on repositories with large amount of commits (20K+)
38 46 - main page quick filter for filtering repositories
39 47 - user dashboards with ability to follow chosen repositories actions
40 48 - sends email to admin on new user registration
41 49 - added cache/statistics reset options into repository settings
42 50 - more detailed action logger (based on hooks) with pushed changesets lists
43 51 and options to disable those hooks from admin panel
44 52 - introduced new enhanced changelog for merges that shows more accurate results
45 53 - new improved and faster code stats (based on pygments lexers mapping tables,
46 54 showing up to 10 trending sources for each repository. Additionally stats
47 55 can be disabled in repository settings.
48 56 - gui optimizations, fixed application width to 1024px
49 57 - added cut off (for large files/changesets) limit into config files
50 58 - whoosh, celeryd, upgrade moved to paster command
51 59 - other than sqlite database backends can be used
52 60
53 61 fixes
54 62 +++++
55 63
56 64 - fixes #61 forked repo was showing only after cache expired
57 65 - fixes #76 no confirmation on user deletes
58 66 - fixes #66 Name field misspelled
59 67 - fixes #72 block user removal when he owns repositories
60 68 - fixes #69 added password confirmation fields
61 69 - fixes #87 RhodeCode crashes occasionally on updating repository owner
62 70 - fixes #82 broken annotations on files with more than 1 blank line at the end
63 71 - a lot of fixes and tweaks for file browser
64 72 - fixed detached session issues
65 73 - fixed when user had no repos he would see all repos listed in my account
66 74 - fixed ui() instance bug when global hgrc settings was loaded for server
67 75 instance and all hgrc options were merged with our db ui() object
68 76 - numerous small bugfixes
69 77
70 78 (special thanks for TkSoh for detailed feedback)
71 79
72 80
73 81 1.0.2 (**2010-11-12**)
74 82 ----------------------
75 83
76 84 news
77 85 ++++
78 86
79 87 - tested under python2.7
80 88 - bumped sqlalchemy and celery versions
81 89
82 90 fixes
83 91 +++++
84 92
85 93 - fixed #59 missing graph.js
86 94 - fixed repo_size crash when repository had broken symlinks
87 95 - fixed python2.5 crashes.
88 96
89 97
90 98 1.0.1 (**2010-11-10**)
91 99 ----------------------
92 100
93 101 news
94 102 ++++
95 103
96 104 - small css updated
97 105
98 106 fixes
99 107 +++++
100 108
101 109 - fixed #53 python2.5 incompatible enumerate calls
102 110 - fixed #52 disable mercurial extension for web
103 111 - fixed #51 deleting repositories don't delete it's dependent objects
104 112
105 113
106 114 1.0.0 (**2010-11-02**)
107 115 ----------------------
108 116
109 117 - security bugfix simplehg wasn't checking for permissions on commands
110 118 other than pull or push.
111 119 - fixed doubled messages after push or pull in admin journal
112 120 - templating and css corrections, fixed repo switcher on chrome, updated titles
113 121 - admin menu accessible from options menu on repository view
114 122 - permissions cached queries
115 123
116 124 1.0.0rc4 (**2010-10-12**)
117 125 --------------------------
118 126
119 127 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
120 128 - removed cache_manager settings from sqlalchemy meta
121 129 - added sqlalchemy cache settings to ini files
122 130 - validated password length and added second try of failure on paster setup-app
123 131 - fixed setup database destroy prompt even when there was no db
124 132
125 133
126 134 1.0.0rc3 (**2010-10-11**)
127 135 -------------------------
128 136
129 137 - fixed i18n during installation.
130 138
131 139 1.0.0rc2 (**2010-10-11**)
132 140 -------------------------
133 141
134 142 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
135 143 occure. After vcs is fixed it'll be put back again.
136 144 - templating/css rewrites, optimized css. No newline at end of file
@@ -1,303 +1,328 b''
1 1 .. _setup:
2 2
3 3 Setup
4 4 =====
5 5
6 6
7 7 Setting up the application
8 8 --------------------------
9 9
10 10 First You'll ned to create RhodeCode config file. Run the following command
11 11 to do this
12 12
13 13 ::
14 14
15 15 paster make-config RhodeCode production.ini
16 16
17 17 - This will create `production.ini` config inside the directory
18 18 this config contains various settings for RhodeCode, e.g proxy port,
19 19 email settings, usage of static files, cache, celery settings and logging.
20 20
21 21
22 22
23 23 Next we need to create the database.
24 24
25 25 ::
26 26
27 27 paster setup-app production.ini
28 28
29 29 - This command will create all needed tables and an admin account.
30 30 When asked for a path You can either use a new location of one with already
31 31 existing ones. RhodeCode will simply add all new found repositories to
32 32 it's database. Also make sure You specify correct path to repositories.
33 33 - Remember that the given path for mercurial_ repositories must be write
34 34 accessible for the application. It's very important since RhodeCode web
35 35 interface will work even without such an access but, when trying to do a
36 36 push it'll eventually fail with permission denied errors.
37 37
38 38 You are ready to use rhodecode, to run it simply execute
39 39
40 40 ::
41 41
42 42 paster serve production.ini
43 43
44 44 - This command runs the RhodeCode server the app should be available at the
45 45 127.0.0.1:5000. This ip and port is configurable via the production.ini
46 46 file created in previous step
47 47 - Use admin account you created to login.
48 48 - Default permissions on each repository is read, and owner is admin. So
49 49 remember to update these if needed. In the admin panel You can toggle ldap,
50 50 anonymous, permissions settings. As well as edit more advanced options on
51 51 users and repositories
52 52
53 Using RhodeCode with SSH
54 ------------------------
55
56 RhodeCode repository structures are kept in directories with the same name
57 as the project, when using repository groups, each group is a a subdirectory.
58 This will allow You to use ssh for accessing repositories quite easy. There
59 are some exceptions when using ssh for accessing repositories.
60
61 You have to make sure that the webserver as well as the ssh users have unix
62 permission for directories. Secondly when using ssh rhodecode will not
63 authenticate those requests and permissions set by the web interface will not
64 work on the repositories accessed via ssh. There is a solution to this to use
65 auth hooks, that connects to rhodecode db, and runs check functions for
66 permissions.
67
68 TODO: post more info on this !
69
70 if Your main directory (the same as set in RhodeCode settings) is set to
71 for example `\home\hg` and repository You are using is `rhodecode`
72
73 The command runned should look like this::
74 hg clone ssh://user@server.com/home/hg/rhodecode
75
76 Using external tools such as mercurial server or using ssh key based auth is
77 fully supported.
53 78
54 79 Setting up Whoosh full text search
55 80 ----------------------------------
56 81
57 82 Starting from version 1.1 whoosh index can be build using paster command.
58 83 You have to specify the config file that stores location of index, and
59 84 location of repositories (`--repo-location`). Starting from version 1.2 it is
60 85 also possible to specify a comma separated list of repositories (`--index-only`)
61 86 to build index only on chooses repositories skipping any other found in repos
62 87 location
63 88
64 89 There is possible also to pass `-f` to the options
65 90 to enable full index rebuild. Without that indexing will run always in in
66 91 incremental mode.
67 92
68 93 incremental mode::
69 94
70 95 paster make-index production.ini --repo-location=<location for repos>
71 96
72 97
73 98
74 99 for full index rebuild You can use::
75 100
76 101 paster make-index production.ini -f --repo-location=<location for repos>
77 102
78 103
79 104 building index just for chosen repositories is possible with such command::
80 105
81 106 paster make-index production.ini --repo-location=<location for repos> --index-only=vcs,rhodecode
82 107
83 108
84 109 In order to do periodical index builds and keep Your index always up to date.
85 110 It's recommended to do a crontab entry for incremental indexing.
86 111 An example entry might look like this
87 112
88 113 ::
89 114
90 115 /path/to/python/bin/paster /path/to/rhodecode/production.ini --repo-location=<location for repos>
91 116
92 117 When using incremental (default) mode whoosh will check last modification date
93 118 of each file and add it to reindex if newer file is available. Also indexing
94 119 daemon checks for removed files and removes them from index.
95 120
96 121 Sometime You might want to rebuild index from scratch. You can do that using
97 122 the `-f` flag passed to paster command or, in admin panel You can check
98 123 `build from scratch` flag.
99 124
100 125
101 126 Setting up LDAP support
102 127 -----------------------
103 128
104 129 RhodeCode starting from version 1.1 supports ldap authentication. In order
105 130 to use ldap, You have to install python-ldap package. This package is available
106 131 via pypi, so You can install it by running
107 132
108 133 ::
109 134
110 135 easy_install python-ldap
111 136
112 137 ::
113 138
114 139 pip install python-ldap
115 140
116 141 .. note::
117 142 python-ldap requires some certain libs on Your system, so before installing
118 143 it check that You have at least `openldap`, and `sasl` libraries.
119 144
120 145 ldap settings are located in admin->ldap section,
121 146
122 147 Here's a typical ldap setup::
123 148
124 149 Enable ldap = checked #controls if ldap access is enabled
125 150 Host = host.domain.org #actual ldap server to connect
126 151 Port = 389 or 689 for ldaps #ldap server ports
127 152 Enable LDAPS = unchecked #enable disable ldaps
128 153 Account = <account> #access for ldap server(if required)
129 154 Password = <password> #password for ldap server(if required)
130 155 Base DN = uid=%(user)s,CN=users,DC=host,DC=domain,DC=org
131 156
132 157
133 158 `Account` and `Password` are optional, and used for two-phase ldap
134 159 authentication so those are credentials to access Your ldap, if it doesn't
135 160 support anonymous search/user lookups.
136 161
137 162 Base DN must have %(user)s template inside, it's a placer where Your uid used
138 163 to login would go, it allows admins to specify not standard schema for uid
139 164 variable
140 165
141 166 If all data are entered correctly, and `python-ldap` is properly installed
142 167 Users should be granted to access RhodeCode wit ldap accounts. When
143 168 logging at the first time an special ldap account is created inside RhodeCode,
144 169 so You can control over permissions even on ldap users. If such user exists
145 170 already in RhodeCode database ldap user with the same username would be not
146 171 able to access RhodeCode.
147 172
148 173 If You have problems with ldap access and believe You entered correct
149 174 information check out the RhodeCode logs,any error messages sent from
150 175 ldap will be saved there.
151 176
152 177
153 178
154 179 Setting Up Celery
155 180 -----------------
156 181
157 182 Since version 1.1 celery is configured by the rhodecode ini configuration files
158 183 simply set use_celery=true in the ini file then add / change the configuration
159 184 variables inside the ini file.
160 185
161 186 Remember that the ini files uses format with '.' not with '_' like celery
162 187 so for example setting `BROKER_HOST` in celery means setting `broker.host` in
163 188 the config file.
164 189
165 190 In order to make start using celery run::
166 191 paster celeryd <configfile.ini>
167 192
168 193
169 194
170 195 .. note::
171 196 Make sure You run this command from same virtualenv, and with the same user
172 197 that rhodecode runs.
173 198
174 199
175 200 Nginx virtual host example
176 201 --------------------------
177 202
178 203 Sample config for nginx using proxy::
179 204
180 205 server {
181 206 listen 80;
182 207 server_name hg.myserver.com;
183 208 access_log /var/log/nginx/rhodecode.access.log;
184 209 error_log /var/log/nginx/rhodecode.error.log;
185 210 location / {
186 211 root /var/www/rhodecode/rhodecode/public/;
187 212 if (!-f $request_filename){
188 213 proxy_pass http://127.0.0.1:5000;
189 214 }
190 215 #this is important if You want to use https !!!
191 216 proxy_set_header X-Url-Scheme $scheme;
192 217 include /etc/nginx/proxy.conf;
193 218 }
194 219 }
195 220
196 221 Here's the proxy.conf. It's tuned so it'll not timeout on long
197 222 pushes and also on large pushes::
198 223
199 224 proxy_redirect off;
200 225 proxy_set_header Host $host;
201 226 proxy_set_header X-Host $http_host;
202 227 proxy_set_header X-Real-IP $remote_addr;
203 228 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
204 229 proxy_set_header Proxy-host $proxy_host;
205 230 client_max_body_size 400m;
206 231 client_body_buffer_size 128k;
207 232 proxy_buffering off;
208 233 proxy_connect_timeout 3600;
209 234 proxy_send_timeout 3600;
210 235 proxy_read_timeout 3600;
211 236 proxy_buffer_size 8k;
212 237 proxy_buffers 8 32k;
213 238 proxy_busy_buffers_size 64k;
214 239 proxy_temp_file_write_size 64k;
215 240
216 241 Also when using root path with nginx You might set the static files to false
217 242 in production.ini file::
218 243
219 244 [app:main]
220 245 use = egg:rhodecode
221 246 full_stack = true
222 247 static_files = false
223 248 lang=en
224 249 cache_dir = %(here)s/data
225 250
226 251 To not have the statics served by the application. And improve speed.
227 252
228 253
229 254 Apache virtual host example
230 255 ---------------------------
231 256
232 257 Sample config for apache using proxy::
233 258
234 259 <VirtualHost *:80>
235 260 ServerName hg.myserver.com
236 261 ServerAlias hg.myserver.com
237 262
238 263 <Proxy *>
239 264 Order allow,deny
240 265 Allow from all
241 266 </Proxy>
242 267
243 268 #important !
244 269 #Directive to properly generate url (clone url) for pylons
245 270 ProxyPreserveHost On
246 271
247 272 #rhodecode instance
248 273 ProxyPass / http://127.0.0.1:5000/
249 274 ProxyPassReverse / http://127.0.0.1:5000/
250 275
251 276 #to enable https use line below
252 277 #SetEnvIf X-Url-Scheme https HTTPS=1
253 278
254 279 </VirtualHost>
255 280
256 281
257 282 Additional tutorial
258 283 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
259 284
260 285
261 286 Apache's example FCGI config
262 287 ----------------------------
263 288
264 289 TODO !
265 290
266 291 Other configuration files
267 292 -------------------------
268 293
269 294 Some example init.d script can be found here, for debian and gentoo:
270 295
271 296 https://rhodeocode.org/rhodecode/files/tip/init.d
272 297
273 298
274 299 Troubleshooting
275 300 ---------------
276 301
277 302 - missing static files ?
278 303
279 304 - make sure either to set the `static_files = true` in the .ini file or
280 305 double check the root path for Your http setup. It should point to
281 306 for example:
282 307 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
283 308
284 309 - can't install celery/rabbitmq
285 310
286 311 - don't worry RhodeCode works without them too. No extra setup required
287 312
288 313 - long lasting push timeouts ?
289 314
290 315 - make sure You set a longer timeouts in Your proxy/fcgi settings, timeouts
291 316 are caused by https server and not RhodeCode
292 317
293 318 - large pushes timeouts ?
294 319
295 320 - make sure You set a proper max_body_size for the http server
296 321
297 322
298 323
299 324 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
300 325 .. _python: http://www.python.org/
301 326 .. _mercurial: http://mercurial.selenic.com/
302 327 .. _celery: http://celeryproject.org/
303 328 .. _rabbitmq: http://www.rabbitmq.com/ No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now