##// END OF EJS Templates
docs, and changelog update
marcink -
r1252:c8974135 rhodecode-0.0.1.1.8 default
parent child Browse files
Show More
@@ -1,266 +1,267 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 Changelog
3 Changelog
4 =========
4 =========
5
5
6
6
7 1.1.8 (**2011-04-XX**)
7 1.1.8 (**2011-04-12**)
8 ======================
8 ======================
9
9
10 news
10 news
11 ----
11 ----
12
12
13 - improved windows support
14
13 fixes
15 fixes
14 -----
16 -----
15
17
16 - fixed #140 freeze of python dateutil library, since new version is python2.x
18 - fixed #140 freeze of python dateutil library, since new version is python2.x
17 incompatible
19 incompatible
18 - setup-app will check for write permission in given path
20 - setup-app will check for write permission in given path
19 - cleaned up license info issue #149
21 - cleaned up license info issue #149
20 - fixes for issues #137,#116 and #116, problems with unicode and
22 - fixes for issues #137,#116 and problems with unicode and accented characters.
21 accented characters.
22 - fixes crashes on gravatar, when passed in email as unicode
23 - fixes crashes on gravatar, when passed in email as unicode
23 - fixed tooltip flickering problems
24 - fixed tooltip flickering problems
24 - fixed came_from redirection on windows
25 - fixed came_from redirection on windows
25 - fixed logging modules,and sql formatters
26 - fixed logging modules, and sql formatters
26 - windows fixes for os.kill #133
27 - windows fixes for os.kill issue #133
27 - fixes path splitting for windows issues #148
28 - fixes path splitting for windows issues #148
28 - fixed issue #143 wrong import on migration to 1.1.X
29 - fixed issue #143 wrong import on migration to 1.1.X
29 - fixed problems with displaying binary files, thanks to Thomas Waldmann
30 - fixed problems with displaying binary files, thanks to Thomas Waldmann
30 - removed name from archive files since it's breaking ui for long names
31 - removed name from archive files since it's breaking ui for long repo names
31 - fixed issue witg archive headers sent to browser, thanks to Thomas Waldmann
32 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
32 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
33 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
33 Thomas Waldmann
34 Thomas Waldmann
34 - fixed issue #166 summary pager was skipping 10 revisions on second page
35 - fixed issue #166 summary pager was skipping 10 revisions on second page
35
36
36 1.1.7 (**2011-03-23**)
37 1.1.7 (**2011-03-23**)
37 ======================
38 ======================
38
39
39 news
40 news
40 ----
41 ----
41
42
42 fixes
43 fixes
43 -----
44 -----
44
45
45 - fixed (again) #136 installation support for FreeBSD
46 - fixed (again) #136 installation support for FreeBSD
46
47
47
48
48 1.1.6 (**2011-03-21**)
49 1.1.6 (**2011-03-21**)
49 ======================
50 ======================
50
51
51 news
52 news
52 ----
53 ----
53
54
54 fixes
55 fixes
55 -----
56 -----
56
57
57 - fixed #136 installation support for FreeBSD
58 - fixed #136 installation support for FreeBSD
58 - RhodeCode will check for python version during installation
59 - RhodeCode will check for python version during installation
59
60
60 1.1.5 (**2011-03-17**)
61 1.1.5 (**2011-03-17**)
61 ======================
62 ======================
62
63
63 news
64 news
64 ----
65 ----
65
66
66 - basic windows support, by exchanging pybcrypt into sha256 for windows only
67 - basic windows support, by exchanging pybcrypt into sha256 for windows only
67 highly inspired by idea of mantis406
68 highly inspired by idea of mantis406
68
69
69 fixes
70 fixes
70 -----
71 -----
71
72
72 - fixed sorting by author in main page
73 - fixed sorting by author in main page
73 - fixed crashes with diffs on binary files
74 - fixed crashes with diffs on binary files
74 - fixed #131 problem with boolean values for LDAP
75 - fixed #131 problem with boolean values for LDAP
75 - fixed #122 mysql problems thanks to striker69
76 - fixed #122 mysql problems thanks to striker69
76 - fixed problem with errors on calling raw/raw_files/annotate functions
77 - fixed problem with errors on calling raw/raw_files/annotate functions
77 with unknown revisions
78 with unknown revisions
78 - fixed returned rawfiles attachment names with international character
79 - fixed returned rawfiles attachment names with international character
79 - cleaned out docs, big thanks to Jason Harris
80 - cleaned out docs, big thanks to Jason Harris
80
81
81 1.1.4 (**2011-02-19**)
82 1.1.4 (**2011-02-19**)
82 ======================
83 ======================
83
84
84 news
85 news
85 ----
86 ----
86
87
87 fixes
88 fixes
88 -----
89 -----
89
90
90 - fixed formencode import problem on settings page, that caused server crash
91 - fixed formencode import problem on settings page, that caused server crash
91 when that page was accessed as first after server start
92 when that page was accessed as first after server start
92 - journal fixes
93 - journal fixes
93 - fixed option to access repository just by entering http://server/<repo_name>
94 - fixed option to access repository just by entering http://server/<repo_name>
94
95
95
96
96 1.1.3 (**2011-02-16**)
97 1.1.3 (**2011-02-16**)
97 ======================
98 ======================
98
99
99 news
100 news
100 ----
101 ----
101
102
102 - implemented #102 allowing the '.' character in username
103 - implemented #102 allowing the '.' character in username
103 - added option to access repository just by entering http://server/<repo_name>
104 - added option to access repository just by entering http://server/<repo_name>
104 - celery task ignores result for better performance
105 - celery task ignores result for better performance
105
106
106 fixes
107 fixes
107 -----
108 -----
108
109
109 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
110 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
110 apollo13 and Johan Walles
111 apollo13 and Johan Walles
111 - small fixes in journal
112 - small fixes in journal
112 - fixed problems with getting setting for celery from .ini files
113 - fixed problems with getting setting for celery from .ini files
113 - registration, password reset and login boxes share the same title as main
114 - registration, password reset and login boxes share the same title as main
114 application now
115 application now
115 - fixed #113: to high permissions to fork repository
116 - fixed #113: to high permissions to fork repository
116 - fixed problem with '[' chars in commit messages in journal
117 - fixed problem with '[' chars in commit messages in journal
117 - removed issue with space inside renamed repository after deletion
118 - removed issue with space inside renamed repository after deletion
118 - db transaction fixes when filesystem repository creation failed
119 - db transaction fixes when filesystem repository creation failed
119 - fixed #106 relation issues on databases different than sqlite
120 - fixed #106 relation issues on databases different than sqlite
120 - fixed static files paths links to use of url() method
121 - fixed static files paths links to use of url() method
121
122
122 1.1.2 (**2011-01-12**)
123 1.1.2 (**2011-01-12**)
123 ======================
124 ======================
124
125
125 news
126 news
126 ----
127 ----
127
128
128
129
129 fixes
130 fixes
130 -----
131 -----
131
132
132 - fixes #98 protection against float division of percentage stats
133 - fixes #98 protection against float division of percentage stats
133 - fixed graph bug
134 - fixed graph bug
134 - forced webhelpers version since it was making troubles during installation
135 - forced webhelpers version since it was making troubles during installation
135
136
136 1.1.1 (**2011-01-06**)
137 1.1.1 (**2011-01-06**)
137 ======================
138 ======================
138
139
139 news
140 news
140 ----
141 ----
141
142
142 - added force https option into ini files for easier https usage (no need to
143 - added force https option into ini files for easier https usage (no need to
143 set server headers with this options)
144 set server headers with this options)
144 - small css updates
145 - small css updates
145
146
146 fixes
147 fixes
147 -----
148 -----
148
149
149 - fixed #96 redirect loop on files view on repositories without changesets
150 - fixed #96 redirect loop on files view on repositories without changesets
150 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
151 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
151 and server crashed with errors
152 and server crashed with errors
152 - fixed large tooltips problems on main page
153 - fixed large tooltips problems on main page
153 - fixed #92 whoosh indexer is more error proof
154 - fixed #92 whoosh indexer is more error proof
154
155
155 1.1.0 (**2010-12-18**)
156 1.1.0 (**2010-12-18**)
156 ======================
157 ======================
157
158
158 news
159 news
159 ----
160 ----
160
161
161 - rewrite of internals for vcs >=0.1.10
162 - rewrite of internals for vcs >=0.1.10
162 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
163 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
163 with older clients
164 with older clients
164 - anonymous access, authentication via ldap
165 - anonymous access, authentication via ldap
165 - performance upgrade for cached repos list - each repository has it's own
166 - performance upgrade for cached repos list - each repository has it's own
166 cache that's invalidated when needed.
167 cache that's invalidated when needed.
167 - performance upgrades on repositories with large amount of commits (20K+)
168 - performance upgrades on repositories with large amount of commits (20K+)
168 - main page quick filter for filtering repositories
169 - main page quick filter for filtering repositories
169 - user dashboards with ability to follow chosen repositories actions
170 - user dashboards with ability to follow chosen repositories actions
170 - sends email to admin on new user registration
171 - sends email to admin on new user registration
171 - added cache/statistics reset options into repository settings
172 - added cache/statistics reset options into repository settings
172 - more detailed action logger (based on hooks) with pushed changesets lists
173 - more detailed action logger (based on hooks) with pushed changesets lists
173 and options to disable those hooks from admin panel
174 and options to disable those hooks from admin panel
174 - introduced new enhanced changelog for merges that shows more accurate results
175 - introduced new enhanced changelog for merges that shows more accurate results
175 - new improved and faster code stats (based on pygments lexers mapping tables,
176 - new improved and faster code stats (based on pygments lexers mapping tables,
176 showing up to 10 trending sources for each repository. Additionally stats
177 showing up to 10 trending sources for each repository. Additionally stats
177 can be disabled in repository settings.
178 can be disabled in repository settings.
178 - gui optimizations, fixed application width to 1024px
179 - gui optimizations, fixed application width to 1024px
179 - added cut off (for large files/changesets) limit into config files
180 - added cut off (for large files/changesets) limit into config files
180 - whoosh, celeryd, upgrade moved to paster command
181 - whoosh, celeryd, upgrade moved to paster command
181 - other than sqlite database backends can be used
182 - other than sqlite database backends can be used
182
183
183 fixes
184 fixes
184 -----
185 -----
185
186
186 - fixes #61 forked repo was showing only after cache expired
187 - fixes #61 forked repo was showing only after cache expired
187 - fixes #76 no confirmation on user deletes
188 - fixes #76 no confirmation on user deletes
188 - fixes #66 Name field misspelled
189 - fixes #66 Name field misspelled
189 - fixes #72 block user removal when he owns repositories
190 - fixes #72 block user removal when he owns repositories
190 - fixes #69 added password confirmation fields
191 - fixes #69 added password confirmation fields
191 - fixes #87 RhodeCode crashes occasionally on updating repository owner
192 - fixes #87 RhodeCode crashes occasionally on updating repository owner
192 - fixes #82 broken annotations on files with more than 1 blank line at the end
193 - fixes #82 broken annotations on files with more than 1 blank line at the end
193 - a lot of fixes and tweaks for file browser
194 - a lot of fixes and tweaks for file browser
194 - fixed detached session issues
195 - fixed detached session issues
195 - fixed when user had no repos he would see all repos listed in my account
196 - fixed when user had no repos he would see all repos listed in my account
196 - fixed ui() instance bug when global hgrc settings was loaded for server
197 - fixed ui() instance bug when global hgrc settings was loaded for server
197 instance and all hgrc options were merged with our db ui() object
198 instance and all hgrc options were merged with our db ui() object
198 - numerous small bugfixes
199 - numerous small bugfixes
199
200
200 (special thanks for TkSoh for detailed feedback)
201 (special thanks for TkSoh for detailed feedback)
201
202
202
203
203 1.0.2 (**2010-11-12**)
204 1.0.2 (**2010-11-12**)
204 ======================
205 ======================
205
206
206 news
207 news
207 ----
208 ----
208
209
209 - tested under python2.7
210 - tested under python2.7
210 - bumped sqlalchemy and celery versions
211 - bumped sqlalchemy and celery versions
211
212
212 fixes
213 fixes
213 -----
214 -----
214
215
215 - fixed #59 missing graph.js
216 - fixed #59 missing graph.js
216 - fixed repo_size crash when repository had broken symlinks
217 - fixed repo_size crash when repository had broken symlinks
217 - fixed python2.5 crashes.
218 - fixed python2.5 crashes.
218
219
219
220
220 1.0.1 (**2010-11-10**)
221 1.0.1 (**2010-11-10**)
221 ======================
222 ======================
222
223
223 news
224 news
224 ----
225 ----
225
226
226 - small css updated
227 - small css updated
227
228
228 fixes
229 fixes
229 -----
230 -----
230
231
231 - fixed #53 python2.5 incompatible enumerate calls
232 - fixed #53 python2.5 incompatible enumerate calls
232 - fixed #52 disable mercurial extension for web
233 - fixed #52 disable mercurial extension for web
233 - fixed #51 deleting repositories don't delete it's dependent objects
234 - fixed #51 deleting repositories don't delete it's dependent objects
234
235
235
236
236 1.0.0 (**2010-11-02**)
237 1.0.0 (**2010-11-02**)
237 ======================
238 ======================
238
239
239 - security bugfix simplehg wasn't checking for permissions on commands
240 - security bugfix simplehg wasn't checking for permissions on commands
240 other than pull or push.
241 other than pull or push.
241 - fixed doubled messages after push or pull in admin journal
242 - fixed doubled messages after push or pull in admin journal
242 - templating and css corrections, fixed repo switcher on chrome, updated titles
243 - templating and css corrections, fixed repo switcher on chrome, updated titles
243 - admin menu accessible from options menu on repository view
244 - admin menu accessible from options menu on repository view
244 - permissions cached queries
245 - permissions cached queries
245
246
246 1.0.0rc4 (**2010-10-12**)
247 1.0.0rc4 (**2010-10-12**)
247 ==========================
248 ==========================
248
249
249 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
250 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
250 - removed cache_manager settings from sqlalchemy meta
251 - removed cache_manager settings from sqlalchemy meta
251 - added sqlalchemy cache settings to ini files
252 - added sqlalchemy cache settings to ini files
252 - validated password length and added second try of failure on paster setup-app
253 - validated password length and added second try of failure on paster setup-app
253 - fixed setup database destroy prompt even when there was no db
254 - fixed setup database destroy prompt even when there was no db
254
255
255
256
256 1.0.0rc3 (**2010-10-11**)
257 1.0.0rc3 (**2010-10-11**)
257 =========================
258 =========================
258
259
259 - fixed i18n during installation.
260 - fixed i18n during installation.
260
261
261 1.0.0rc2 (**2010-10-11**)
262 1.0.0rc2 (**2010-10-11**)
262 =========================
263 =========================
263
264
264 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
265 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
265 occure. After vcs is fixed it'll be put back again.
266 occure. After vcs is fixed it'll be put back again.
266 - templating/css rewrites, optimized css. No newline at end of file
267 - templating/css rewrites, optimized css.
@@ -1,385 +1,435 b''
1 .. _setup:
1 .. _setup:
2
2
3 Setup
3 Setup
4 =====
4 =====
5
5
6
6
7 Setting up RhodeCode
7 Setting up RhodeCode
8 --------------------------
8 --------------------------
9
9
10 First, you will need to create a RhodeCode configuration file. Run the following
10 First, you will need to create a RhodeCode configuration file. Run the following
11 command to do this::
11 command to do this::
12
12
13 paster make-config RhodeCode production.ini
13 paster make-config RhodeCode production.ini
14
14
15 - This will create the file `production.ini` in the current directory. This
15 - This will create the file `production.ini` in the current directory. This
16 configuration file contains the various settings for RhodeCode, e.g proxy port,
16 configuration file contains the various settings for RhodeCode, e.g proxy port,
17 email settings, usage of static files, cache, celery settings and logging.
17 email settings, usage of static files, cache, celery settings and logging.
18
18
19
19
20 Next, you need to create the databases used by RhodeCode. I recommend that you
20 Next, you need to create the databases used by RhodeCode. I recommend that you
21 use sqlite (default) or postgresql. If you choose a database other than the
21 use sqlite (default) or postgresql. If you choose a database other than the
22 default ensure you properly adjust the db url in your production.ini
22 default ensure you properly adjust the db url in your production.ini
23 configuration file to use this other database. Create the databases by running
23 configuration file to use this other database. Create the databases by running
24 the following command::
24 the following command::
25
25
26 paster setup-app production.ini
26 paster setup-app production.ini
27
27
28 This will prompt you for a "root" path. This "root" path is the location where
28 This will prompt you for a "root" path. This "root" path is the location where
29 RhodeCode will store all of its repositories on the current machine. After
29 RhodeCode will store all of its repositories on the current machine. After
30 entering this "root" path ``setup-app`` will also prompt you for a username and password
30 entering this "root" path ``setup-app`` will also prompt you for a username and password
31 for the initial admin account which ``setup-app`` sets up for you.
31 for the initial admin account which ``setup-app`` sets up for you.
32
32
33 - The ``setup-app`` command will create all of the needed tables and an admin
33 - The ``setup-app`` command will create all of the needed tables and an admin
34 account. When choosing a root path you can either use a new empty location, or a
34 account. When choosing a root path you can either use a new empty location, or a
35 location which already contains existing repositories. If you choose a location
35 location which already contains existing repositories. If you choose a location
36 which contains existing repositories RhodeCode will simply add all of the
36 which contains existing repositories RhodeCode will simply add all of the
37 repositories at the chosen location to it's database. (Note: make sure you
37 repositories at the chosen location to it's database. (Note: make sure you
38 specify the correct path to the root).
38 specify the correct path to the root).
39 - Note: the given path for mercurial_ repositories **must** be write accessible
39 - Note: the given path for mercurial_ repositories **must** be write accessible
40 for the application. It's very important since the RhodeCode web interface will
40 for the application. It's very important since the RhodeCode web interface will
41 work without write access, but when trying to do a push it will eventually fail
41 work without write access, but when trying to do a push it will eventually fail
42 with permission denied errors unless it has write access.
42 with permission denied errors unless it has write access.
43
43
44 You are now ready to use RhodeCode, to run it simply execute::
44 You are now ready to use RhodeCode, to run it simply execute::
45
45
46 paster serve production.ini
46 paster serve production.ini
47
47
48 - This command runs the RhodeCode server. The web app should be available at the
48 - This command runs the RhodeCode server. The web app should be available at the
49 127.0.0.1:5000. This ip and port is configurable via the production.ini
49 127.0.0.1:5000. This ip and port is configurable via the production.ini
50 file created in previous step
50 file created in previous step
51 - Use the admin account you created above when running ``setup-app`` to login to the web app.
51 - Use the admin account you created above when running ``setup-app`` to login to the web app.
52 - The default permissions on each repository is read, and the owner is admin.
52 - The default permissions on each repository is read, and the owner is admin.
53 Remember to update these if needed.
53 Remember to update these if needed.
54 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
54 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
55 well as edit more advanced options on users and repositories
55 well as edit more advanced options on users and repositories
56
56
57 Try copying your own mercurial repository into the "root" directory you are
57 Try copying your own mercurial repository into the "root" directory you are
58 using, then from within the RhodeCode web application choose Admin >
58 using, then from within the RhodeCode web application choose Admin >
59 repositories. Then choose Add New Repository. Add the repository you copied into
59 repositories. Then choose Add New Repository. Add the repository you copied into
60 the root. Test that you can browse your repository from within RhodeCode and then
60 the root. Test that you can browse your repository from within RhodeCode and then
61 try cloning your repository from RhodeCode with::
61 try cloning your repository from RhodeCode with::
62
62
63 hg clone http://127.0.0.1:5000/<repository name>
63 hg clone http://127.0.0.1:5000/<repository name>
64
64
65 where *repository name* is replaced by the name of your repository.
65 where *repository name* is replaced by the name of your repository.
66
66
67 Using RhodeCode with SSH
67 Using RhodeCode with SSH
68 ------------------------
68 ------------------------
69
69
70 RhodeCode currently only hosts repositories using http and https. (The addition of
70 RhodeCode currently only hosts repositories using http and https. (The addition of
71 ssh hosting is a planned future feature.) However you can easily use ssh in
71 ssh hosting is a planned future feature.) However you can easily use ssh in
72 parallel with RhodeCode. (Repository access via ssh is a standard "out of
72 parallel with RhodeCode. (Repository access via ssh is a standard "out of
73 the box" feature of mercurial_ and you can use this to access any of the
73 the box" feature of mercurial_ and you can use this to access any of the
74 repositories that RhodeCode is hosting. See PublishingRepositories_)
74 repositories that RhodeCode is hosting. See PublishingRepositories_)
75
75
76 RhodeCode repository structures are kept in directories with the same name
76 RhodeCode repository structures are kept in directories with the same name
77 as the project. When using repository groups, each group is a subdirectory.
77 as the project. When using repository groups, each group is a subdirectory.
78 This allows you to easily use ssh for accessing repositories.
78 This allows you to easily use ssh for accessing repositories.
79
79
80 In order to use ssh you need to make sure that your web-server and the users login
80 In order to use ssh you need to make sure that your web-server and the users login
81 accounts have the correct permissions set on the appropriate directories. (Note
81 accounts have the correct permissions set on the appropriate directories. (Note
82 that these permissions are independent of any permissions you have set up using
82 that these permissions are independent of any permissions you have set up using
83 the RhodeCode web interface.)
83 the RhodeCode web interface.)
84
84
85 If your main directory (the same as set in RhodeCode settings) is for example
85 If your main directory (the same as set in RhodeCode settings) is for example
86 set to **/home/hg** and the repository you are using is named `rhodecode`, then
86 set to **/home/hg** and the repository you are using is named `rhodecode`, then
87 to clone via ssh you should run::
87 to clone via ssh you should run::
88
88
89 hg clone ssh://user@server.com/home/hg/rhodecode
89 hg clone ssh://user@server.com/home/hg/rhodecode
90
90
91 Using other external tools such as mercurial-server_ or using ssh key based
91 Using other external tools such as mercurial-server_ or using ssh key based
92 authentication is fully supported.
92 authentication is fully supported.
93
93
94 Note: In an advanced setup, in order for your ssh access to use the same
94 Note: In an advanced setup, in order for your ssh access to use the same
95 permissions as set up via the RhodeCode web interface, you can create an
95 permissions as set up via the RhodeCode web interface, you can create an
96 authentication hook to connect to the rhodecode db and runs check functions for
96 authentication hook to connect to the rhodecode db and runs check functions for
97 permissions against that.
97 permissions against that.
98
98
99
99
100
100
101 Setting up Whoosh full text search
101 Setting up Whoosh full text search
102 ----------------------------------
102 ----------------------------------
103
103
104 Starting from version 1.1 the whoosh index can be build by using the paster
104 Starting from version 1.1 the whoosh index can be build by using the paster
105 command ``make-index``. To use ``make-index`` you must specify the configuration
105 command ``make-index``. To use ``make-index`` you must specify the configuration
106 file that stores the location of the index, and the location of the repositories
106 file that stores the location of the index, and the location of the repositories
107 (`--repo-location`).
107 (`--repo-location`).
108
108
109 You may optionally pass the option `-f` to enable a full index rebuild. Without
109 You may optionally pass the option `-f` to enable a full index rebuild. Without
110 the `-f` option, indexing will run always in "incremental" mode.
110 the `-f` option, indexing will run always in "incremental" mode.
111
111
112 For an incremental index build use::
112 For an incremental index build use::
113
113
114 paster make-index production.ini --repo-location=<location for repos>
114 paster make-index production.ini --repo-location=<location for repos>
115
115
116 For a full index rebuild use::
116 For a full index rebuild use::
117
117
118 paster make-index production.ini -f --repo-location=<location for repos>
118 paster make-index production.ini -f --repo-location=<location for repos>
119
119
120 - For full text search you can either put crontab entry for
120 - For full text search you can either put crontab entry for
121
121
122 In order to do periodical index builds and keep your index always up to date.
122 In order to do periodical index builds and keep your index always up to date.
123 It's recommended to do a crontab entry for incremental indexing.
123 It's recommended to do a crontab entry for incremental indexing.
124 An example entry might look like this::
124 An example entry might look like this::
125
125
126 /path/to/python/bin/paster /path/to/rhodecode/production.ini --repo-location=<location for repos>
126 /path/to/python/bin/paster /path/to/rhodecode/production.ini --repo-location=<location for repos>
127
127
128 When using incremental mode (the default) whoosh will check the last
128 When using incremental mode (the default) whoosh will check the last
129 modification date of each file and add it to be reindexed if a newer file is
129 modification date of each file and add it to be reindexed if a newer file is
130 available. The indexing daemon checks for any removed files and removes them
130 available. The indexing daemon checks for any removed files and removes them
131 from index.
131 from index.
132
132
133 If you want to rebuild index from scratch, you can use the `-f` flag as above,
133 If you want to rebuild index from scratch, you can use the `-f` flag as above,
134 or in the admin panel you can check `build from scratch` flag.
134 or in the admin panel you can check `build from scratch` flag.
135
135
136
136
137 Setting up LDAP support
137 Setting up LDAP support
138 -----------------------
138 -----------------------
139
139
140 RhodeCode starting from version 1.1 supports ldap authentication. In order
140 RhodeCode starting from version 1.1 supports ldap authentication. In order
141 to use LDAP, you have to install the python-ldap_ package. This package is available
141 to use LDAP, you have to install the python-ldap_ package. This package is available
142 via pypi, so you can install it by running
142 via pypi, so you can install it by running
143
143
144 ::
144 ::
145
145
146 easy_install python-ldap
146 easy_install python-ldap
147
147
148 ::
148 ::
149
149
150 pip install python-ldap
150 pip install python-ldap
151
151
152 .. note::
152 .. note::
153 python-ldap requires some certain libs on your system, so before installing
153 python-ldap requires some certain libs on your system, so before installing
154 it check that you have at least `openldap`, and `sasl` libraries.
154 it check that you have at least `openldap`, and `sasl` libraries.
155
155
156 ldap settings are located in admin->ldap section,
156 ldap settings are located in admin->ldap section,
157
157
158 Here's a typical ldap setup::
158 Here's a typical ldap setup::
159
159
160 Enable ldap = checked #controls if ldap access is enabled
160 Enable ldap = checked #controls if ldap access is enabled
161 Host = host.domain.org #actual ldap server to connect
161 Host = host.domain.org #actual ldap server to connect
162 Port = 389 or 689 for ldaps #ldap server ports
162 Port = 389 or 689 for ldaps #ldap server ports
163 Enable LDAPS = unchecked #enable disable ldaps
163 Enable LDAPS = unchecked #enable disable ldaps
164 Account = <account> #access for ldap server(if required)
164 Account = <account> #access for ldap server(if required)
165 Password = <password> #password for ldap server(if required)
165 Password = <password> #password for ldap server(if required)
166 Base DN = uid=%(user)s,CN=users,DC=host,DC=domain,DC=org
166 Base DN = uid=%(user)s,CN=users,DC=host,DC=domain,DC=org
167
167
168
168
169 `Account` and `Password` are optional, and used for two-phase ldap
169 `Account` and `Password` are optional, and used for two-phase ldap
170 authentication so those are credentials to access your ldap, if it doesn't
170 authentication so those are credentials to access your ldap, if it doesn't
171 support anonymous search/user lookups.
171 support anonymous search/user lookups.
172
172
173 Base DN must have the %(user)s template inside, it's a place holder where your uid
173 Base DN must have the %(user)s template inside, it's a place holder where your uid
174 used to login would go. It allows admins to specify non-standard schema for the
174 used to login would go. It allows admins to specify non-standard schema for the
175 uid variable.
175 uid variable.
176
176
177 If all of the data is correctly entered, and `python-ldap` is properly
177 If all of the data is correctly entered, and `python-ldap` is properly
178 installed, then users should be granted access to RhodeCode with ldap accounts.
178 installed, then users should be granted access to RhodeCode with ldap accounts.
179 When logging in the first time a special ldap account is created inside
179 When logging in the first time a special ldap account is created inside
180 RhodeCode, so you can control the permissions even on ldap users. If such users
180 RhodeCode, so you can control the permissions even on ldap users. If such users
181 already exist in the RhodeCode database, then the ldap user with the same
181 already exist in the RhodeCode database, then the ldap user with the same
182 username would be not be able to access RhodeCode.
182 username would be not be able to access RhodeCode.
183
183
184 If you have problems with ldap access and believe you have correctly entered the
184 If you have problems with ldap access and believe you have correctly entered the
185 required information then proceed by investigating the RhodeCode logs. Any
185 required information then proceed by investigating the RhodeCode logs. Any
186 error messages sent from ldap will be saved there.
186 error messages sent from ldap will be saved there.
187
187
188
188
189
189
190 Setting Up Celery
190 Setting Up Celery
191 -----------------
191 -----------------
192
192
193 Since version 1.1 celery is configured by the rhodecode ini configuration files.
193 Since version 1.1 celery is configured by the rhodecode ini configuration files.
194 Simply set use_celery=true in the ini file then add / change the configuration
194 Simply set use_celery=true in the ini file then add / change the configuration
195 variables inside the ini file.
195 variables inside the ini file.
196
196
197 Remember that the ini files use the format with '.' not with '_' like celery.
197 Remember that the ini files use the format with '.' not with '_' like celery.
198 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
198 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
199 the config file.
199 the config file.
200
200
201 In order to start using celery run::
201 In order to start using celery run::
202
202
203 paster celeryd <configfile.ini>
203 paster celeryd <configfile.ini>
204
204
205
205
206 .. note::
206 .. note::
207 Make sure you run this command from the same virtualenv, and with the same user
207 Make sure you run this command from the same virtualenv, and with the same user
208 that rhodecode runs.
208 that rhodecode runs.
209
209
210 HTTPS support
210 HTTPS support
211 -------------
211 -------------
212
212
213 There are two ways to enable https:
213 There are two ways to enable https:
214
214
215 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
215 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
216 recognize this headers and make proper https redirections
216 recognize this headers and make proper https redirections
217 - Alternatively, set `force_https = true` in the ini configuration to force using
217 - Alternatively, set `force_https = true` in the ini configuration to force using
218 https, no headers are needed than to enable https
218 https, no headers are needed than to enable https
219
219
220
220
221 Nginx virtual host example
221 Nginx virtual host example
222 --------------------------
222 --------------------------
223
223
224 Sample config for nginx using proxy::
224 Sample config for nginx using proxy::
225
225
226 server {
226 server {
227 listen 80;
227 listen 80;
228 server_name hg.myserver.com;
228 server_name hg.myserver.com;
229 access_log /var/log/nginx/rhodecode.access.log;
229 access_log /var/log/nginx/rhodecode.access.log;
230 error_log /var/log/nginx/rhodecode.error.log;
230 error_log /var/log/nginx/rhodecode.error.log;
231 location / {
231 location / {
232 root /var/www/rhodecode/rhodecode/public/;
232 root /var/www/rhodecode/rhodecode/public/;
233 if (!-f $request_filename){
233 if (!-f $request_filename){
234 proxy_pass http://127.0.0.1:5000;
234 proxy_pass http://127.0.0.1:5000;
235 }
235 }
236 #this is important if you want to use https !!!
236 #this is important if you want to use https !!!
237 proxy_set_header X-Url-Scheme $scheme;
237 proxy_set_header X-Url-Scheme $scheme;
238 include /etc/nginx/proxy.conf;
238 include /etc/nginx/proxy.conf;
239 }
239 }
240 }
240 }
241
241
242 Here's the proxy.conf. It's tuned so it will not timeout on long
242 Here's the proxy.conf. It's tuned so it will not timeout on long
243 pushes or large pushes::
243 pushes or large pushes::
244
244
245 proxy_redirect off;
245 proxy_redirect off;
246 proxy_set_header Host $host;
246 proxy_set_header Host $host;
247 proxy_set_header X-Host $http_host;
247 proxy_set_header X-Host $http_host;
248 proxy_set_header X-Real-IP $remote_addr;
248 proxy_set_header X-Real-IP $remote_addr;
249 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
249 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
250 proxy_set_header Proxy-host $proxy_host;
250 proxy_set_header Proxy-host $proxy_host;
251 client_max_body_size 400m;
251 client_max_body_size 400m;
252 client_body_buffer_size 128k;
252 client_body_buffer_size 128k;
253 proxy_buffering off;
253 proxy_buffering off;
254 proxy_connect_timeout 3600;
254 proxy_connect_timeout 3600;
255 proxy_send_timeout 3600;
255 proxy_send_timeout 3600;
256 proxy_read_timeout 3600;
256 proxy_read_timeout 3600;
257 proxy_buffer_size 16k;
257 proxy_buffer_size 16k;
258 proxy_buffers 4 16k;
258 proxy_buffers 4 16k;
259 proxy_busy_buffers_size 64k;
259 proxy_busy_buffers_size 64k;
260 proxy_temp_file_write_size 64k;
260 proxy_temp_file_write_size 64k;
261
261
262 Also, when using root path with nginx you might set the static files to false
262 Also, when using root path with nginx you might set the static files to false
263 in the production.ini file::
263 in the production.ini file::
264
264
265 [app:main]
265 [app:main]
266 use = egg:rhodecode
266 use = egg:rhodecode
267 full_stack = true
267 full_stack = true
268 static_files = false
268 static_files = false
269 lang=en
269 lang=en
270 cache_dir = %(here)s/data
270 cache_dir = %(here)s/data
271
271
272 In order to not have the statics served by the application. This improves speed.
272 In order to not have the statics served by the application. This improves speed.
273
273
274
274
275 Apache virtual host example
275 Apache virtual host example
276 ---------------------------
276 ---------------------------
277
277
278 Here is a sample configuration file for apache using proxy::
278 Here is a sample configuration file for apache using proxy::
279
279
280 <VirtualHost *:80>
280 <VirtualHost *:80>
281 ServerName hg.myserver.com
281 ServerName hg.myserver.com
282 ServerAlias hg.myserver.com
282 ServerAlias hg.myserver.com
283
283
284 <Proxy *>
284 <Proxy *>
285 Order allow,deny
285 Order allow,deny
286 Allow from all
286 Allow from all
287 </Proxy>
287 </Proxy>
288
288
289 #important !
289 #important !
290 #Directive to properly generate url (clone url) for pylons
290 #Directive to properly generate url (clone url) for pylons
291 ProxyPreserveHost On
291 ProxyPreserveHost On
292
292
293 #rhodecode instance
293 #rhodecode instance
294 ProxyPass / http://127.0.0.1:5000/
294 ProxyPass / http://127.0.0.1:5000/
295 ProxyPassReverse / http://127.0.0.1:5000/
295 ProxyPassReverse / http://127.0.0.1:5000/
296
296
297 #to enable https use line below
297 #to enable https use line below
298 #SetEnvIf X-Url-Scheme https HTTPS=1
298 #SetEnvIf X-Url-Scheme https HTTPS=1
299
299
300 </VirtualHost>
300 </VirtualHost>
301
301
302
302
303 Additional tutorial
303 Additional tutorial
304 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
304 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
305
305
306
306
307 Apache as subdirectory
307 Apache as subdirectory
308 ----------------------
308 ----------------------
309
309
310 Apache subdirectory part::
310 Apache subdirectory part::
311
311
312 <Location /<someprefix> >
312 <Location /<someprefix> >
313 ProxyPass http://127.0.0.1:5000/<someprefix>
313 ProxyPass http://127.0.0.1:5000/<someprefix>
314 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
314 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
315 SetEnvIf X-Url-Scheme https HTTPS=1
315 SetEnvIf X-Url-Scheme https HTTPS=1
316 </Location>
316 </Location>
317
317
318 Besides the regular apache setup you will need to add the following to your .ini file::
318 Besides the regular apache setup you will need to add the following to your .ini file::
319
319
320 filter-with = proxy-prefix
320 filter-with = proxy-prefix
321
321
322 Add the following at the end of the .ini file::
322 Add the following at the end of the .ini file::
323
323
324 [filter:proxy-prefix]
324 [filter:proxy-prefix]
325 use = egg:PasteDeploy#prefix
325 use = egg:PasteDeploy#prefix
326 prefix = /<someprefix>
326 prefix = /<someprefix>
327
327
328
328
329 then change <someprefix> into your choosen prefix
329 then change <someprefix> into your choosen prefix
330
330
331 Apache's example FCGI config
331 Apache's example WSGI+SSL config
332 ----------------------------
332 --------------------------------
333
334 virtual host example::
333
335
334 TODO !
336 <VirtualHost *:443>
337 ServerName hg.domain.eu:443
338 DocumentRoot /var/www
339
340 SSLEngine on
341 SSLCertificateFile /etc/apache2/ssl/hg.domain.eu.cert
342 SSLCertificateKeyFile /etc/apache2/ssl/hg.domain.eu.key
343 SSLCertificateChainFile /etc/apache2/ssl/ca.cert
344 SetEnv HTTP_X_URL_SCHEME https
345
346 Alias /css /home/web/virtualenvs/hg/lib/python2.6/site-packages/rhodecode/public/css
347 Alias /images /home/web/virtualenvs/hg/lib/python2.6/site-packages/rhodecode/public/images
348 Alias /js /home/web/virtualenvs/hg/lib/python2.6/site-packages/rhodecode/public/js
349
350 WSGIDaemonProcess hg user=web group=web processes=1 threads=10 display-name=%{GROUP} python-path=/home/web/virtualenvs/hg/lib/python2.6/site-packages
351
352 WSGIPassAuthorization On
353 WSGIProcessGroup hg
354 WSGIApplicationGroup hg
355 WSGIScriptAlias / /home/web/apache/conf/hg.wsgi
356
357 <Directory /home/web/apache/conf>
358 Order deny,allow
359 Allow from all
360 </Directory>
361 <Directory /var/www>
362 Order deny,allow
363 Allow from all
364 </Directory>
365
366 </VirtualHost>
367
368 <VirtualHost *:80>
369 ServerName hg.domain.eu
370 Redirect permanent / https://hg.domain.eu/
371 </VirtualHost>
372
373
374 HG.WSGI::
375
376 import os
377 os.environ["HGENCODING"] = "UTF-8"
378
379 from paste.deploy import loadapp
380 from paste.script.util.logging_config import fileConfig
381
382 fileConfig('/home/web/virtualenvs/hg/config/production.ini')
383 application = loadapp('config:/home/web/virtualenvs/hg/config/production.ini'
384
335
385
336 Other configuration files
386 Other configuration files
337 -------------------------
387 -------------------------
338
388
339 Some example init.d scripts can be found here, for debian and gentoo:
389 Some example init.d scripts can be found here, for debian and gentoo:
340
390
341 https://rhodeocode.org/rhodecode/files/tip/init.d
391 https://rhodeocode.org/rhodecode/files/tip/init.d
342
392
343
393
344 Troubleshooting
394 Troubleshooting
345 ---------------
395 ---------------
346
396
347 :Q: **Missing static files?**
397 :Q: **Missing static files?**
348 :A: Make sure either to set the `static_files = true` in the .ini file or
398 :A: Make sure either to set the `static_files = true` in the .ini file or
349 double check the root path for your http setup. It should point to
399 double check the root path for your http setup. It should point to
350 for example:
400 for example:
351 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
401 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
352
402
353 |
403 |
354
404
355 :Q: **Can't install celery/rabbitmq**
405 :Q: **Can't install celery/rabbitmq**
356 :A: Don't worry RhodeCode works without them too. No extra setup is required.
406 :A: Don't worry RhodeCode works without them too. No extra setup is required.
357
407
358 |
408 |
359
409
360 :Q: **Long lasting push timeouts?**
410 :Q: **Long lasting push timeouts?**
361 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
411 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
362 are caused by https server and not RhodeCode.
412 are caused by https server and not RhodeCode.
363
413
364 |
414 |
365
415
366 :Q: **Large pushes timeouts?**
416 :Q: **Large pushes timeouts?**
367 :A: Make sure you set a proper max_body_size for the http server.
417 :A: Make sure you set a proper max_body_size for the http server.
368
418
369 |
419 |
370
420
371 :Q: **Apache doesn't pass basicAuth on pull/push?**
421 :Q: **Apache doesn't pass basicAuth on pull/push?**
372 :A: Make sure you added `WSGIPassAuthorization true`.
422 :A: Make sure you added `WSGIPassAuthorization true`.
373
423
374 For further questions search the `Issues tracker`_, or post a message in the `google group rhodecode`_
424 For further questions search the `Issues tracker`_, or post a message in the `google group rhodecode`_
375
425
376 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
426 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
377 .. _python: http://www.python.org/
427 .. _python: http://www.python.org/
378 .. _mercurial: http://mercurial.selenic.com/
428 .. _mercurial: http://mercurial.selenic.com/
379 .. _celery: http://celeryproject.org/
429 .. _celery: http://celeryproject.org/
380 .. _rabbitmq: http://www.rabbitmq.com/
430 .. _rabbitmq: http://www.rabbitmq.com/
381 .. _python-ldap: http://www.python-ldap.org/
431 .. _python-ldap: http://www.python-ldap.org/
382 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
432 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
383 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
433 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
384 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
434 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
385 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
435 .. _google group rhodecode: http://groups.google.com/group/rhodecode
@@ -1,229 +1,229 b''
1 /**
1 /**
2 * Sphinx stylesheet -- default theme
2 * Sphinx stylesheet -- default theme
3 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 */
4 */
5
5
6 @import url("basic.css");
6 @import url("basic.css");
7
7
8 /* -- page layout ----------------------------------------------------------- */
8 /* -- page layout ----------------------------------------------------------- */
9
9
10 body {
10 body {
11 font-family: Arial, sans-serif;
11 font-family: Arial, sans-serif;
12 font-size: 100%;
12 font-size: 100%;
13 background-color: #111;
13 background-color: #111;
14 color: #555;
14 color: #555;
15 margin: 0;
15 margin: 0;
16 padding: 0;
16 padding: 0;
17 }
17 }
18
18
19 div.documentwrapper {
19 div.documentwrapper {
20 float: left;
20 float: left;
21 width: 100%;
21 width: 100%;
22 }
22 }
23
23
24 div.bodywrapper {
24 div.bodywrapper {
25 margin: 0 0 0 230px;
25 margin: 0 0 0 230px;
26 }
26 }
27
27
28 hr{
28 hr{
29 border: 1px solid #B1B4B6;
29 border: 1px solid #B1B4B6;
30 }
30 }
31
31
32 div.document {
32 div.document {
33 background-color: #eee;
33 background-color: #eee;
34 }
34 }
35
35
36 div.body {
36 div.body {
37 background-color: #ffffff;
37 background-color: #ffffff;
38 color: #3E4349;
38 color: #3E4349;
39 padding: 0 30px 30px 30px;
39 padding: 0 30px 30px 30px;
40 font-size: 0.8em;
40 font-size: 0.8em;
41 }
41 }
42
42
43 div.footer {
43 div.footer {
44 color: #555;
44 color: #555;
45 width: 100%;
45 width: 100%;
46 padding: 13px 0;
46 padding: 13px 0;
47 text-align: center;
47 text-align: center;
48 font-size: 75%;
48 font-size: 75%;
49 }
49 }
50
50
51 div.footer a {
51 div.footer a {
52 color: #444;
52 color: #444;
53 text-decoration: underline;
53 text-decoration: underline;
54 }
54 }
55
55
56 div.related {
56 div.related {
57 background-color: #6BA81E;
57 background-color: #003367;
58 line-height: 32px;
58 line-height: 32px;
59 color: #fff;
59 color: #fff;
60 text-shadow: 0px 1px 0 #444;
60 text-shadow: 0px 1px 0 #444;
61 font-size: 0.80em;
61 font-size: 0.80em;
62 }
62 }
63
63
64 div.related a {
64 div.related a {
65 color: #E2F3CC;
65 color: #E2F3CC;
66 }
66 }
67
67
68 div.sphinxsidebar {
68 div.sphinxsidebar {
69 font-size: 0.75em;
69 font-size: 0.75em;
70 line-height: 1.5em;
70 line-height: 1.5em;
71 }
71 }
72
72
73 div.sphinxsidebarwrapper{
73 div.sphinxsidebarwrapper{
74 padding: 20px 0;
74 padding: 20px 0;
75 }
75 }
76
76
77 div.sphinxsidebar h3,
77 div.sphinxsidebar h3,
78 div.sphinxsidebar h4 {
78 div.sphinxsidebar h4 {
79 font-family: Arial, sans-serif;
79 font-family: Arial, sans-serif;
80 color: #222;
80 color: #222;
81 font-size: 1.2em;
81 font-size: 1.2em;
82 font-weight: normal;
82 font-weight: normal;
83 margin: 0;
83 margin: 0;
84 padding: 5px 10px;
84 padding: 5px 10px;
85 background-color: #ddd;
85 background-color: #ddd;
86 text-shadow: 1px 1px 0 white
86 text-shadow: 1px 1px 0 white
87 }
87 }
88
88
89 div.sphinxsidebar h4{
89 div.sphinxsidebar h4{
90 font-size: 1.1em;
90 font-size: 1.1em;
91 }
91 }
92
92
93 div.sphinxsidebar h3 a {
93 div.sphinxsidebar h3 a {
94 color: #444;
94 color: #444;
95 }
95 }
96
96
97
97
98 div.sphinxsidebar p {
98 div.sphinxsidebar p {
99 color: #888;
99 color: #888;
100 padding: 5px 20px;
100 padding: 5px 20px;
101 }
101 }
102
102
103 div.sphinxsidebar p.topless {
103 div.sphinxsidebar p.topless {
104 }
104 }
105
105
106 div.sphinxsidebar ul {
106 div.sphinxsidebar ul {
107 margin: 10px 20px;
107 margin: 10px 20px;
108 padding: 0;
108 padding: 0;
109 color: #000;
109 color: #000;
110 }
110 }
111
111
112 div.sphinxsidebar a {
112 div.sphinxsidebar a {
113 color: #444;
113 color: #444;
114 }
114 }
115
115
116 div.sphinxsidebar input {
116 div.sphinxsidebar input {
117 border: 1px solid #ccc;
117 border: 1px solid #ccc;
118 font-family: sans-serif;
118 font-family: sans-serif;
119 font-size: 1em;
119 font-size: 1em;
120 }
120 }
121
121
122 div.sphinxsidebar input[type=text]{
122 div.sphinxsidebar input[type=text]{
123 margin-left: 20px;
123 margin-left: 20px;
124 }
124 }
125
125
126 /* -- body styles ----------------------------------------------------------- */
126 /* -- body styles ----------------------------------------------------------- */
127
127
128 a {
128 a {
129 color: #005B81;
129 color: #005B81;
130 text-decoration: none;
130 text-decoration: none;
131 }
131 }
132
132
133 a:hover {
133 a:hover {
134 color: #E32E00;
134 color: #E32E00;
135 text-decoration: underline;
135 text-decoration: underline;
136 }
136 }
137
137
138 div.body h1,
138 div.body h1,
139 div.body h2,
139 div.body h2,
140 div.body h3,
140 div.body h3,
141 div.body h4,
141 div.body h4,
142 div.body h5,
142 div.body h5,
143 div.body h6 {
143 div.body h6 {
144 font-family: Arial, sans-serif;
144 font-family: Arial, sans-serif;
145 background-color: #BED4EB;
145 background-color: #BED4EB;
146 font-weight: normal;
146 font-weight: normal;
147 color: #212224;
147 color: #212224;
148 margin: 30px 0px 10px 0px;
148 margin: 30px 0px 10px 0px;
149 padding: 5px 0 5px 10px;
149 padding: 5px 0 5px 10px;
150 text-shadow: 0px 1px 0 white
150 text-shadow: 0px 1px 0 white
151 }
151 }
152
152
153 div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
153 div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
154 div.body h2 { font-size: 150%; background-color: #C8D5E3; }
154 div.body h2 { font-size: 150%; background-color: #C8D5E3; }
155 div.body h3 { font-size: 120%; background-color: #D8DEE3; }
155 div.body h3 { font-size: 120%; background-color: #D8DEE3; }
156 div.body h4 { font-size: 110%; background-color: #D8DEE3; }
156 div.body h4 { font-size: 110%; background-color: #D8DEE3; }
157 div.body h5 { font-size: 100%; background-color: #D8DEE3; }
157 div.body h5 { font-size: 100%; background-color: #D8DEE3; }
158 div.body h6 { font-size: 100%; background-color: #D8DEE3; }
158 div.body h6 { font-size: 100%; background-color: #D8DEE3; }
159
159
160 a.headerlink {
160 a.headerlink {
161 color: #c60f0f;
161 color: #c60f0f;
162 font-size: 0.8em;
162 font-size: 0.8em;
163 padding: 0 4px 0 4px;
163 padding: 0 4px 0 4px;
164 text-decoration: none;
164 text-decoration: none;
165 }
165 }
166
166
167 a.headerlink:hover {
167 a.headerlink:hover {
168 background-color: #c60f0f;
168 background-color: #c60f0f;
169 color: white;
169 color: white;
170 }
170 }
171
171
172 div.body p, div.body dd, div.body li {
172 div.body p, div.body dd, div.body li {
173 line-height: 1.5em;
173 line-height: 1.5em;
174 }
174 }
175
175
176 div.admonition p.admonition-title + p {
176 div.admonition p.admonition-title + p {
177 display: inline;
177 display: inline;
178 }
178 }
179
179
180 div.highlight{
180 div.highlight{
181 background-color: white;
181 background-color: white;
182 }
182 }
183
183
184 div.note {
184 div.note {
185 background-color: #eee;
185 background-color: #eee;
186 border: 1px solid #ccc;
186 border: 1px solid #ccc;
187 }
187 }
188
188
189 div.seealso {
189 div.seealso {
190 background-color: #ffc;
190 background-color: #ffc;
191 border: 1px solid #ff6;
191 border: 1px solid #ff6;
192 }
192 }
193
193
194 div.topic {
194 div.topic {
195 background-color: #eee;
195 background-color: #eee;
196 }
196 }
197
197
198 div.warning {
198 div.warning {
199 background-color: #ffe4e4;
199 background-color: #ffe4e4;
200 border: 1px solid #f66;
200 border: 1px solid #f66;
201 }
201 }
202
202
203 p.admonition-title {
203 p.admonition-title {
204 display: inline;
204 display: inline;
205 }
205 }
206
206
207 p.admonition-title:after {
207 p.admonition-title:after {
208 content: ":";
208 content: ":";
209 }
209 }
210
210
211 pre {
211 pre {
212 padding: 10px;
212 padding: 10px;
213 background-color: White;
213 background-color: White;
214 color: #222;
214 color: #222;
215 line-height: 1.2em;
215 line-height: 1.2em;
216 border: 1px solid #C6C9CB;
216 border: 1px solid #C6C9CB;
217 font-size: 1.2em;
217 font-size: 1.2em;
218 margin: 1.5em 0 1.5em 0;
218 margin: 1.5em 0 1.5em 0;
219 -webkit-box-shadow: 1px 1px 1px #d8d8d8;
219 -webkit-box-shadow: 1px 1px 1px #d8d8d8;
220 -moz-box-shadow: 1px 1px 1px #d8d8d8;
220 -moz-box-shadow: 1px 1px 1px #d8d8d8;
221 }
221 }
222
222
223 tt {
223 tt {
224 background-color: #ecf0f3;
224 background-color: #ecf0f3;
225 color: #222;
225 color: #222;
226 padding: 1px 2px;
226 padding: 1px 2px;
227 font-size: 1.2em;
227 font-size: 1.2em;
228 font-family: monospace;
228 font-family: monospace;
229 }
229 }
General Comments 0
You need to be logged in to leave comments. Login now