##// END OF EJS Templates
docs update
marcink -
r845:a040597b beta
parent child Browse files
Show More
@@ -1,117 +1,121 b''
1 1 .. _changelog:
2 2
3 3 Changelog
4 4 =========
5 5
6 6 1.1.0 (**2010-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 - rewrite of internals for vcs >=0.1.10
16 16 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
17 17 with older clients
18 18 - anonymous access, authentication via ldap
19 19 - performance upgrade for cached repos list - each repository has it's own
20 20 cache that's invalidated when needed.
21 21 - performance upgrades on repositories with large amount of commits (20K+)
22 22 - main page quick filter for filtering repositories
23 23 - user dashboards with ability to follow chosen repositories actions
24 24 - sends email to admin on new user registration
25 25 - added cache/statistics reset options into repository settings
26 26 - more detailed action logger (based on hooks) with pushed changesets lists
27 27 and options to disable those hooks from admin panel
28 28 - introduced new enhanced changelog for merges that shows more accurate results
29 29 - new improved and faster code stats (based on pygments lexers mapping tables,
30 showing up to 10 trending sources for each repository
30 showing up to 10 trending sources for each repository. Additionally stats
31 can be disabled in repository settings.
31 32 - gui optimizations, fixed application width to 1024px
33 - added cut off (for large files/changesets) limit into config files
32 34 - whoosh, celeryd, upgrade moved to paster command
33 35 - other than sqlite database backends can be used
34 36
35 37 fixes
36 38 +++++
37 39
38 40 - fixes #61 forked repo was showing only after cache expired
39 41 - fixes #76 no confirmation on user deletes
40 42 - fixes #66 Name field misspelled
41 43 - fixes #72 block user removal when he owns repositories
42 44 - fixes #69 added password confirmation fields
45 - fixes #87 RhodeCode crashes occasionally on updating repository owner
46 - fixes #82 broken annotations on files with more than 1 blank line at the end
43 47 - a lot of fixes and tweaks for file browser
44 48 - fixed detached session issues
45 49 - fixed when user had no repos he would see all repos listed in my account
46 50 - fixed ui() instance bug when global hgrc settings was loaded for server
47 51 instance and all hgrc options were merged with our db ui() object
48 52 - numerous small bugfixes
49 53
50 54 (special thanks for TkSoh for detailed feedback)
51 55
52 56
53 57 1.0.2 (**2010-11-12**)
54 58 ----------------------
55 59
56 60 news
57 61 ++++
58 62
59 63 - tested under python2.7
60 64 - bumped sqlalchemy and celery versions
61 65
62 66 fixes
63 67 +++++
64 68
65 69 - fixed #59 missing graph.js
66 70 - fixed repo_size crash when repository had broken symlinks
67 71 - fixed python2.5 crashes.
68 72
69 73
70 74 1.0.1 (**2010-11-10**)
71 75 ----------------------
72 76
73 77 news
74 78 ++++
75 79
76 80 - small css updated
77 81
78 82 fixes
79 83 +++++
80 84
81 85 - fixed #53 python2.5 incompatible enumerate calls
82 86 - fixed #52 disable mercurial extension for web
83 87 - fixed #51 deleting repositories don't delete it's dependent objects
84 88
85 89
86 90 1.0.0 (**2010-11-02**)
87 91 ----------------------
88 92
89 93 - security bugfix simplehg wasn't checking for permissions on commands
90 94 other than pull or push.
91 95 - fixed doubled messages after push or pull in admin journal
92 96 - templating and css corrections, fixed repo switcher on chrome, updated titles
93 97 - admin menu accessible from options menu on repository view
94 98 - permissions cached queries
95 99
96 100 1.0.0rc4 (**2010-10-12**)
97 101 --------------------------
98 102
99 103 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
100 104 - removed cache_manager settings from sqlalchemy meta
101 105 - added sqlalchemy cache settings to ini files
102 106 - validated password length and added second try of failure on paster setup-app
103 107 - fixed setup database destroy prompt even when there was no db
104 108
105 109
106 110 1.0.0rc3 (**2010-10-11**)
107 111 -------------------------
108 112
109 113 - fixed i18n during installation.
110 114
111 115 1.0.0rc2 (**2010-10-11**)
112 116 -------------------------
113 117
114 118 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
115 119 occure. After vcs is fixed it'll be put back again.
116 120 - templating/css rewrites, optimized css.
117 121
@@ -1,21 +1,21 b''
1 1 .. _enable_git:
2 2
3 3 Enabling GIT support (beta)
4 4 ===========================
5 5
6 6
7 7 Git support in RhodeCode 1.1 was disabled due to some instability issues, but
8 8 If You would like to test it fell free to re-enable it. To enable GIT just
9 9 uncomment git line in rhodecode/__init__.py file
10 10
11 11 .. code-block:: python
12 12
13 13 BACKENDS = {
14 14 'hg': 'Mercurial repository',
15 15 #'git': 'Git repository',
16 16 }
17 17
18 18 .. note::
19 19 Please note that it's not fully stable and it might crash (that's why it
20 was disabled), so be carefull about enabling git support. Don't use it in
20 was disabled), so be careful about enabling git support. Don't use it in
21 21 production ! No newline at end of file
@@ -1,96 +1,96 b''
1 1 .. _installation:
2 2
3 3 Installation
4 4 ============
5 5
6 6 ``RhodeCode`` is written entirely in Python, but in order to use it's full
7 7 potential there are some third-party requirements. When RhodeCode is used
8 8 together with celery You have to install some kind of message broker,
9 9 recommended one is rabbitmq_ to make the async tasks work.
10 10
11 11 Of course RhodeCode works in sync mode also, then You don't have to install
12 12 any third party apps. Celery_ will give You large speed improvement when using
13 many big repositories. If You plan to use it for 2 or 3 small repositories, it
13 many big repositories. If You plan to use it for 7 or 10 small repositories, it
14 14 will work just fine without celery running.
15 15
16 After You decide to Run it with celery make sure You run celeryd and
17 message broker together with the application.
16 After You decide to Run it with celery make sure You run celeryd using paster
17 and message broker together with the application.
18 18
19 19 Requirements for Celery
20 20 -----------------------
21 21
22 22 .. note::
23 23 Installing message broker and using celery is optional, RhodeCode will
24 24 work without them perfectly fine.
25 25
26 26
27 27 **Message Broker**
28 28
29 29 - preferred is `RabbitMq <http://www.rabbitmq.com/>`_
30 30 - possible other is `Redis <http://code.google.com/p/redis/>`_
31 31
32 32 For installation instructions You can visit:
33 33 http://ask.github.com/celery/getting-started/index.html
34 34 It's very nice tutorial how to start celery_ with rabbitmq_
35 35
36 36 Install from Cheese Shop
37 37 ------------------------
38 Rhodecode requires python 2.5 or 2.6 and will not run on older or newer
39 versions of python. Python 2.7 is untested and thus not supported.
38 Rhodecode requires python 2.x greater than version 2.5
40 39
41 40 Easiest way to install ``rhodecode`` is to run::
42 41
43 42 easy_install rhodecode
44 43
45 44 Or::
46 45
47 46 pip install rhodecode
48 47
49 48 If you prefer to install manually simply grab latest release from
50 49 http://pypi.python.org/pypi/rhodecode, decompres archive and run::
51 50
52 51 python setup.py install
53 52
54 53
55 54 Step by step installation example
56 55 ---------------------------------
57 56
58 57
59 - Assuming You have installed virtualenv_ create one using. The `--no-site-packages`
60 will make sure non of Your system libs are linked with this virtualenv_
58 - Assuming You have installed virtualenv_ create one using.
59 The `--no-site-packages` will make sure non of Your system libs are linked
60 with this virtualenv_
61 61
62 62 ::
63 63
64 64 virtualenv --no-site-packages /var/www/rhodecode-venv
65 65
66 66 - this will install new virtualenv_ into `/var/www/rhodecode-venv`.
67 67 - Activate the virtualenv_ by running
68 68
69 69 ::
70 70
71 71 source activate /var/www/rhodecode-venv/bin/activate
72 72
73 73 - Make a folder for rhodecode somewhere on the filesystem for example
74 74
75 75 ::
76 76
77 77 mkdir /var/www/rhodecode
78 78
79 79
80 80 - Run this command to install rhodecode
81 81
82 82 ::
83 83
84 84 easy_install rhodecode
85 85
86 86 - this will install rhodecode together with pylons
87 87 and all other required python libraries
88 88
89 89
90 90 You can now proceed to :ref:`setup`
91 91
92 92 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
93 93 .. _python: http://www.python.org/
94 94 .. _mercurial: http://mercurial.selenic.com/
95 95 .. _celery: http://celeryproject.org/
96 96 .. _rabbitmq: http://www.rabbitmq.com/ No newline at end of file
@@ -1,253 +1,262 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 First You'll ned to create RhodeCode config file. Run the following command
11 to do this
12
10 13 ::
11 14
12 15 paster make-config RhodeCode production.ini
13 16
14 17 - This will create `production.ini` config inside the directory
15 18 this config contains various settings for RhodeCode, e.g proxy port,
16 email settings,static files, cache and logging.
19 email settings, usage of static files, cache, celery settings and logging.
20
21
22
23 Next we need to create the database.
17 24
18 25 ::
19 26
20 27 paster setup-app production.ini
21 28
22 29 - This command will create all needed tables and an admin account.
23 30 When asked for a path You can either use a new location of one with already
24 31 existing ones. RhodeCode will simply add all new found repositories to
25 32 it's database. Also make sure You specify correct path to repositories.
26 33 - Remember that the given path for mercurial_ repositories must be write
27 accessible for the application. It's very important since RhodeCode web interface
28 will work even without such an access but, when trying to do a push it'll
29 eventually fail with permission denied errors.
30 - Run
34 accessible for the application. It's very important since RhodeCode web
35 interface will work even without such an access but, when trying to do a
36 push it'll eventually fail with permission denied errors.
37
38 You are ready to use rhodecode, to run it simply execute
31 39
32 40 ::
33 41
34 42 paster serve production.ini
35 43
36 44 - This command runs the RhodeCode server the app should be available at the
37 45 127.0.0.1:5000. This ip and port is configurable via the production.ini
38 file created in previous step
46 file created in previous step
39 47 - Use admin account you created to login.
40 48 - Default permissions on each repository is read, and owner is admin. So
41 remember to update these if needed.
49 remember to update these if needed. In the admin panel You can toggle ldap,
50 anonymous, permissions settings. As well as edit more advanced options on
51 users and repositories
42 52
43 53
44 54 Setting up Whoosh full text search
45 55 ----------------------------------
46 56
47 57 Index for whoosh can be build starting from version 1.1 using paster command
48 58 passing repo locations to index, as well as Your config file that stores
49 59 whoosh index files locations. There is possible to pass `-f` to the options
50 60 to enable full index rebuild. Without that indexing will run always in in
51 61 incremental mode.
52 62
53 63 ::
54 64
55 paster make-index --repo-location=<location for repos> production.ini
65 paster make-index production.ini --repo-location=<location for repos>
56 66
57 67 for full index rebuild You can use
58 68
59 69 ::
60 70
61 paster make-index -f --repo-location=<location for repos> production.ini
71 paster make-index production.ini -f --repo-location=<location for repos>
62 72
63 73 - For full text search You can either put crontab entry for
64 74
65 75 This command can be run even from crontab in order to do periodical
66 76 index builds and keep Your index always up to date. An example entry might
67 77 look like this
68 78
69 79 ::
70 80
71 /path/to/python/bin/paster --repo-location=<location for repos> /path/to/rhodecode/production.ini
81 /path/to/python/bin/paster /path/to/rhodecode/production.ini --repo-location=<location for repos>
72 82
73 83 When using incremental(default) mode whoosh will check last modification date
74 84 of each file and add it to reindex if newer file is available. Also indexing
75 85 daemon checks for removed files and removes them from index.
76 86
77 87 Sometime You might want to rebuild index from scratch. You can do that using
78 88 the `-f` flag passed to paster command or, in admin panel You can check
79 89 `build from scratch` flag.
80 90
81 91
82 92 Setting up LDAP support
83 93 -----------------------
84 94
85 95 RhodeCode starting from version 1.1 supports ldap authentication. In order
86 96 to use ldap, You have to install python-ldap package. This package is available
87 97 via pypi, so You can install it by running
88 98
89 99 ::
90 100
91 101 easy_install python-ldap
92 102
93 103 ::
94 104
95 105 pip install python-ldap
96 106
97 107 .. note::
98 108 python-ldap requires some certain libs on Your system, so before installing
99 109 it check that You have at least `openldap`, and `sasl` libraries.
100 110
101 111 ldap settings are located in admin->ldap section,
102 112
103 113 Here's a typical ldap setup::
104 114
105 115 Enable ldap = checked #controls if ldap access is enabled
106 116 Host = host.domain.org #actual ldap server to connect
107 117 Port = 389 or 689 for ldaps #ldap server ports
108 118 Enable LDAPS = unchecked #enable disable ldaps
109 119 Account = <account> #access for ldap server(if required)
110 120 Password = <password> #password for ldap server(if required)
111 121 Base DN = uid=%(user)s,CN=users,DC=host,DC=domain,DC=org
112 122
113 123
114 124 `Account` and `Password` are optional, and used for two-phase ldap
115 125 authentication so those are credentials to access Your ldap, if it doesn't
116 126 support anonymous search/user lookups.
117 127
118 128 Base DN must have %(user)s template inside, it's a placer where Your uid used
119 129 to login would go, it allows admins to specify not standard schema for uid
120 130 variable
121 131
122 132 If all data are entered correctly, and `python-ldap` is properly installed
123 133 Users should be granted to access RhodeCode wit ldap accounts. When
124 134 logging at the first time an special ldap account is created inside RhodeCode,
125 135 so You can control over permissions even on ldap users. If such user exists
126 136 already in RhodeCode database ldap user with the same username would be not
127 137 able to access RhodeCode.
128 138
129 139 If You have problems with ldap access and believe You entered correct
130 140 information check out the RhodeCode logs,any error messages sent from
131 141 ldap will be saved there.
132 142
133 143
134 144
135 145 Setting Up Celery
136 146 -----------------
137 147
138 148 Since version 1.1 celery is configured by the rhodecode ini configuration files
139 149 simply set use_celery=true in the ini file then add / change the configuration
140 150 variables inside the ini file.
141 151
142 152 Remember that the ini files uses format with '.' not with '_' like celery
143 153 so for example setting `BROKER_HOST` in celery means setting `broker.host` in
144 154 the config file.
145 155
146 156 In order to make start using celery run::
147 157 paster celeryd <configfile.ini>
148 158
149 159
150 160 Nginx virtual host example
151 161 --------------------------
152 162
153 163 Sample config for nginx using proxy::
154 164
155 165 server {
156 166 listen 80;
157 167 server_name hg.myserver.com;
158 168 access_log /var/log/nginx/rhodecode.access.log;
159 169 error_log /var/log/nginx/rhodecode.error.log;
160 170 location / {
161 171 root /var/www/rhodecode/rhodecode/public/;
162 172 if (!-f $request_filename){
163 173 proxy_pass http://127.0.0.1:5000;
164 174 }
165 175 #this is important for https !!!
166 176 proxy_set_header X-Url-Scheme $scheme;
167 177 include /etc/nginx/proxy.conf;
168 178 }
169 179 }
170 180
171 181 Here's the proxy.conf. It's tuned so it'll not timeout on long
172 182 pushes and also on large pushes::
173 183
174 184 proxy_redirect off;
175 185 proxy_set_header Host $host;
176 186 proxy_set_header X-Host $http_host;
177 187 proxy_set_header X-Real-IP $remote_addr;
178 188 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
179 189 proxy_set_header Proxy-host $proxy_host;
180 190 client_max_body_size 400m;
181 191 client_body_buffer_size 128k;
182 192 proxy_buffering off;
183 193 proxy_connect_timeout 3600;
184 194 proxy_send_timeout 3600;
185 195 proxy_read_timeout 3600;
186 196 proxy_buffer_size 8k;
187 197 proxy_buffers 8 32k;
188 198 proxy_busy_buffers_size 64k;
189 199 proxy_temp_file_write_size 64k;
190 200
191 201 Also when using root path with nginx You might set the static files to false
192 202 in production.ini file::
193 203
194 204 [app:main]
195 205 use = egg:rhodecode
196 206 full_stack = true
197 207 static_files = false
198 208 lang=en
199 209 cache_dir = %(here)s/data
200 210
201 211 To not have the statics served by the application. And improve speed.
202 212
203 213 Apache reverse proxy
204 214 --------------------
205 215 Tutorial can be found here
206 216 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
207 217
208 218
209 219 Apache's example FCGI config
210 220 ----------------------------
211 221
212 222 TODO !
213 223
214 224 Other configuration files
215 225 -------------------------
216 226
217 227 Some extra configuration files and examples can be found here:
218 228 http://hg.python-works.com/rhodecode/files/tip/init.d
219 229
220 230 and also an celeryconfig file can be use from here:
221 231 http://hg.python-works.com/rhodecode/files/tip/celeryconfig.py
222 232
223 233 Troubleshooting
224 234 ---------------
225 235
226 236 - missing static files ?
227 237
228 238 - make sure either to set the `static_files = true` in the .ini file or
229 239 double check the root path for Your http setup. It should point to
230 240 for example:
231 241 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
232 242
233 243 - can't install celery/rabbitmq
234 244
235 245 - don't worry RhodeCode works without them too. No extra setup required
236 246
237
238 247 - long lasting push timeouts ?
239 248
240 249 - make sure You set a longer timeouts in Your proxy/fcgi settings, timeouts
241 250 are caused by https server and not RhodeCode
242 251
243 252 - large pushes timeouts ?
244 253
245 254 - make sure You set a proper max_body_size for the http server
246 255
247 256
248 257
249 258 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
250 259 .. _python: http://www.python.org/
251 260 .. _mercurial: http://mercurial.selenic.com/
252 261 .. _celery: http://celeryproject.org/
253 262 .. _rabbitmq: http://www.rabbitmq.com/ No newline at end of file
@@ -1,35 +1,51 b''
1 1 .. _upgrade:
2 2
3 3 Upgrade
4 4 =======
5 5
6 6 Upgrade from Cheese Shop
7 7 ------------------------
8 8
9 9 Easiest way to upgrade ``rhodecode`` is to run::
10 10
11 11 easy_install -U rhodecode
12 12
13 13 Or::
14 14
15 15 pip install --upgrade rhodecode
16 16
17 17
18 18 Then make sure You run from the installation directory
19 19
20 20 ::
21 21
22 22 paster make-config RhodeCode production.ini
23 23
24 24 This will display any changes made from new version of RhodeCode To your
25 current config. And tries to do an automerge.
25 current config. And tries to do an automerge. It's always better to do a backup
26 of config file and recheck the content after merge.
26 27
27 28 It's also good to rebuild the whoosh index since after upgrading the whoosh
28 versionthere could be introduced incompatible index changes
29 version there could be introduced incompatible index changes.
30
31
32 The last step is to upgrade the database. To do this simply run
33
34 ::
35
36 paster upgrade-db production.ini
37
38 This will upgrade schema, as well as update some default on the database,
39 always recheck the settings of the application, if there are no new options
40 that need to be set.
41
42 .. note::
43 Always perform a database backup before doing upgrade.
44
29 45
30 46
31 47 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
32 48 .. _python: http://www.python.org/
33 49 .. _mercurial: http://mercurial.selenic.com/
34 50 .. _celery: http://celeryproject.org/
35 51 .. _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