##// END OF EJS Templates
release: Merge default into stable for release preparation
marcink -
r3294:4cc76f67 merge stable
parent child Browse files
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -0,0 +1,105 b''
1 .. _config-saml-duosecurity-ref:
2
3
4 SAML 2.0 with Duo Security
5 --------------------------
6
7 **This plugin is available only in EE Edition.**
8
9 |RCE| supports SAML 2.0 Authentication with Duo Security provider. This allows
10 users to log-in to RhodeCode via SSO mechanism of external identity provider
11 such as Duo. The login can be triggered either by the external IDP, or internally
12 by clicking specific authentication button on the log-in page.
13
14
15 Configuration steps
16 ^^^^^^^^^^^^^^^^^^^
17
18 To configure Duo Security SAML authentication, use the following steps:
19
20 1. From the |RCE| interface, select
21 :menuselection:`Admin --> Authentication`
22 2. Activate the `Duo Security` plugin and select :guilabel:`Save`
23 3. Go to newly available menu option called `Duo Security` on the left side.
24 4. Check the `enabled` check box in the plugin configuration section,
25 and fill in the required SAML information and :guilabel:`Save`, for more details,
26 see :ref:`config-saml-duosecurity`
27
28
29 .. _config-saml-duosecurity:
30
31
32 Example SAML Duo Security configuration
33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
34
35 Example configuration for SAML 2.0 with Duo Security provider::
36
37 *option*: `enabled` => `True`
38 # Enable or disable this authentication plugin.
39
40 *option*: `cache_ttl` => `0`
41 # Amount of seconds to cache the authentication and permissions check response call for this plugin.
42 # Useful for expensive calls like LDAP to improve the performance of the system (0 means disabled).
43
44 *option*: `debug` => `True`
45 # Enable or disable debug mode that shows SAML errors in the RhodeCode logs.
46
47 *option*: `entity_id` => `http://rc-app.com/dag/saml2/idp/metadata.php`
48 # Identity Provider entity/metadata URI.
49 # E.g. https://duo-gateway.com/dag/saml2/idp/metadata.php
50
51 *option*: `sso_service_url` => `http://rc-app.com/dag/saml2/idp/SSOService.php?spentityid=http://rc.local.pl/_admin/auth/duosecurity/saml-metadata`
52 # SSO (SingleSignOn) endpoint URL of the IdP. This can be used to initialize login
53 # E.g. https://duo-gateway.com/dag/saml2/idp/SSOService.php?spentityid=<metadata_entity_id>
54
55 *option*: `slo_service_url` => `http://rc-app.com/dag/saml2/idp/SingleLogoutService.php?ReturnTo=http://rc-app.com/dag/module.php/duosecurity/logout.php`
56 # SLO (SingleLogout) endpoint URL of the IdP.
57 # E.g. https://duo-gateway.com/dag/saml2/idp/SingleLogoutService.php?ReturnTo=http://duo-gateway.com/_admin/saml/sign-out-endpoint
58
59 *option*: `x509cert` => `<CERTIFICATE_STRING>`
60 # Identity provider public x509 certificate. It will be converted to single-line format without headers
61
62 *option*: `name_id_format` => `sha-1`
63 # The format that specifies how the NameID is sent to the service provider.
64
65 *option*: `signature_algo` => `sha-256`
66 # Type of Algorithm to use for verification of SAML signature on Identity provider side
67
68 *option*: `digest_algo` => `sha-256`
69 # Type of Algorithm to use for verification of SAML digest on Identity provider side
70
71 *option*: `cert_dir` => `/etc/saml/`
72 # Optional directory to store service provider certificate and private keys.
73 # Expected certs for the SP should be stored in this folder as:
74 # * sp.key Private Key
75 # * sp.crt Public cert
76 # * sp_new.crt Future Public cert
77 #
78 # Also you can use other cert to sign the metadata of the SP using the:
79 # * metadata.key
80 # * metadata.crt
81
82 *option*: `user_id_attribute` => `PersonImmutableID`
83 # User ID Attribute name. This defines which attribute in SAML response will be used to link accounts via unique id.
84 # Ensure this is returned from DuoSecurity for example via duo_username
85
86 *option*: `username_attribute` => `User.username`
87 # Username Attribute name. This defines which attribute in SAML response will map to an username.
88
89 *option*: `email_attribute` => `User.email`
90 # Email Attribute name. This defines which attribute in SAML response will map to an email address.
91
92
93 Below is example setup from DUO Administration page that can be used with above config.
94
95 .. image:: ../images/saml-duosecurity-service-provider-example.png
96 :alt: DUO Security SAML setup example
97 :scale: 50 %
98
99
100 Below is an example attribute mapping set for IDP provider required by the above config.
101
102
103 .. image:: ../images/saml-duosecurity-attributes-example.png
104 :alt: DUO Security SAML setup example
105 :scale: 50 % No newline at end of file
@@ -0,0 +1,18 b''
1 .. _config-saml-generic-ref:
2
3
4 SAML 2.0 Authentication
5 -----------------------
6
7
8 **This plugin is available only in EE Edition.**
9
10 RhodeCode Supports standard SAML 2.0 SSO for the web-application part.
11
12 Please check for reference two example providers:
13
14 .. toctree::
15
16 auth-saml-duosecurity
17 auth-saml-onelogin
18
@@ -0,0 +1,106 b''
1 .. _config-saml-onelogin-ref:
2
3
4 SAML 2.0 with One Login
5 -----------------------
6
7 **This plugin is available only in EE Edition.**
8
9 |RCE| supports SAML 2.0 Authentication with OneLogin provider. This allows
10 users to log-in to RhodeCode via SSO mechanism of external identity provider
11 such as OneLogin. The login can be triggered either by the external IDP, or internally
12 by clicking specific authentication button on the log-in page.
13
14
15 Configuration steps
16 ^^^^^^^^^^^^^^^^^^^
17
18 To configure OneLogin SAML authentication, use the following steps:
19
20 1. From the |RCE| interface, select
21 :menuselection:`Admin --> Authentication`
22 2. Activate the `OneLogin` plugin and select :guilabel:`Save`
23 3. Go to newly available menu option called `OneLogin` on the left side.
24 4. Check the `enabled` check box in the plugin configuration section,
25 and fill in the required SAML information and :guilabel:`Save`, for more details,
26 see :ref:`config-saml-onelogin`
27
28
29 .. _config-saml-onelogin:
30
31
32 Example SAML OneLogin configuration
33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
34
35 Example configuration for SAML 2.0 with OneLogin provider::
36
37 *option*: `enabled` => `True`
38 # Enable or disable this authentication plugin.
39
40 *option*: `cache_ttl` => `0`
41 # Amount of seconds to cache the authentication and permissions check response call for this plugin.
42 # Useful for expensive calls like LDAP to improve the performance of the system (0 means disabled).
43
44 *option*: `debug` => `True`
45 # Enable or disable debug mode that shows SAML errors in the RhodeCode logs.
46
47 *option*: `entity_id` => `https://app.onelogin.com/saml/metadata/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
48 # Identity Provider entity/metadata URI.
49 # E.g. https://app.onelogin.com/saml/metadata/<onelogin_connector_id>
50
51 *option*: `sso_service_url` => `https://customer-domain.onelogin.com/trust/saml2/http-post/sso/xxxxxx`
52 # SSO (SingleSignOn) endpoint URL of the IdP. This can be used to initialize login
53 # E.g. https://app.onelogin.com/trust/saml2/http-post/sso/<onelogin_connector_id>
54
55 *option*: `slo_service_url` => `https://customer-domain.onelogin.com/trust/saml2/http-redirect/slo/xxxxxx`
56 # SLO (SingleLogout) endpoint URL of the IdP.
57 # E.g. https://app.onelogin.com/trust/saml2/http-redirect/slo/<onelogin_connector_id>
58
59 *option*: `x509cert` => `<CERTIFICATE_STRING>`
60 # Identity provider public x509 certificate. It will be converted to single-line format without headers
61
62 *option*: `name_id_format` => `sha-1`
63 # The format that specifies how the NameID is sent to the service provider.
64
65 *option*: `signature_algo` => `sha-256`
66 # Type of Algorithm to use for verification of SAML signature on Identity provider side
67
68 *option*: `digest_algo` => `sha-256`
69 # Type of Algorithm to use for verification of SAML digest on Identity provider side
70
71 *option*: `cert_dir` => `/etc/saml/`
72 # Optional directory to store service provider certificate and private keys.
73 # Expected certs for the SP should be stored in this folder as:
74 # * sp.key Private Key
75 # * sp.crt Public cert
76 # * sp_new.crt Future Public cert
77 #
78 # Also you can use other cert to sign the metadata of the SP using the:
79 # * metadata.key
80 # * metadata.crt
81
82 *option*: `user_id_attribute` => `PersonImmutableID`
83 # User ID Attribute name. This defines which attribute in SAML response will be used to link accounts via unique id.
84 # Ensure this is returned from OneLogin for example via Internal ID
85
86 *option*: `username_attribute` => `User.username`
87 # Username Attribute name. This defines which attribute in SAML response will map to an username.
88
89 *option*: `email_attribute` => `User.email`
90 # Email Attribute name. This defines which attribute in SAML response will map to an email address.
91
92
93
94 Below is example setup that can be used with OneLogin SAML authentication that can be used with above config..
95
96 .. image:: ../images/saml-onelogin-config-example.png
97 :alt: OneLogin SAML setup example
98 :scale: 50 %
99
100
101 Below is an example attribute mapping set for IDP provider required by the above config.
102
103
104 .. image:: ../images/saml-onelogin-attributes-example.png
105 :alt: OneLogin SAML setup example
106 :scale: 50 % No newline at end of file
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,81 b''
1 |RCE| 4.15.0 |RNS|
2 ------------------
3
4 Release Date
5 ^^^^^^^^^^^^
6
7 - 2018-12-10
8
9
10 New Features
11 ^^^^^^^^^^^^
12
13 - Authentication: Added SAML 2.0 Authentication, with support of OneLogin and DUO Security.
14 - Core: add debug mode that switches logging to debug.
15 It's no longer required to reconfigure all logging. A `debug=true` set in .ini file
16 does it automatically.
17
18
19 General
20 ^^^^^^^
21
22 - Authentication: rename oauth to external identity as it would now be serving both
23 oAuth and SAML.
24 - Authentication: allow setting extern type with registration.
25 This will allow external identity plugins to define proper externs instead of always
26 using "rhodecode" one.
27 - Authentication: show if plugin is activated and enabled in the list.
28 - Authentication: add better logging for ldap related attributes to help track
29 LDAP connection problems more easily.
30 - Visual: add change logo header template
31 - UI: updated error pages style to be consistent with other pages.
32 - Utils: updated request generation so ishell can run some automation scripts.
33 - Docs: updated documentation for SVN 1.10 Wandisco repositories.
34 - System info: expose base_url set in .ini file.
35 - Style: update pygments template styling.
36 - Style: updated li style and markdown style.
37 - Dependencies: added python-saml library.
38 - Dependencies: bumped hgsubversion to 1.9.3 release.
39 - Dependencies: bumped gevent to 1.3.7 release.
40 - Dependencies: bumped lxml to 4.2.5 release.
41 - Dependencies: bumped gevent to 1.3.7 release.
42 - Dependencies: bumped alembic to 1.0.5 release.
43 - Dependencies: bumped peppercorn to 0.6 release.
44 - Dependencies: bumped pyotp to 2.2.7 release.
45 - Dependencies: bumped deform to 2.0.7 release
46 - Dependencies: bumped py-gfm to 0.1.4 release.
47 - Dependencies: bumped colander to 1.5.1 release
48 - Dependencies: bumped appenlight-client to 0.6.26 release.
49 - Dependencies: bumped bleach to 3.0.2 release.
50 - Dependencies: bumped pygments to 2.3.0
51
52
53 Security
54 ^^^^^^^^
55
56 - Mercurial: support evolve sub-commands when checking for permissions.
57 Those defaulted to write, while only read is required for evolve.
58 - auth/security: enforce that external users cannot reset their password.
59 External users don't use RhodeCode passwords, so resetting them shouldn't be allowed.
60
61
62 Performance
63 ^^^^^^^^^^^
64
65 - Markdown: use lazy loaded markdown initialization to speed up app startup.
66 - Gevent: changed DNS resolver to ares for better stability on long running processes.
67
68
69 Fixes
70 ^^^^^
71
72 - Default Reviewers: use target repo owner as default reviewer in case of CE edition.
73 - LDAP: ensure the proper cert files and dirs are set.
74 It's also now possible to specify custom paths for those.
75 - Markdown: fixed auto checkbox generation from markdown code
76
77
78 Upgrade notes
79 ^^^^^^^^^^^^^
80
81 - LDAP cert dirs No newline at end of file
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
The requested commit or file is too big and content was truncated. Show full diff
@@ -1,6 +1,6 b''
1 [bumpversion]
1 [bumpversion]
2 current_version = 4.14.1
2 current_version = 4.15.0
3 message = release: Bump version {current_version} to {new_version}
3 message = release: Bump version {current_version} to {new_version}
4
4
5 [bumpversion:file:rhodecode/VERSION]
5 [bumpversion:file:rhodecode/VERSION]
6
6
@@ -1,33 +1,28 b''
1 [DEFAULT]
1 [DEFAULT]
2 done = false
2 done = false
3
3
4 [task:bump_version]
4 [task:bump_version]
5 done = true
5 done = true
6
6
7 [task:rc_tools_pinned]
7 [task:rc_tools_pinned]
8 done = true
9
8
10 [task:fixes_on_stable]
9 [task:fixes_on_stable]
11 done = true
12
10
13 [task:pip2nix_generated]
11 [task:pip2nix_generated]
14 done = true
15
12
16 [task:changelog_updated]
13 [task:changelog_updated]
17 done = true
18
14
19 [task:generate_api_docs]
15 [task:generate_api_docs]
20 done = true
16
17 [task:updated_translation]
21
18
22 [release]
19 [release]
23 state = prepared
20 state = in_progress
24 version = 4.14.1
21 version = 4.15.0
25
26 [task:updated_translation]
27
22
28 [task:generate_js_routes]
23 [task:generate_js_routes]
29
24
30 [task:updated_trial_license]
25 [task:updated_trial_license]
31
26
32 [task:generate_oss_licenses]
27 [task:generate_oss_licenses]
33
28
@@ -1,114 +1,116 b''
1 =========
1 =========
2 RhodeCode
2 RhodeCode
3 =========
3 =========
4
4
5 About
5 About
6 -----
6 -----
7
7
8 ``RhodeCode`` is a fast and powerful management tool for Mercurial_ and GIT_
8 ``RhodeCode`` is a fast and powerful management tool for Mercurial_ and GIT_
9 and Subversion_ with a built in push/pull server, full text search,
9 and Subversion_ with a built in push/pull server, full text search,
10 pull requests and powerful code-review system. It works on http/https and
10 pull requests and powerful code-review system. It works on http/https, SSH and
11 has a few unique features like:
11 has a few unique features like:
12
12
13 - plugable architecture
13 - plugable architecture from Pyramid web-framework.
14 - advanced permission system with IP restrictions
14 - advanced permission system with IP restrictions, inheritation, and user-groups.
15 - rich set of authentication plugins including LDAP,
15 - rich set of authentication plugins including LDAP, ActiveDirectory, SAML 2.0,
16 ActiveDirectory, Atlassian Crowd, Http-Headers, Pam, Token-Auth.
16 Atlassian Crowd, Http-Headers, Pam, Token-Auth, OAuth.
17 - live code-review chat
17 - live code-review chat, and reviewer rules.
18 - full web based file editing
18 - full web based file editing.
19 - unified multi vcs support
19 - unified multi vcs support.
20 - snippets (gist) system
20 - snippets (gist) system.
21 - integration with all 3rd party issue trackers
21 - integration framework for Slack, CI systems, Webhooks.
22 - integration with all 3rd party issue trackers.
23
22
24
23 RhodeCode also provides rich API, and multiple event hooks so it's easy
25 RhodeCode also provides rich API, and multiple event hooks so it's easy
24 integrable with existing external systems.
26 integrable with existing external systems.
25
27
26 RhodeCode is similar in some respects to gitlab_, github_ or bitbucket_,
28 RhodeCode is similar in some respects to gitlab_, github_ or bitbucket_,
27 however RhodeCode can be run as standalone hosted application on your own server.
29 however RhodeCode can be run as standalone hosted application on your own server.
28 RhodeCode can be installed on \*nix or Windows systems.
30 RhodeCode can be installed on \*nix or Windows systems.
29
31
30 RhodeCode uses `PEP386 versioning <http://www.python.org/dev/peps/pep-0386/>`_
32 RhodeCode uses `PEP386 versioning <http://www.python.org/dev/peps/pep-0386/>`_
31
33
32 Installation
34 Installation
33 ------------
35 ------------
34 Please visit https://docs.rhodecode.com/RhodeCode-Control/tasks/install-cli.html
36 Please visit https://docs.rhodecode.com/RhodeCode-Control/tasks/install-cli.html
35 for more details
37 for more details
36
38
37
39
38 Source code
40 Source code
39 -----------
41 -----------
40
42
41 The latest sources can be obtained from official RhodeCode instance
43 The latest sources can be obtained from official RhodeCode instance
42 https://code.rhodecode.com
44 https://code.rhodecode.com
43
45
44
46
45 Contributions
47 Contributions
46 -------------
48 -------------
47
49
48 RhodeCode is open-source; contributions are welcome!
50 RhodeCode is open-source; contributions are welcome!
49
51
50 Please see the contribution documentation inside of the docs folder, which is
52 Please see the contribution documentation inside of the docs folder, which is
51 also available at
53 also available at
52 https://docs.rhodecode.com/RhodeCode-Enterprise/contributing/contributing.html
54 https://docs.rhodecode.com/RhodeCode-Enterprise/contributing/contributing.html
53
55
54 For additional information about collaboration tools, our issue tracker,
56 For additional information about collaboration tools, our issue tracker,
55 licensing, and contribution credit, visit https://rhodecode.com/open-source
57 licensing, and contribution credit, visit https://rhodecode.com/open-source
56
58
57
59
58 RhodeCode Features
60 RhodeCode Features
59 ------------------
61 ------------------
60
62
61 Check out all features of RhodeCode at https://rhodecode.com/features
63 Check out all features of RhodeCode at https://rhodecode.com/features
62
64
63 License
65 License
64 -------
66 -------
65
67
66 ``RhodeCode`` is dual-licensed with AGPLv3 and commercial license.
68 ``RhodeCode`` is dual-licensed with AGPLv3 and commercial license.
67 Please see LICENSE.txt file for details.
69 Please see LICENSE.txt file for details.
68
70
69
71
70 Getting help
72 Getting help
71 ------------
73 ------------
72
74
73 Listed bellow are various support resources that should help.
75 Listed bellow are various support resources that should help.
74
76
75 .. note::
77 .. note::
76
78
77 Please try to read the documentation before posting any issues, especially
79 Please try to read the documentation before posting any issues, especially
78 the **troubleshooting section**
80 the **troubleshooting section**
79
81
80 - Official issue tracker `RhodeCode Issue tracker <https://issues.rhodecode.com>`_
82 - Official issue tracker `RhodeCode Issue tracker <https://issues.rhodecode.com>`_
81
83
82 - Official Slack Community Channel `RhodeCode Slack <https://rhodecode.com/join>`_
84 - Official Slack Community Channel `RhodeCode Slack <https://rhodecode.com/join>`_
83
85
84 - Search our community portal `Community portal <https://community.rhodecode.com>`_
86 - Search our community portal `Community portal <https://community.rhodecode.com>`_
85
87
86 - You can also follow RhodeCode on twitter **@RhodeCode** where we often post
88 - You can also follow RhodeCode on twitter **@RhodeCode** where we often post
87 news and other interesting stuff about RhodeCode.
89 news and other interesting stuff about RhodeCode.
88
90
89
91
90 Online documentation
92 Online documentation
91 --------------------
93 --------------------
92
94
93 Online documentation for the current version of RhodeCode is available at
95 Online documentation for the current version of RhodeCode is available at
94 - http://rhodecode.com/docs
96 - http://rhodecode.com/docs
95
97
96 You may also build the documentation for yourself - go into ``docs/`` and run::
98 You may also build the documentation for yourself - go into ``docs/`` and run::
97
99
98 nix-build default.nix -o result && make clean html
100 nix-build default.nix -o result && make clean html
99
101
100 (You need to have sphinx_ installed to build the documentation. If you don't
102 (You need to have sphinx_ installed to build the documentation. If you don't
101 have sphinx_ installed you can install it via the command:
103 have sphinx_ installed you can install it via the command:
102 ``pip install sphinx``)
104 ``pip install sphinx``)
103
105
104 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
106 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
105 .. _python: http://www.python.org/
107 .. _python: http://www.python.org/
106 .. _sphinx: http://sphinx.pocoo.org/
108 .. _sphinx: http://sphinx.pocoo.org/
107 .. _mercurial: http://mercurial.selenic.com/
109 .. _mercurial: http://mercurial.selenic.com/
108 .. _bitbucket: http://bitbucket.org/
110 .. _bitbucket: http://bitbucket.org/
109 .. _github: http://github.com/
111 .. _github: http://github.com/
110 .. _gitlab: http://gitlab.com/
112 .. _gitlab: http://gitlab.com/
111 .. _subversion: http://subversion.tigris.org/
113 .. _subversion: http://subversion.tigris.org/
112 .. _git: http://git-scm.com/
114 .. _git: http://git-scm.com/
113 .. _celery: http://celeryproject.org/
115 .. _celery: http://celeryproject.org/
114 .. _vcs: http://pypi.python.org/pypi/vcs
116 .. _vcs: http://pypi.python.org/pypi/vcs
@@ -1,724 +1,718 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
5 ################################################################################
5 ################################################################################
6
6
7 [DEFAULT]
7 [DEFAULT]
8 ## Debug flag sets all loggers to debug, and enables request tracking
8 debug = true
9 debug = true
9
10
10 ################################################################################
11 ################################################################################
11 ## EMAIL CONFIGURATION ##
12 ## EMAIL CONFIGURATION ##
12 ## Uncomment and replace with the email address which should receive ##
13 ## Uncomment and replace with the email address which should receive ##
13 ## any error reports after an application crash ##
14 ## any error reports after an application crash ##
14 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ################################################################################
16 ################################################################################
16
17
17 ## prefix all emails subjects with given prefix, helps filtering out emails
18 ## prefix all emails subjects with given prefix, helps filtering out emails
18 #email_prefix = [RhodeCode]
19 #email_prefix = [RhodeCode]
19
20
20 ## email FROM address all mails will be sent
21 ## email FROM address all mails will be sent
21 #app_email_from = rhodecode-noreply@localhost
22 #app_email_from = rhodecode-noreply@localhost
22
23
23 #smtp_server = mail.server.com
24 #smtp_server = mail.server.com
24 #smtp_username =
25 #smtp_username =
25 #smtp_password =
26 #smtp_password =
26 #smtp_port =
27 #smtp_port =
27 #smtp_use_tls = false
28 #smtp_use_tls = false
28 #smtp_use_ssl = true
29 #smtp_use_ssl = true
29
30
30 [server:main]
31 [server:main]
31 ## COMMON ##
32 ## COMMON ##
32 host = 127.0.0.1
33 host = 127.0.0.1
33 port = 5000
34 port = 5000
34
35
35 ###########################################################
36 ###########################################################
36 ## WAITRESS WSGI SERVER - Recommended for Development ####
37 ## WAITRESS WSGI SERVER - Recommended for Development ####
37 ###########################################################
38 ###########################################################
38
39
39 use = egg:waitress#main
40 use = egg:waitress#main
40 ## number of worker threads
41 ## number of worker threads
41 threads = 5
42 threads = 5
42 ## MAX BODY SIZE 100GB
43 ## MAX BODY SIZE 100GB
43 max_request_body_size = 107374182400
44 max_request_body_size = 107374182400
44 ## Use poll instead of select, fixes file descriptors limits problems.
45 ## Use poll instead of select, fixes file descriptors limits problems.
45 ## May not work on old windows systems.
46 ## May not work on old windows systems.
46 asyncore_use_poll = true
47 asyncore_use_poll = true
47
48
48
49
49 ##########################
50 ##########################
50 ## GUNICORN WSGI SERVER ##
51 ## GUNICORN WSGI SERVER ##
51 ##########################
52 ##########################
52 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
53 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
53
54
54 #use = egg:gunicorn#main
55 #use = egg:gunicorn#main
55 ## Sets the number of process workers. More workers means more concurent connections
56 ## Sets the number of process workers. More workers means more concurent connections
56 ## RhodeCode can handle at the same time. Each additional worker also it increases
57 ## RhodeCode can handle at the same time. Each additional worker also it increases
57 ## memory usage as each has it's own set of caches.
58 ## memory usage as each has it's own set of caches.
58 ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
59 ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
59 ## than 8-10 unless for really big deployments .e.g 700-1000 users.
60 ## than 8-10 unless for really big deployments .e.g 700-1000 users.
60 ## `instance_id = *` must be set in the [app:main] section below (which is the default)
61 ## `instance_id = *` must be set in the [app:main] section below (which is the default)
61 ## when using more than 1 worker.
62 ## when using more than 1 worker.
62 #workers = 2
63 #workers = 2
63 ## process name visible in process list
64 ## process name visible in process list
64 #proc_name = rhodecode
65 #proc_name = rhodecode
65 ## type of worker class, one of sync, gevent
66 ## type of worker class, one of sync, gevent
66 ## recommended for bigger setup is using of of other than sync one
67 ## recommended for bigger setup is using of of other than sync one
67 #worker_class = gevent
68 #worker_class = gevent
68 ## The maximum number of simultaneous clients. Valid only for Gevent
69 ## The maximum number of simultaneous clients. Valid only for Gevent
69 #worker_connections = 10
70 #worker_connections = 10
70 ## max number of requests that worker will handle before being gracefully
71 ## max number of requests that worker will handle before being gracefully
71 ## restarted, could prevent memory leaks
72 ## restarted, could prevent memory leaks
72 #max_requests = 1000
73 #max_requests = 1000
73 #max_requests_jitter = 30
74 #max_requests_jitter = 30
74 ## amount of time a worker can spend with handling a request before it
75 ## amount of time a worker can spend with handling a request before it
75 ## gets killed and restarted. Set to 6hrs
76 ## gets killed and restarted. Set to 6hrs
76 #timeout = 21600
77 #timeout = 21600
77
78
78
79
79 ## prefix middleware for RhodeCode.
80 ## prefix middleware for RhodeCode.
80 ## recommended when using proxy setup.
81 ## recommended when using proxy setup.
81 ## allows to set RhodeCode under a prefix in server.
82 ## allows to set RhodeCode under a prefix in server.
82 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
83 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
83 ## And set your prefix like: `prefix = /custom_prefix`
84 ## And set your prefix like: `prefix = /custom_prefix`
84 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
85 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
85 ## to make your cookies only work on prefix url
86 ## to make your cookies only work on prefix url
86 [filter:proxy-prefix]
87 [filter:proxy-prefix]
87 use = egg:PasteDeploy#prefix
88 use = egg:PasteDeploy#prefix
88 prefix = /
89 prefix = /
89
90
90 [app:main]
91 [app:main]
91 ## The %(here)s variable will be replaced with the absolute path of parent directory
92 ## The %(here)s variable will be replaced with the absolute path of parent directory
92 ## of this file
93 ## of this file
93 ## In addition ENVIRONMENT variables usage is possible, e.g
94 ## In addition ENVIRONMENT variables usage is possible, e.g
94 ## sqlalchemy.db1.url = {ENV_RC_DB_URL}
95 ## sqlalchemy.db1.url = {ENV_RC_DB_URL}
95
96
96 use = egg:rhodecode-enterprise-ce
97 use = egg:rhodecode-enterprise-ce
97
98
98 ## enable proxy prefix middleware, defined above
99 ## enable proxy prefix middleware, defined above
99 #filter-with = proxy-prefix
100 #filter-with = proxy-prefix
100
101
101 # During development the we want to have the debug toolbar enabled
102 # During development the we want to have the debug toolbar enabled
102 pyramid.includes =
103 pyramid.includes =
103 pyramid_debugtoolbar
104 pyramid_debugtoolbar
104 rhodecode.lib.middleware.request_wrapper
105 rhodecode.lib.middleware.request_wrapper
105
106
106 pyramid.reload_templates = true
107 pyramid.reload_templates = true
107
108
108 debugtoolbar.hosts = 0.0.0.0/0
109 debugtoolbar.hosts = 0.0.0.0/0
109 debugtoolbar.exclude_prefixes =
110 debugtoolbar.exclude_prefixes =
110 /css
111 /css
111 /fonts
112 /fonts
112 /images
113 /images
113 /js
114 /js
114
115
115 ## RHODECODE PLUGINS ##
116 ## RHODECODE PLUGINS ##
116 rhodecode.includes =
117 rhodecode.includes =
117 rhodecode.api
118 rhodecode.api
118
119
119
120
120 # api prefix url
121 # api prefix url
121 rhodecode.api.url = /_admin/api
122 rhodecode.api.url = /_admin/api
122
123
123
124
124 ## END RHODECODE PLUGINS ##
125 ## END RHODECODE PLUGINS ##
125
126
126 ## encryption key used to encrypt social plugin tokens,
127 ## encryption key used to encrypt social plugin tokens,
127 ## remote_urls with credentials etc, if not set it defaults to
128 ## remote_urls with credentials etc, if not set it defaults to
128 ## `beaker.session.secret`
129 ## `beaker.session.secret`
129 #rhodecode.encrypted_values.secret =
130 #rhodecode.encrypted_values.secret =
130
131
131 ## decryption strict mode (enabled by default). It controls if decryption raises
132 ## decryption strict mode (enabled by default). It controls if decryption raises
132 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
133 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
133 #rhodecode.encrypted_values.strict = false
134 #rhodecode.encrypted_values.strict = false
134
135
135 ## return gzipped responses from Rhodecode (static files/application)
136 ## return gzipped responses from Rhodecode (static files/application)
136 gzip_responses = false
137 gzip_responses = false
137
138
138 ## autogenerate javascript routes file on startup
139 ## autogenerate javascript routes file on startup
139 generate_js_files = false
140 generate_js_files = false
140
141
141 ## System global default language.
142 ## System global default language.
142 ## All available languages: en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
143 ## All available languages: en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
143 lang = en
144 lang = en
144
145
145 ## Perform a full repository scan and import on each server start.
146 ## Perform a full repository scan and import on each server start.
146 ## Settings this to true could lead to very long startup time.
147 ## Settings this to true could lead to very long startup time.
147 startup.import_repos = false
148 startup.import_repos = false
148
149
149 ## Uncomment and set this path to use archive download cache.
150 ## Uncomment and set this path to use archive download cache.
150 ## Once enabled, generated archives will be cached at this location
151 ## Once enabled, generated archives will be cached at this location
151 ## and served from the cache during subsequent requests for the same archive of
152 ## and served from the cache during subsequent requests for the same archive of
152 ## the repository.
153 ## the repository.
153 #archive_cache_dir = /tmp/tarballcache
154 #archive_cache_dir = /tmp/tarballcache
154
155
155 ## URL at which the application is running. This is used for bootstraping
156 ## URL at which the application is running. This is used for bootstraping
156 ## requests in context when no web request is available. Used in ishell, or
157 ## requests in context when no web request is available. Used in ishell, or
157 ## SSH calls. Set this for events to receive proper url for SSH calls.
158 ## SSH calls. Set this for events to receive proper url for SSH calls.
158 app.base_url = http://rhodecode.local
159 app.base_url = http://rhodecode.local
159
160
160 ## Unique application ID. Should be a random unique string for security.
161 ## Unique application ID. Should be a random unique string for security.
161 app_instance_uuid = rc-production
162 app_instance_uuid = rc-production
162
163
163 ## Cut off limit for large diffs (size in bytes). If overall diff size on
164 ## Cut off limit for large diffs (size in bytes). If overall diff size on
164 ## commit, or pull request exceeds this limit this diff will be displayed
165 ## commit, or pull request exceeds this limit this diff will be displayed
165 ## partially. E.g 512000 == 512Kb
166 ## partially. E.g 512000 == 512Kb
166 cut_off_limit_diff = 512000
167 cut_off_limit_diff = 512000
167
168
168 ## Cut off limit for large files inside diffs (size in bytes). Each individual
169 ## Cut off limit for large files inside diffs (size in bytes). Each individual
169 ## file inside diff which exceeds this limit will be displayed partially.
170 ## file inside diff which exceeds this limit will be displayed partially.
170 ## E.g 128000 == 128Kb
171 ## E.g 128000 == 128Kb
171 cut_off_limit_file = 128000
172 cut_off_limit_file = 128000
172
173
173 ## use cached version of vcs repositories everywhere. Recommended to be `true`
174 ## use cached version of vcs repositories everywhere. Recommended to be `true`
174 vcs_full_cache = true
175 vcs_full_cache = true
175
176
176 ## Force https in RhodeCode, fixes https redirects, assumes it's always https.
177 ## Force https in RhodeCode, fixes https redirects, assumes it's always https.
177 ## Normally this is controlled by proper http flags sent from http server
178 ## Normally this is controlled by proper http flags sent from http server
178 force_https = false
179 force_https = false
179
180
180 ## use Strict-Transport-Security headers
181 ## use Strict-Transport-Security headers
181 use_htsts = false
182 use_htsts = false
182
183
183 ## git rev filter option, --all is the default filter, if you need to
184 ## git rev filter option, --all is the default filter, if you need to
184 ## hide all refs in changelog switch this to --branches --tags
185 ## hide all refs in changelog switch this to --branches --tags
185 git_rev_filter = --branches --tags
186 git_rev_filter = --branches --tags
186
187
187 # Set to true if your repos are exposed using the dumb protocol
188 # Set to true if your repos are exposed using the dumb protocol
188 git_update_server_info = false
189 git_update_server_info = false
189
190
190 ## RSS/ATOM feed options
191 ## RSS/ATOM feed options
191 rss_cut_off_limit = 256000
192 rss_cut_off_limit = 256000
192 rss_items_per_page = 10
193 rss_items_per_page = 10
193 rss_include_diff = false
194 rss_include_diff = false
194
195
195 ## gist URL alias, used to create nicer urls for gist. This should be an
196 ## gist URL alias, used to create nicer urls for gist. This should be an
196 ## url that does rewrites to _admin/gists/{gistid}.
197 ## url that does rewrites to _admin/gists/{gistid}.
197 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
198 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
198 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
199 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
199 gist_alias_url =
200 gist_alias_url =
200
201
201 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
202 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
202 ## used for access.
203 ## used for access.
203 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
204 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
204 ## came from the the logged in user who own this authentication token.
205 ## came from the the logged in user who own this authentication token.
205 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
206 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
206 ## authentication token. Such view would be only accessible when used together
207 ## authentication token. Such view would be only accessible when used together
207 ## with this authentication token
208 ## with this authentication token
208 ##
209 ##
209 ## list of all views can be found under `/_admin/permissions/auth_token_access`
210 ## list of all views can be found under `/_admin/permissions/auth_token_access`
210 ## The list should be "," separated and on a single line.
211 ## The list should be "," separated and on a single line.
211 ##
212 ##
212 ## Most common views to enable:
213 ## Most common views to enable:
213 # RepoCommitsView:repo_commit_download
214 # RepoCommitsView:repo_commit_download
214 # RepoCommitsView:repo_commit_patch
215 # RepoCommitsView:repo_commit_patch
215 # RepoCommitsView:repo_commit_raw
216 # RepoCommitsView:repo_commit_raw
216 # RepoCommitsView:repo_commit_raw@TOKEN
217 # RepoCommitsView:repo_commit_raw@TOKEN
217 # RepoFilesView:repo_files_diff
218 # RepoFilesView:repo_files_diff
218 # RepoFilesView:repo_archivefile
219 # RepoFilesView:repo_archivefile
219 # RepoFilesView:repo_file_raw
220 # RepoFilesView:repo_file_raw
220 # GistView:*
221 # GistView:*
221 api_access_controllers_whitelist =
222 api_access_controllers_whitelist =
222
223
223 ## Default encoding used to convert from and to unicode
224 ## Default encoding used to convert from and to unicode
224 ## can be also a comma separated list of encoding in case of mixed encodings
225 ## can be also a comma separated list of encoding in case of mixed encodings
225 default_encoding = UTF-8
226 default_encoding = UTF-8
226
227
227 ## instance-id prefix
228 ## instance-id prefix
228 ## a prefix key for this instance used for cache invalidation when running
229 ## a prefix key for this instance used for cache invalidation when running
229 ## multiple instances of rhodecode, make sure it's globally unique for
230 ## multiple instances of rhodecode, make sure it's globally unique for
230 ## all running rhodecode instances. Leave empty if you don't use it
231 ## all running rhodecode instances. Leave empty if you don't use it
231 instance_id =
232 instance_id =
232
233
233 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
234 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
234 ## of an authentication plugin also if it is disabled by it's settings.
235 ## of an authentication plugin also if it is disabled by it's settings.
235 ## This could be useful if you are unable to log in to the system due to broken
236 ## This could be useful if you are unable to log in to the system due to broken
236 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
237 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
237 ## module to log in again and fix the settings.
238 ## module to log in again and fix the settings.
238 ##
239 ##
239 ## Available builtin plugin IDs (hash is part of the ID):
240 ## Available builtin plugin IDs (hash is part of the ID):
240 ## egg:rhodecode-enterprise-ce#rhodecode
241 ## egg:rhodecode-enterprise-ce#rhodecode
241 ## egg:rhodecode-enterprise-ce#pam
242 ## egg:rhodecode-enterprise-ce#pam
242 ## egg:rhodecode-enterprise-ce#ldap
243 ## egg:rhodecode-enterprise-ce#ldap
243 ## egg:rhodecode-enterprise-ce#jasig_cas
244 ## egg:rhodecode-enterprise-ce#jasig_cas
244 ## egg:rhodecode-enterprise-ce#headers
245 ## egg:rhodecode-enterprise-ce#headers
245 ## egg:rhodecode-enterprise-ce#crowd
246 ## egg:rhodecode-enterprise-ce#crowd
246 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
247 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
247
248
248 ## alternative return HTTP header for failed authentication. Default HTTP
249 ## alternative return HTTP header for failed authentication. Default HTTP
249 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
250 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
250 ## handling that causing a series of failed authentication calls.
251 ## handling that causing a series of failed authentication calls.
251 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
252 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
252 ## This will be served instead of default 401 on bad authnetication
253 ## This will be served instead of default 401 on bad authnetication
253 auth_ret_code =
254 auth_ret_code =
254
255
255 ## use special detection method when serving auth_ret_code, instead of serving
256 ## use special detection method when serving auth_ret_code, instead of serving
256 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
257 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
257 ## and then serve auth_ret_code to clients
258 ## and then serve auth_ret_code to clients
258 auth_ret_code_detection = false
259 auth_ret_code_detection = false
259
260
260 ## locking return code. When repository is locked return this HTTP code. 2XX
261 ## locking return code. When repository is locked return this HTTP code. 2XX
261 ## codes don't break the transactions while 4XX codes do
262 ## codes don't break the transactions while 4XX codes do
262 lock_ret_code = 423
263 lock_ret_code = 423
263
264
264 ## allows to change the repository location in settings page
265 ## allows to change the repository location in settings page
265 allow_repo_location_change = true
266 allow_repo_location_change = true
266
267
267 ## allows to setup custom hooks in settings page
268 ## allows to setup custom hooks in settings page
268 allow_custom_hooks_settings = true
269 allow_custom_hooks_settings = true
269
270
270 ## Generated license token required for EE edition license.
271 ## Generated license token required for EE edition license.
271 ## New generated token value can be found in Admin > settings > license page.
272 ## New generated token value can be found in Admin > settings > license page.
272 license_token =
273 license_token =
273
274
274 ## supervisor connection uri, for managing supervisor and logs.
275 ## supervisor connection uri, for managing supervisor and logs.
275 supervisor.uri =
276 supervisor.uri =
276 ## supervisord group name/id we only want this RC instance to handle
277 ## supervisord group name/id we only want this RC instance to handle
277 supervisor.group_id = dev
278 supervisor.group_id = dev
278
279
279 ## Display extended labs settings
280 ## Display extended labs settings
280 labs_settings_active = true
281 labs_settings_active = true
281
282
282 ## Custom exception store path, defaults to TMPDIR
283 ## Custom exception store path, defaults to TMPDIR
283 ## This is used to store exception from RhodeCode in shared directory
284 ## This is used to store exception from RhodeCode in shared directory
284 #exception_tracker.store_path =
285 #exception_tracker.store_path =
285
286
286
287
287 ####################################
288 ####################################
288 ### CELERY CONFIG ####
289 ### CELERY CONFIG ####
289 ####################################
290 ####################################
290 ## run: /path/to/celery worker \
291 ## run: /path/to/celery worker \
291 ## -E --beat --app rhodecode.lib.celerylib.loader \
292 ## -E --beat --app rhodecode.lib.celerylib.loader \
292 ## --scheduler rhodecode.lib.celerylib.scheduler.RcScheduler \
293 ## --scheduler rhodecode.lib.celerylib.scheduler.RcScheduler \
293 ## --loglevel DEBUG --ini /path/to/rhodecode.ini
294 ## --loglevel DEBUG --ini /path/to/rhodecode.ini
294
295
295 use_celery = false
296 use_celery = false
296
297
297 ## connection url to the message broker (default rabbitmq)
298 ## connection url to the message broker (default rabbitmq)
298 celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
299 celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
299
300
300 ## maximum tasks to execute before worker restart
301 ## maximum tasks to execute before worker restart
301 celery.max_tasks_per_child = 100
302 celery.max_tasks_per_child = 100
302
303
303 ## tasks will never be sent to the queue, but executed locally instead.
304 ## tasks will never be sent to the queue, but executed locally instead.
304 celery.task_always_eager = false
305 celery.task_always_eager = false
305
306
306 #####################################
307 #####################################
307 ### DOGPILE CACHE ####
308 ### DOGPILE CACHE ####
308 #####################################
309 #####################################
309 ## Default cache dir for caches. Putting this into a ramdisk
310 ## Default cache dir for caches. Putting this into a ramdisk
310 ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require
311 ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require
311 ## large amount of space
312 ## large amount of space
312 cache_dir = %(here)s/data
313 cache_dir = %(here)s/data
313
314
314 ## `cache_perms` cache settings for permission tree, auth TTL.
315 ## `cache_perms` cache settings for permission tree, auth TTL.
315 rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
316 rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
316 rc_cache.cache_perms.expiration_time = 300
317 rc_cache.cache_perms.expiration_time = 300
317
318
318 ## alternative `cache_perms` redis backend with distributed lock
319 ## alternative `cache_perms` redis backend with distributed lock
319 #rc_cache.cache_perms.backend = dogpile.cache.rc.redis
320 #rc_cache.cache_perms.backend = dogpile.cache.rc.redis
320 #rc_cache.cache_perms.expiration_time = 300
321 #rc_cache.cache_perms.expiration_time = 300
321 ## redis_expiration_time needs to be greater then expiration_time
322 ## redis_expiration_time needs to be greater then expiration_time
322 #rc_cache.cache_perms.arguments.redis_expiration_time = 7200
323 #rc_cache.cache_perms.arguments.redis_expiration_time = 7200
323 #rc_cache.cache_perms.arguments.socket_timeout = 30
324 #rc_cache.cache_perms.arguments.socket_timeout = 30
324 #rc_cache.cache_perms.arguments.host = localhost
325 #rc_cache.cache_perms.arguments.host = localhost
325 #rc_cache.cache_perms.arguments.port = 6379
326 #rc_cache.cache_perms.arguments.port = 6379
326 #rc_cache.cache_perms.arguments.db = 0
327 #rc_cache.cache_perms.arguments.db = 0
327 #rc_cache.cache_perms.arguments.distributed_lock = true
328 #rc_cache.cache_perms.arguments.distributed_lock = true
328
329
329 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
330 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
330 rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
331 rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
331 rc_cache.cache_repo.expiration_time = 2592000
332 rc_cache.cache_repo.expiration_time = 2592000
332
333
333 ## alternative `cache_repo` redis backend with distributed lock
334 ## alternative `cache_repo` redis backend with distributed lock
334 #rc_cache.cache_repo.backend = dogpile.cache.rc.redis
335 #rc_cache.cache_repo.backend = dogpile.cache.rc.redis
335 #rc_cache.cache_repo.expiration_time = 2592000
336 #rc_cache.cache_repo.expiration_time = 2592000
336 ## redis_expiration_time needs to be greater then expiration_time
337 ## redis_expiration_time needs to be greater then expiration_time
337 #rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
338 #rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
338 #rc_cache.cache_repo.arguments.socket_timeout = 30
339 #rc_cache.cache_repo.arguments.socket_timeout = 30
339 #rc_cache.cache_repo.arguments.host = localhost
340 #rc_cache.cache_repo.arguments.host = localhost
340 #rc_cache.cache_repo.arguments.port = 6379
341 #rc_cache.cache_repo.arguments.port = 6379
341 #rc_cache.cache_repo.arguments.db = 1
342 #rc_cache.cache_repo.arguments.db = 1
342 #rc_cache.cache_repo.arguments.distributed_lock = true
343 #rc_cache.cache_repo.arguments.distributed_lock = true
343
344
344 ## cache settings for SQL queries, this needs to use memory type backend
345 ## cache settings for SQL queries, this needs to use memory type backend
345 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
346 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
346 rc_cache.sql_cache_short.expiration_time = 30
347 rc_cache.sql_cache_short.expiration_time = 30
347
348
348 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
349 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
349 ## type backend as the objects kept are not pickle serializable
350 ## type backend as the objects kept are not pickle serializable
350 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
351 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
351 ## by default we use 96H, this is using invalidation on push anyway
352 ## by default we use 96H, this is using invalidation on push anyway
352 rc_cache.cache_repo_longterm.expiration_time = 345600
353 rc_cache.cache_repo_longterm.expiration_time = 345600
353 ## max items in LRU cache, reduce this number to save memory, and expire last used
354 ## max items in LRU cache, reduce this number to save memory, and expire last used
354 ## cached objects
355 ## cached objects
355 rc_cache.cache_repo_longterm.max_size = 10000
356 rc_cache.cache_repo_longterm.max_size = 10000
356
357
357
358
358 ####################################
359 ####################################
359 ### BEAKER SESSION ####
360 ### BEAKER SESSION ####
360 ####################################
361 ####################################
361
362
362 ## .session.type is type of storage options for the session, current allowed
363 ## .session.type is type of storage options for the session, current allowed
363 ## types are file, ext:memcached, ext:redis, ext:database, and memory (default).
364 ## types are file, ext:memcached, ext:redis, ext:database, and memory (default).
364 beaker.session.type = file
365 beaker.session.type = file
365 beaker.session.data_dir = %(here)s/data/sessions
366 beaker.session.data_dir = %(here)s/data/sessions
366
367
367 ## db based session, fast, and allows easy management over logged in users
368 ## db based session, fast, and allows easy management over logged in users
368 #beaker.session.type = ext:database
369 #beaker.session.type = ext:database
369 #beaker.session.table_name = db_session
370 #beaker.session.table_name = db_session
370 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
371 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
371 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
372 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
372 #beaker.session.sa.pool_recycle = 3600
373 #beaker.session.sa.pool_recycle = 3600
373 #beaker.session.sa.echo = false
374 #beaker.session.sa.echo = false
374
375
375 beaker.session.key = rhodecode
376 beaker.session.key = rhodecode
376 beaker.session.secret = develop-rc-uytcxaz
377 beaker.session.secret = develop-rc-uytcxaz
377 beaker.session.lock_dir = %(here)s/data/sessions/lock
378 beaker.session.lock_dir = %(here)s/data/sessions/lock
378
379
379 ## Secure encrypted cookie. Requires AES and AES python libraries
380 ## Secure encrypted cookie. Requires AES and AES python libraries
380 ## you must disable beaker.session.secret to use this
381 ## you must disable beaker.session.secret to use this
381 #beaker.session.encrypt_key = key_for_encryption
382 #beaker.session.encrypt_key = key_for_encryption
382 #beaker.session.validate_key = validation_key
383 #beaker.session.validate_key = validation_key
383
384
384 ## sets session as invalid(also logging out user) if it haven not been
385 ## sets session as invalid(also logging out user) if it haven not been
385 ## accessed for given amount of time in seconds
386 ## accessed for given amount of time in seconds
386 beaker.session.timeout = 2592000
387 beaker.session.timeout = 2592000
387 beaker.session.httponly = true
388 beaker.session.httponly = true
388 ## Path to use for the cookie. Set to prefix if you use prefix middleware
389 ## Path to use for the cookie. Set to prefix if you use prefix middleware
389 #beaker.session.cookie_path = /custom_prefix
390 #beaker.session.cookie_path = /custom_prefix
390
391
391 ## uncomment for https secure cookie
392 ## uncomment for https secure cookie
392 beaker.session.secure = false
393 beaker.session.secure = false
393
394
394 ## auto save the session to not to use .save()
395 ## auto save the session to not to use .save()
395 beaker.session.auto = false
396 beaker.session.auto = false
396
397
397 ## default cookie expiration time in seconds, set to `true` to set expire
398 ## default cookie expiration time in seconds, set to `true` to set expire
398 ## at browser close
399 ## at browser close
399 #beaker.session.cookie_expires = 3600
400 #beaker.session.cookie_expires = 3600
400
401
401 ###################################
402 ###################################
402 ## SEARCH INDEXING CONFIGURATION ##
403 ## SEARCH INDEXING CONFIGURATION ##
403 ###################################
404 ###################################
404 ## Full text search indexer is available in rhodecode-tools under
405 ## Full text search indexer is available in rhodecode-tools under
405 ## `rhodecode-tools index` command
406 ## `rhodecode-tools index` command
406
407
407 ## WHOOSH Backend, doesn't require additional services to run
408 ## WHOOSH Backend, doesn't require additional services to run
408 ## it works good with few dozen repos
409 ## it works good with few dozen repos
409 search.module = rhodecode.lib.index.whoosh
410 search.module = rhodecode.lib.index.whoosh
410 search.location = %(here)s/data/index
411 search.location = %(here)s/data/index
411
412
412 ########################################
413 ########################################
413 ### CHANNELSTREAM CONFIG ####
414 ### CHANNELSTREAM CONFIG ####
414 ########################################
415 ########################################
415 ## channelstream enables persistent connections and live notification
416 ## channelstream enables persistent connections and live notification
416 ## in the system. It's also used by the chat system
417 ## in the system. It's also used by the chat system
418
417 channelstream.enabled = false
419 channelstream.enabled = false
418
420
419 ## server address for channelstream server on the backend
421 ## server address for channelstream server on the backend
420 channelstream.server = 127.0.0.1:9800
422 channelstream.server = 127.0.0.1:9800
421
423
422 ## location of the channelstream server from outside world
424 ## location of the channelstream server from outside world
423 ## use ws:// for http or wss:// for https. This address needs to be handled
425 ## use ws:// for http or wss:// for https. This address needs to be handled
424 ## by external HTTP server such as Nginx or Apache
426 ## by external HTTP server such as Nginx or Apache
425 ## see nginx/apache configuration examples in our docs
427 ## see nginx/apache configuration examples in our docs
426 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
428 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
427 channelstream.secret = secret
429 channelstream.secret = secret
428 channelstream.history.location = %(here)s/channelstream_history
430 channelstream.history.location = %(here)s/channelstream_history
429
431
430 ## Internal application path that Javascript uses to connect into.
432 ## Internal application path that Javascript uses to connect into.
431 ## If you use proxy-prefix the prefix should be added before /_channelstream
433 ## If you use proxy-prefix the prefix should be added before /_channelstream
432 channelstream.proxy_path = /_channelstream
434 channelstream.proxy_path = /_channelstream
433
435
434
436
435 ###################################
437 ###################################
436 ## APPENLIGHT CONFIG ##
438 ## APPENLIGHT CONFIG ##
437 ###################################
439 ###################################
438
440
439 ## Appenlight is tailored to work with RhodeCode, see
441 ## Appenlight is tailored to work with RhodeCode, see
440 ## http://appenlight.com for details how to obtain an account
442 ## http://appenlight.com for details how to obtain an account
441
443
442 ## appenlight integration enabled
444 ## appenlight integration enabled
443 appenlight = false
445 appenlight = false
444
446
445 appenlight.server_url = https://api.appenlight.com
447 appenlight.server_url = https://api.appenlight.com
446 appenlight.api_key = YOUR_API_KEY
448 appenlight.api_key = YOUR_API_KEY
447 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
449 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
448
450
449 # used for JS client
451 # used for JS client
450 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
452 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
451
453
452 ## TWEAK AMOUNT OF INFO SENT HERE
454 ## TWEAK AMOUNT OF INFO SENT HERE
453
455
454 ## enables 404 error logging (default False)
456 ## enables 404 error logging (default False)
455 appenlight.report_404 = false
457 appenlight.report_404 = false
456
458
457 ## time in seconds after request is considered being slow (default 1)
459 ## time in seconds after request is considered being slow (default 1)
458 appenlight.slow_request_time = 1
460 appenlight.slow_request_time = 1
459
461
460 ## record slow requests in application
462 ## record slow requests in application
461 ## (needs to be enabled for slow datastore recording and time tracking)
463 ## (needs to be enabled for slow datastore recording and time tracking)
462 appenlight.slow_requests = true
464 appenlight.slow_requests = true
463
465
464 ## enable hooking to application loggers
466 ## enable hooking to application loggers
465 appenlight.logging = true
467 appenlight.logging = true
466
468
467 ## minimum log level for log capture
469 ## minimum log level for log capture
468 appenlight.logging.level = WARNING
470 appenlight.logging.level = WARNING
469
471
470 ## send logs only from erroneous/slow requests
472 ## send logs only from erroneous/slow requests
471 ## (saves API quota for intensive logging)
473 ## (saves API quota for intensive logging)
472 appenlight.logging_on_error = false
474 appenlight.logging_on_error = false
473
475
474 ## list of additonal keywords that should be grabbed from environ object
476 ## list of additonal keywords that should be grabbed from environ object
475 ## can be string with comma separated list of words in lowercase
477 ## can be string with comma separated list of words in lowercase
476 ## (by default client will always send following info:
478 ## (by default client will always send following info:
477 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
479 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
478 ## start with HTTP* this list be extended with additional keywords here
480 ## start with HTTP* this list be extended with additional keywords here
479 appenlight.environ_keys_whitelist =
481 appenlight.environ_keys_whitelist =
480
482
481 ## list of keywords that should be blanked from request object
483 ## list of keywords that should be blanked from request object
482 ## can be string with comma separated list of words in lowercase
484 ## can be string with comma separated list of words in lowercase
483 ## (by default client will always blank keys that contain following words
485 ## (by default client will always blank keys that contain following words
484 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
486 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
485 ## this list be extended with additional keywords set here
487 ## this list be extended with additional keywords set here
486 appenlight.request_keys_blacklist =
488 appenlight.request_keys_blacklist =
487
489
488 ## list of namespaces that should be ignores when gathering log entries
490 ## list of namespaces that should be ignores when gathering log entries
489 ## can be string with comma separated list of namespaces
491 ## can be string with comma separated list of namespaces
490 ## (by default the client ignores own entries: appenlight_client.client)
492 ## (by default the client ignores own entries: appenlight_client.client)
491 appenlight.log_namespace_blacklist =
493 appenlight.log_namespace_blacklist =
492
494
493
494 ################################################################################
495 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
496 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
497 ## execute malicious code after an exception is raised. ##
498 ################################################################################
499 #set debug = false
500
501 # enable debug style page
495 # enable debug style page
502 debug_style = true
496 debug_style = true
503
497
504 ###########################################
498 ###########################################
505 ### MAIN RHODECODE DATABASE CONFIG ###
499 ### MAIN RHODECODE DATABASE CONFIG ###
506 ###########################################
500 ###########################################
507 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
501 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
508 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
502 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
509 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8
503 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8
510 # pymysql is an alternative driver for MySQL, use in case of problems with default one
504 # pymysql is an alternative driver for MySQL, use in case of problems with default one
511 #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode
505 #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode
512
506
513 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
507 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
514
508
515 # see sqlalchemy docs for other advanced settings
509 # see sqlalchemy docs for other advanced settings
516
510
517 ## print the sql statements to output
511 ## print the sql statements to output
518 sqlalchemy.db1.echo = false
512 sqlalchemy.db1.echo = false
519 ## recycle the connections after this amount of seconds
513 ## recycle the connections after this amount of seconds
520 sqlalchemy.db1.pool_recycle = 3600
514 sqlalchemy.db1.pool_recycle = 3600
521 sqlalchemy.db1.convert_unicode = true
515 sqlalchemy.db1.convert_unicode = true
522
516
523 ## the number of connections to keep open inside the connection pool.
517 ## the number of connections to keep open inside the connection pool.
524 ## 0 indicates no limit
518 ## 0 indicates no limit
525 #sqlalchemy.db1.pool_size = 5
519 #sqlalchemy.db1.pool_size = 5
526
520
527 ## the number of connections to allow in connection pool "overflow", that is
521 ## the number of connections to allow in connection pool "overflow", that is
528 ## connections that can be opened above and beyond the pool_size setting,
522 ## connections that can be opened above and beyond the pool_size setting,
529 ## which defaults to five.
523 ## which defaults to five.
530 #sqlalchemy.db1.max_overflow = 10
524 #sqlalchemy.db1.max_overflow = 10
531
525
532 ## Connection check ping, used to detect broken database connections
526 ## Connection check ping, used to detect broken database connections
533 ## could be enabled to better handle cases if MySQL has gone away errors
527 ## could be enabled to better handle cases if MySQL has gone away errors
534 #sqlalchemy.db1.ping_connection = true
528 #sqlalchemy.db1.ping_connection = true
535
529
536 ##################
530 ##################
537 ### VCS CONFIG ###
531 ### VCS CONFIG ###
538 ##################
532 ##################
539 vcs.server.enable = true
533 vcs.server.enable = true
540 vcs.server = localhost:9900
534 vcs.server = localhost:9900
541
535
542 ## Web server connectivity protocol, responsible for web based VCS operatations
536 ## Web server connectivity protocol, responsible for web based VCS operatations
543 ## Available protocols are:
537 ## Available protocols are:
544 ## `http` - use http-rpc backend (default)
538 ## `http` - use http-rpc backend (default)
545 vcs.server.protocol = http
539 vcs.server.protocol = http
546
540
547 ## Push/Pull operations protocol, available options are:
541 ## Push/Pull operations protocol, available options are:
548 ## `http` - use http-rpc backend (default)
542 ## `http` - use http-rpc backend (default)
549 vcs.scm_app_implementation = http
543 vcs.scm_app_implementation = http
550
544
551 ## Push/Pull operations hooks protocol, available options are:
545 ## Push/Pull operations hooks protocol, available options are:
552 ## `http` - use http-rpc backend (default)
546 ## `http` - use http-rpc backend (default)
553 vcs.hooks.protocol = http
547 vcs.hooks.protocol = http
554
548
555 ## Host on which this instance is listening for hooks. If vcsserver is in other location
549 ## Host on which this instance is listening for hooks. If vcsserver is in other location
556 ## this should be adjusted.
550 ## this should be adjusted.
557 vcs.hooks.host = 127.0.0.1
551 vcs.hooks.host = 127.0.0.1
558
552
559 vcs.server.log_level = debug
553 vcs.server.log_level = debug
560 ## Start VCSServer with this instance as a subprocess, useful for development
554 ## Start VCSServer with this instance as a subprocess, useful for development
561 vcs.start_server = false
555 vcs.start_server = false
562
556
563 ## List of enabled VCS backends, available options are:
557 ## List of enabled VCS backends, available options are:
564 ## `hg` - mercurial
558 ## `hg` - mercurial
565 ## `git` - git
559 ## `git` - git
566 ## `svn` - subversion
560 ## `svn` - subversion
567 vcs.backends = hg, git, svn
561 vcs.backends = hg, git, svn
568
562
569 vcs.connection_timeout = 3600
563 vcs.connection_timeout = 3600
570 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
564 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
571 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
565 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
572 #vcs.svn.compatible_version = pre-1.8-compatible
566 #vcs.svn.compatible_version = pre-1.8-compatible
573
567
574
568
575 ############################################################
569 ############################################################
576 ### Subversion proxy support (mod_dav_svn) ###
570 ### Subversion proxy support (mod_dav_svn) ###
577 ### Maps RhodeCode repo groups into SVN paths for Apache ###
571 ### Maps RhodeCode repo groups into SVN paths for Apache ###
578 ############################################################
572 ############################################################
579 ## Enable or disable the config file generation.
573 ## Enable or disable the config file generation.
580 svn.proxy.generate_config = false
574 svn.proxy.generate_config = false
581 ## Generate config file with `SVNListParentPath` set to `On`.
575 ## Generate config file with `SVNListParentPath` set to `On`.
582 svn.proxy.list_parent_path = true
576 svn.proxy.list_parent_path = true
583 ## Set location and file name of generated config file.
577 ## Set location and file name of generated config file.
584 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
578 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
585 ## alternative mod_dav config template. This needs to be a mako template
579 ## alternative mod_dav config template. This needs to be a mako template
586 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
580 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
587 ## Used as a prefix to the `Location` block in the generated config file.
581 ## Used as a prefix to the `Location` block in the generated config file.
588 ## In most cases it should be set to `/`.
582 ## In most cases it should be set to `/`.
589 svn.proxy.location_root = /
583 svn.proxy.location_root = /
590 ## Command to reload the mod dav svn configuration on change.
584 ## Command to reload the mod dav svn configuration on change.
591 ## Example: `/etc/init.d/apache2 reload`
585 ## Example: `/etc/init.d/apache2 reload`
592 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
586 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
593 ## If the timeout expires before the reload command finishes, the command will
587 ## If the timeout expires before the reload command finishes, the command will
594 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
588 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
595 #svn.proxy.reload_timeout = 10
589 #svn.proxy.reload_timeout = 10
596
590
597 ############################################################
591 ############################################################
598 ### SSH Support Settings ###
592 ### SSH Support Settings ###
599 ############################################################
593 ############################################################
600
594
601 ## Defines if a custom authorized_keys file should be created and written on
595 ## Defines if a custom authorized_keys file should be created and written on
602 ## any change user ssh keys. Setting this to false also disables posibility
596 ## any change user ssh keys. Setting this to false also disables posibility
603 ## of adding SSH keys by users from web interface. Super admins can still
597 ## of adding SSH keys by users from web interface. Super admins can still
604 ## manage SSH Keys.
598 ## manage SSH Keys.
605 ssh.generate_authorized_keyfile = false
599 ssh.generate_authorized_keyfile = false
606
600
607 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
601 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
608 # ssh.authorized_keys_ssh_opts =
602 # ssh.authorized_keys_ssh_opts =
609
603
610 ## Path to the authrozied_keys file where the generate entries are placed.
604 ## Path to the authrozied_keys file where the generate entries are placed.
611 ## It is possible to have multiple key files specified in `sshd_config` e.g.
605 ## It is possible to have multiple key files specified in `sshd_config` e.g.
612 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
606 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
613 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
607 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
614
608
615 ## Command to execute the SSH wrapper. The binary is available in the
609 ## Command to execute the SSH wrapper. The binary is available in the
616 ## rhodecode installation directory.
610 ## rhodecode installation directory.
617 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
611 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
618 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
612 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
619
613
620 ## Allow shell when executing the ssh-wrapper command
614 ## Allow shell when executing the ssh-wrapper command
621 ssh.wrapper_cmd_allow_shell = false
615 ssh.wrapper_cmd_allow_shell = false
622
616
623 ## Enables logging, and detailed output send back to the client during SSH
617 ## Enables logging, and detailed output send back to the client during SSH
624 ## operations. Usefull for debugging, shouldn't be used in production.
618 ## operations. Usefull for debugging, shouldn't be used in production.
625 ssh.enable_debug_logging = true
619 ssh.enable_debug_logging = true
626
620
627 ## Paths to binary executable, by default they are the names, but we can
621 ## Paths to binary executable, by default they are the names, but we can
628 ## override them if we want to use a custom one
622 ## override them if we want to use a custom one
629 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
623 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
630 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
624 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
631 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
625 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
632
626
633
627
634 ## Dummy marker to add new entries after.
628 ## Dummy marker to add new entries after.
635 ## Add any custom entries below. Please don't remove.
629 ## Add any custom entries below. Please don't remove.
636 custom.conf = 1
630 custom.conf = 1
637
631
638
632
639 ################################
633 ################################
640 ### LOGGING CONFIGURATION ####
634 ### LOGGING CONFIGURATION ####
641 ################################
635 ################################
642 [loggers]
636 [loggers]
643 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
637 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
644
638
645 [handlers]
639 [handlers]
646 keys = console, console_sql
640 keys = console, console_sql
647
641
648 [formatters]
642 [formatters]
649 keys = generic, color_formatter, color_formatter_sql
643 keys = generic, color_formatter, color_formatter_sql
650
644
651 #############
645 #############
652 ## LOGGERS ##
646 ## LOGGERS ##
653 #############
647 #############
654 [logger_root]
648 [logger_root]
655 level = NOTSET
649 level = NOTSET
656 handlers = console
650 handlers = console
657
651
658 [logger_sqlalchemy]
652 [logger_sqlalchemy]
659 level = INFO
653 level = INFO
660 handlers = console_sql
654 handlers = console_sql
661 qualname = sqlalchemy.engine
655 qualname = sqlalchemy.engine
662 propagate = 0
656 propagate = 0
663
657
664 [logger_beaker]
658 [logger_beaker]
665 level = DEBUG
659 level = DEBUG
666 handlers =
660 handlers =
667 qualname = beaker.container
661 qualname = beaker.container
668 propagate = 1
662 propagate = 1
669
663
670 [logger_rhodecode]
664 [logger_rhodecode]
671 level = DEBUG
665 level = DEBUG
672 handlers =
666 handlers =
673 qualname = rhodecode
667 qualname = rhodecode
674 propagate = 1
668 propagate = 1
675
669
676 [logger_ssh_wrapper]
670 [logger_ssh_wrapper]
677 level = DEBUG
671 level = DEBUG
678 handlers =
672 handlers =
679 qualname = ssh_wrapper
673 qualname = ssh_wrapper
680 propagate = 1
674 propagate = 1
681
675
682 [logger_celery]
676 [logger_celery]
683 level = DEBUG
677 level = DEBUG
684 handlers =
678 handlers =
685 qualname = celery
679 qualname = celery
686
680
687
681
688 ##############
682 ##############
689 ## HANDLERS ##
683 ## HANDLERS ##
690 ##############
684 ##############
691
685
692 [handler_console]
686 [handler_console]
693 class = StreamHandler
687 class = StreamHandler
694 args = (sys.stderr, )
688 args = (sys.stderr, )
695 level = DEBUG
689 level = DEBUG
696 formatter = color_formatter
690 formatter = color_formatter
697
691
698 [handler_console_sql]
692 [handler_console_sql]
699 # "level = DEBUG" logs SQL queries and results.
693 # "level = DEBUG" logs SQL queries and results.
700 # "level = INFO" logs SQL queries.
694 # "level = INFO" logs SQL queries.
701 # "level = WARN" logs neither. (Recommended for production systems.)
695 # "level = WARN" logs neither. (Recommended for production systems.)
702 class = StreamHandler
696 class = StreamHandler
703 args = (sys.stderr, )
697 args = (sys.stderr, )
704 level = WARN
698 level = WARN
705 formatter = color_formatter_sql
699 formatter = color_formatter_sql
706
700
707 ################
701 ################
708 ## FORMATTERS ##
702 ## FORMATTERS ##
709 ################
703 ################
710
704
711 [formatter_generic]
705 [formatter_generic]
712 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
706 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
713 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
707 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
714 datefmt = %Y-%m-%d %H:%M:%S
708 datefmt = %Y-%m-%d %H:%M:%S
715
709
716 [formatter_color_formatter]
710 [formatter_color_formatter]
717 class = rhodecode.lib.logging_formatter.ColorFormatter
711 class = rhodecode.lib.logging_formatter.ColorFormatter
718 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
712 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
719 datefmt = %Y-%m-%d %H:%M:%S
713 datefmt = %Y-%m-%d %H:%M:%S
720
714
721 [formatter_color_formatter_sql]
715 [formatter_color_formatter_sql]
722 class = rhodecode.lib.logging_formatter.ColorFormatterSql
716 class = rhodecode.lib.logging_formatter.ColorFormatterSql
723 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
717 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
724 datefmt = %Y-%m-%d %H:%M:%S
718 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,696 +1,691 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
5 ################################################################################
5 ################################################################################
6
6
7 [DEFAULT]
7 [DEFAULT]
8 debug = true
8 ## Debug flag sets all loggers to debug, and enables request tracking
9 debug = false
9
10
10 ################################################################################
11 ################################################################################
11 ## EMAIL CONFIGURATION ##
12 ## EMAIL CONFIGURATION ##
12 ## Uncomment and replace with the email address which should receive ##
13 ## Uncomment and replace with the email address which should receive ##
13 ## any error reports after an application crash ##
14 ## any error reports after an application crash ##
14 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ################################################################################
16 ################################################################################
16
17
17 ## prefix all emails subjects with given prefix, helps filtering out emails
18 ## prefix all emails subjects with given prefix, helps filtering out emails
18 #email_prefix = [RhodeCode]
19 #email_prefix = [RhodeCode]
19
20
20 ## email FROM address all mails will be sent
21 ## email FROM address all mails will be sent
21 #app_email_from = rhodecode-noreply@localhost
22 #app_email_from = rhodecode-noreply@localhost
22
23
23 #smtp_server = mail.server.com
24 #smtp_server = mail.server.com
24 #smtp_username =
25 #smtp_username =
25 #smtp_password =
26 #smtp_password =
26 #smtp_port =
27 #smtp_port =
27 #smtp_use_tls = false
28 #smtp_use_tls = false
28 #smtp_use_ssl = true
29 #smtp_use_ssl = true
29
30
30 [server:main]
31 [server:main]
31 ## COMMON ##
32 ## COMMON ##
32 host = 127.0.0.1
33 host = 127.0.0.1
33 port = 5000
34 port = 5000
34
35
35 ###########################################################
36 ###########################################################
36 ## WAITRESS WSGI SERVER - Recommended for Development ####
37 ## WAITRESS WSGI SERVER - Recommended for Development ####
37 ###########################################################
38 ###########################################################
38
39
39 #use = egg:waitress#main
40 #use = egg:waitress#main
40 ## number of worker threads
41 ## number of worker threads
41 #threads = 5
42 #threads = 5
42 ## MAX BODY SIZE 100GB
43 ## MAX BODY SIZE 100GB
43 #max_request_body_size = 107374182400
44 #max_request_body_size = 107374182400
44 ## Use poll instead of select, fixes file descriptors limits problems.
45 ## Use poll instead of select, fixes file descriptors limits problems.
45 ## May not work on old windows systems.
46 ## May not work on old windows systems.
46 #asyncore_use_poll = true
47 #asyncore_use_poll = true
47
48
48
49
49 ##########################
50 ##########################
50 ## GUNICORN WSGI SERVER ##
51 ## GUNICORN WSGI SERVER ##
51 ##########################
52 ##########################
52 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
53 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
53
54
54 use = egg:gunicorn#main
55 use = egg:gunicorn#main
55 ## Sets the number of process workers. More workers means more concurent connections
56 ## Sets the number of process workers. More workers means more concurent connections
56 ## RhodeCode can handle at the same time. Each additional worker also it increases
57 ## RhodeCode can handle at the same time. Each additional worker also it increases
57 ## memory usage as each has it's own set of caches.
58 ## memory usage as each has it's own set of caches.
58 ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
59 ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
59 ## than 8-10 unless for really big deployments .e.g 700-1000 users.
60 ## than 8-10 unless for really big deployments .e.g 700-1000 users.
60 ## `instance_id = *` must be set in the [app:main] section below (which is the default)
61 ## `instance_id = *` must be set in the [app:main] section below (which is the default)
61 ## when using more than 1 worker.
62 ## when using more than 1 worker.
62 workers = 2
63 workers = 2
63 ## process name visible in process list
64 ## process name visible in process list
64 proc_name = rhodecode
65 proc_name = rhodecode
65 ## type of worker class, one of sync, gevent
66 ## type of worker class, one of sync, gevent
66 ## recommended for bigger setup is using of of other than sync one
67 ## recommended for bigger setup is using of of other than sync one
67 worker_class = gevent
68 worker_class = gevent
68 ## The maximum number of simultaneous clients. Valid only for Gevent
69 ## The maximum number of simultaneous clients. Valid only for Gevent
69 worker_connections = 10
70 worker_connections = 10
70 ## max number of requests that worker will handle before being gracefully
71 ## max number of requests that worker will handle before being gracefully
71 ## restarted, could prevent memory leaks
72 ## restarted, could prevent memory leaks
72 max_requests = 1000
73 max_requests = 1000
73 max_requests_jitter = 30
74 max_requests_jitter = 30
74 ## amount of time a worker can spend with handling a request before it
75 ## amount of time a worker can spend with handling a request before it
75 ## gets killed and restarted. Set to 6hrs
76 ## gets killed and restarted. Set to 6hrs
76 timeout = 21600
77 timeout = 21600
77
78
78
79
79 ## prefix middleware for RhodeCode.
80 ## prefix middleware for RhodeCode.
80 ## recommended when using proxy setup.
81 ## recommended when using proxy setup.
81 ## allows to set RhodeCode under a prefix in server.
82 ## allows to set RhodeCode under a prefix in server.
82 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
83 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
83 ## And set your prefix like: `prefix = /custom_prefix`
84 ## And set your prefix like: `prefix = /custom_prefix`
84 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
85 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
85 ## to make your cookies only work on prefix url
86 ## to make your cookies only work on prefix url
86 [filter:proxy-prefix]
87 [filter:proxy-prefix]
87 use = egg:PasteDeploy#prefix
88 use = egg:PasteDeploy#prefix
88 prefix = /
89 prefix = /
89
90
90 [app:main]
91 [app:main]
91 ## The %(here)s variable will be replaced with the absolute path of parent directory
92 ## The %(here)s variable will be replaced with the absolute path of parent directory
92 ## of this file
93 ## of this file
93 ## In addition ENVIRONMENT variables usage is possible, e.g
94 ## In addition ENVIRONMENT variables usage is possible, e.g
94 ## sqlalchemy.db1.url = {ENV_RC_DB_URL}
95 ## sqlalchemy.db1.url = {ENV_RC_DB_URL}
95
96
96 use = egg:rhodecode-enterprise-ce
97 use = egg:rhodecode-enterprise-ce
97
98
98 ## enable proxy prefix middleware, defined above
99 ## enable proxy prefix middleware, defined above
99 #filter-with = proxy-prefix
100 #filter-with = proxy-prefix
100
101
101 ## encryption key used to encrypt social plugin tokens,
102 ## encryption key used to encrypt social plugin tokens,
102 ## remote_urls with credentials etc, if not set it defaults to
103 ## remote_urls with credentials etc, if not set it defaults to
103 ## `beaker.session.secret`
104 ## `beaker.session.secret`
104 #rhodecode.encrypted_values.secret =
105 #rhodecode.encrypted_values.secret =
105
106
106 ## decryption strict mode (enabled by default). It controls if decryption raises
107 ## decryption strict mode (enabled by default). It controls if decryption raises
107 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
108 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
108 #rhodecode.encrypted_values.strict = false
109 #rhodecode.encrypted_values.strict = false
109
110
110 ## return gzipped responses from Rhodecode (static files/application)
111 ## return gzipped responses from Rhodecode (static files/application)
111 gzip_responses = false
112 gzip_responses = false
112
113
113 ## autogenerate javascript routes file on startup
114 ## autogenerate javascript routes file on startup
114 generate_js_files = false
115 generate_js_files = false
115
116
116 ## System global default language.
117 ## System global default language.
117 ## All available languages: en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
118 ## All available languages: en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
118 lang = en
119 lang = en
119
120
120 ## Perform a full repository scan and import on each server start.
121 ## Perform a full repository scan and import on each server start.
121 ## Settings this to true could lead to very long startup time.
122 ## Settings this to true could lead to very long startup time.
122 startup.import_repos = false
123 startup.import_repos = false
123
124
124 ## Uncomment and set this path to use archive download cache.
125 ## Uncomment and set this path to use archive download cache.
125 ## Once enabled, generated archives will be cached at this location
126 ## Once enabled, generated archives will be cached at this location
126 ## and served from the cache during subsequent requests for the same archive of
127 ## and served from the cache during subsequent requests for the same archive of
127 ## the repository.
128 ## the repository.
128 #archive_cache_dir = /tmp/tarballcache
129 #archive_cache_dir = /tmp/tarballcache
129
130
130 ## URL at which the application is running. This is used for bootstraping
131 ## URL at which the application is running. This is used for bootstraping
131 ## requests in context when no web request is available. Used in ishell, or
132 ## requests in context when no web request is available. Used in ishell, or
132 ## SSH calls. Set this for events to receive proper url for SSH calls.
133 ## SSH calls. Set this for events to receive proper url for SSH calls.
133 app.base_url = http://rhodecode.local
134 app.base_url = http://rhodecode.local
134
135
135 ## Unique application ID. Should be a random unique string for security.
136 ## Unique application ID. Should be a random unique string for security.
136 app_instance_uuid = rc-production
137 app_instance_uuid = rc-production
137
138
138 ## Cut off limit for large diffs (size in bytes). If overall diff size on
139 ## Cut off limit for large diffs (size in bytes). If overall diff size on
139 ## commit, or pull request exceeds this limit this diff will be displayed
140 ## commit, or pull request exceeds this limit this diff will be displayed
140 ## partially. E.g 512000 == 512Kb
141 ## partially. E.g 512000 == 512Kb
141 cut_off_limit_diff = 512000
142 cut_off_limit_diff = 512000
142
143
143 ## Cut off limit for large files inside diffs (size in bytes). Each individual
144 ## Cut off limit for large files inside diffs (size in bytes). Each individual
144 ## file inside diff which exceeds this limit will be displayed partially.
145 ## file inside diff which exceeds this limit will be displayed partially.
145 ## E.g 128000 == 128Kb
146 ## E.g 128000 == 128Kb
146 cut_off_limit_file = 128000
147 cut_off_limit_file = 128000
147
148
148 ## use cached version of vcs repositories everywhere. Recommended to be `true`
149 ## use cached version of vcs repositories everywhere. Recommended to be `true`
149 vcs_full_cache = true
150 vcs_full_cache = true
150
151
151 ## Force https in RhodeCode, fixes https redirects, assumes it's always https.
152 ## Force https in RhodeCode, fixes https redirects, assumes it's always https.
152 ## Normally this is controlled by proper http flags sent from http server
153 ## Normally this is controlled by proper http flags sent from http server
153 force_https = false
154 force_https = false
154
155
155 ## use Strict-Transport-Security headers
156 ## use Strict-Transport-Security headers
156 use_htsts = false
157 use_htsts = false
157
158
158 ## git rev filter option, --all is the default filter, if you need to
159 ## git rev filter option, --all is the default filter, if you need to
159 ## hide all refs in changelog switch this to --branches --tags
160 ## hide all refs in changelog switch this to --branches --tags
160 git_rev_filter = --branches --tags
161 git_rev_filter = --branches --tags
161
162
162 # Set to true if your repos are exposed using the dumb protocol
163 # Set to true if your repos are exposed using the dumb protocol
163 git_update_server_info = false
164 git_update_server_info = false
164
165
165 ## RSS/ATOM feed options
166 ## RSS/ATOM feed options
166 rss_cut_off_limit = 256000
167 rss_cut_off_limit = 256000
167 rss_items_per_page = 10
168 rss_items_per_page = 10
168 rss_include_diff = false
169 rss_include_diff = false
169
170
170 ## gist URL alias, used to create nicer urls for gist. This should be an
171 ## gist URL alias, used to create nicer urls for gist. This should be an
171 ## url that does rewrites to _admin/gists/{gistid}.
172 ## url that does rewrites to _admin/gists/{gistid}.
172 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
173 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
173 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
174 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
174 gist_alias_url =
175 gist_alias_url =
175
176
176 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
177 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
177 ## used for access.
178 ## used for access.
178 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
179 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
179 ## came from the the logged in user who own this authentication token.
180 ## came from the the logged in user who own this authentication token.
180 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
181 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
181 ## authentication token. Such view would be only accessible when used together
182 ## authentication token. Such view would be only accessible when used together
182 ## with this authentication token
183 ## with this authentication token
183 ##
184 ##
184 ## list of all views can be found under `/_admin/permissions/auth_token_access`
185 ## list of all views can be found under `/_admin/permissions/auth_token_access`
185 ## The list should be "," separated and on a single line.
186 ## The list should be "," separated and on a single line.
186 ##
187 ##
187 ## Most common views to enable:
188 ## Most common views to enable:
188 # RepoCommitsView:repo_commit_download
189 # RepoCommitsView:repo_commit_download
189 # RepoCommitsView:repo_commit_patch
190 # RepoCommitsView:repo_commit_patch
190 # RepoCommitsView:repo_commit_raw
191 # RepoCommitsView:repo_commit_raw
191 # RepoCommitsView:repo_commit_raw@TOKEN
192 # RepoCommitsView:repo_commit_raw@TOKEN
192 # RepoFilesView:repo_files_diff
193 # RepoFilesView:repo_files_diff
193 # RepoFilesView:repo_archivefile
194 # RepoFilesView:repo_archivefile
194 # RepoFilesView:repo_file_raw
195 # RepoFilesView:repo_file_raw
195 # GistView:*
196 # GistView:*
196 api_access_controllers_whitelist =
197 api_access_controllers_whitelist =
197
198
198 ## Default encoding used to convert from and to unicode
199 ## Default encoding used to convert from and to unicode
199 ## can be also a comma separated list of encoding in case of mixed encodings
200 ## can be also a comma separated list of encoding in case of mixed encodings
200 default_encoding = UTF-8
201 default_encoding = UTF-8
201
202
202 ## instance-id prefix
203 ## instance-id prefix
203 ## a prefix key for this instance used for cache invalidation when running
204 ## a prefix key for this instance used for cache invalidation when running
204 ## multiple instances of rhodecode, make sure it's globally unique for
205 ## multiple instances of rhodecode, make sure it's globally unique for
205 ## all running rhodecode instances. Leave empty if you don't use it
206 ## all running rhodecode instances. Leave empty if you don't use it
206 instance_id =
207 instance_id =
207
208
208 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
209 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
209 ## of an authentication plugin also if it is disabled by it's settings.
210 ## of an authentication plugin also if it is disabled by it's settings.
210 ## This could be useful if you are unable to log in to the system due to broken
211 ## This could be useful if you are unable to log in to the system due to broken
211 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
212 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
212 ## module to log in again and fix the settings.
213 ## module to log in again and fix the settings.
213 ##
214 ##
214 ## Available builtin plugin IDs (hash is part of the ID):
215 ## Available builtin plugin IDs (hash is part of the ID):
215 ## egg:rhodecode-enterprise-ce#rhodecode
216 ## egg:rhodecode-enterprise-ce#rhodecode
216 ## egg:rhodecode-enterprise-ce#pam
217 ## egg:rhodecode-enterprise-ce#pam
217 ## egg:rhodecode-enterprise-ce#ldap
218 ## egg:rhodecode-enterprise-ce#ldap
218 ## egg:rhodecode-enterprise-ce#jasig_cas
219 ## egg:rhodecode-enterprise-ce#jasig_cas
219 ## egg:rhodecode-enterprise-ce#headers
220 ## egg:rhodecode-enterprise-ce#headers
220 ## egg:rhodecode-enterprise-ce#crowd
221 ## egg:rhodecode-enterprise-ce#crowd
221 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
222 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
222
223
223 ## alternative return HTTP header for failed authentication. Default HTTP
224 ## alternative return HTTP header for failed authentication. Default HTTP
224 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
225 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
225 ## handling that causing a series of failed authentication calls.
226 ## handling that causing a series of failed authentication calls.
226 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
227 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
227 ## This will be served instead of default 401 on bad authnetication
228 ## This will be served instead of default 401 on bad authnetication
228 auth_ret_code =
229 auth_ret_code =
229
230
230 ## use special detection method when serving auth_ret_code, instead of serving
231 ## use special detection method when serving auth_ret_code, instead of serving
231 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
232 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
232 ## and then serve auth_ret_code to clients
233 ## and then serve auth_ret_code to clients
233 auth_ret_code_detection = false
234 auth_ret_code_detection = false
234
235
235 ## locking return code. When repository is locked return this HTTP code. 2XX
236 ## locking return code. When repository is locked return this HTTP code. 2XX
236 ## codes don't break the transactions while 4XX codes do
237 ## codes don't break the transactions while 4XX codes do
237 lock_ret_code = 423
238 lock_ret_code = 423
238
239
239 ## allows to change the repository location in settings page
240 ## allows to change the repository location in settings page
240 allow_repo_location_change = true
241 allow_repo_location_change = true
241
242
242 ## allows to setup custom hooks in settings page
243 ## allows to setup custom hooks in settings page
243 allow_custom_hooks_settings = true
244 allow_custom_hooks_settings = true
244
245
245 ## Generated license token required for EE edition license.
246 ## Generated license token required for EE edition license.
246 ## New generated token value can be found in Admin > settings > license page.
247 ## New generated token value can be found in Admin > settings > license page.
247 license_token =
248 license_token =
248
249
249 ## supervisor connection uri, for managing supervisor and logs.
250 ## supervisor connection uri, for managing supervisor and logs.
250 supervisor.uri =
251 supervisor.uri =
251 ## supervisord group name/id we only want this RC instance to handle
252 ## supervisord group name/id we only want this RC instance to handle
252 supervisor.group_id = prod
253 supervisor.group_id = prod
253
254
254 ## Display extended labs settings
255 ## Display extended labs settings
255 labs_settings_active = true
256 labs_settings_active = true
256
257
257 ## Custom exception store path, defaults to TMPDIR
258 ## Custom exception store path, defaults to TMPDIR
258 ## This is used to store exception from RhodeCode in shared directory
259 ## This is used to store exception from RhodeCode in shared directory
259 #exception_tracker.store_path =
260 #exception_tracker.store_path =
260
261
261
262
262 ####################################
263 ####################################
263 ### CELERY CONFIG ####
264 ### CELERY CONFIG ####
264 ####################################
265 ####################################
265 ## run: /path/to/celery worker \
266 ## run: /path/to/celery worker \
266 ## -E --beat --app rhodecode.lib.celerylib.loader \
267 ## -E --beat --app rhodecode.lib.celerylib.loader \
267 ## --scheduler rhodecode.lib.celerylib.scheduler.RcScheduler \
268 ## --scheduler rhodecode.lib.celerylib.scheduler.RcScheduler \
268 ## --loglevel DEBUG --ini /path/to/rhodecode.ini
269 ## --loglevel DEBUG --ini /path/to/rhodecode.ini
269
270
270 use_celery = false
271 use_celery = false
271
272
272 ## connection url to the message broker (default rabbitmq)
273 ## connection url to the message broker (default rabbitmq)
273 celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
274 celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
274
275
275 ## maximum tasks to execute before worker restart
276 ## maximum tasks to execute before worker restart
276 celery.max_tasks_per_child = 100
277 celery.max_tasks_per_child = 100
277
278
278 ## tasks will never be sent to the queue, but executed locally instead.
279 ## tasks will never be sent to the queue, but executed locally instead.
279 celery.task_always_eager = false
280 celery.task_always_eager = false
280
281
281 #####################################
282 #####################################
282 ### DOGPILE CACHE ####
283 ### DOGPILE CACHE ####
283 #####################################
284 #####################################
284 ## Default cache dir for caches. Putting this into a ramdisk
285 ## Default cache dir for caches. Putting this into a ramdisk
285 ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require
286 ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require
286 ## large amount of space
287 ## large amount of space
287 cache_dir = %(here)s/data
288 cache_dir = %(here)s/data
288
289
289 ## `cache_perms` cache settings for permission tree, auth TTL.
290 ## `cache_perms` cache settings for permission tree, auth TTL.
290 rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
291 rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
291 rc_cache.cache_perms.expiration_time = 300
292 rc_cache.cache_perms.expiration_time = 300
292
293
293 ## alternative `cache_perms` redis backend with distributed lock
294 ## alternative `cache_perms` redis backend with distributed lock
294 #rc_cache.cache_perms.backend = dogpile.cache.rc.redis
295 #rc_cache.cache_perms.backend = dogpile.cache.rc.redis
295 #rc_cache.cache_perms.expiration_time = 300
296 #rc_cache.cache_perms.expiration_time = 300
296 ## redis_expiration_time needs to be greater then expiration_time
297 ## redis_expiration_time needs to be greater then expiration_time
297 #rc_cache.cache_perms.arguments.redis_expiration_time = 7200
298 #rc_cache.cache_perms.arguments.redis_expiration_time = 7200
298 #rc_cache.cache_perms.arguments.socket_timeout = 30
299 #rc_cache.cache_perms.arguments.socket_timeout = 30
299 #rc_cache.cache_perms.arguments.host = localhost
300 #rc_cache.cache_perms.arguments.host = localhost
300 #rc_cache.cache_perms.arguments.port = 6379
301 #rc_cache.cache_perms.arguments.port = 6379
301 #rc_cache.cache_perms.arguments.db = 0
302 #rc_cache.cache_perms.arguments.db = 0
302 #rc_cache.cache_perms.arguments.distributed_lock = true
303 #rc_cache.cache_perms.arguments.distributed_lock = true
303
304
304 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
305 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
305 rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
306 rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
306 rc_cache.cache_repo.expiration_time = 2592000
307 rc_cache.cache_repo.expiration_time = 2592000
307
308
308 ## alternative `cache_repo` redis backend with distributed lock
309 ## alternative `cache_repo` redis backend with distributed lock
309 #rc_cache.cache_repo.backend = dogpile.cache.rc.redis
310 #rc_cache.cache_repo.backend = dogpile.cache.rc.redis
310 #rc_cache.cache_repo.expiration_time = 2592000
311 #rc_cache.cache_repo.expiration_time = 2592000
311 ## redis_expiration_time needs to be greater then expiration_time
312 ## redis_expiration_time needs to be greater then expiration_time
312 #rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
313 #rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
313 #rc_cache.cache_repo.arguments.socket_timeout = 30
314 #rc_cache.cache_repo.arguments.socket_timeout = 30
314 #rc_cache.cache_repo.arguments.host = localhost
315 #rc_cache.cache_repo.arguments.host = localhost
315 #rc_cache.cache_repo.arguments.port = 6379
316 #rc_cache.cache_repo.arguments.port = 6379
316 #rc_cache.cache_repo.arguments.db = 1
317 #rc_cache.cache_repo.arguments.db = 1
317 #rc_cache.cache_repo.arguments.distributed_lock = true
318 #rc_cache.cache_repo.arguments.distributed_lock = true
318
319
319 ## cache settings for SQL queries, this needs to use memory type backend
320 ## cache settings for SQL queries, this needs to use memory type backend
320 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
321 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
321 rc_cache.sql_cache_short.expiration_time = 30
322 rc_cache.sql_cache_short.expiration_time = 30
322
323
323 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
324 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
324 ## type backend as the objects kept are not pickle serializable
325 ## type backend as the objects kept are not pickle serializable
325 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
326 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
326 ## by default we use 96H, this is using invalidation on push anyway
327 ## by default we use 96H, this is using invalidation on push anyway
327 rc_cache.cache_repo_longterm.expiration_time = 345600
328 rc_cache.cache_repo_longterm.expiration_time = 345600
328 ## max items in LRU cache, reduce this number to save memory, and expire last used
329 ## max items in LRU cache, reduce this number to save memory, and expire last used
329 ## cached objects
330 ## cached objects
330 rc_cache.cache_repo_longterm.max_size = 10000
331 rc_cache.cache_repo_longterm.max_size = 10000
331
332
332
333
333 ####################################
334 ####################################
334 ### BEAKER SESSION ####
335 ### BEAKER SESSION ####
335 ####################################
336 ####################################
336
337
337 ## .session.type is type of storage options for the session, current allowed
338 ## .session.type is type of storage options for the session, current allowed
338 ## types are file, ext:memcached, ext:redis, ext:database, and memory (default).
339 ## types are file, ext:memcached, ext:redis, ext:database, and memory (default).
339 beaker.session.type = file
340 beaker.session.type = file
340 beaker.session.data_dir = %(here)s/data/sessions
341 beaker.session.data_dir = %(here)s/data/sessions
341
342
342 ## db based session, fast, and allows easy management over logged in users
343 ## db based session, fast, and allows easy management over logged in users
343 #beaker.session.type = ext:database
344 #beaker.session.type = ext:database
344 #beaker.session.table_name = db_session
345 #beaker.session.table_name = db_session
345 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
346 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
346 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
347 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
347 #beaker.session.sa.pool_recycle = 3600
348 #beaker.session.sa.pool_recycle = 3600
348 #beaker.session.sa.echo = false
349 #beaker.session.sa.echo = false
349
350
350 beaker.session.key = rhodecode
351 beaker.session.key = rhodecode
351 beaker.session.secret = production-rc-uytcxaz
352 beaker.session.secret = production-rc-uytcxaz
352 beaker.session.lock_dir = %(here)s/data/sessions/lock
353 beaker.session.lock_dir = %(here)s/data/sessions/lock
353
354
354 ## Secure encrypted cookie. Requires AES and AES python libraries
355 ## Secure encrypted cookie. Requires AES and AES python libraries
355 ## you must disable beaker.session.secret to use this
356 ## you must disable beaker.session.secret to use this
356 #beaker.session.encrypt_key = key_for_encryption
357 #beaker.session.encrypt_key = key_for_encryption
357 #beaker.session.validate_key = validation_key
358 #beaker.session.validate_key = validation_key
358
359
359 ## sets session as invalid(also logging out user) if it haven not been
360 ## sets session as invalid(also logging out user) if it haven not been
360 ## accessed for given amount of time in seconds
361 ## accessed for given amount of time in seconds
361 beaker.session.timeout = 2592000
362 beaker.session.timeout = 2592000
362 beaker.session.httponly = true
363 beaker.session.httponly = true
363 ## Path to use for the cookie. Set to prefix if you use prefix middleware
364 ## Path to use for the cookie. Set to prefix if you use prefix middleware
364 #beaker.session.cookie_path = /custom_prefix
365 #beaker.session.cookie_path = /custom_prefix
365
366
366 ## uncomment for https secure cookie
367 ## uncomment for https secure cookie
367 beaker.session.secure = false
368 beaker.session.secure = false
368
369
369 ## auto save the session to not to use .save()
370 ## auto save the session to not to use .save()
370 beaker.session.auto = false
371 beaker.session.auto = false
371
372
372 ## default cookie expiration time in seconds, set to `true` to set expire
373 ## default cookie expiration time in seconds, set to `true` to set expire
373 ## at browser close
374 ## at browser close
374 #beaker.session.cookie_expires = 3600
375 #beaker.session.cookie_expires = 3600
375
376
376 ###################################
377 ###################################
377 ## SEARCH INDEXING CONFIGURATION ##
378 ## SEARCH INDEXING CONFIGURATION ##
378 ###################################
379 ###################################
379 ## Full text search indexer is available in rhodecode-tools under
380 ## Full text search indexer is available in rhodecode-tools under
380 ## `rhodecode-tools index` command
381 ## `rhodecode-tools index` command
381
382
382 ## WHOOSH Backend, doesn't require additional services to run
383 ## WHOOSH Backend, doesn't require additional services to run
383 ## it works good with few dozen repos
384 ## it works good with few dozen repos
384 search.module = rhodecode.lib.index.whoosh
385 search.module = rhodecode.lib.index.whoosh
385 search.location = %(here)s/data/index
386 search.location = %(here)s/data/index
386
387
387 ########################################
388 ########################################
388 ### CHANNELSTREAM CONFIG ####
389 ### CHANNELSTREAM CONFIG ####
389 ########################################
390 ########################################
390 ## channelstream enables persistent connections and live notification
391 ## channelstream enables persistent connections and live notification
391 ## in the system. It's also used by the chat system
392 ## in the system. It's also used by the chat system
393
392 channelstream.enabled = false
394 channelstream.enabled = false
393
395
394 ## server address for channelstream server on the backend
396 ## server address for channelstream server on the backend
395 channelstream.server = 127.0.0.1:9800
397 channelstream.server = 127.0.0.1:9800
396
398
397 ## location of the channelstream server from outside world
399 ## location of the channelstream server from outside world
398 ## use ws:// for http or wss:// for https. This address needs to be handled
400 ## use ws:// for http or wss:// for https. This address needs to be handled
399 ## by external HTTP server such as Nginx or Apache
401 ## by external HTTP server such as Nginx or Apache
400 ## see nginx/apache configuration examples in our docs
402 ## see nginx/apache configuration examples in our docs
401 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
403 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
402 channelstream.secret = secret
404 channelstream.secret = secret
403 channelstream.history.location = %(here)s/channelstream_history
405 channelstream.history.location = %(here)s/channelstream_history
404
406
405 ## Internal application path that Javascript uses to connect into.
407 ## Internal application path that Javascript uses to connect into.
406 ## If you use proxy-prefix the prefix should be added before /_channelstream
408 ## If you use proxy-prefix the prefix should be added before /_channelstream
407 channelstream.proxy_path = /_channelstream
409 channelstream.proxy_path = /_channelstream
408
410
409
411
410 ###################################
412 ###################################
411 ## APPENLIGHT CONFIG ##
413 ## APPENLIGHT CONFIG ##
412 ###################################
414 ###################################
413
415
414 ## Appenlight is tailored to work with RhodeCode, see
416 ## Appenlight is tailored to work with RhodeCode, see
415 ## http://appenlight.com for details how to obtain an account
417 ## http://appenlight.com for details how to obtain an account
416
418
417 ## appenlight integration enabled
419 ## appenlight integration enabled
418 appenlight = false
420 appenlight = false
419
421
420 appenlight.server_url = https://api.appenlight.com
422 appenlight.server_url = https://api.appenlight.com
421 appenlight.api_key = YOUR_API_KEY
423 appenlight.api_key = YOUR_API_KEY
422 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
424 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
423
425
424 # used for JS client
426 # used for JS client
425 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
427 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
426
428
427 ## TWEAK AMOUNT OF INFO SENT HERE
429 ## TWEAK AMOUNT OF INFO SENT HERE
428
430
429 ## enables 404 error logging (default False)
431 ## enables 404 error logging (default False)
430 appenlight.report_404 = false
432 appenlight.report_404 = false
431
433
432 ## time in seconds after request is considered being slow (default 1)
434 ## time in seconds after request is considered being slow (default 1)
433 appenlight.slow_request_time = 1
435 appenlight.slow_request_time = 1
434
436
435 ## record slow requests in application
437 ## record slow requests in application
436 ## (needs to be enabled for slow datastore recording and time tracking)
438 ## (needs to be enabled for slow datastore recording and time tracking)
437 appenlight.slow_requests = true
439 appenlight.slow_requests = true
438
440
439 ## enable hooking to application loggers
441 ## enable hooking to application loggers
440 appenlight.logging = true
442 appenlight.logging = true
441
443
442 ## minimum log level for log capture
444 ## minimum log level for log capture
443 appenlight.logging.level = WARNING
445 appenlight.logging.level = WARNING
444
446
445 ## send logs only from erroneous/slow requests
447 ## send logs only from erroneous/slow requests
446 ## (saves API quota for intensive logging)
448 ## (saves API quota for intensive logging)
447 appenlight.logging_on_error = false
449 appenlight.logging_on_error = false
448
450
449 ## list of additonal keywords that should be grabbed from environ object
451 ## list of additonal keywords that should be grabbed from environ object
450 ## can be string with comma separated list of words in lowercase
452 ## can be string with comma separated list of words in lowercase
451 ## (by default client will always send following info:
453 ## (by default client will always send following info:
452 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
454 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
453 ## start with HTTP* this list be extended with additional keywords here
455 ## start with HTTP* this list be extended with additional keywords here
454 appenlight.environ_keys_whitelist =
456 appenlight.environ_keys_whitelist =
455
457
456 ## list of keywords that should be blanked from request object
458 ## list of keywords that should be blanked from request object
457 ## can be string with comma separated list of words in lowercase
459 ## can be string with comma separated list of words in lowercase
458 ## (by default client will always blank keys that contain following words
460 ## (by default client will always blank keys that contain following words
459 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
461 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
460 ## this list be extended with additional keywords set here
462 ## this list be extended with additional keywords set here
461 appenlight.request_keys_blacklist =
463 appenlight.request_keys_blacklist =
462
464
463 ## list of namespaces that should be ignores when gathering log entries
465 ## list of namespaces that should be ignores when gathering log entries
464 ## can be string with comma separated list of namespaces
466 ## can be string with comma separated list of namespaces
465 ## (by default the client ignores own entries: appenlight_client.client)
467 ## (by default the client ignores own entries: appenlight_client.client)
466 appenlight.log_namespace_blacklist =
468 appenlight.log_namespace_blacklist =
467
469
468
470
469 ################################################################################
470 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
471 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
472 ## execute malicious code after an exception is raised. ##
473 ################################################################################
474 set debug = false
475
476
477 ###########################################
471 ###########################################
478 ### MAIN RHODECODE DATABASE CONFIG ###
472 ### MAIN RHODECODE DATABASE CONFIG ###
479 ###########################################
473 ###########################################
480 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
474 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
481 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
475 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
482 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8
476 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8
483 # pymysql is an alternative driver for MySQL, use in case of problems with default one
477 # pymysql is an alternative driver for MySQL, use in case of problems with default one
484 #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode
478 #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode
485
479
486 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
480 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
487
481
488 # see sqlalchemy docs for other advanced settings
482 # see sqlalchemy docs for other advanced settings
489
483
490 ## print the sql statements to output
484 ## print the sql statements to output
491 sqlalchemy.db1.echo = false
485 sqlalchemy.db1.echo = false
492 ## recycle the connections after this amount of seconds
486 ## recycle the connections after this amount of seconds
493 sqlalchemy.db1.pool_recycle = 3600
487 sqlalchemy.db1.pool_recycle = 3600
494 sqlalchemy.db1.convert_unicode = true
488 sqlalchemy.db1.convert_unicode = true
495
489
496 ## the number of connections to keep open inside the connection pool.
490 ## the number of connections to keep open inside the connection pool.
497 ## 0 indicates no limit
491 ## 0 indicates no limit
498 #sqlalchemy.db1.pool_size = 5
492 #sqlalchemy.db1.pool_size = 5
499
493
500 ## the number of connections to allow in connection pool "overflow", that is
494 ## the number of connections to allow in connection pool "overflow", that is
501 ## connections that can be opened above and beyond the pool_size setting,
495 ## connections that can be opened above and beyond the pool_size setting,
502 ## which defaults to five.
496 ## which defaults to five.
503 #sqlalchemy.db1.max_overflow = 10
497 #sqlalchemy.db1.max_overflow = 10
504
498
505 ## Connection check ping, used to detect broken database connections
499 ## Connection check ping, used to detect broken database connections
506 ## could be enabled to better handle cases if MySQL has gone away errors
500 ## could be enabled to better handle cases if MySQL has gone away errors
507 #sqlalchemy.db1.ping_connection = true
501 #sqlalchemy.db1.ping_connection = true
508
502
509 ##################
503 ##################
510 ### VCS CONFIG ###
504 ### VCS CONFIG ###
511 ##################
505 ##################
512 vcs.server.enable = true
506 vcs.server.enable = true
513 vcs.server = localhost:9900
507 vcs.server = localhost:9900
514
508
515 ## Web server connectivity protocol, responsible for web based VCS operatations
509 ## Web server connectivity protocol, responsible for web based VCS operatations
516 ## Available protocols are:
510 ## Available protocols are:
517 ## `http` - use http-rpc backend (default)
511 ## `http` - use http-rpc backend (default)
518 vcs.server.protocol = http
512 vcs.server.protocol = http
519
513
520 ## Push/Pull operations protocol, available options are:
514 ## Push/Pull operations protocol, available options are:
521 ## `http` - use http-rpc backend (default)
515 ## `http` - use http-rpc backend (default)
522 vcs.scm_app_implementation = http
516 vcs.scm_app_implementation = http
523
517
524 ## Push/Pull operations hooks protocol, available options are:
518 ## Push/Pull operations hooks protocol, available options are:
525 ## `http` - use http-rpc backend (default)
519 ## `http` - use http-rpc backend (default)
526 vcs.hooks.protocol = http
520 vcs.hooks.protocol = http
521
527 ## Host on which this instance is listening for hooks. If vcsserver is in other location
522 ## Host on which this instance is listening for hooks. If vcsserver is in other location
528 ## this should be adjusted.
523 ## this should be adjusted.
529 vcs.hooks.host = 127.0.0.1
524 vcs.hooks.host = 127.0.0.1
530
525
531 vcs.server.log_level = info
526 vcs.server.log_level = info
532 ## Start VCSServer with this instance as a subprocess, useful for development
527 ## Start VCSServer with this instance as a subprocess, useful for development
533 vcs.start_server = false
528 vcs.start_server = false
534
529
535 ## List of enabled VCS backends, available options are:
530 ## List of enabled VCS backends, available options are:
536 ## `hg` - mercurial
531 ## `hg` - mercurial
537 ## `git` - git
532 ## `git` - git
538 ## `svn` - subversion
533 ## `svn` - subversion
539 vcs.backends = hg, git, svn
534 vcs.backends = hg, git, svn
540
535
541 vcs.connection_timeout = 3600
536 vcs.connection_timeout = 3600
542 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
537 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
543 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
538 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
544 #vcs.svn.compatible_version = pre-1.8-compatible
539 #vcs.svn.compatible_version = pre-1.8-compatible
545
540
546
541
547 ############################################################
542 ############################################################
548 ### Subversion proxy support (mod_dav_svn) ###
543 ### Subversion proxy support (mod_dav_svn) ###
549 ### Maps RhodeCode repo groups into SVN paths for Apache ###
544 ### Maps RhodeCode repo groups into SVN paths for Apache ###
550 ############################################################
545 ############################################################
551 ## Enable or disable the config file generation.
546 ## Enable or disable the config file generation.
552 svn.proxy.generate_config = false
547 svn.proxy.generate_config = false
553 ## Generate config file with `SVNListParentPath` set to `On`.
548 ## Generate config file with `SVNListParentPath` set to `On`.
554 svn.proxy.list_parent_path = true
549 svn.proxy.list_parent_path = true
555 ## Set location and file name of generated config file.
550 ## Set location and file name of generated config file.
556 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
551 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
557 ## alternative mod_dav config template. This needs to be a mako template
552 ## alternative mod_dav config template. This needs to be a mako template
558 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
553 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
559 ## Used as a prefix to the `Location` block in the generated config file.
554 ## Used as a prefix to the `Location` block in the generated config file.
560 ## In most cases it should be set to `/`.
555 ## In most cases it should be set to `/`.
561 svn.proxy.location_root = /
556 svn.proxy.location_root = /
562 ## Command to reload the mod dav svn configuration on change.
557 ## Command to reload the mod dav svn configuration on change.
563 ## Example: `/etc/init.d/apache2 reload`
558 ## Example: `/etc/init.d/apache2 reload`
564 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
559 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
565 ## If the timeout expires before the reload command finishes, the command will
560 ## If the timeout expires before the reload command finishes, the command will
566 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
561 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
567 #svn.proxy.reload_timeout = 10
562 #svn.proxy.reload_timeout = 10
568
563
569 ############################################################
564 ############################################################
570 ### SSH Support Settings ###
565 ### SSH Support Settings ###
571 ############################################################
566 ############################################################
572
567
573 ## Defines if a custom authorized_keys file should be created and written on
568 ## Defines if a custom authorized_keys file should be created and written on
574 ## any change user ssh keys. Setting this to false also disables posibility
569 ## any change user ssh keys. Setting this to false also disables posibility
575 ## of adding SSH keys by users from web interface. Super admins can still
570 ## of adding SSH keys by users from web interface. Super admins can still
576 ## manage SSH Keys.
571 ## manage SSH Keys.
577 ssh.generate_authorized_keyfile = false
572 ssh.generate_authorized_keyfile = false
578
573
579 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
574 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
580 # ssh.authorized_keys_ssh_opts =
575 # ssh.authorized_keys_ssh_opts =
581
576
582 ## Path to the authrozied_keys file where the generate entries are placed.
577 ## Path to the authrozied_keys file where the generate entries are placed.
583 ## It is possible to have multiple key files specified in `sshd_config` e.g.
578 ## It is possible to have multiple key files specified in `sshd_config` e.g.
584 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
579 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
585 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
580 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
586
581
587 ## Command to execute the SSH wrapper. The binary is available in the
582 ## Command to execute the SSH wrapper. The binary is available in the
588 ## rhodecode installation directory.
583 ## rhodecode installation directory.
589 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
584 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
590 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
585 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
591
586
592 ## Allow shell when executing the ssh-wrapper command
587 ## Allow shell when executing the ssh-wrapper command
593 ssh.wrapper_cmd_allow_shell = false
588 ssh.wrapper_cmd_allow_shell = false
594
589
595 ## Enables logging, and detailed output send back to the client during SSH
590 ## Enables logging, and detailed output send back to the client during SSH
596 ## operations. Usefull for debugging, shouldn't be used in production.
591 ## operations. Usefull for debugging, shouldn't be used in production.
597 ssh.enable_debug_logging = false
592 ssh.enable_debug_logging = false
598
593
599 ## Paths to binary executable, by default they are the names, but we can
594 ## Paths to binary executable, by default they are the names, but we can
600 ## override them if we want to use a custom one
595 ## override them if we want to use a custom one
601 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
596 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
602 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
597 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
603 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
598 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
604
599
605
600
606 ## Dummy marker to add new entries after.
601 ## Dummy marker to add new entries after.
607 ## Add any custom entries below. Please don't remove.
602 ## Add any custom entries below. Please don't remove.
608 custom.conf = 1
603 custom.conf = 1
609
604
610
605
611 ################################
606 ################################
612 ### LOGGING CONFIGURATION ####
607 ### LOGGING CONFIGURATION ####
613 ################################
608 ################################
614 [loggers]
609 [loggers]
615 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
610 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
616
611
617 [handlers]
612 [handlers]
618 keys = console, console_sql
613 keys = console, console_sql
619
614
620 [formatters]
615 [formatters]
621 keys = generic, color_formatter, color_formatter_sql
616 keys = generic, color_formatter, color_formatter_sql
622
617
623 #############
618 #############
624 ## LOGGERS ##
619 ## LOGGERS ##
625 #############
620 #############
626 [logger_root]
621 [logger_root]
627 level = NOTSET
622 level = NOTSET
628 handlers = console
623 handlers = console
629
624
630 [logger_sqlalchemy]
625 [logger_sqlalchemy]
631 level = INFO
626 level = INFO
632 handlers = console_sql
627 handlers = console_sql
633 qualname = sqlalchemy.engine
628 qualname = sqlalchemy.engine
634 propagate = 0
629 propagate = 0
635
630
636 [logger_beaker]
631 [logger_beaker]
637 level = DEBUG
632 level = DEBUG
638 handlers =
633 handlers =
639 qualname = beaker.container
634 qualname = beaker.container
640 propagate = 1
635 propagate = 1
641
636
642 [logger_rhodecode]
637 [logger_rhodecode]
643 level = DEBUG
638 level = DEBUG
644 handlers =
639 handlers =
645 qualname = rhodecode
640 qualname = rhodecode
646 propagate = 1
641 propagate = 1
647
642
648 [logger_ssh_wrapper]
643 [logger_ssh_wrapper]
649 level = DEBUG
644 level = DEBUG
650 handlers =
645 handlers =
651 qualname = ssh_wrapper
646 qualname = ssh_wrapper
652 propagate = 1
647 propagate = 1
653
648
654 [logger_celery]
649 [logger_celery]
655 level = DEBUG
650 level = DEBUG
656 handlers =
651 handlers =
657 qualname = celery
652 qualname = celery
658
653
659
654
660 ##############
655 ##############
661 ## HANDLERS ##
656 ## HANDLERS ##
662 ##############
657 ##############
663
658
664 [handler_console]
659 [handler_console]
665 class = StreamHandler
660 class = StreamHandler
666 args = (sys.stderr, )
661 args = (sys.stderr, )
667 level = INFO
662 level = INFO
668 formatter = generic
663 formatter = generic
669
664
670 [handler_console_sql]
665 [handler_console_sql]
671 # "level = DEBUG" logs SQL queries and results.
666 # "level = DEBUG" logs SQL queries and results.
672 # "level = INFO" logs SQL queries.
667 # "level = INFO" logs SQL queries.
673 # "level = WARN" logs neither. (Recommended for production systems.)
668 # "level = WARN" logs neither. (Recommended for production systems.)
674 class = StreamHandler
669 class = StreamHandler
675 args = (sys.stderr, )
670 args = (sys.stderr, )
676 level = WARN
671 level = WARN
677 formatter = generic
672 formatter = generic
678
673
679 ################
674 ################
680 ## FORMATTERS ##
675 ## FORMATTERS ##
681 ################
676 ################
682
677
683 [formatter_generic]
678 [formatter_generic]
684 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
679 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
685 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
680 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
686 datefmt = %Y-%m-%d %H:%M:%S
681 datefmt = %Y-%m-%d %H:%M:%S
687
682
688 [formatter_color_formatter]
683 [formatter_color_formatter]
689 class = rhodecode.lib.logging_formatter.ColorFormatter
684 class = rhodecode.lib.logging_formatter.ColorFormatter
690 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
685 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
691 datefmt = %Y-%m-%d %H:%M:%S
686 datefmt = %Y-%m-%d %H:%M:%S
692
687
693 [formatter_color_formatter_sql]
688 [formatter_color_formatter_sql]
694 class = rhodecode.lib.logging_formatter.ColorFormatterSql
689 class = rhodecode.lib.logging_formatter.ColorFormatterSql
695 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
690 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
696 datefmt = %Y-%m-%d %H:%M:%S
691 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,22 +1,22 b''
1 .. _permissions-info-anon-ref:
1 .. _permissions-info-anon-ref:
2
2
3 Anonymous Users
3 Anonymous Users
4 ---------------
4 ---------------
5
5
6 By default, |RCM| provides |repo| access for registered users only. It can be
6 By default, |RCE| provides |repo| access for registered users only. It can be
7 configured to be **world-open** in terms of read and write permissions. This
7 configured to be **world-open** in terms of read and write permissions. This
8 configuration is called "Anonymous Access" and allows |RCM| to be used as a
8 configuration is called "Anonymous Access" and allows |RCE| to be used as a
9 public hub where unregistered users have access to your |repos|.
9 public hub where unregistered users have access to your |repos|.
10
10
11 Anonymous access is useful for open source projects, universities,
11 Anonymous access is useful for open source projects, universities,
12 or if running inside a restricted internal corporate network to serve
12 or if running inside a restricted internal corporate network to serve
13 documents to all employees. Anonymous users get the default user permission
13 documents to all employees. Anonymous users get the default user permission
14 settings that are applied across the whole |RCM| system.
14 settings that are applied across the whole |RCE| system.
15
15
16 To enable anonymous access to your |repos|, use the following steps:
16 To enable anonymous access to your |repos|, use the following steps:
17
17
18 1. From the |RCM| interface, select :menuselection:`Admin --> Permissions`.
18 1. From the |RCE| interface, select :menuselection:`Admin --> Permissions`.
19 2. On the Application tab, check the :guilabel:`Allow anonymous access` box.
19 2. On the Application tab, check the :guilabel:`Allow anonymous access` box.
20 3. Select :guilabel:`Save`.
20 3. Select :guilabel:`Save`.
21 4. To set the anonymous user access permissions, which are based on the
21 4. To set the anonymous user access permissions, which are based on the
22 default user settings, see :ref:`permissions-default-ref`.
22 default user settings, see :ref:`permissions-default-ref`.
@@ -1,241 +1,241 b''
1 .. _admin-tricks:
1 .. _admin-tricks:
2
2
3 One-time Admin Tasks
3 One-time Admin Tasks
4 --------------------
4 --------------------
5
5
6 * :ref:`web-analytics`
6 * :ref:`web-analytics`
7 * :ref:`admin-tricks-license`
7 * :ref:`admin-tricks-license`
8 * :ref:`announcements`
8 * :ref:`announcements`
9 * :ref:`md-rst`
9 * :ref:`md-rst`
10 * :ref:`repo-stats`
10 * :ref:`repo-stats`
11 * :ref:`server-side-merge`
11 * :ref:`server-side-merge`
12 * :ref:`remap-rescan`
12 * :ref:`remap-rescan`
13 * :ref:`custom-hooks`
13 * :ref:`custom-hooks`
14 * :ref:`clear-repo-cache`
14 * :ref:`clear-repo-cache`
15 * :ref:`set-repo-pub`
15 * :ref:`set-repo-pub`
16 * :ref:`ping`
16 * :ref:`ping`
17
17
18 .. _web-analytics:
18 .. _web-analytics:
19
19
20 Adding Web Analytics
20 Adding Web Analytics
21 ^^^^^^^^^^^^^^^^^^^^
21 ^^^^^^^^^^^^^^^^^^^^
22
22
23 If you wish to add a Google Analytics, or any other kind of tracker to your
23 If you wish to add a Google Analytics, or any other kind of tracker to your
24 |RCE| instance you can add the necessary codes to the header or footer
24 |RCE| instance you can add the necessary codes to the header or footer
25 section of each instance using the following steps:
25 section of each instance using the following steps:
26
26
27 1. From the |RCE| interface, select
27 1. From the |RCE| interface, select
28 :menuselection:`Admin --> Settings --> Global`
28 :menuselection:`Admin --> Settings --> Global`
29 2. To add a tracking code to you instance, enter it in the header or footer
29 2. To add a tracking code to you instance, enter it in the header or footer
30 section and select **Save**
30 section and select **Save**
31
31
32 Use the example templates in the drop-down menu to set up your configuration.
32 Use the example templates in the drop-down menu to set up your configuration.
33
33
34 .. _admin-tricks-license:
34 .. _admin-tricks-license:
35
35
36 Licence Key Management
36 Licence Key Management
37 ^^^^^^^^^^^^^^^^^^^^^^
37 ^^^^^^^^^^^^^^^^^^^^^^
38
38
39 To manage your license key, go to
39 To manage your license key, go to
40 :menuselection:`Admin --> Settings --> License`.
40 :menuselection:`Admin --> Settings --> License`.
41 On this page you can see the license key details. If you need a new license,
41 On this page you can see the license key details. If you need a new license,
42 or have questions about your current one, contact support@rhodecode.com
42 or have questions about your current one, contact support@rhodecode.com
43
43
44 .. _announcements:
44 .. _announcements:
45
45
46 Server-wide Announcements
46 Server-wide Announcements
47 ^^^^^^^^^^^^^^^^^^^^^^^^^
47 ^^^^^^^^^^^^^^^^^^^^^^^^^
48
48
49 If you need to make a server-wide announcement to all users,
49 If you need to make a server-wide announcement to all users,
50 you can add a message to be displayed using the following steps:
50 you can add a message to be displayed using the following steps:
51
51
52 1. From the |RCE| interface, select
52 1. From the |RCE| interface, select
53 :menuselection:`Admin --> Settings --> Global`
53 :menuselection:`Admin --> Settings --> Global`
54 2. To add a message that will be displayed to all users,
54 2. To add a message that will be displayed to all users,
55 select :guilabel:`Server Announcement` from the drop-down menu and
55 select :guilabel:`Server Announcement` from the drop-down menu and
56 change the ``var message = "TYPE YOUR MESSAGE HERE";`` example line.
56 change the ``var message = "TYPE YOUR MESSAGE HERE";`` example line.
57 3. Select :guilabel:`Save`, and you will see the message once your page
57 3. Select :guilabel:`Save`, and you will see the message once your page
58 refreshes.
58 refreshes.
59
59
60 .. image:: ../images/server-wide-announcement.png
60 .. image:: ../images/server-wide-announcement.png
61 :alt: Server Wide Announcement
61 :alt: Server Wide Announcement
62
62
63 .. _md-rst:
63 .. _md-rst:
64
64
65
65
66 Suppress license warnings or errors
66 Suppress license warnings or errors
67 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
67 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
68
68
69 In case you're running on maximum allowed users, RhodeCode will display a
69 In case you're running on maximum allowed users, RhodeCode will display a
70 warning message on pages that you're close to the license limits.
70 warning message on pages that you're close to the license limits.
71 It's often not desired to show that all the time. Here's how you can suppress
71 It's often not desired to show that all the time. Here's how you can suppress
72 the license messages.
72 the license messages.
73
73
74 1. From the |RCE| interface, select
74 1. From the |RCE| interface, select
75 :menuselection:`Admin --> Settings --> Global`
75 :menuselection:`Admin --> Settings --> Global`
76 2. Select :guilabel:`Flash message filtering` from the drop-down menu.
76 2. Select :guilabel:`Flash message filtering` from the drop-down menu.
77 3. Select :guilabel:`Save`, and you will no longer see the license message
77 3. Select :guilabel:`Save`, and you will no longer see the license message
78 once your page refreshes.
78 once your page refreshes.
79
79
80 .. _admin-tricks-suppress-license-messages:
80 .. _admin-tricks-suppress-license-messages:
81
81
82
82
83 Markdown or RST Rendering
83 Markdown or RST Rendering
84 ^^^^^^^^^^^^^^^^^^^^^^^^^
84 ^^^^^^^^^^^^^^^^^^^^^^^^^
85
85
86 |RCE| can use `Markdown`_ or `reStructured Text`_ in commit message,
86 |RCE| can use `Markdown`_ or `reStructured Text`_ in commit message,
87 code review messages, and inline comments. To set the default to either,
87 code review messages, and inline comments. To set the default to either,
88 select your preference from the drop-down menu on the
88 select your preference from the drop-down menu on the
89 :menuselection:`Admin --> Settings --> Visual` page and select
89 :menuselection:`Admin --> Settings --> Visual` page and select
90 :guilabel:`Save settings`.
90 :guilabel:`Save settings`.
91
91
92 .. _repo-stats:
92 .. _repo-stats:
93
93
94 Enabling Repository Statistics
94 Enabling Repository Statistics
95 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
95 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
96
96
97 To enable |repo| statistics, use the following steps:
97 To enable |repo| statistics, use the following steps:
98
98
99 1. From the |RCE| interface, open
99 1. From the |RCE| interface, open
100 :menuselection:`Admin --> Repositories` and select
100 :menuselection:`Admin --> Repositories` and select
101 :guilabel:`Edit` beside the |repo| for which you wish to enable statistics.
101 :guilabel:`Edit` beside the |repo| for which you wish to enable statistics.
102 2. Check the :guilabel:`Enable statistics` box, and select :guilabel:`Save`
102 2. Check the :guilabel:`Enable statistics` box, and select :guilabel:`Save`
103
103
104 .. _server-side-merge:
104 .. _server-side-merge:
105
105
106 Enabling Server-side Merging
106 Enabling Server-side Merging
107 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
107 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
108
108
109 To enable server-side merging, use the following steps:
109 To enable server-side merging, use the following steps:
110
110
111 1. From the |RCE| interface, open :menuselection:`Admin --> Settings --> VCS`
111 1. From the |RCE| interface, open :menuselection:`Admin --> Settings --> VCS`
112 2. Check the :guilabel:`Server-side merge` box, and select
112 2. Check the :guilabel:`Server-side merge` box, and select
113 :guilabel:`Save Settings`
113 :guilabel:`Save Settings`
114
114
115 If you encounter slow performance with server-side merging enabled, check the
115 If you encounter slow performance with server-side merging enabled, check the
116 speed at which your server is performing actions. When server-side merging is
116 speed at which your server is performing actions. When server-side merging is
117 enabled, the following actions occurs on the server.
117 enabled, the following actions occurs on the server.
118
118
119 * A |pr| is created in the database.
119 * A |pr| is created in the database.
120 * A shadow |repo| is created as a working environment for the |pr|.
120 * A shadow |repo| is created as a working environment for the |pr|.
121 * On display, |RCE| checks if the |pr| can be merged.
121 * On display, |RCE| checks if the |pr| can be merged.
122
122
123 To check how fast the shadow |repo| creation is occurring on your server, use
123 To check how fast the shadow |repo| creation is occurring on your server, use
124 the following steps:
124 the following steps:
125
125
126 1. Log into your server and create a directory in your |repos| folder.
126 1. Log into your server and create a directory in your |repos| folder.
127 2. Clone a |repo| that is showing slow performance and time the action.
127 2. Clone a |repo| that is showing slow performance and time the action.
128
128
129 .. code-block:: bash
129 .. code-block:: bash
130
130
131 # One option is to use the time command
131 # One option is to use the time command
132 $ time hg clone SOURCE_REPO TARGET
132 $ time hg clone SOURCE_REPO TARGET
133
133
134 .. _remap-rescan:
134 .. _remap-rescan:
135
135
136 Remap and Rescan Repositories
136 Remap and Rescan Repositories
137 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
137 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
138
138
139 You may want to Remap and rescan the |repos| that |RCE| is managing to ensure
139 You may want to Remap and rescan the |repos| that |RCE| is managing to ensure
140 the system is always up-to-date. This is useful after importing, deleting,
140 the system is always up-to-date. This is useful after importing, deleting,
141 or carrying out general cleaning up operations. To do this use the
141 or carrying out general cleaning up operations. To do this use the
142 following steps:
142 following steps:
143
143
144 1. From the |RCE|, open
144 1. From the |RCE|, open
145 :menuselection:`Admin --> Settings --> Remap and rescan`
145 :menuselection:`Admin --> Settings --> Remap and rescan`
146 2. Click :guilabel:`Rescan Repositories`
146 2. Click :guilabel:`Rescan Repositories`
147
147
148 Check the additional options if needed:
148 Check the additional options if needed:
149
149
150 * :guilabel:`Destroy old data`: Useful for purging deleted repository
150 * :guilabel:`Destroy old data`: Useful for purging deleted repository
151 information from the database.
151 information from the database.
152 * :guilabel:`Invalidate cache for all repositories`: Use this to completely
152 * :guilabel:`Invalidate cache for all repositories`: Use this to completely
153 remap all |repos|. Useful when importing or migrating |repos| to ensure all
153 remap all |repos|. Useful when importing or migrating |repos| to ensure all
154 new information is picked up.
154 new information is picked up.
155
155
156 .. _custom-hooks:
156 .. _custom-hooks:
157
157
158 Adding Custom Hooks
158 Adding Custom Hooks
159 ^^^^^^^^^^^^^^^^^^^
159 ^^^^^^^^^^^^^^^^^^^
160
160
161 To add custom hooks to your instance, use the following steps:
161 To add custom hooks to your instance, use the following steps:
162
162
163 1. Open :menuselection:`Admin --> Settings --> Hooks`
163 1. Open :menuselection:`Admin --> Settings --> Hooks`
164 2. Add your custom hook details, you can use a file path to specify custom
164 2. Add your custom hook details, you can use a file path to specify custom
165 hook scripts, for example:
165 hook scripts, for example:
166 ``pretxnchangegroup.example`` with value ``python:/path/to/custom_hook.py:my_func_name``
166 ``pretxnchangegroup.example`` with value ``python:/path/to/custom_hook.py:my_func_name``
167 3. Select :guilabel:`Save`
167 3. Select :guilabel:`Save`
168
168
169 Also, see the |RC| Extensions section of the :ref:`rc-tools` guide. |RC|
169 Also, see the RhodeCode Extensions section of the :ref:`rc-tools` guide. RhodeCode
170 Extensions can be used to add additional hooks to your instance and comes
170 Extensions can be used to add additional hooks to your instance and comes
171 with a number of pre-built plugins if you chose to install them.
171 with a number of pre-built plugins if you chose to install them.
172
172
173 .. _clear-repo-cache:
173 .. _clear-repo-cache:
174
174
175 Clearing |repo| cache
175 Clearing |repo| cache
176 ^^^^^^^^^^^^^^^^^^^^^
176 ^^^^^^^^^^^^^^^^^^^^^
177
177
178 If you need to clear the cache for a particular |repo|, use the following steps:
178 If you need to clear the cache for a particular |repo|, use the following steps:
179
179
180 1. Open :menuselection:`Admin --> Repositories` and select :guilabel:`Edit`
180 1. Open :menuselection:`Admin --> Repositories` and select :guilabel:`Edit`
181 beside the |repo| whose cache you wish to clear.
181 beside the |repo| whose cache you wish to clear.
182 2. On the |repo| settings page, go to the :guilabel:`Caches` tab and select
182 2. On the |repo| settings page, go to the :guilabel:`Caches` tab and select
183 :guilabel:`Invalidate repository cache`.
183 :guilabel:`Invalidate repository cache`.
184
184
185 .. _set-lang:
185 .. _set-lang:
186
186
187 Changing Default Language
187 Changing Default Language
188 ^^^^^^^^^^^^^^^^^^^^^^^^^
188 ^^^^^^^^^^^^^^^^^^^^^^^^^
189
189
190 To change the default language of a |RCE| instance, change the language code
190 To change the default language of a |RCE| instance, change the language code
191 in the :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. To
191 in the :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. To
192 do this, use the following steps.
192 do this, use the following steps.
193
193
194 1. Open the :file:`rhodecode.ini` file and set the required language code.
194 1. Open the :file:`rhodecode.ini` file and set the required language code.
195
195
196 .. code-block:: ini
196 .. code-block:: ini
197
197
198 ## Optional Languages
198 ## Optional Languages
199 ## en(default), de, fr, it, ja, pl, pt, ru, zh
199 ## en(default), de, fr, it, ja, pl, pt, ru, zh
200 lang = de
200 lang = de
201
201
202 2. Restart the |RCE| instance and check that the language has been updated.
202 2. Restart the |RCE| instance and check that the language has been updated.
203
203
204 .. code-block:: bash
204 .. code-block:: bash
205
205
206 $ rccontrol restart enterprise-2
206 $ rccontrol restart enterprise-2
207 Instance "enterprise-2" successfully stopped.
207 Instance "enterprise-2" successfully stopped.
208 Instance "enterprise-2" successfully started.
208 Instance "enterprise-2" successfully started.
209
209
210 .. image:: ../images/language.png
210 .. image:: ../images/language.png
211
211
212 .. _set-repo-pub:
212 .. _set-repo-pub:
213
213
214 Setting Repositories to Publish
214 Setting Repositories to Publish
215 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
215 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
216
216
217 To automatically promote your local |repos| to public after pushing to |RCE|,
217 To automatically promote your local |repos| to public after pushing to |RCE|,
218 enable the :guilabel:`Set repositories as publishing` option on the
218 enable the :guilabel:`Set repositories as publishing` option on the
219 :menuselection:`Admin --> Settings --> VCS` page.
219 :menuselection:`Admin --> Settings --> VCS` page.
220
220
221 .. note::
221 .. note::
222
222
223 This option is enabled by default on most |RCE| versions, but if upgrading
223 This option is enabled by default on most |RCE| versions, but if upgrading
224 from a 1.7.x version it could be disabled on upgrade due to inheriting
224 from a 1.7.x version it could be disabled on upgrade due to inheriting
225 older default settings.
225 older default settings.
226
226
227 .. _ping:
227 .. _ping:
228
228
229 Pinging the |RCE| Server
229 Pinging the |RCE| Server
230 ^^^^^^^^^^^^^^^^^^^^^^^^
230 ^^^^^^^^^^^^^^^^^^^^^^^^
231
231
232 You can check the IP Address of your |RCE| instance using the
232 You can check the IP Address of your |RCE| instance using the
233 following URL: ``{instance-URL}/_admin/ping``.
233 following URL: ``{instance-URL}/_admin/ping``.
234
234
235 .. code-block:: bash
235 .. code-block:: bash
236
236
237 $ curl https://your.rhodecode.url/_admin/ping
237 $ curl https://your.rhodecode.url/_admin/ping
238 pong[rce-7880] => 203.0.113.23
238 pong[rce-7880] => 203.0.113.23
239
239
240 .. _Markdown: http://daringfireball.net/projects/markdown/
240 .. _Markdown: http://daringfireball.net/projects/markdown/
241 .. _reStructured Text: http://docutils.sourceforge.net/docs/index.html
241 .. _reStructured Text: http://docutils.sourceforge.net/docs/index.html
@@ -1,55 +1,55 b''
1 .. _apache-wsgi-ref:
1 .. _apache-wsgi-ref:
2
2
3 Apache WSGI Configuration
3 Apache WSGI Configuration
4 ^^^^^^^^^^^^^^^^^^^^^^^^^
4 ^^^^^^^^^^^^^^^^^^^^^^^^^
5
5
6 |RCM| can also be set up with Apache under ``mod_wsgi``. To configure this
6 |RCE| can also be set up with Apache under ``mod_wsgi``. To configure this
7 use the following steps.
7 use the following steps.
8
8
9 1. Install ``mod_wsgi`` using the following command:
9 1. Install ``mod_wsgi`` using the following command:
10 ``aptitude install libapache2-mod-wsgi``.
10 ``aptitude install libapache2-mod-wsgi``.
11 2. Enable ``mod_wsgi`` using the following command: ``a2enmod wsgi``
11 2. Enable ``mod_wsgi`` using the following command: ``a2enmod wsgi``
12 3. Create a ``wsgi`` dispatch script, using the following examples.
12 3. Create a ``wsgi`` dispatch script, using the following examples.
13
13
14 .. code-block:: bash
14 .. code-block:: bash
15
15
16 WSGIDaemonProcess pylons \
16 WSGIDaemonProcess pylons \
17 threads=4 \
17 threads=4 \
18 # check the python virtual env location
18 # check the python virtual env location
19 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
19 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
20 # Check the install location
20 # Check the install location
21 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
21 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
22 WSGIPassAuthorization On
22 WSGIPassAuthorization On
23 # user=www-data group=www-data # Enable if running Apache as root
23 # user=www-data group=www-data # Enable if running Apache as root
24
24
25 .. note::
25 .. note::
26
26
27 Do not set ``processes=num`` in this configuration file. Running |RCE| in
27 Do not set ``processes=num`` in this configuration file. Running |RCE| in
28 multiprocess mode with Apache is not supported.
28 multiprocess mode with Apache is not supported.
29
29
30 The following is an example ``wsgi`` dispatch script.
30 The following is an example ``wsgi`` dispatch script.
31
31
32 .. code-block:: python
32 .. code-block:: python
33
33
34 import os
34 import os
35 os.environ["HGENCODING"] = "UTF-8"
35 os.environ["HGENCODING"] = "UTF-8"
36 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
36 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
37
37
38 # Set the current dir
38 # Set the current dir
39 os.chdir('/home/web/rhodecode/')
39 os.chdir('/home/web/rhodecode/')
40
40
41 import site
41 import site
42 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
42 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
43
43
44 from paste.deploy import loadapp
44 from paste.deploy import loadapp
45 from paste.script.util.logging_config import fileConfig
45 from paste.script.util.logging_config import fileConfig
46
46
47 fileConfig('/home/web/rhodecode/production.ini')
47 fileConfig('/home/web/rhodecode/production.ini')
48 application = loadapp('config:/home/web/rhodecode/production.ini')
48 application = loadapp('config:/home/web/rhodecode/production.ini')
49
49
50 .. note::
50 .. note::
51
51
52 When using `mod_wsgi` the same version of |hg| must be running in your
52 When using `mod_wsgi` the same version of |hg| must be running in your
53 system's |PY| environment and on |RCM|. To check the |RCM| version,
53 system's |PY| environment and on |RCE|. To check the |RCE| version,
54 on the interface go to
54 on the interface go to
55 :menuselection:`Admin --> Settings --> System Info`
55 :menuselection:`Admin --> Settings --> System Info`
@@ -1,74 +1,74 b''
1 .. _config-files:
1 .. _config-files:
2
2
3 Configuration Files Overview
3 Configuration Files Overview
4 ============================
4 ============================
5
5
6 |RCE| and |RCC| have a number of different configuration files. The following
6 |RCE| and |RCC| have a number of different configuration files. The following
7 is a brief explanation of each, and links to their associated configuration
7 is a brief explanation of each, and links to their associated configuration
8 sections.
8 sections.
9
9
10 .. rst-class:: dl-horizontal
10 .. rst-class:: dl-horizontal
11
11
12 \- **rhodecode.ini**
12 \- **rhodecode.ini**
13 Default location:
13 Default location:
14 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
14 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
15
15
16 This is the main |RCE| configuration file and controls much of its
16 This is the main |RCE| configuration file and controls much of its
17 default behaviour. It is also used to configure certain customer
17 default behaviour. It is also used to configure certain customer
18 settings. Here are some of the most common reasons to make changes to
18 settings. Here are some of the most common reasons to make changes to
19 this file.
19 this file.
20
20
21 * :ref:`config-database`
21 * :ref:`config-database`
22 * :ref:`set-up-mail`
22 * :ref:`set-up-mail`
23 * :ref:`increase-gunicorn`
23 * :ref:`increase-gunicorn`
24 * :ref:`x-frame`
24 * :ref:`x-frame`
25
25
26 \- **mapping.ini**
26 \- **mapping.ini**
27 Default location:
27 Default location:
28 :file:`/home/{user}/.rccontrol/{instance-id}/mapping.ini`
28 :file:`/home/{user}/.rccontrol/{instance-id}/mapping.ini`
29
29
30 This file is used to control the |RCE| indexer. It comes configured
30 This file is used to control the |RCE| indexer. It comes configured
31 to index your instance. To change the default configuration, see
31 to index your instance. To change the default configuration, see
32 :ref:`advanced-indexing`.
32 :ref:`advanced-indexing`.
33
33
34 \- **vcsserver.ini**
34 \- **vcsserver.ini**
35 Default location:
35 Default location:
36 :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini`
36 :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini`
37
37
38 The VCS Server handles the connection between your |repos| and |RCE|.
38 The VCS Server handles the connection between your |repos| and |RCE|.
39 See the :ref:`vcs-server` section for configuration options and more
39 See the :ref:`vcs-server` section for configuration options and more
40 detailed information.
40 detailed information.
41
41
42 \- **supervisord.ini**
42 \- **supervisord.ini**
43 Default location:
43 Default location:
44 :file:`/home/{user}/.rccontrol/supervisor/supervisord.ini`
44 :file:`/home/{user}/.rccontrol/supervisor/supervisord.ini`
45
45
46 |RCC| uses Supervisor to monitor and manage installed instances of
46 |RCC| uses Supervisor to monitor and manage installed instances of
47 |RCE| and the VCS Server. |RCC| will manage this file completely,
47 |RCE| and the VCS Server. |RCC| will manage this file completely,
48 unless you install |RCE| in self-managed mode. For more information,
48 unless you install |RCE| in self-managed mode. For more information,
49 see the :ref:`Supervisor Setup<control:supervisor-setup>` section.
49 see the :ref:`Supervisor Setup<control:supervisor-setup>` section.
50
50
51 \- **.rccontrol.ini**
51 \- **.rccontrol.ini**
52 Default location: :file:`/home/{user}/.rccontrol.ini`
52 Default location: :file:`/home/{user}/.rccontrol.ini`
53
53
54 This file contains the instances that |RCC| starts at boot, which is all
54 This file contains the instances that |RCC| starts at boot, which is all
55 by default, but for more information, see
55 by default, but for more information, see
56 the :ref:`Manually Start At Boot <control:set-start-boot>` section.
56 the :ref:`Manually Start At Boot <control:set-start-boot>` section.
57
57
58 \- **.rhoderc**
58 \- **.rhoderc**
59 Default location: :file:`/home/{user}/.rhoderc`
59 Default location: :file:`/home/{user}/.rhoderc`
60
60
61 This file is used by the |RCE| API when accessing an instance from a
61 This file is used by the |RCE| API when accessing an instance from a
62 remote machine. The API checks this file for connection and
62 remote machine. The API checks this file for connection and
63 authentication details. For more details, see the :ref:`config-rhoderc`
63 authentication details. For more details, see the :ref:`config-rhoderc`
64 section.
64 section.
65
65
66 \- **MANIFEST**
66 \- **MANIFEST**
67 Default location: :file:`/home/{user}/.rccontrol/cache/MANIFEST`
67 Default location: :file:`/home/{user}/.rccontrol/cache/MANIFEST`
68
68
69 |RCC| uses this file to source the latest available builds from the
69 |RCC| uses this file to source the latest available builds from the
70 secure |RC| download channels. The only reason to mess with this file
70 secure RhodeCode download channels. The only reason to mess with this file
71 is if you need to do an offline installation,
71 is if you need to do an offline installation,
72 see the :ref:`Offline Installation<control:offline-installer-ref>`
72 see the :ref:`Offline Installation<control:offline-installer-ref>`
73 instructions, otherwise |RCC| will completely manage this file.
73 instructions, otherwise |RCC| will completely manage this file.
74
74
@@ -1,112 +1,148 b''
1 .. _debug-mode:
1 .. _debug-mode:
2
2
3 Enabling Debug Mode
3 Enabling Debug Mode
4 -------------------
4 -------------------
5
5
6 Debug Mode will enable debug logging, and request tracking middleware. Debug Mode
7 enabled DEBUG log-level which allows tracking various information about authentication
8 failures, LDAP connection, email etc.
9
10 The request tracking will add a special
11 unique ID: `| req_id:00000000-0000-0000-0000-000000000000` at the end of each log line.
12 The req_id is the same for each individual requests, it means that if you want to
13 track particular user logs only, and exclude other concurrent ones
14 simply grep by `req_id` uuid which you'll have to find for the individual request.
15
6 To enable debug mode on a |RCE| instance you need to set the debug property
16 To enable debug mode on a |RCE| instance you need to set the debug property
7 in the :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. To
17 in the :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. To
8 do this, use the following steps
18 do this, use the following steps
9
19
10 1. Open the file and set the ``debug`` line to ``true``
20 1. Open the file and set the ``debug`` line to ``true``
11 2. Restart you instance using the ``rccontrol restart`` command,
21 2. Restart you instance using the ``rccontrol restart`` command,
12 see the following example:
22 see the following example:
13
23
14 You can also set the log level, the follow are the valid options;
15 ``debug``, ``info``, ``warning``, or ``fatal``.
16
17 .. code-block:: ini
24 .. code-block:: ini
18
25
19 [DEFAULT]
26 [DEFAULT]
20 debug = true
27 debug = true
21 pdebug = false
22
28
23 .. code-block:: bash
29 .. code-block:: bash
24
30
25 # Restart your instance
31 # Restart your instance
26 $ rccontrol restart enterprise-1
32 $ rccontrol restart enterprise-1
27 Instance "enterprise-1" successfully stopped.
33 Instance "enterprise-1" successfully stopped.
28 Instance "enterprise-1" successfully started.
34 Instance "enterprise-1" successfully started.
29
35
36
30 Debug and Logging Configuration
37 Debug and Logging Configuration
31 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
38 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
32
39
33 Further debugging and logging settings can also be set in the
40 Further debugging and logging settings can also be set in the
34 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
41 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
35
42
36 In the logging section, the various packages that run with |RCE| can have
43 In the logging section, the various packages that run with |RCE| can have
37 different debug levels set. If you want to increase the logging level change
44 different debug levels set. If you want to increase the logging level change
38 ``level = DEBUG`` line to one of the valid options.
45 ``level = DEBUG`` line to one of the valid options.
39
46
40 You also need to change the log level for handlers. See the example
47 You also need to change the log level for handlers. See the example
41 ``##handler`` section below. The ``handler`` level takes the same options as
48 ``##handler`` section below. The ``handler`` level takes the same options as
42 the ``debug`` level.
49 the ``debug`` level.
43
50
44 .. code-block:: ini
51 .. code-block:: ini
45
52
46 ################################
53 ################################
47 ### LOGGING CONFIGURATION ####
54 ### LOGGING CONFIGURATION ####
48 ################################
55 ################################
49 [loggers]
56 [loggers]
50 keys = root, sqlalchemy, rhodecode, ssh_wrapper
57 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
51
58
52 [handlers]
59 [handlers]
53 keys = console, console_sql, file, file_rotating
60 keys = console, console_sql, file, file_rotating
54
61
55 [formatters]
62 [formatters]
56 keys = generic, color_formatter, color_formatter_sql
63 keys = generic, color_formatter, color_formatter_sql
57
64
58 #############
65 #############
59 ## LOGGERS ##
66 ## LOGGERS ##
60 #############
67 #############
61 [logger_root]
68 [logger_root]
62 level = NOTSET
69 level = NOTSET
63 handlers = console
70 handlers = console
64
71
65 [logger_routes]
72 [logger_sqlalchemy]
73 level = INFO
74 handlers = console_sql
75 qualname = sqlalchemy.engine
76 propagate = 0
77
78 [logger_beaker]
66 level = DEBUG
79 level = DEBUG
67 handlers =
80 handlers =
68 qualname = routes.middleware
81 qualname = beaker.container
69 ## "level = DEBUG" logs the route matched and routing variables.
70 propagate = 1
82 propagate = 1
71
83
72 [logger_rhodecode]
84 [logger_rhodecode]
73 level = DEBUG
85 level = DEBUG
74 handlers =
86 handlers =
75 qualname = rhodecode
87 qualname = rhodecode
76 propagate = 1
88 propagate = 1
77
89
78 [logger_sqlalchemy]
90 [logger_ssh_wrapper]
79 level = INFO
91 level = DEBUG
80 handlers = console_sql
92 handlers =
81 qualname = sqlalchemy.engine
93 qualname = ssh_wrapper
82 propagate = 0
94 propagate = 1
95
96 [logger_celery]
97 level = DEBUG
98 handlers =
99 qualname = celery
83
100
84 ##############
101 ##############
85 ## HANDLERS ##
102 ## HANDLERS ##
86 ##############
103 ##############
87
104
88 [handler_console]
105 [handler_console]
89 class = StreamHandler
106 class = StreamHandler
90 args = (sys.stderr,)
107 args = (sys.stderr, )
91 level = INFO
108 level = DEBUG
92 formatter = generic
109 formatter = generic
93
110
94 [handler_console_sql]
111 [handler_console_sql]
95 class = StreamHandler
112 class = StreamHandler
96 args = (sys.stderr,)
113 args = (sys.stderr, )
97 level = WARN
114 level = INFO
98 formatter = generic
115 formatter = generic
99
116
100 [handler_file]
117 [handler_file]
101 class = FileHandler
118 class = FileHandler
102 args = ('rhodecode.log', 'a',)
119 args = ('rhodecode_debug.log', 'a',)
103 level = INFO
120 level = INFO
104 formatter = generic
121 formatter = generic
105
122
106 [handler_file_rotating]
123 [handler_file_rotating]
107 class = logging.handlers.TimedRotatingFileHandler
124 class = logging.handlers.TimedRotatingFileHandler
108 # 'D', 5 - rotate every 5days
125 # 'D', 5 - rotate every 5days
109 # you can set 'h', 'midnight'
126 # you can set 'h', 'midnight'
110 args = ('rhodecode.log', 'D', 5, 10,)
127 args = ('rhodecode_debug_rotated.log', 'D', 5, 10,)
111 level = INFO
128 level = INFO
112 formatter = generic
129 formatter = generic
130
131 ################
132 ## FORMATTERS ##
133 ################
134
135 [formatter_generic]
136 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
137 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
138 datefmt = %Y-%m-%d %H:%M:%S
139
140 [formatter_color_formatter]
141 class = rhodecode.lib.logging_formatter.ColorFormatter
142 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
143 datefmt = %Y-%m-%d %H:%M:%S
144
145 [formatter_color_formatter_sql]
146 class = rhodecode.lib.logging_formatter.ColorFormatterSql
147 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
148 datefmt = %Y-%m-%d %H:%M:%S No newline at end of file
@@ -1,50 +1,50 b''
1 .. _glossary:
1 .. _glossary:
2
2
3 Glossary
3 Glossary
4 ========
4 ========
5
5
6 .. glossary::
6 .. glossary::
7
7
8 DVCS
8 DVCS
9 Distributed Version Control System, usually referring to |git| or |hg|.
9 Distributed Version Control System, usually referring to |git| or |hg|.
10
10
11 Extension
11 Extension
12 An extension extends the capabilities of, or the data available to,
12 An extension extends the capabilities of, or the data available to,
13 an existing software application.
13 an existing software application.
14
14
15 Full-text Search
15 Full-text Search
16 Indexing all files and |repos| managed by |RCE| and
16 Indexing all files and |repos| managed by |RCE| and
17 making this data searchable from the interface.
17 making this data searchable from the interface.
18
18
19 Gist
19 Gist
20 A note that can only be edited by the author and shared using its
20 A note that can only be edited by the author and shared using its
21 link within others. The sharing permissions can be set during
21 link within others. The sharing permissions can be set during
22 its creation.
22 its creation.
23
23
24 Gunicorn
24 Gunicorn
25 A Python WSGI HTTP Server used by |RCE|.
25 A Python WSGI HTTP Server used by |RCE|.
26
26
27 Hook
27 Hook
28 A hook intercepts function calls, messages, or events passed between
28 A hook intercepts function calls, messages, or events passed between
29 software components and can be used to trigger plugins, or their
29 software components and can be used to trigger plugins, or their
30 extensions.
30 extensions.
31
31
32 Horizontal scaling
32 Horizontal scaling
33 Adding more machines or workers into your pool of resources.
33 Adding more machines or workers into your pool of resources.
34
34
35 Instance
35 Instance
36 A single installed version of one of the |RC| products. It could
36 A single installed version of one of the RhodeCode products. It could
37 refer to |RCE| or the VCS server depending on the context.
37 refer to |RCE| or the VCS server depending on the context.
38
38
39 Plugin
39 Plugin
40 A Plugin is software that adds a specific feature to an existing
40 A Plugin is software that adds a specific feature to an existing
41 software application.
41 software application.
42
42
43 tmpfs
43 tmpfs
44 Temporary file storage kept in volatile memory instead of persistent
44 Temporary file storage kept in volatile memory instead of persistent
45 storage.
45 storage.
46
46
47 VCS Server
47 VCS Server
48 The VCS Server handles the abstraction layer between the
48 The VCS Server handles the abstraction layer between the
49 supported version control systems and RhodeCode Enterprise.
49 supported version control systems and RhodeCode Enterprise.
50
50
@@ -1,276 +1,276 b''
1 .. _indexing-ref:
1 .. _indexing-ref:
2
2
3 Full-text Search
3 Full-text Search
4 ----------------
4 ----------------
5
5
6 By default |RC| is configured to use `Whoosh`_ to index |repos| and
6 By default RhodeCode is configured to use `Whoosh`_ to index |repos| and
7 provide full-text search.
7 provide full-text search.
8
8
9 |RCE| also provides support for `Elasticsearch`_ as a backend for scalable
9 |RCE| also provides support for `Elasticsearch`_ as a backend for scalable
10 search. See :ref:`enable-elasticsearch` for details.
10 search. See :ref:`enable-elasticsearch` for details.
11
11
12 Indexing
12 Indexing
13 ^^^^^^^^
13 ^^^^^^^^
14
14
15 To run the indexer you need to use an |authtoken| with admin rights to all
15 To run the indexer you need to use an |authtoken| with admin rights to all
16 |repos|.
16 |repos|.
17
17
18 To index new content added, you have the option to set the indexer up in a
18 To index new content added, you have the option to set the indexer up in a
19 number of ways, for example:
19 number of ways, for example:
20
20
21 * Call the indexer via a cron job. We recommend running this nightly,
21 * Call the indexer via a cron job. We recommend running this nightly,
22 unless you need everything indexed immediately.
22 unless you need everything indexed immediately.
23 * Set the indexer to infinitely loop and reindex as soon as it has run its
23 * Set the indexer to infinitely loop and reindex as soon as it has run its
24 cycle.
24 cycle.
25 * Hook the indexer up with your CI server to reindex after each push.
25 * Hook the indexer up with your CI server to reindex after each push.
26
26
27 The indexer works by indexing new commits added since the last run. If you
27 The indexer works by indexing new commits added since the last run. If you
28 wish to build a brand new index from scratch each time,
28 wish to build a brand new index from scratch each time,
29 use the ``force`` option in the configuration file.
29 use the ``force`` option in the configuration file.
30
30
31 .. important::
31 .. important::
32
32
33 You need to have |RCT| installed, see :ref:`install-tools`. Since |RCE|
33 You need to have |RCT| installed, see :ref:`install-tools`. Since |RCE|
34 3.5.0 they are installed by default.
34 3.5.0 they are installed by default.
35
35
36 To set up indexing, use the following steps:
36 To set up indexing, use the following steps:
37
37
38 1. :ref:`config-rhoderc`, if running tools remotely.
38 1. :ref:`config-rhoderc`, if running tools remotely.
39 2. :ref:`run-index`
39 2. :ref:`run-index`
40 3. :ref:`set-index`
40 3. :ref:`set-index`
41 4. :ref:`advanced-indexing`
41 4. :ref:`advanced-indexing`
42
42
43 .. _config-rhoderc:
43 .. _config-rhoderc:
44
44
45 Configure the ``.rhoderc`` File
45 Configure the ``.rhoderc`` File
46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
47
47
48 |RCT| uses the :file:`/home/{user}/.rhoderc` file for connection details
48 |RCT| uses the :file:`/home/{user}/.rhoderc` file for connection details
49 to |RCM| instances. If this file is not automatically created,
49 to |RCE| instances. If this file is not automatically created,
50 you can configure it using the following example. You need to configure the
50 you can configure it using the following example. You need to configure the
51 details for each instance you want to index.
51 details for each instance you want to index.
52
52
53 .. code-block:: bash
53 .. code-block:: bash
54
54
55 # Check the instance details
55 # Check the instance details
56 # of the instance you want to index
56 # of the instance you want to index
57 $ rccontrol status
57 $ rccontrol status
58
58
59 - NAME: enterprise-1
59 - NAME: enterprise-1
60 - STATUS: RUNNING
60 - STATUS: RUNNING
61 - TYPE: Momentum
61 - TYPE: Momentum
62 - VERSION: 1.5.0
62 - VERSION: 1.5.0
63 - URL: http://127.0.0.1:10000
63 - URL: http://127.0.0.1:10000
64
64
65 To get your API Token, on the |RCM| interface go to
65 To get your API Token, on the |RCE| interface go to
66 :menuselection:`username --> My Account --> Auth tokens`
66 :menuselection:`username --> My Account --> Auth tokens`
67
67
68 .. code-block:: ini
68 .. code-block:: ini
69
69
70 # Configure .rhoderc with matching details
70 # Configure .rhoderc with matching details
71 # This allows the indexer to connect to the instance
71 # This allows the indexer to connect to the instance
72 [instance:enterprise-1]
72 [instance:enterprise-1]
73 api_host = http://127.0.0.1:10000
73 api_host = http://127.0.0.1:10000
74 api_key = <auth token goes here>
74 api_key = <auth token goes here>
75 repo_dir = /home/<username>/repos
75 repo_dir = /home/<username>/repos
76
76
77 .. _run-index:
77 .. _run-index:
78
78
79 Run the Indexer
79 Run the Indexer
80 ^^^^^^^^^^^^^^^
80 ^^^^^^^^^^^^^^^
81
81
82 Run the indexer using the following command, and specify the instance you
82 Run the indexer using the following command, and specify the instance you
83 want to index:
83 want to index:
84
84
85 .. code-block:: bash
85 .. code-block:: bash
86
86
87 # From inside a virtualevv
87 # From inside a virtualevv
88 (venv)$ rhodecode-index --instance-name=enterprise-1
88 (venv)$ rhodecode-index --instance-name=enterprise-1
89
89
90 # Using default installation
90 # Using default installation
91 $ /home/user/.rccontrol/enterprise-1/profile/bin/rhodecode-index \
91 $ /home/user/.rccontrol/enterprise-1/profile/bin/rhodecode-index \
92 --instance-name=enterprise-1
92 --instance-name=enterprise-1
93
93
94 # Using a custom mapping file
94 # Using a custom mapping file
95 $ /home/user/.rccontrol/enterprise-1/profile/bin/rhodecode-index \
95 $ /home/user/.rccontrol/enterprise-1/profile/bin/rhodecode-index \
96 --instance-name=enterprise-1 \
96 --instance-name=enterprise-1 \
97 --mapping=/home/user/.rccontrol/enterprise-1/mapping.ini
97 --mapping=/home/user/.rccontrol/enterprise-1/mapping.ini
98
98
99 .. note::
99 .. note::
100
100
101 In case of often indexing the index may become fragmented. Most often a result of that
101 In case of often indexing the index may become fragmented. Most often a result of that
102 is error about `too many open files`. To fix this indexer needs to be executed with
102 is error about `too many open files`. To fix this indexer needs to be executed with
103 --optimize flag. E.g `rhodecode-index --instance-name=enterprise-1 --optimize`
103 --optimize flag. E.g `rhodecode-index --instance-name=enterprise-1 --optimize`
104 This should be executed regularly, once a week is recommended.
104 This should be executed regularly, once a week is recommended.
105
105
106
106
107 .. _set-index:
107 .. _set-index:
108
108
109 Schedule the Indexer
109 Schedule the Indexer
110 ^^^^^^^^^^^^^^^^^^^^
110 ^^^^^^^^^^^^^^^^^^^^
111
111
112 To schedule the indexer, configure the crontab file to run the indexer inside
112 To schedule the indexer, configure the crontab file to run the indexer inside
113 your |RCT| virtualenv using the following steps.
113 your |RCT| virtualenv using the following steps.
114
114
115 1. Open the crontab file, using ``crontab -e``.
115 1. Open the crontab file, using ``crontab -e``.
116 2. Add the indexer to the crontab, and schedule it to run as regularly as you
116 2. Add the indexer to the crontab, and schedule it to run as regularly as you
117 wish.
117 wish.
118 3. Save the file.
118 3. Save the file.
119
119
120 .. code-block:: bash
120 .. code-block:: bash
121
121
122 $ crontab -e
122 $ crontab -e
123
123
124 # The virtualenv can be called using its full path, so for example you can
124 # The virtualenv can be called using its full path, so for example you can
125 # put this example into the crontab
125 # put this example into the crontab
126
126
127 # Run the indexer daily at 4am using the default mapping settings
127 # Run the indexer daily at 4am using the default mapping settings
128 * 4 * * * /home/ubuntu/.virtualenv/rhodecode-venv/bin/rhodecode-index \
128 * 4 * * * /home/ubuntu/.virtualenv/rhodecode-venv/bin/rhodecode-index \
129 --instance-name=enterprise-1
129 --instance-name=enterprise-1
130
130
131 # Run the indexer every Sunday at 3am using default mapping
131 # Run the indexer every Sunday at 3am using default mapping
132 * 3 * * 0 /home/ubuntu/.virtualenv/rhodecode-venv/bin/rhodecode-index \
132 * 3 * * 0 /home/ubuntu/.virtualenv/rhodecode-venv/bin/rhodecode-index \
133 --instance-name=enterprise-1
133 --instance-name=enterprise-1
134
134
135 # Run the indexer every 15 minutes
135 # Run the indexer every 15 minutes
136 # using a specially configured mapping file
136 # using a specially configured mapping file
137 */15 * * * * ~/.rccontrol/enterprise-4/profile/bin/rhodecode-index \
137 */15 * * * * ~/.rccontrol/enterprise-4/profile/bin/rhodecode-index \
138 --instance-name=enterprise-4 \
138 --instance-name=enterprise-4 \
139 --mapping=/home/user/.rccontrol/enterprise-4/mapping.ini
139 --mapping=/home/user/.rccontrol/enterprise-4/mapping.ini
140
140
141 .. _advanced-indexing:
141 .. _advanced-indexing:
142
142
143 Advanced Indexing
143 Advanced Indexing
144 ^^^^^^^^^^^^^^^^^
144 ^^^^^^^^^^^^^^^^^
145
145
146 |RCT| indexes based on the :file:`mapping.ini` file. To configure your index,
146 |RCT| indexes based on the :file:`mapping.ini` file. To configure your index,
147 you can specify different options in this file. The default location is:
147 you can specify different options in this file. The default location is:
148
148
149 * :file:`/home/{user}/.rccontrol/{instance-id}/mapping.ini`, using default
149 * :file:`/home/{user}/.rccontrol/{instance-id}/mapping.ini`, using default
150 |RCT|.
150 |RCT|.
151 * :file:`~/venv/lib/python2.7/site-packages/rhodecode_tools/templates/mapping.ini`,
151 * :file:`~/venv/lib/python2.7/site-packages/rhodecode_tools/templates/mapping.ini`,
152 when using ``virtualenv``.
152 when using ``virtualenv``.
153
153
154 .. note::
154 .. note::
155
155
156 If you need to create the :file:`mapping.ini` file, use the |RCT|
156 If you need to create the :file:`mapping.ini` file, use the |RCT|
157 ``rhodecode-index --create-mapping path/to/file`` API call. For details,
157 ``rhodecode-index --create-mapping path/to/file`` API call. For details,
158 see the :ref:`tools-cli` section.
158 see the :ref:`tools-cli` section.
159
159
160 The indexer runs in a random order to prevent a failing |repo| from stopping
160 The indexer runs in a random order to prevent a failing |repo| from stopping
161 a build. To configure different indexing scenarios, set the following options
161 a build. To configure different indexing scenarios, set the following options
162 inside the :file:`mapping.ini` and specify the altered file using the
162 inside the :file:`mapping.ini` and specify the altered file using the
163 ``--mapping`` option.
163 ``--mapping`` option.
164
164
165 * ``index_files`` : Index the specified file types.
165 * ``index_files`` : Index the specified file types.
166 * ``skip_files`` : Do not index the specified file types.
166 * ``skip_files`` : Do not index the specified file types.
167 * ``index_files_content`` : Index the content of the specified file types.
167 * ``index_files_content`` : Index the content of the specified file types.
168 * ``skip_files_content`` : Do not index the content of the specified files.
168 * ``skip_files_content`` : Do not index the content of the specified files.
169 * ``force`` : Create a fresh index on each run.
169 * ``force`` : Create a fresh index on each run.
170 * ``max_filesize`` : Files larger than the set size will not be indexed.
170 * ``max_filesize`` : Files larger than the set size will not be indexed.
171 * ``commit_parse_limit`` : Set the batch size when indexing commit messages.
171 * ``commit_parse_limit`` : Set the batch size when indexing commit messages.
172 Set to a lower number to lessen memory load.
172 Set to a lower number to lessen memory load.
173 * ``repo_limit`` : Set the maximum number or |repos| indexed per run.
173 * ``repo_limit`` : Set the maximum number or |repos| indexed per run.
174 * ``[INCLUDE]`` : Set |repos| you want indexed. This takes precedent over
174 * ``[INCLUDE]`` : Set |repos| you want indexed. This takes precedent over
175 ``[EXCLUDE]``.
175 ``[EXCLUDE]``.
176 * ``[EXCLUDE]`` : Set |repos| you do not want indexed. Exclude can be used to
176 * ``[EXCLUDE]`` : Set |repos| you do not want indexed. Exclude can be used to
177 not index branches, forks, or log |repos|.
177 not index branches, forks, or log |repos|.
178
178
179 At the end of the file you can specify conditions for specific |repos| that
179 At the end of the file you can specify conditions for specific |repos| that
180 will override the default values. To configure your indexer,
180 will override the default values. To configure your indexer,
181 use the following example :file:`mapping.ini` file.
181 use the following example :file:`mapping.ini` file.
182
182
183 .. code-block:: ini
183 .. code-block:: ini
184
184
185 [__DEFAULT__]
185 [__DEFAULT__]
186 # default patterns for indexing files and content of files.
186 # default patterns for indexing files and content of files.
187 # Binary files are skipped by default.
187 # Binary files are skipped by default.
188
188
189 # Index python and markdown files
189 # Index python and markdown files
190 index_files = *.py, *.md
190 index_files = *.py, *.md
191
191
192 # Do not index these file types
192 # Do not index these file types
193 skip_files = *.svg, *.log, *.dump, *.txt
193 skip_files = *.svg, *.log, *.dump, *.txt
194
194
195 # Index both file types and their content
195 # Index both file types and their content
196 index_files_content = *.cpp, *.ini, *.py
196 index_files_content = *.cpp, *.ini, *.py
197
197
198 # Index file names, but not file content
198 # Index file names, but not file content
199 skip_files_content = *.svg,
199 skip_files_content = *.svg,
200
200
201 # Force rebuilding an index from scratch. Each repository will be rebuild
201 # Force rebuilding an index from scratch. Each repository will be rebuild
202 # from scratch with a global flag. Use local flag to rebuild single repos
202 # from scratch with a global flag. Use local flag to rebuild single repos
203 force = false
203 force = false
204
204
205 # Do not index files larger than 385KB
205 # Do not index files larger than 385KB
206 max_filesize = 385KB
206 max_filesize = 385KB
207
207
208 # Limit commit indexing to 500 per batch
208 # Limit commit indexing to 500 per batch
209 commit_parse_limit = 500
209 commit_parse_limit = 500
210
210
211 # Limit each index run to 25 repos
211 # Limit each index run to 25 repos
212 repo_limit = 25
212 repo_limit = 25
213
213
214 # __INCLUDE__ is more important that __EXCLUDE__.
214 # __INCLUDE__ is more important that __EXCLUDE__.
215
215
216 [__INCLUDE__]
216 [__INCLUDE__]
217 # Include all repos with these names
217 # Include all repos with these names
218
218
219 docs/* = 1
219 docs/* = 1
220 lib/* = 1
220 lib/* = 1
221
221
222 [__EXCLUDE__]
222 [__EXCLUDE__]
223 # Do not include the following repo in index
223 # Do not include the following repo in index
224
224
225 dev-docs/* = 1
225 dev-docs/* = 1
226 legacy-repos/* = 1
226 legacy-repos/* = 1
227 *-dev/* = 1
227 *-dev/* = 1
228
228
229 # Each repo that needs special indexing is a separate section below.
229 # Each repo that needs special indexing is a separate section below.
230 # In each section set the options to override the global configuration
230 # In each section set the options to override the global configuration
231 # parameters above.
231 # parameters above.
232 # If special settings are not configured, the global configuration values
232 # If special settings are not configured, the global configuration values
233 # above are inherited. If no special repositories are
233 # above are inherited. If no special repositories are
234 # defined here RhodeCode will use the API to ask for all repositories
234 # defined here RhodeCode will use the API to ask for all repositories
235
235
236 # For this repo use different settings
236 # For this repo use different settings
237 [special-repo]
237 [special-repo]
238 commit_parse_limit = 20,
238 commit_parse_limit = 20,
239 skip_files = *.idea, *.xml,
239 skip_files = *.idea, *.xml,
240
240
241 # For another repo use different settings
241 # For another repo use different settings
242 [another-special-repo]
242 [another-special-repo]
243 index_files = *,
243 index_files = *,
244 max_filesize = 800MB
244 max_filesize = 800MB
245 commit_parse_limit = 20000
245 commit_parse_limit = 20000
246
246
247 .. _enable-elasticsearch:
247 .. _enable-elasticsearch:
248
248
249 Enabling Elasticsearch
249 Enabling Elasticsearch
250 ^^^^^^^^^^^^^^^^^^^^^^
250 ^^^^^^^^^^^^^^^^^^^^^^
251
251
252 1. Open the :file:`rhodecode.ini` file for the instance you wish to edit. The
252 1. Open the :file:`rhodecode.ini` file for the instance you wish to edit. The
253 default location is
253 default location is
254 :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
254 :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
255 2. Find the search configuration section:
255 2. Find the search configuration section:
256
256
257 .. code-block:: ini
257 .. code-block:: ini
258
258
259 ###################################
259 ###################################
260 ## SEARCH INDEXING CONFIGURATION ##
260 ## SEARCH INDEXING CONFIGURATION ##
261 ###################################
261 ###################################
262
262
263 search.module = rhodecode.lib.index.whoosh
263 search.module = rhodecode.lib.index.whoosh
264 search.location = %(here)s/data/index
264 search.location = %(here)s/data/index
265
265
266 and change it to:
266 and change it to:
267
267
268 .. code-block:: ini
268 .. code-block:: ini
269
269
270 search.module = rc_elasticsearch
270 search.module = rc_elasticsearch
271 search.location = http://localhost:9200/
271 search.location = http://localhost:9200/
272
272
273 where ``search.location`` points to the elasticsearch server.
273 where ``search.location`` points to the elasticsearch server.
274
274
275 .. _Whoosh: https://pypi.python.org/pypi/Whoosh/
275 .. _Whoosh: https://pypi.python.org/pypi/Whoosh/
276 .. _Elasticsearch: https://www.elastic.co/ No newline at end of file
276 .. _Elasticsearch: https://www.elastic.co/
@@ -1,12 +1,12 b''
1 .. _public-access:
1 .. _public-access:
2
2
3 Public Access
3 Public Access
4 -------------
4 -------------
5
5
6 By default |RCM| allows users to read all **public** |repos|. User
6 By default |RCE| allows users to read all **public** |repos|. User
7 permissions and |repo| access can be configured explicitly,
7 permissions and |repo| access can be configured explicitly,
8 and those permissions will override any default settings. The default
8 and those permissions will override any default settings. The default
9 settings can be found under the following section:
9 settings can be found under the following section:
10
10
11 * :menuselection:`Admin --> Permissions --> Object`
11 * :menuselection:`Admin --> Permissions --> Object`
12 * :menuselection:`Admin --> Permissions --> Global`
12 * :menuselection:`Admin --> Permissions --> Global`
@@ -1,77 +1,77 b''
1 .. _repo-xtra:
1 .. _repo-xtra:
2
2
3 Repository Extra Fields
3 Repository Extra Fields
4 =======================
4 =======================
5
5
6 Extra fields attached to a |repo| allow you to configure additional fields for
6 Extra fields attached to a |repo| allow you to configure additional fields for
7 each repository. This allows storing custom data per-repository.
7 each repository. This allows storing custom data per-repository.
8
8
9 It can be used in :ref:`integrations-webhook` or in |RCX|.
9 It can be used in :ref:`integrations-webhook` or in |RCX|.
10 To install and read more about |RCX|, see the :ref:`install-rcx` section.
10 To read more about |RCX|, see the :ref:`integrations-rcextensions` section.
11
11
12
12
13 Enabling Extra Fields
13 Enabling Extra Fields
14 ---------------------
14 ---------------------
15
15
16 To enable extra fields on |repos|, use the following steps:
16 To enable extra fields on |repos|, use the following steps:
17
17
18 1. Go to the :menuselection:`Admin --> Settings --> Visual` page.
18 1. Go to the :menuselection:`Admin --> Settings --> Visual` page.
19 2. Check the :guilabel:`Use repository extra fields` box.
19 2. Check the :guilabel:`Use repository extra fields` box.
20 3. Save your changes.
20 3. Save your changes.
21
21
22
22
23 Configuring Extra Fields
23 Configuring Extra Fields
24 ------------------------
24 ------------------------
25
25
26 To configure extra fields per repository, use the following steps:
26 To configure extra fields per repository, use the following steps:
27
27
28 1. Go to :menuselection:`Admin --> Repositories` and select :guilabel:`Edit`
28 1. Go to :menuselection:`Admin --> Repositories` and select :guilabel:`Edit`
29 beside the |repo| to which you wish to add extra fields.
29 beside the |repo| to which you wish to add extra fields.
30 2. On the |repo| settings page, select the :guilabel:`Extra fields` tab.
30 2. On the |repo| settings page, select the :guilabel:`Extra fields` tab.
31
31
32 .. image:: ../images/extra-repo-fields.png
32 .. image:: ../images/extra-repo-fields.png
33
33
34 The most important is the `New field key` variable which under the value will
34 The most important is the `New field key` variable which under the value will
35 be stored. It needs to be unique for each repository. The label and description
35 be stored. It needs to be unique for each repository. The label and description
36 will be generated in repository settings where users can actually save some
36 will be generated in repository settings where users can actually save some
37 values inside generated extra fields.
37 values inside generated extra fields.
38
38
39
39
40 Example Usage in extensions
40 Example Usage in extensions
41 ---------------------------
41 ---------------------------
42
42
43 To use the extra fields in an extension, see the example below. For more
43 To use the extra fields in an extension, see the example below. For more
44 information and examples, see the :ref:`extensions-hooks-ref` section.
44 information and examples, see the :ref:`extensions-hooks-ref` section.
45
45
46 .. code-block:: python
46 .. code-block:: python
47
47
48 call = load_extension('http_notify.py')
48 call = load_extension('http_notify.py')
49 if call:
49 if call:
50 url = 'http://default.url' # <url for post data>
50 url = 'http://default.url' # <url for post data>
51
51
52 # possibly extract the URL from extra fields
52 # possibly extract the URL from extra fields
53 call = load_extension('extra_fields.py')
53 call = load_extension('extra_fields.py')
54 if call:
54 if call:
55 repo_extra_fields = call(**kwargs)
55 repo_extra_fields = call(**kwargs)
56 # now update if we have extra fields, they have precedence
56 # now update if we have extra fields, they have precedence
57 # this way users can store any configuration inside the database per
57 # this way users can store any configuration inside the database per
58 # repo
58 # repo
59 for key, data in repo_extra_fields.items():
59 for key, data in repo_extra_fields.items():
60 kwargs[key] = data['field_value']
60 kwargs[key] = data['field_value']
61
61
62 # an endpoint url data will be sent to, fetched from extra fields
62 # an endpoint url data will be sent to, fetched from extra fields
63 # if exists, or fallback to default
63 # if exists, or fallback to default
64 kwargs['URL'] = kwargs.pop('webhook_url', None) or url
64 kwargs['URL'] = kwargs.pop('webhook_url', None) or url
65
65
66 # fetch pushed commits, from commit_ids list
66 # fetch pushed commits, from commit_ids list
67 call = load_extension('extract_commits.py')
67 call = load_extension('extract_commits.py')
68 extracted_commits = {}
68 extracted_commits = {}
69 if call:
69 if call:
70 extracted_commits = call(**kwargs)
70 extracted_commits = call(**kwargs)
71 # store the commits for the next call chain
71 # store the commits for the next call chain
72 kwargs['COMMITS'] = extracted_commits
72 kwargs['COMMITS'] = extracted_commits
73
73
74 # set additional keys and values to be sent via POST to given URL
74 # set additional keys and values to be sent via POST to given URL
75 kwargs['caller_type'] = 'rhodecode'
75 kwargs['caller_type'] = 'rhodecode'
76 kwargs['date'] = time.time() # import time before
76 kwargs['date'] = time.time() # import time before
77 call(**kwargs)
77 call(**kwargs)
@@ -1,56 +1,51 b''
1 .. _repo-hooks:
1 .. _repo-hooks:
2
2
3 |RCE| Repository Hooks
3 |RCE| Repository Hooks
4 ======================
4 ======================
5
5
6 |RCE| installs hooks inside each of the |repos| that it manages. These
6 |RCE| installs hooks inside each of the |repos| that it manages. These
7 hooks enable users to execute custom actions based on certain events.
7 hooks enable users to execute custom actions based on certain events.
8 This is the complete list of |repos| hooks and the events which trigger them:
8 This is the complete list of |repos| hooks and the events which trigger them:
9
9
10 .. rst-class:: dl-horizontal
10 .. rst-class:: dl-horizontal
11
11
12 \--CREATE_REPO_HOOK
12 \--CREATE_REPO_HOOK
13 Any time a |repo| is created.
13 Any time a |repo| is created.
14
14
15 \--CREATE_REPO_GROUP_HOOK
15 \--CREATE_REPO_GROUP_HOOK
16 Any time a |repo| group is created.
16 Any time a |repo| group is created.
17
17
18 \--CREATE_USER_HOOK
18 \--CREATE_USER_HOOK
19 Any time a user is created.
19 Any time a user is created.
20
20
21 \--DELETE_REPO_HOOK
21 \--DELETE_REPO_HOOK
22 Any time a |repo| is created.
22 Any time a |repo| is created.
23
23
24 \--DELETE_USER_HOOK
24 \--DELETE_USER_HOOK
25 Any time a user is deleted.
25 Any time a user is deleted.
26
26
27 \--PRE_CREATE_USER_HOOK
27 \--PRE_CREATE_USER_HOOK
28 Any time a user is created but before the action is executed by |RCE|.
28 Any time a user is created but before the action is executed by |RCE|.
29
29
30 \--PRE_PULL
30 \--PRE_PULL
31 Any pull from a |repo| but before the action is executed by |RCE|.
31 Any pull from a |repo| but before the action is executed by |RCE|.
32
32
33 \--PRE_PUSH
33 \--PRE_PUSH
34 Any push to a |repo| but before the action is executed by |RCE|.
34 Any push to a |repo| but before the action is executed by |RCE|.
35
35
36 \--POST_PUSH
36 \--POST_PUSH
37 After any push to a |repo|.
37 After any push to a |repo|.
38
38
39 \--PUSH_HOOK
39 \--PUSH_HOOK
40 Any push to a |repo|, including editing tags or branches.
40 Any push to a |repo|, including editing tags or branches.
41 Commits via API actions that update references are also counted.
41 Commits via API actions that update references are also counted.
42
42
43 \--PULL_HOOK
43 \--PULL_HOOK
44 Any pull from a Repository.
44 Any pull from a Repository.
45
45
46 Using Repository Hooks
46 Using Repository Hooks
47 ----------------------
47 ----------------------
48
48
49 To use these hooks you need to install |RCX|. For more information, see the
49 To use these hooks you need to setup |RCX|. For more information, see the
50 :ref:`install-rcx` section.
50 :ref:`integrations-rcextensions` section.
51
51
52 Creating Extensions
53 -------------------
54
55 To create your own extensions using these hooks, see the :ref:`dev-plug`
56 section.
@@ -1,69 +1,69 b''
1 .. _permissions-default-ref:
1 .. _permissions-default-ref:
2
2
3 Setting Default Permissions
3 Setting Default Permissions
4 ---------------------------
4 ---------------------------
5
5
6 Default permissions allow you to configure |RCM| so that when a new |repo|, user group,
6 Default permissions allow you to configure |RCE| so that when a new |repo|, user group,
7 or user is created their permissions are already defined. To set default permissions you need administrator
7 or user is created their permissions are already defined. To set default permissions you need administrator
8 privileges. See the following sections for setting up your permissions system:
8 privileges. See the following sections for setting up your permissions system:
9
9
10 * :ref:`user-default-ref`
10 * :ref:`user-default-ref`
11 * :ref:`user-group-default-ref`
11 * :ref:`user-group-default-ref`
12 * :ref:`repo-default-ref`
12 * :ref:`repo-default-ref`
13 * :ref:`repo-group-default-ref`
13 * :ref:`repo-group-default-ref`
14
14
15 .. _user-default-ref:
15 .. _user-default-ref:
16
16
17 Setting User defaults
17 Setting User defaults
18 ^^^^^^^^^^^^^^^^^^^^^
18 ^^^^^^^^^^^^^^^^^^^^^
19
19
20 To set default user permissions, use the following steps.
20 To set default user permissions, use the following steps.
21
21
22 1. From the |RCM| interface, select :menuselection:`Admin --> Permissions`
22 1. From the |RCE| interface, select :menuselection:`Admin --> Permissions`
23 2. Select the :guilabel:`Global` tab from the left-hand menu. The permissions
23 2. Select the :guilabel:`Global` tab from the left-hand menu. The permissions
24 set on this screen apply to users and user-groups across the whole instance.
24 set on this screen apply to users and user-groups across the whole instance.
25 3. Save your changes
25 3. Save your changes
26
26
27 .. _user-group-default-ref:
27 .. _user-group-default-ref:
28
28
29 Setting User Group defaults
29 Setting User Group defaults
30 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
30 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
31
31
32 To set default user group permissions, use the following steps.
32 To set default user group permissions, use the following steps.
33
33
34 1. From the |RCM| interface, select :menuselection:`Admin --> User groups`
34 1. From the |RCE| interface, select :menuselection:`Admin --> User groups`
35 2. Select :guilabel:`Permissions`, and configure the default user
35 2. Select :guilabel:`Permissions`, and configure the default user
36 permissions. All users will get these permissions unless
36 permissions. All users will get these permissions unless
37 individually set.
37 individually set.
38 3. Select :guilabel:`Global permissions`, and if you wish to configure
38 3. Select :guilabel:`Global permissions`, and if you wish to configure
39 non-standard behaviour, uncheck the
39 non-standard behaviour, uncheck the
40 :guilabel:`inherit from default settings` box and configure the desired
40 :guilabel:`inherit from default settings` box and configure the desired
41 permissions
41 permissions
42 4. Save your changes
42 4. Save your changes
43
43
44 .. _repo-default-ref:
44 .. _repo-default-ref:
45
45
46 Setting Repository defaults
46 Setting Repository defaults
47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
48
48
49 To set default |repo| permissions, use the following steps.
49 To set default |repo| permissions, use the following steps.
50
50
51 1. From the |RCM| interface, select :menuselection:`Admin --> Permissions`
51 1. From the |RCE| interface, select :menuselection:`Admin --> Permissions`
52 2. Select the :guilabel:`Object` tab from the left-hand menu and set the
52 2. Select the :guilabel:`Object` tab from the left-hand menu and set the
53 |perm| permissions
53 |perm| permissions
54 3. Save your changes
54 3. Save your changes
55
55
56 .. _repo-group-default-ref:
56 .. _repo-group-default-ref:
57
57
58 Setting Repository Group defaults
58 Setting Repository Group defaults
59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60
60
61 To set default Repository Group permissions, use the following steps.
61 To set default Repository Group permissions, use the following steps.
62
62
63 1. From the |RCM| interface, select :menuselection:`Admin --> Repository Groups`
63 1. From the |RCE| interface, select :menuselection:`Admin --> Repository Groups`
64 2. Select :guilabel:`Edit` beside the |repo| group you wish to configure
64 2. Select :guilabel:`Edit` beside the |repo| group you wish to configure
65 3. On the left-hand pane select :guilabel:`Permissions`
65 3. On the left-hand pane select :guilabel:`Permissions`
66 4. Set the default permissions for all |repos| created in this group
66 4. Set the default permissions for all |repos| created in this group
67 5. Save your changes
67 5. Save your changes
68
68
69 .. |perm| replace:: :guilabel:`None, Read, Write, or Admin`
69 .. |perm| replace:: :guilabel:`None, Read, Write, or Admin`
@@ -1,26 +1,26 b''
1 .. _permissions-info-add-group-ref:
1 .. _permissions-info-add-group-ref:
2
2
3 Repository Administration
3 Repository Administration
4 =========================
4 =========================
5
5
6 Repository permissions in |RCM| can be managed in a number of different ways.
6 Repository permissions in |RCE| can be managed in a number of different ways.
7 This overview should give you an insight into how you could adopt particular
7 This overview should give you an insight into how you could adopt particular
8 settings for your needs:
8 settings for your needs:
9
9
10 * Global |repo| permissions: This allows you to set the default permissions
10 * Global |repo| permissions: This allows you to set the default permissions
11 for each new |repo| created within |RCM|, see :ref:`repo-default-ref`. All
11 for each new |repo| created within |RCE|, see :ref:`repo-default-ref`. All
12 |repos| created will inherit these permissions unless explicitly configured.
12 |repos| created will inherit these permissions unless explicitly configured.
13 * Individual |repo| permissions: To set individual |repo| permissions,
13 * Individual |repo| permissions: To set individual |repo| permissions,
14 see :ref:`set-repo-perms`.
14 see :ref:`set-repo-perms`.
15 * Repository Group permissions: This allows you to define the permissions for
15 * Repository Group permissions: This allows you to define the permissions for
16 a group, and all |repos| created within that group will inherit the same
16 a group, and all |repos| created within that group will inherit the same
17 permissions.
17 permissions.
18
18
19 .. toctree::
19 .. toctree::
20
20
21 repo-perm-steps
21 repo-perm-steps
22 repo-extra-fields
22 repo-extra-fields
23 repo-hooks
23 repo-hooks
24 repo-issue-tracker
24 repo-issue-tracker
25 repo-vcs
25 repo-vcs
26
26
@@ -1,200 +1,207 b''
1 .. _svn-http:
1 .. _svn-http:
2
2
3 |svn| With Write Over HTTP
3 |svn| With Write Over HTTP
4 ^^^^^^^^^^^^^^^^^^^^^^^^^^
4 ^^^^^^^^^^^^^^^^^^^^^^^^^^
5
5
6 To use |svn| with read/write support over the |svn| HTTP protocol, you have to
6 To use |svn| with read/write support over the |svn| HTTP protocol, you have to
7 configure the HTTP |svn| backend.
7 configure the HTTP |svn| backend.
8
8
9 Prerequisites
9 Prerequisites
10 =============
10 =============
11
11
12 - Enable HTTP support inside the admin VCS settings on your |RCE| instance
12 - Enable HTTP support inside the admin VCS settings on your |RCE| instance
13 - You need to install the following tools on the machine that is running an
13 - You need to install the following tools on the machine that is running an
14 instance of |RCE|:
14 instance of |RCE|:
15 ``Apache HTTP Server`` and ``mod_dav_svn``.
15 ``Apache HTTP Server`` and ``mod_dav_svn``.
16
16
17
17
18 .. tip::
18 .. tip::
19
19
20 We recommend using Wandisco repositories which provide latest SVN versions
20 We recommend using Wandisco repositories which provide latest SVN versions
21 for most platforms.
21 for most platforms. If you skip this version you'll have to ensure the Client version
22 is compatible with installed SVN version which might differ depending on the operating system.
22 Here is an example how to add the Wandisco repositories for Ubuntu.
23 Here is an example how to add the Wandisco repositories for Ubuntu.
23
24
24 .. code-block:: bash
25 .. code-block:: bash
25
26
26 $ sudo sh -c 'echo "deb http://opensource.wandisco.com/ubuntu `lsb_release -cs` svn19" >> /etc/apt/sources.list.d/subversion19.list'
27 $ sudo sh -c 'echo "deb http://opensource.wandisco.com/ubuntu `lsb_release -cs` svn110" >> /etc/apt/sources.list.d/subversion110.list'
27 $ sudo wget -q http://opensource.wandisco.com/wandisco-debian.gpg -O- | sudo apt-key add -
28 $ sudo wget -q http://opensource.wandisco.com/wandisco-debian-new.gpg -O- | sudo apt-key add -
28 $ sudo apt-get update
29 $ sudo apt-get update
29
30
30 Here is an example how to add the Wandisco repositories for Centos/Redhat. Using
31 Here is an example how to add the Wandisco repositories for Centos/Redhat. Using
31 a yum config
32 a yum config
32
33
33 .. code-block:: bash
34 .. code-block:: bash
34
35
35 [wandisco-Git]
36 [wandisco-Git]
36 name=CentOS-6 - Wandisco Git
37 name=CentOS-6 - Wandisco Git
37 baseurl=http://opensource.wandisco.com/centos/6/git/$basearch/
38 baseurl=http://opensource.wandisco.com/centos/6/git/$basearch/
38 enabled=1
39 enabled=1
39 gpgcheck=1
40 gpgcheck=1
40 gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
41 gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
41
42
42
43
43
44
44 Example installation of required components for Ubuntu platform:
45 Example installation of required components for Ubuntu platform:
45
46
46 .. code-block:: bash
47 .. code-block:: bash
47
48
48 $ sudo apt-get install apache2
49 $ sudo apt-get install apache2
49 $ sudo apt-get install libapache2-mod-svn
50 $ sudo apt-get install libapache2-svn
50
51
51 Once installed you need to enable ``dav_svn`` on Ubuntu:
52 Once installed you need to enable ``dav_svn`` on Ubuntu:
52
53
53 .. code-block:: bash
54 .. code-block:: bash
54
55
55 $ sudo a2enmod dav_svn
56 $ sudo a2enmod dav_svn
56 $ sudo a2enmod headers
57 $ sudo a2enmod headers
57 $ sudo a2enmod authn_anon
58 $ sudo a2enmod authn_anon
58
59
59
60
60 Example installation of required components for RedHat/CentOS platform:
61 Example installation of required components for RedHat/CentOS platform:
61
62
62 .. code-block:: bash
63 .. code-block:: bash
63
64
64 $ sudo yum install httpd
65 $ sudo yum install httpd
65 $ sudo yum install subversion mod_dav_svn
66 $ sudo yum install subversion mod_dav_svn
66
67
67
68
68 Once installed you need to enable ``dav_svn`` on RedHat/CentOS:
69 Once installed you need to enable ``dav_svn`` on RedHat/CentOS:
69
70
70 .. code-block:: bash
71 .. code-block:: bash
71
72
72 sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
73 sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
73 ## The file should read:
74 ## The file should read:
74
75
75 LoadModule dav_svn_module modules/mod_dav_svn.so
76 LoadModule dav_svn_module modules/mod_dav_svn.so
76 LoadModule headers_module modules/mod_headers.so
77 LoadModule headers_module modules/mod_headers.so
77 LoadModule authn_anon_module modules/mod_authn_anon.so
78 LoadModule authn_anon_module modules/mod_authn_anon.so
78
79
80 .. tip::
81
82 To check the installed mod_dav_svn module version, you can use such command.
83
84 `strings /usr/lib/apache2/modules/mod_dav_svn.so | grep 'Powered by'`
85
79
86
80 Configuring Apache Setup
87 Configuring Apache Setup
81 ========================
88 ========================
82
89
83 .. tip::
90 .. tip::
84
91
85 It is recommended to run Apache on a port other than 80, due to possible
92 It is recommended to run Apache on a port other than 80, due to possible
86 conflicts with other HTTP servers like nginx. To do this, set the
93 conflicts with other HTTP servers like nginx. To do this, set the
87 ``Listen`` parameter in the ``/etc/apache2/ports.conf`` file, for example
94 ``Listen`` parameter in the ``/etc/apache2/ports.conf`` file, for example
88 ``Listen 8090``.
95 ``Listen 8090``.
89
96
90
97
91 .. warning::
98 .. warning::
92
99
93 Make sure your Apache instance which runs the mod_dav_svn module is
100 Make sure your Apache instance which runs the mod_dav_svn module is
94 only accessible by |RCE|. Otherwise everyone is able to browse
101 only accessible by |RCE|. Otherwise everyone is able to browse
95 the repositories or run subversion operations (checkout/commit/etc.).
102 the repositories or run subversion operations (checkout/commit/etc.).
96
103
97 It is also recommended to run apache as the same user as |RCE|, otherwise
104 It is also recommended to run apache as the same user as |RCE|, otherwise
98 permission issues could occur. To do this edit the ``/etc/apache2/envvars``
105 permission issues could occur. To do this edit the ``/etc/apache2/envvars``
99
106
100 .. code-block:: apache
107 .. code-block:: apache
101
108
102 export APACHE_RUN_USER=rhodecode
109 export APACHE_RUN_USER=rhodecode
103 export APACHE_RUN_GROUP=rhodecode
110 export APACHE_RUN_GROUP=rhodecode
104
111
105 1. To configure Apache, create and edit a virtual hosts file, for example
112 1. To configure Apache, create and edit a virtual hosts file, for example
106 :file:`/etc/apache2/sites-enabled/default.conf`. Below is an example
113 :file:`/etc/apache2/sites-enabled/default.conf`. Below is an example
107 how to use one with auto-generated config ```mod_dav_svn.conf```
114 how to use one with auto-generated config ```mod_dav_svn.conf```
108 from configured |RCE| instance.
115 from configured |RCE| instance.
109
116
110 .. code-block:: apache
117 .. code-block:: apache
111
118
112 <VirtualHost *:8090>
119 <VirtualHost *:8090>
113 ServerAdmin rhodecode-admin@localhost
120 ServerAdmin rhodecode-admin@localhost
114 DocumentRoot /var/www/html
121 DocumentRoot /var/www/html
115 ErrorLog ${'${APACHE_LOG_DIR}'}/error.log
122 ErrorLog ${'${APACHE_LOG_DIR}'}/error.log
116 CustomLog ${'${APACHE_LOG_DIR}'}/access.log combined
123 CustomLog ${'${APACHE_LOG_DIR}'}/access.log combined
117 LogLevel info
124 LogLevel info
118 # allows custom host names, prevents 400 errors on checkout
125 # allows custom host names, prevents 400 errors on checkout
119 HttpProtocolOptions Unsafe
126 HttpProtocolOptions Unsafe
120 Include /home/user/.rccontrol/enterprise-1/mod_dav_svn.conf
127 Include /home/user/.rccontrol/enterprise-1/mod_dav_svn.conf
121 </VirtualHost>
128 </VirtualHost>
122
129
123
130
124 2. Go to the :menuselection:`Admin --> Settings --> VCS` page, and
131 2. Go to the :menuselection:`Admin --> Settings --> VCS` page, and
125 enable :guilabel:`Proxy Subversion HTTP requests`, and specify the
132 enable :guilabel:`Proxy Subversion HTTP requests`, and specify the
126 :guilabel:`Subversion HTTP Server URL`.
133 :guilabel:`Subversion HTTP Server URL`.
127
134
128 3. Open the |RCE| configuration file,
135 3. Open the |RCE| configuration file,
129 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
136 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
130
137
131 4. Add the following configuration option in the ``[app:main]``
138 4. Add the following configuration option in the ``[app:main]``
132 section if you don't have it yet.
139 section if you don't have it yet.
133
140
134 This enables mapping of the created |RCE| repo groups into special
141 This enables mapping of the created |RCE| repo groups into special
135 |svn| paths. Each time a new repository group is created, the system will
142 |svn| paths. Each time a new repository group is created, the system will
136 update the template file and create new mapping. Apache web server needs to
143 update the template file and create new mapping. Apache web server needs to
137 be reloaded to pick up the changes on this file.
144 be reloaded to pick up the changes on this file.
138 To do this, simply configure `svn.proxy.reload_cmd` inside the .ini file.
145 To do this, simply configure `svn.proxy.reload_cmd` inside the .ini file.
139 Example configuration:
146 Example configuration:
140
147
141
148
142 .. code-block:: ini
149 .. code-block:: ini
143
150
144 ############################################################
151 ############################################################
145 ### Subversion proxy support (mod_dav_svn) ###
152 ### Subversion proxy support (mod_dav_svn) ###
146 ### Maps RhodeCode repo groups into SVN paths for Apache ###
153 ### Maps RhodeCode repo groups into SVN paths for Apache ###
147 ############################################################
154 ############################################################
148 ## Enable or disable the config file generation.
155 ## Enable or disable the config file generation.
149 svn.proxy.generate_config = true
156 svn.proxy.generate_config = true
150 ## Generate config file with `SVNListParentPath` set to `On`.
157 ## Generate config file with `SVNListParentPath` set to `On`.
151 svn.proxy.list_parent_path = true
158 svn.proxy.list_parent_path = true
152 ## Set location and file name of generated config file.
159 ## Set location and file name of generated config file.
153 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
160 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
154 ## Used as a prefix to the <Location> block in the generated config file.
161 ## Used as a prefix to the <Location> block in the generated config file.
155 ## In most cases it should be set to `/`.
162 ## In most cases it should be set to `/`.
156 svn.proxy.location_root = /
163 svn.proxy.location_root = /
157 ## Command to reload the mod dav svn configuration on change.
164 ## Command to reload the mod dav svn configuration on change.
158 ## Example: `/etc/init.d/apache2 reload`
165 ## Example: `/etc/init.d/apache2 reload`
159 svn.proxy.reload_cmd = /etc/init.d/apache2 reload
166 svn.proxy.reload_cmd = /etc/init.d/apache2 reload
160 ## If the timeout expires before the reload command finishes, the command will
167 ## If the timeout expires before the reload command finishes, the command will
161 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
168 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
162 #svn.proxy.reload_timeout = 10
169 #svn.proxy.reload_timeout = 10
163
170
164
171
165 This would create a special template file called ```mod_dav_svn.conf```. We
172 This would create a special template file called ```mod_dav_svn.conf```. We
166 used that file path in the apache config above inside the Include statement.
173 used that file path in the apache config above inside the Include statement.
167 It's also possible to manually generate the config from the
174 It's also possible to manually generate the config from the
168 :menuselection:`Admin --> Settings --> VCS` page by clicking a
175 :menuselection:`Admin --> Settings --> VCS` page by clicking a
169 `Generate Apache Config` button.
176 `Generate Apache Config` button.
170
177
171 5. Now only things left is to enable svn support, and generate the initial
178 5. Now only things left is to enable svn support, and generate the initial
172 configuration.
179 configuration.
173
180
174 - Select `Proxy subversion HTTP requests` checkbox
181 - Select `Proxy subversion HTTP requests` checkbox
175 - Enter http://localhost:8090 into `Subversion HTTP Server URL`
182 - Enter http://localhost:8090 into `Subversion HTTP Server URL`
176 - Click the `Generate Apache Config` button.
183 - Click the `Generate Apache Config` button.
177
184
178 This config will be automatically re-generated once an user-groups is added
185 This config will be automatically re-generated once an user-groups is added
179 to properly map the additional paths generated.
186 to properly map the additional paths generated.
180
187
181
188
182
189
183 Using |svn|
190 Using |svn|
184 ===========
191 ===========
185
192
186 Once |svn| has been enabled on your instance, you can use it with the
193 Once |svn| has been enabled on your instance, you can use it with the
187 following examples. For more |svn| information, see the `Subversion Red Book`_
194 following examples. For more |svn| information, see the `Subversion Red Book`_
188
195
189 .. code-block:: bash
196 .. code-block:: bash
190
197
191 # To clone a repository
198 # To clone a repository
192 svn checkout http://my-svn-server.example.com/my-svn-repo
199 svn checkout http://my-svn-server.example.com/my-svn-repo
193
200
194 # svn commit
201 # svn commit
195 svn commit
202 svn commit
196
203
197
204
198 .. _Subversion Red Book: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.svn
205 .. _Subversion Red Book: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.svn
199
206
200 .. _Ask Ubuntu: http://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue No newline at end of file
207 .. _Ask Ubuntu: http://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue
@@ -1,171 +1,171 b''
1 .. _system-overview-ref:
1 .. _system-overview-ref:
2
2
3 System Overview
3 System Overview
4 ===============
4 ===============
5
5
6 Latest Version
6 Latest Version
7 --------------
7 --------------
8
8
9 * |release| on Unix and Windows systems.
9 * |release| on Unix and Windows systems.
10
10
11 System Architecture
11 System Architecture
12 -------------------
12 -------------------
13
13
14 The following diagram shows a typical production architecture.
14 The following diagram shows a typical production architecture.
15
15
16 .. image:: ../images/architecture-diagram.png
16 .. image:: ../images/architecture-diagram.png
17 :align: center
17 :align: center
18
18
19 Supported Operating Systems
19 Supported Operating Systems
20 ---------------------------
20 ---------------------------
21
21
22 Linux
22 Linux
23 ^^^^^
23 ^^^^^
24
24
25 * Ubuntu 14.04
25 * Ubuntu 14.04
26 * CentOS 6.2 and 7
26 * CentOS 6.2 and 7
27 * Debian 7.8
27 * Debian 7.8
28 * RedHat Fedora
28 * RedHat Fedora
29 * Arch Linux
29 * Arch Linux
30 * SUSE Linux
30 * SUSE Linux
31
31
32 Windows
32 Windows
33 ^^^^^^^
33 ^^^^^^^
34
34
35 * Windows Vista Ultimate 64bit
35 * Windows Vista Ultimate 64bit
36 * Windows 7 Ultimate 64bit
36 * Windows 7 Ultimate 64bit
37 * Windows 8 Professional 64bit
37 * Windows 8 Professional 64bit
38 * Windows 8.1 Enterprise 64bit
38 * Windows 8.1 Enterprise 64bit
39 * Windows Server 2008 64bit
39 * Windows Server 2008 64bit
40 * Windows Server 2008-R2 64bit
40 * Windows Server 2008-R2 64bit
41 * Windows Server 2012 64bit
41 * Windows Server 2012 64bit
42
42
43 Supported Databases
43 Supported Databases
44 -------------------
44 -------------------
45
45
46 * SQLite
46 * SQLite
47 * MySQL
47 * MySQL
48 * MariaDB
48 * MariaDB
49 * PostgreSQL
49 * PostgreSQL
50
50
51 Supported Browsers
51 Supported Browsers
52 ------------------
52 ------------------
53
53
54 * Chrome
54 * Chrome
55 * Safari
55 * Safari
56 * Firefox
56 * Firefox
57 * Internet Explorer 10 & 11
57 * Internet Explorer 10 & 11
58
58
59 System Requirements
59 System Requirements
60 -------------------
60 -------------------
61
61
62 |RCM| performs best on machines with ultra-fast hard disks. Generally disk
62 |RCE| performs best on machines with ultra-fast hard disks. Generally disk
63 performance is more important than CPU performance. In a corporate production
63 performance is more important than CPU performance. In a corporate production
64 environment handling 1000s of users and |repos| you should deploy on a 12+
64 environment handling 1000s of users and |repos| you should deploy on a 12+
65 core 64GB RAM server. In short, the more RAM the better.
65 core 64GB RAM server. In short, the more RAM the better.
66
66
67
67
68 For example:
68 For example:
69
69
70 - for team of 1 - 5 active users you can run on 1GB RAM machine with 1CPU
70 - for team of 1 - 5 active users you can run on 1GB RAM machine with 1CPU
71 - above 250 active users, |RCM| needs at least 8GB of memory.
71 - above 250 active users, |RCE| needs at least 8GB of memory.
72 Number of CPUs is less important, but recommended to have at least 2-3 CPUs
72 Number of CPUs is less important, but recommended to have at least 2-3 CPUs
73
73
74
74
75 .. _config-rce-files:
75 .. _config-rce-files:
76
76
77 Configuration Files
77 Configuration Files
78 -------------------
78 -------------------
79
79
80 * :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
80 * :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
81 * :file:`/home/{user}/.rccontrol/{instance-id}/mapping.ini`
81 * :file:`/home/{user}/.rccontrol/{instance-id}/mapping.ini`
82 * :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini`
82 * :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini`
83 * :file:`/home/{user}/.rccontrol/supervisor/supervisord.ini`
83 * :file:`/home/{user}/.rccontrol/supervisor/supervisord.ini`
84 * :file:`/home/{user}/.rccontrol.ini`
84 * :file:`/home/{user}/.rccontrol.ini`
85 * :file:`/home/{user}/.rhoderc`
85 * :file:`/home/{user}/.rhoderc`
86 * :file:`/home/{user}/.rccontrol/cache/MANIFEST`
86 * :file:`/home/{user}/.rccontrol/cache/MANIFEST`
87
87
88 For more information, see the :ref:`config-files` section.
88 For more information, see the :ref:`config-files` section.
89
89
90 Log Files
90 Log Files
91 ---------
91 ---------
92
92
93 * :file:`/home/{user}/.rccontrol/{instance-id}/enterprise.log`
93 * :file:`/home/{user}/.rccontrol/{instance-id}/enterprise.log`
94 * :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.log`
94 * :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.log`
95 * :file:`/home/{user}/.rccontrol/supervisor/supervisord.log`
95 * :file:`/home/{user}/.rccontrol/supervisor/supervisord.log`
96 * :file:`/tmp/rccontrol.log`
96 * :file:`/tmp/rccontrol.log`
97 * :file:`/tmp/rhodecode_tools.log`
97 * :file:`/tmp/rhodecode_tools.log`
98
98
99 Storage Files
99 Storage Files
100 -------------
100 -------------
101
101
102 * :file:`/home/{user}/.rccontrol/{instance-id}/data/index/{index-file.toc}`
102 * :file:`/home/{user}/.rccontrol/{instance-id}/data/index/{index-file.toc}`
103 * :file:`/home/{user}/repos/.rc_gist_store`
103 * :file:`/home/{user}/repos/.rc_gist_store`
104 * :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.db`
104 * :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.db`
105 * :file:`/opt/rhodecode/store/{unique-hash}`
105 * :file:`/opt/rhodecode/store/{unique-hash}`
106
106
107 Default Repositories Location
107 Default Repositories Location
108 -----------------------------
108 -----------------------------
109
109
110 * :file:`/home/{user}/repos`
110 * :file:`/home/{user}/repos`
111
111
112 Connection Methods
112 Connection Methods
113 ------------------
113 ------------------
114
114
115 * HTTPS
115 * HTTPS
116 * SSH
116 * SSH
117 * |RCM| API
117 * |RCE| API
118
118
119 Internationalization Support
119 Internationalization Support
120 ----------------------------
120 ----------------------------
121
121
122 Currently available in the following languages, see `Transifex`_ for the
122 Currently available in the following languages, see `Transifex`_ for the
123 latest details. If you want a new language added, please contact us. To
123 latest details. If you want a new language added, please contact us. To
124 configure your language settings, see the :ref:`set-lang` section.
124 configure your language settings, see the :ref:`set-lang` section.
125
125
126 .. hlist::
126 .. hlist::
127
127
128 * Belorussian
128 * Belorussian
129 * Chinese
129 * Chinese
130 * French
130 * French
131 * German
131 * German
132 * Italian
132 * Italian
133 * Japanese
133 * Japanese
134 * Portuguese
134 * Portuguese
135 * Polish
135 * Polish
136 * Russian
136 * Russian
137 * Spanish
137 * Spanish
138
138
139 Licencing Information
139 Licencing Information
140 ---------------------
140 ---------------------
141
141
142 * See licencing information `here`_
142 * See licencing information `here`_
143
143
144 Peer-to-peer Failover Support
144 Peer-to-peer Failover Support
145 -----------------------------
145 -----------------------------
146
146
147 * Yes
147 * Yes
148
148
149 Additional Binaries
149 Additional Binaries
150 -------------------
150 -------------------
151
151
152 * Yes, see :ref:`rhodecode-nix-ref` for full details.
152 * Yes, see :ref:`rhodecode-nix-ref` for full details.
153
153
154 Remote Connectivity
154 Remote Connectivity
155 -------------------
155 -------------------
156
156
157 * Available
157 * Available
158
158
159 Executable Files
159 Executable Files
160 ----------------
160 ----------------
161
161
162 Windows: :file:`RhodeCode-installer-{version}.exe`
162 Windows: :file:`RhodeCode-installer-{version}.exe`
163
163
164 Deprecated Support
164 Deprecated Support
165 ------------------
165 ------------------
166
166
167 - Internet Explorer 8 support deprecated since version 3.7.0.
167 - Internet Explorer 8 support deprecated since version 3.7.0.
168 - Internet Explorer 9 support deprecated since version 3.8.0.
168 - Internet Explorer 9 support deprecated since version 3.8.0.
169
169
170 .. _here: https://rhodecode.com/licenses/
170 .. _here: https://rhodecode.com/licenses/
171 .. _Transifex: https://www.transifex.com/projects/p/RhodeCode/
171 .. _Transifex: https://www.transifex.com/projects/p/RhodeCode/
@@ -1,395 +1,395 b''
1 .. _scale-horizontal-cluster:
1 .. _scale-horizontal-cluster:
2
2
3
3
4 Scale Horizontally / RhodeCode Cluster
4 Scale Horizontally / RhodeCode Cluster
5 --------------------------------------
5 --------------------------------------
6
6
7 |RCE| is built in a way it support horizontal scaling across multiple machines.
7 |RCE| is built in a way it support horizontal scaling across multiple machines.
8 There are three main pre-requisites for that:
8 There are three main pre-requisites for that:
9
9
10 - Shared storage that each machine can access. Using NFS or other shared storage system.
10 - Shared storage that each machine can access. Using NFS or other shared storage system.
11 - Shared DB connection across machines. Using `MySQL`/`PostgreSQL` that each node can access.
11 - Shared DB connection across machines. Using `MySQL`/`PostgreSQL` that each node can access.
12 - |RCE| user sessions and caches need to use a shared storage (e.g `Redis`_/`Memcached`)
12 - |RCE| user sessions and caches need to use a shared storage (e.g `Redis`_/`Memcached`)
13
13
14
14
15 Horizontal scaling means adding more machines or workers into your pool of
15 Horizontal scaling means adding more machines or workers into your pool of
16 resources. Horizontally scaling |RCE| gives a huge performance increase,
16 resources. Horizontally scaling |RCE| gives a huge performance increase,
17 especially under large traffic scenarios with a high number of requests.
17 especially under large traffic scenarios with a high number of requests.
18 This is very beneficial when |RCE| is serving many users simultaneously,
18 This is very beneficial when |RCE| is serving many users simultaneously,
19 or if continuous integration servers are automatically pulling and pushing code.
19 or if continuous integration servers are automatically pulling and pushing code.
20 It also adds High-Availability to your running system.
20 It also adds High-Availability to your running system.
21
21
22
22
23 Cluster Overview
23 Cluster Overview
24 ^^^^^^^^^^^^^^^^
24 ^^^^^^^^^^^^^^^^
25
25
26 Below we'll present a configuration example that will use two separate nodes to serve
26 Below we'll present a configuration example that will use two separate nodes to serve
27 |RCE| in a load-balanced environment. The 3rd node will act as a shared storage/cache
27 |RCE| in a load-balanced environment. The 3rd node will act as a shared storage/cache
28 and handle load-balancing. In addition 3rd node will be used as shared database instance.
28 and handle load-balancing. In addition 3rd node will be used as shared database instance.
29
29
30 This setup can be used both in Docker based configuration or with individual
30 This setup can be used both in Docker based configuration or with individual
31 physical/virtual machines. Using the 3rd node for Storage/Redis/PostgreSQL/Nginx is
31 physical/virtual machines. Using the 3rd node for Storage/Redis/PostgreSQL/Nginx is
32 optional. All those components can be installed on one of the two nodes used for |RCE|.
32 optional. All those components can be installed on one of the two nodes used for |RCE|.
33 We'll use following naming for our nodes:
33 We'll use following naming for our nodes:
34
34
35 - `rc-node-1` (NFS, DB, Cache node)
35 - `rc-node-1` (NFS, DB, Cache node)
36 - `rc-node-2` (Worker node1)
36 - `rc-node-2` (Worker node1)
37 - `rc-node-3` (Worker node2)
37 - `rc-node-3` (Worker node2)
38
38
39 Our shares NFS storage in the example is located on `/home/rcdev/storage` and
39 Our shares NFS storage in the example is located on `/home/rcdev/storage` and
40 it's RW accessible on **each** node.
40 it's RW accessible on **each** node.
41
41
42 In this example we used certain recommended components, however many
42 In this example we used certain recommended components, however many
43 of those can be replaced by other, in case your organization already uses them, for example:
43 of those can be replaced by other, in case your organization already uses them, for example:
44
44
45 - `MySQL`/`PostgreSQL`: Aren't replaceable and are the two only supported databases.
45 - `MySQL`/`PostgreSQL`: Aren't replaceable and are the two only supported databases.
46 - `Nginx`_ on `rc-node-1` can be replaced by: `Hardware Load Balancer (F5)`, `Apache`_, `HA-Proxy` etc.
46 - `Nginx`_ on `rc-node-1` can be replaced by: `Hardware Load Balancer (F5)`, `Apache`_, `HA-Proxy` etc.
47 - `Nginx`_ on rc-node-2/3 acts as a reverse proxy and can be replaced by other HTTP server
47 - `Nginx`_ on rc-node-2/3 acts as a reverse proxy and can be replaced by other HTTP server
48 acting as reverse proxy such as `Apache`_.
48 acting as reverse proxy such as `Apache`_.
49 - `Redis`_ on `rc-node-1` can be replaced by: `Memcached`
49 - `Redis`_ on `rc-node-1` can be replaced by: `Memcached`
50
50
51
51
52 Here's an overview what components should be installed/setup on each server in our example:
52 Here's an overview what components should be installed/setup on each server in our example:
53
53
54 - **rc-node-1**:
54 - **rc-node-1**:
55
55
56 - main storage acting as NFS host.
56 - main storage acting as NFS host.
57 - `nginx` acting as a load-balancer.
57 - `nginx` acting as a load-balancer.
58 - `postgresql-server` used for database and sessions.
58 - `postgresql-server` used for database and sessions.
59 - `redis-server` used for storing shared caches.
59 - `redis-server` used for storing shared caches.
60 - optionally `rabbitmq-server` for `Celery` if used.
60 - optionally `rabbitmq-server` for `Celery` if used.
61 - optionally if `Celery` is used Enterprise/Community instance + VCSServer.
61 - optionally if `Celery` is used Enterprise/Community instance + VCSServer.
62 - optionally mailserver that can be shared by other instances.
62 - optionally mailserver that can be shared by other instances.
63 - optionally channelstream server to handle live communication for all instances.
63 - optionally channelstream server to handle live communication for all instances.
64
64
65
65
66 - **rc-node-2/3**:
66 - **rc-node-2/3**:
67
67
68 - `nginx` acting as a reverse proxy to handle requests to |RCE|.
68 - `nginx` acting as a reverse proxy to handle requests to |RCE|.
69 - 1x RhodeCode Enterprise/Community instance.
69 - 1x RhodeCode Enterprise/Community instance.
70 - 1x VCSServer instance.
70 - 1x VCSServer instance.
71 - optionally for testing connection: postgresql-client, redis-client (redis-tools).
71 - optionally for testing connection: postgresql-client, redis-client (redis-tools).
72
72
73
73
74 Before we start here are few assumptions that should be fulfilled:
74 Before we start here are few assumptions that should be fulfilled:
75
75
76 - make sure each node can access each other.
76 - make sure each node can access each other.
77 - make sure `Redis`_/`MySQL`/`PostgreSQL`/`RabbitMQ`_ are running on `rc-node-1`
77 - make sure `Redis`_/`MySQL`/`PostgreSQL`/`RabbitMQ`_ are running on `rc-node-1`
78 - make sure both `rc-node-2`/`3` can access NFS storage with RW access
78 - make sure both `rc-node-2`/`3` can access NFS storage with RW access
79 - make sure rc-node-2/3 can access `Redis`_/`PostgreSQL`, `MySQL` database on `rc-node-1`.
79 - make sure rc-node-2/3 can access `Redis`_/`PostgreSQL`, `MySQL` database on `rc-node-1`.
80 - make sure `Redis`_/Database/`RabbitMQ`_ are password protected and accessible only from rc-node-2/3.
80 - make sure `Redis`_/Database/`RabbitMQ`_ are password protected and accessible only from rc-node-2/3.
81
81
82
82
83
83
84 Setup rc-node-2/3
84 Setup rc-node-2/3
85 ^^^^^^^^^^^^^^^^^
85 ^^^^^^^^^^^^^^^^^
86
86
87 Initially before `rc-node-1` we'll configure both nodes 2 and 3 to operate as standalone
87 Initially before `rc-node-1` we'll configure both nodes 2 and 3 to operate as standalone
88 nodes with their own hostnames. Use a default installation settings, and use
88 nodes with their own hostnames. Use a default installation settings, and use
89 the default local addresses (127.0.0.1) to configure VCSServer and Community/Enterprise instances.
89 the default local addresses (127.0.0.1) to configure VCSServer and Community/Enterprise instances.
90 All external connectivity will be handled by the reverse proxy (`Nginx`_ in our example).
90 All external connectivity will be handled by the reverse proxy (`Nginx`_ in our example).
91
91
92 This way we can ensure each individual host works,
92 This way we can ensure each individual host works,
93 accepts connections, or do some operations explicitly on chosen node.
93 accepts connections, or do some operations explicitly on chosen node.
94
94
95 In addition this would allow use to explicitly direct certain traffic to a node, e.g
95 In addition this would allow use to explicitly direct certain traffic to a node, e.g
96 CI server will only call directly `rc-node-3`. This should be done similar to normal
96 CI server will only call directly `rc-node-3`. This should be done similar to normal
97 installation so check out `Nginx`_/`Apache`_ configuration example to configure each host.
97 installation so check out `Nginx`_/`Apache`_ configuration example to configure each host.
98 Each one should already connect to shared database during installation.
98 Each one should already connect to shared database during installation.
99
99
100
100
101 1) Assuming our final url will be http://rc-node-1, Configure `instances_id`, `app.base_url`
101 1) Assuming our final url will be http://rc-node-1, Configure `instances_id`, `app.base_url`
102
102
103 a) On **rc-node-2** find the following settings and edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
103 a) On **rc-node-2** find the following settings and edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
104
104
105 .. code-block:: ini
105 .. code-block:: ini
106
106
107 ## required format is: *NAME-
107 ## required format is: *NAME-
108 instance_id = *rc-node-2-
108 instance_id = *rc-node-2-
109 app.base_url = http://rc-node-1
109 app.base_url = http://rc-node-1
110
110
111
111
112 b) On **rc-node-3** find the following settings and edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
112 b) On **rc-node-3** find the following settings and edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
113
113
114 .. code-block:: ini
114 .. code-block:: ini
115
115
116 ## required format is: *NAME-
116 ## required format is: *NAME-
117 instance_id = *rc-node-3-
117 instance_id = *rc-node-3-
118 app.base_url = http://rc-node-1
118 app.base_url = http://rc-node-1
119
119
120
120
121
121
122 2) Configure `User Session` to use a shared database. Example config that should be
122 2) Configure `User Session` to use a shared database. Example config that should be
123 changed on both **rc-node-2** and **rc-node-3** .
123 changed on both **rc-node-2** and **rc-node-3** .
124 Edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
124 Edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
125
125
126 .. code-block:: ini
126 .. code-block:: ini
127
127
128 ####################################
128 ####################################
129 ### BEAKER SESSION ####
129 ### BEAKER SESSION ####
130 ####################################
130 ####################################
131
131
132 ## Disable the default `file` sessions
132 ## Disable the default `file` sessions
133 #beaker.session.type = file
133 #beaker.session.type = file
134 #beaker.session.data_dir = %(here)s/data/sessions
134 #beaker.session.data_dir = %(here)s/data/sessions
135
135
136 ## use shared db based session, fast, and allows easy management over logged in users
136 ## use shared db based session, fast, and allows easy management over logged in users
137 beaker.session.type = ext:database
137 beaker.session.type = ext:database
138 beaker.session.table_name = db_session
138 beaker.session.table_name = db_session
139 # use our rc-node-1 here
139 # use our rc-node-1 here
140 beaker.session.sa.url = postgresql://postgres:qweqwe@rc-node-1/rhodecode
140 beaker.session.sa.url = postgresql://postgres:qweqwe@rc-node-1/rhodecode
141 beaker.session.sa.pool_recycle = 3600
141 beaker.session.sa.pool_recycle = 3600
142 beaker.session.sa.echo = false
142 beaker.session.sa.echo = false
143
143
144 In addition make sure both instances use the same `session.secret` so users have
144 In addition make sure both instances use the same `session.secret` so users have
145 persistent sessions across nodes. Please generate other one then in this example.
145 persistent sessions across nodes. Please generate other one then in this example.
146
146
147 .. code-block:: ini
147 .. code-block:: ini
148
148
149 # use an unique generated long string
149 # use a unique generated long string
150 beaker.session.secret = 70e116cae2274656ba7265fd860aebbd
150 beaker.session.secret = 70e116cae2274656ba7265fd860aebbd
151
151
152 3) Configure stored cached/archive cache to our shared NFS `rc-node-1`
152 3) Configure stored cached/archive cache to our shared NFS `rc-node-1`
153
153
154 .. code-block:: ini
154 .. code-block:: ini
155
155
156 # note the `_` prefix that allows using a directory without
156 # note the `_` prefix that allows using a directory without
157 # remap and rescan checking for vcs inside it.
157 # remap and rescan checking for vcs inside it.
158 cache_dir = /home/rcdev/storage/_cache_dir/data
158 cache_dir = /home/rcdev/storage/_cache_dir/data
159 # note archive cache dir is disabled by default, however if you enable
159 # note archive cache dir is disabled by default, however if you enable
160 # it also needs to be shared
160 # it also needs to be shared
161 #archive_cache_dir = /home/rcdev/storage/_tarball_cache_dir
161 #archive_cache_dir = /home/rcdev/storage/_tarball_cache_dir
162
162
163
163
164 4) Use shared exception store. Example config that should be
164 4) Use shared exception store. Example config that should be
165 changed on both **rc-node-2** and **rc-node-3**, and also for VCSServer.
165 changed on both **rc-node-2** and **rc-node-3**, and also for VCSServer.
166 Edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` and
166 Edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` and
167 :file:`/home/{user}/.rccontrol/{vcsserver-instance-id}/vcsserver.ini`
167 :file:`/home/{user}/.rccontrol/{vcsserver-instance-id}/vcsserver.ini`
168 and add/change following setting.
168 and add/change following setting.
169
169
170 .. code-block:: ini
170 .. code-block:: ini
171
171
172 exception_tracker.store_path = /home/rcdev/storage/_exception_store_data
172 exception_tracker.store_path = /home/rcdev/storage/_exception_store_data
173
173
174
174
175 5) Change cache backends to use `Redis`_ based caches. Below full example config
175 5) Change cache backends to use `Redis`_ based caches. Below full example config
176 that replaces default file-based cache to shared `Redis`_ with Distributed Lock.
176 that replaces default file-based cache to shared `Redis`_ with Distributed Lock.
177
177
178
178
179 .. code-block:: ini
179 .. code-block:: ini
180
180
181 #####################################
181 #####################################
182 ### DOGPILE CACHE ####
182 ### DOGPILE CACHE ####
183 #####################################
183 #####################################
184
184
185 ## `cache_perms` cache settings for permission tree, auth TTL.
185 ## `cache_perms` cache settings for permission tree, auth TTL.
186 #rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
186 #rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
187 #rc_cache.cache_perms.expiration_time = 300
187 #rc_cache.cache_perms.expiration_time = 300
188
188
189 ## alternative `cache_perms` redis backend with distributed lock
189 ## alternative `cache_perms` redis backend with distributed lock
190 rc_cache.cache_perms.backend = dogpile.cache.rc.redis
190 rc_cache.cache_perms.backend = dogpile.cache.rc.redis
191 rc_cache.cache_perms.expiration_time = 300
191 rc_cache.cache_perms.expiration_time = 300
192 ## redis_expiration_time needs to be greater then expiration_time
192 ## redis_expiration_time needs to be greater then expiration_time
193 rc_cache.cache_perms.arguments.redis_expiration_time = 7200
193 rc_cache.cache_perms.arguments.redis_expiration_time = 7200
194 rc_cache.cache_perms.arguments.socket_timeout = 30
194 rc_cache.cache_perms.arguments.socket_timeout = 30
195 rc_cache.cache_perms.arguments.host = rc-node-1
195 rc_cache.cache_perms.arguments.host = rc-node-1
196 rc_cache.cache_perms.arguments.password = qweqwe
196 rc_cache.cache_perms.arguments.password = qweqwe
197 rc_cache.cache_perms.arguments.port = 6379
197 rc_cache.cache_perms.arguments.port = 6379
198 rc_cache.cache_perms.arguments.db = 0
198 rc_cache.cache_perms.arguments.db = 0
199 rc_cache.cache_perms.arguments.distributed_lock = true
199 rc_cache.cache_perms.arguments.distributed_lock = true
200
200
201 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
201 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
202 #rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
202 #rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
203 #rc_cache.cache_repo.expiration_time = 2592000
203 #rc_cache.cache_repo.expiration_time = 2592000
204
204
205 ## alternative `cache_repo` redis backend with distributed lock
205 ## alternative `cache_repo` redis backend with distributed lock
206 rc_cache.cache_repo.backend = dogpile.cache.rc.redis
206 rc_cache.cache_repo.backend = dogpile.cache.rc.redis
207 rc_cache.cache_repo.expiration_time = 2592000
207 rc_cache.cache_repo.expiration_time = 2592000
208 ## redis_expiration_time needs to be greater then expiration_time
208 ## redis_expiration_time needs to be greater then expiration_time
209 rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
209 rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
210 rc_cache.cache_repo.arguments.socket_timeout = 30
210 rc_cache.cache_repo.arguments.socket_timeout = 30
211 rc_cache.cache_repo.arguments.host = rc-node-1
211 rc_cache.cache_repo.arguments.host = rc-node-1
212 rc_cache.cache_repo.arguments.password = qweqwe
212 rc_cache.cache_repo.arguments.password = qweqwe
213 rc_cache.cache_repo.arguments.port = 6379
213 rc_cache.cache_repo.arguments.port = 6379
214 rc_cache.cache_repo.arguments.db = 1
214 rc_cache.cache_repo.arguments.db = 1
215 rc_cache.cache_repo.arguments.distributed_lock = true
215 rc_cache.cache_repo.arguments.distributed_lock = true
216
216
217 ## cache settings for SQL queries, this needs to use memory type backend
217 ## cache settings for SQL queries, this needs to use memory type backend
218 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
218 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
219 rc_cache.sql_cache_short.expiration_time = 30
219 rc_cache.sql_cache_short.expiration_time = 30
220
220
221 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
221 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
222 ## type backend as the objects kept are not pickle serializable
222 ## type backend as the objects kept are not pickle serializable
223 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
223 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
224 ## by default we use 96H, this is using invalidation on push anyway
224 ## by default we use 96H, this is using invalidation on push anyway
225 rc_cache.cache_repo_longterm.expiration_time = 345600
225 rc_cache.cache_repo_longterm.expiration_time = 345600
226 ## max items in LRU cache, reduce this number to save memory, and expire last used
226 ## max items in LRU cache, reduce this number to save memory, and expire last used
227 ## cached objects
227 ## cached objects
228 rc_cache.cache_repo_longterm.max_size = 10000
228 rc_cache.cache_repo_longterm.max_size = 10000
229
229
230
230
231 6) Configure `Nginx`_ as reverse proxy on `rc-node-2/3`:
231 6) Configure `Nginx`_ as reverse proxy on `rc-node-2/3`:
232 Minimal `Nginx`_ config used:
232 Minimal `Nginx`_ config used:
233
233
234
234
235 .. code-block:: nginx
235 .. code-block:: nginx
236
236
237 ## rate limiter for certain pages to prevent brute force attacks
237 ## rate limiter for certain pages to prevent brute force attacks
238 limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;
238 limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;
239
239
240 ## custom log format
240 ## custom log format
241 log_format log_custom '$remote_addr - $remote_user [$time_local] '
241 log_format log_custom '$remote_addr - $remote_user [$time_local] '
242 '"$request" $status $body_bytes_sent '
242 '"$request" $status $body_bytes_sent '
243 '"$http_referer" "$http_user_agent" '
243 '"$http_referer" "$http_user_agent" '
244 '$request_time $upstream_response_time $pipe';
244 '$request_time $upstream_response_time $pipe';
245
245
246 server {
246 server {
247 listen 80;
247 listen 80;
248 server_name rc-node-2;
248 server_name rc-node-2;
249 #server_name rc-node-3;
249 #server_name rc-node-3;
250
250
251 access_log /var/log/nginx/rhodecode.access.log log_custom;
251 access_log /var/log/nginx/rhodecode.access.log log_custom;
252 error_log /var/log/nginx/rhodecode.error.log;
252 error_log /var/log/nginx/rhodecode.error.log;
253
253
254 # example of proxy.conf can be found in our docs.
254 # example of proxy.conf can be found in our docs.
255 include /etc/nginx/proxy.conf;
255 include /etc/nginx/proxy.conf;
256
256
257 ## serve static files by Nginx, recommended for performance
257 ## serve static files by Nginx, recommended for performance
258 location /_static/rhodecode {
258 location /_static/rhodecode {
259 gzip on;
259 gzip on;
260 gzip_min_length 500;
260 gzip_min_length 500;
261 gzip_proxied any;
261 gzip_proxied any;
262 gzip_comp_level 4;
262 gzip_comp_level 4;
263 gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
263 gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
264 gzip_vary on;
264 gzip_vary on;
265 gzip_disable "msie6";
265 gzip_disable "msie6";
266 #alias /home/rcdev/.rccontrol/community-1/static;
266 #alias /home/rcdev/.rccontrol/community-1/static;
267 alias /home/rcdev/.rccontrol/enterprise-1/static;
267 alias /home/rcdev/.rccontrol/enterprise-1/static;
268 }
268 }
269
269
270
270
271 location /_admin/login {
271 location /_admin/login {
272 limit_req zone=req_limit burst=10 nodelay;
272 limit_req zone=req_limit burst=10 nodelay;
273 try_files $uri @rhode;
273 try_files $uri @rhode;
274 }
274 }
275
275
276 location / {
276 location / {
277 try_files $uri @rhode;
277 try_files $uri @rhode;
278 }
278 }
279
279
280 location @rhode {
280 location @rhode {
281 # Url to running RhodeCode instance.
281 # Url to running RhodeCode instance.
282 # This is shown as `- URL: <host>` in output from rccontrol status.
282 # This is shown as `- URL: <host>` in output from rccontrol status.
283 proxy_pass http://127.0.0.1:10020;
283 proxy_pass http://127.0.0.1:10020;
284 }
284 }
285
285
286 ## custom 502 error page. Will be displayed while RhodeCode server
286 ## custom 502 error page. Will be displayed while RhodeCode server
287 ## is turned off
287 ## is turned off
288 error_page 502 /502.html;
288 error_page 502 /502.html;
289 location = /502.html {
289 location = /502.html {
290 #root /home/rcdev/.rccontrol/community-1/static;
290 #root /home/rcdev/.rccontrol/community-1/static;
291 root /home/rcdev/.rccontrol/enterprise-1/static;
291 root /home/rcdev/.rccontrol/enterprise-1/static;
292 }
292 }
293 }
293 }
294
294
295
295
296 7) Optional: Full text search, in case you use `Whoosh` full text search we also need a
296 7) Optional: Full text search, in case you use `Whoosh` full text search we also need a
297 shared storage for the index. In our example our NFS is mounted at `/home/rcdev/storage`
297 shared storage for the index. In our example our NFS is mounted at `/home/rcdev/storage`
298 which represents out storage so we can use the following:
298 which represents out storage so we can use the following:
299
299
300 .. code-block:: ini
300 .. code-block:: ini
301
301
302 # note the `_` prefix that allows using a directory without
302 # note the `_` prefix that allows using a directory without
303 # remap and rescan checking for vcs inside it.
303 # remap and rescan checking for vcs inside it.
304 search.location = /home/rcdev/storage/_index_data/index
304 search.location = /home/rcdev/storage/_index_data/index
305
305
306
306
307 .. note::
307 .. note::
308
308
309 If you use ElasticSearch it's by default shared, and simply running ES node is
309 If you use ElasticSearch it's by default shared, and simply running ES node is
310 by default cluster compatible.
310 by default cluster compatible.
311
311
312
312
313 8) Optional: If you intend to use mailing all instances need to use either a shared
313 8) Optional: If you intend to use mailing all instances need to use either a shared
314 mailing node, or each will use individual local mail agent. Simply put node-1/2/3
314 mailing node, or each will use individual local mail agent. Simply put node-1/2/3
315 needs to use same mailing configuration.
315 needs to use same mailing configuration.
316
316
317
317
318
318
319 Setup rc-node-1
319 Setup rc-node-1
320 ^^^^^^^^^^^^^^^
320 ^^^^^^^^^^^^^^^
321
321
322
322
323 Configure `Nginx`_ as Load Balancer to rc-node-2/3.
323 Configure `Nginx`_ as Load Balancer to rc-node-2/3.
324 Minimal `Nginx`_ example below:
324 Minimal `Nginx`_ example below:
325
325
326 .. code-block:: nginx
326 .. code-block:: nginx
327
327
328 ## define rc-cluster which contains a pool of our instances to connect to
328 ## define rc-cluster which contains a pool of our instances to connect to
329 upstream rc-cluster {
329 upstream rc-cluster {
330 # rc-node-2/3 are stored in /etc/hosts with correct IP addresses
330 # rc-node-2/3 are stored in /etc/hosts with correct IP addresses
331 server rc-node-2:80;
331 server rc-node-2:80;
332 server rc-node-3:80;
332 server rc-node-3:80;
333 }
333 }
334
334
335 server {
335 server {
336 listen 80;
336 listen 80;
337 server_name rc-node-1;
337 server_name rc-node-1;
338
338
339 location / {
339 location / {
340 proxy_pass http://rc-cluster;
340 proxy_pass http://rc-cluster;
341 }
341 }
342 }
342 }
343
343
344
344
345 .. note::
345 .. note::
346
346
347 You should configure your load balancing accordingly. We recommend writing
347 You should configure your load balancing accordingly. We recommend writing
348 load balancing rules that will separate regular user traffic from
348 load balancing rules that will separate regular user traffic from
349 automated process traffic like continuous servers or build bots. Sticky sessions
349 automated process traffic like continuous servers or build bots. Sticky sessions
350 are not required.
350 are not required.
351
351
352
352
353 Show which instance handles a request
353 Show which instance handles a request
354 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
354 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
355
355
356 You can easily check if load-balancing is working as expected. Visit our main node
356 You can easily check if load-balancing is working as expected. Visit our main node
357 `rc-node-1` URL which at that point should already handle incoming requests and balance
357 `rc-node-1` URL which at that point should already handle incoming requests and balance
358 it across node-2/3.
358 it across node-2/3.
359
359
360 Add a special GET param `?showrcid=1` to show current instance handling your request.
360 Add a special GET param `?showrcid=1` to show current instance handling your request.
361
361
362 For example: visiting url `http://rc-node-1/?showrcid=1` will show, in the bottom
362 For example: visiting url `http://rc-node-1/?showrcid=1` will show, in the bottom
363 of the screen` cluster instance info.
363 of the screen` cluster instance info.
364 e.g: `RhodeCode instance id: rc-node-3-rc-node-3-3246`
364 e.g: `RhodeCode instance id: rc-node-3-rc-node-3-3246`
365 which is generated from::
365 which is generated from::
366
366
367 <NODE_HOSTNAME>-<INSTANCE_ID>-<WORKER_PID>
367 <NODE_HOSTNAME>-<INSTANCE_ID>-<WORKER_PID>
368
368
369
369
370 Using Celery with cluster
370 Using Celery with cluster
371 ^^^^^^^^^^^^^^^^^^^^^^^^^
371 ^^^^^^^^^^^^^^^^^^^^^^^^^
372
372
373
373
374 If `Celery` is used we recommend setting also an instance of Enterprise/Community+VCSserver
374 If `Celery` is used we recommend setting also an instance of Enterprise/Community+VCSserver
375 on the node that is running `RabbitMQ`_. Those instances will be used to executed async
375 on the node that is running `RabbitMQ`_. Those instances will be used to executed async
376 tasks on the `rc-node-1`. This is the most efficient setup. `Celery` usually
376 tasks on the `rc-node-1`. This is the most efficient setup. `Celery` usually
377 handles tasks such as sending emails, forking repositories, importing
377 handles tasks such as sending emails, forking repositories, importing
378 repositories from external location etc. Using workers on instance that has
378 repositories from external location etc. Using workers on instance that has
379 the direct access to disks used by NFS as well as email server gives noticeable
379 the direct access to disks used by NFS as well as email server gives noticeable
380 performance boost. Running local workers to the NFS storage results in faster
380 performance boost. Running local workers to the NFS storage results in faster
381 execution of forking large repositories or sending lots of emails.
381 execution of forking large repositories or sending lots of emails.
382
382
383 Those instances need to be configured in the same way as for other nodes.
383 Those instances need to be configured in the same way as for other nodes.
384 The instance in rc-node-1 can be added to the cluser, but we don't recommend doing it.
384 The instance in rc-node-1 can be added to the cluser, but we don't recommend doing it.
385 For best results let it be isolated to only executing `Celery` tasks in the cluster setup.
385 For best results let it be isolated to only executing `Celery` tasks in the cluster setup.
386
386
387
387
388 .. _Gunicorn: http://gunicorn.org/
388 .. _Gunicorn: http://gunicorn.org/
389 .. _Whoosh: https://pypi.python.org/pypi/Whoosh/
389 .. _Whoosh: https://pypi.python.org/pypi/Whoosh/
390 .. _Elasticsearch: https://www.elastic.co/..
390 .. _Elasticsearch: https://www.elastic.co/..
391 .. _RabbitMQ: http://www.rabbitmq.com/
391 .. _RabbitMQ: http://www.rabbitmq.com/
392 .. _Nginx: http://nginx.io
392 .. _Nginx: http://nginx.io
393 .. _Apache: http://nginx.io
393 .. _Apache: http://nginx.io
394 .. _Redis: http://redis.io
394 .. _Redis: http://redis.io
395
395
@@ -1,23 +1,23 b''
1 .. _user-admin-set:
1 .. _user-admin-set:
2
2
3 User Administration
3 User Administration
4 ===================
4 ===================
5
5
6 |RCM| enables you to define permissions for the following entities within the
6 |RCE| enables you to define permissions for the following entities within the
7 system; **users**, **user groups**, **repositories**, **repository groups**.
7 system; **users**, **user groups**, **repositories**, **repository groups**.
8
8
9 Within each one of these entities you can set default settings,
9 Within each one of these entities you can set default settings,
10 and then all users or |repos| inherit those default permission settings
10 and then all users or |repos| inherit those default permission settings
11 unless individually defined. Each of these entities can have the following
11 unless individually defined. Each of these entities can have the following
12 permissions applied to it; |perm|.
12 permissions applied to it; |perm|.
13
13
14 .. toctree::
14 .. toctree::
15
15
16 public-access
16 public-access
17 default-user-perms
17 default-user-perms
18 adding-anonymous-user
18 adding-anonymous-user
19 adding-new-user
19 adding-new-user
20 setting-default-permissions
20 setting-default-permissions
21 setting-usergroup-permissions
21 setting-usergroup-permissions
22
22
23 .. |perm| replace:: **None**, **Read**, **Write**, or **Admin** No newline at end of file
23 .. |perm| replace:: **None**, **Read**, **Write**, or **Admin**
@@ -1,324 +1,324 b''
1 .. _vcs-server:
1 .. _vcs-server:
2
2
3 VCS Server Management
3 VCS Server Management
4 ---------------------
4 ---------------------
5
5
6 The VCS Server handles |RCM| backend functionality. You need to configure
6 The VCS Server handles |RCE| backend functionality. You need to configure
7 a VCS Server to run with a |RCM| instance. If you do not, you will be missing
7 a VCS Server to run with a |RCE| instance. If you do not, you will be missing
8 the connection between |RCM| and its |repos|. This will cause error messages
8 the connection between |RCE| and its |repos|. This will cause error messages
9 on the web interface. You can run your setup in the following configurations,
9 on the web interface. You can run your setup in the following configurations,
10 currently the best performance is one of following:
10 currently the best performance is one of following:
11
11
12 * One VCS Server per |RCM| instance.
12 * One VCS Server per |RCE| instance.
13 * One VCS Server handling multiple instances.
13 * One VCS Server handling multiple instances.
14
14
15 .. important::
15 .. important::
16
16
17 If your server locale settings are not correctly configured,
17 If your server locale settings are not correctly configured,
18 |RCE| and the VCS Server can run into issues. See this `Ask Ubuntu`_ post
18 |RCE| and the VCS Server can run into issues. See this `Ask Ubuntu`_ post
19 which explains the problem and gives a solution.
19 which explains the problem and gives a solution.
20
20
21 For more information, see the following sections:
21 For more information, see the following sections:
22
22
23 * :ref:`install-vcs`
23 * :ref:`install-vcs`
24 * :ref:`config-vcs`
24 * :ref:`config-vcs`
25 * :ref:`vcs-server-options`
25 * :ref:`vcs-server-options`
26 * :ref:`vcs-server-versions`
26 * :ref:`vcs-server-versions`
27 * :ref:`vcs-server-maintain`
27 * :ref:`vcs-server-maintain`
28 * :ref:`vcs-server-config-file`
28 * :ref:`vcs-server-config-file`
29 * :ref:`svn-http`
29 * :ref:`svn-http`
30
30
31 .. _install-vcs:
31 .. _install-vcs:
32
32
33 VCS Server Installation
33 VCS Server Installation
34 ^^^^^^^^^^^^^^^^^^^^^^^
34 ^^^^^^^^^^^^^^^^^^^^^^^
35
35
36 To install a VCS Server, see
36 To install a VCS Server, see
37 :ref:`Installing a VCS server <control:install-vcsserver>`.
37 :ref:`Installing a VCS server <control:install-vcsserver>`.
38
38
39 .. _config-vcs:
39 .. _config-vcs:
40
40
41 Hooking |RCE| to its VCS Server
41 Hooking |RCE| to its VCS Server
42 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
43
43
44 To configure a |RCE| instance to use a VCS server, see
44 To configure a |RCE| instance to use a VCS server, see
45 :ref:`Configuring the VCS Server connection <control:manually-vcsserver-ini>`.
45 :ref:`Configuring the VCS Server connection <control:manually-vcsserver-ini>`.
46
46
47 .. _vcs-server-options:
47 .. _vcs-server-options:
48
48
49 |RCE| VCS Server Options
49 |RCE| VCS Server Options
50 ^^^^^^^^^^^^^^^^^^^^^^^^
50 ^^^^^^^^^^^^^^^^^^^^^^^^
51
51
52 The following list shows the available options on the |RCM| side of the
52 The following list shows the available options on the |RCE| side of the
53 connection to the VCS Server. The settings are configured per
53 connection to the VCS Server. The settings are configured per
54 instance in the
54 instance in the
55 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
55 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
56
56
57 .. rst-class:: dl-horizontal
57 .. rst-class:: dl-horizontal
58
58
59 \vcs.backends <available-vcs-systems>
59 \vcs.backends <available-vcs-systems>
60 Set a comma-separated list of the |repo| options available from the
60 Set a comma-separated list of the |repo| options available from the
61 web interface. The default is ``hg, git, svn``,
61 web interface. The default is ``hg, git, svn``,
62 which is all |repo| types available. The order of backends is also the
62 which is all |repo| types available. The order of backends is also the
63 order backend will try to detect requests type.
63 order backend will try to detect requests type.
64
64
65 \vcs.connection_timeout <seconds>
65 \vcs.connection_timeout <seconds>
66 Set the length of time in seconds that the VCS Server waits for
66 Set the length of time in seconds that the VCS Server waits for
67 requests to process. After the timeout expires,
67 requests to process. After the timeout expires,
68 the request is closed. The default is ``3600``. Set to a higher
68 the request is closed. The default is ``3600``. Set to a higher
69 number if you experience network latency, or timeout issues with very
69 number if you experience network latency, or timeout issues with very
70 large push/pull requests.
70 large push/pull requests.
71
71
72 \vcs.server.enable <boolean>
72 \vcs.server.enable <boolean>
73 Enable or disable the VCS Server. The available options are ``true`` or
73 Enable or disable the VCS Server. The available options are ``true`` or
74 ``false``. The default is ``true``.
74 ``false``. The default is ``true``.
75
75
76 \vcs.server <host:port>
76 \vcs.server <host:port>
77 Set the host, either hostname or IP Address, and port of the VCS server
77 Set the host, either hostname or IP Address, and port of the VCS server
78 you wish to run with your |RCM| instance.
78 you wish to run with your |RCE| instance.
79
79
80 .. code-block:: ini
80 .. code-block:: ini
81
81
82 ##################
82 ##################
83 ### VCS CONFIG ###
83 ### VCS CONFIG ###
84 ##################
84 ##################
85 # set this line to match your VCS Server
85 # set this line to match your VCS Server
86 vcs.server = 127.0.0.1:10004
86 vcs.server = 127.0.0.1:10004
87 # Set to False to disable the VCS Server
87 # Set to False to disable the VCS Server
88 vcs.server.enable = True
88 vcs.server.enable = True
89 vcs.backends = hg, git, svn
89 vcs.backends = hg, git, svn
90 vcs.connection_timeout = 3600
90 vcs.connection_timeout = 3600
91
91
92
92
93 .. _vcs-server-versions:
93 .. _vcs-server-versions:
94
94
95 VCS Server Versions
95 VCS Server Versions
96 ^^^^^^^^^^^^^^^^^^^
96 ^^^^^^^^^^^^^^^^^^^
97
97
98 An updated version of the VCS Server is released with each |RCE| version. Use
98 An updated version of the VCS Server is released with each |RCE| version. Use
99 the VCS Server number that matches with the |RCE| version to pair the
99 the VCS Server number that matches with the |RCE| version to pair the
100 appropriate ones together. For |RCE| versions pre 3.3.0,
100 appropriate ones together. For |RCE| versions pre 3.3.0,
101 VCS Server 1.X.Y works with |RCE| 3.X.Y, for example:
101 VCS Server 1.X.Y works with |RCE| 3.X.Y, for example:
102
102
103 * VCS Server 1.0.0 works with |RCE| 3.0.0
103 * VCS Server 1.0.0 works with |RCE| 3.0.0
104 * VCS Server 1.2.2 works with |RCE| 3.2.2
104 * VCS Server 1.2.2 works with |RCE| 3.2.2
105
105
106 For |RCE| versions post 3.3.0, the VCS Server and |RCE| version numbers
106 For |RCE| versions post 3.3.0, the VCS Server and |RCE| version numbers
107 match, for example:
107 match, for example:
108
108
109 * VCS Server |release| works with |RCE| |release|
109 * VCS Server |release| works with |RCE| |release|
110
110
111 .. _vcs-server-maintain:
111 .. _vcs-server-maintain:
112
112
113 VCS Server Memory Optimization
113 VCS Server Memory Optimization
114 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
114 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
115
115
116 To optimize the VCS server to manage the cache and memory usage efficiently, you need to
116 To optimize the VCS server to manage the cache and memory usage efficiently, you need to
117 configure the following options in the
117 configure the following options in the
118 :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini` file. Once
118 :file:`/home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini` file. Once
119 configured, restart the VCS Server. By default we use an optimal settings, but in certain
119 configured, restart the VCS Server. By default we use an optimal settings, but in certain
120 conditions tunning expiration_time and max_size can affect memory usage and performance
120 conditions tunning expiration_time and max_size can affect memory usage and performance
121
121
122 .. code-block:: ini
122 .. code-block:: ini
123
123
124 ## cache region for storing repo_objects cache
124 ## cache region for storing repo_objects cache
125 rc_cache.repo_object.backend = dogpile.cache.rc.memory_lru
125 rc_cache.repo_object.backend = dogpile.cache.rc.memory_lru
126
126
127 ## cache auto-expires after N seconds, setting this to 0 disabled cache
127 ## cache auto-expires after N seconds, setting this to 0 disabled cache
128 rc_cache.repo_object.expiration_time = 300
128 rc_cache.repo_object.expiration_time = 300
129
129
130 ## max size of LRU, old values will be discarded if the size of cache reaches max_size
130 ## max size of LRU, old values will be discarded if the size of cache reaches max_size
131 ## Sets the maximum number of items stored in the cache, before the cache
131 ## Sets the maximum number of items stored in the cache, before the cache
132 ## starts to be cleared.
132 ## starts to be cleared.
133
133
134 ## As a general rule of thumb, running this value at 120 resulted in a
134 ## As a general rule of thumb, running this value at 120 resulted in a
135 ## 5GB cache. Running it at 240 resulted in a 9GB cache. Your results
135 ## 5GB cache. Running it at 240 resulted in a 9GB cache. Your results
136 ## will differ based on usage patterns and |repo| sizes.
136 ## will differ based on usage patterns and |repo| sizes.
137
137
138 ## Tweaking this value to run at a fairly constant memory load on your
138 ## Tweaking this value to run at a fairly constant memory load on your
139 ## server will help performance.
139 ## server will help performance.
140
140
141 rc_cache.repo_object.max_size = 120
141 rc_cache.repo_object.max_size = 120
142
142
143
143
144 To clear the cache completely, you can restart the VCS Server.
144 To clear the cache completely, you can restart the VCS Server.
145
145
146 .. important::
146 .. important::
147
147
148 While the VCS Server handles a restart gracefully on the web interface,
148 While the VCS Server handles a restart gracefully on the web interface,
149 it will drop connections during push/pull requests. So it is recommended
149 it will drop connections during push/pull requests. So it is recommended
150 you only perform this when there is very little traffic on the instance.
150 you only perform this when there is very little traffic on the instance.
151
151
152 Use the following example to restart your VCS Server,
152 Use the following example to restart your VCS Server,
153 for full details see the :ref:`RhodeCode Control CLI <control:rcc-cli>`.
153 for full details see the :ref:`RhodeCode Control CLI <control:rcc-cli>`.
154
154
155 .. code-block:: bash
155 .. code-block:: bash
156
156
157 $ rccontrol status
157 $ rccontrol status
158
158
159 .. code-block:: vim
159 .. code-block:: vim
160
160
161 - NAME: vcsserver-1
161 - NAME: vcsserver-1
162 - STATUS: RUNNING
162 - STATUS: RUNNING
163 logs:/home/ubuntu/.rccontrol/vcsserver-1/vcsserver.log
163 logs:/home/ubuntu/.rccontrol/vcsserver-1/vcsserver.log
164 - VERSION: 4.7.2 VCSServer
164 - VERSION: 4.7.2 VCSServer
165 - URL: http://127.0.0.1:10008
165 - URL: http://127.0.0.1:10008
166 - CONFIG: /home/ubuntu/.rccontrol/vcsserver-1/vcsserver.ini
166 - CONFIG: /home/ubuntu/.rccontrol/vcsserver-1/vcsserver.ini
167
167
168 $ rccontrol restart vcsserver-1
168 $ rccontrol restart vcsserver-1
169 Instance "vcsserver-1" successfully stopped.
169 Instance "vcsserver-1" successfully stopped.
170 Instance "vcsserver-1" successfully started.
170 Instance "vcsserver-1" successfully started.
171
171
172 .. _vcs-server-config-file:
172 .. _vcs-server-config-file:
173
173
174 VCS Server Configuration
174 VCS Server Configuration
175 ^^^^^^^^^^^^^^^^^^^^^^^^
175 ^^^^^^^^^^^^^^^^^^^^^^^^
176
176
177 You can configure settings for multiple VCS Servers on your
177 You can configure settings for multiple VCS Servers on your
178 system using their individual configuration files. Use the following
178 system using their individual configuration files. Use the following
179 properties inside the configuration file to set up your system. The default
179 properties inside the configuration file to set up your system. The default
180 location is :file:`home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini`.
180 location is :file:`home/{user}/.rccontrol/{vcsserver-id}/vcsserver.ini`.
181 For a more detailed explanation of the logger levers, see :ref:`debug-mode`.
181 For a more detailed explanation of the logger levers, see :ref:`debug-mode`.
182
182
183 .. rst-class:: dl-horizontal
183 .. rst-class:: dl-horizontal
184
184
185 \host <ip-address>
185 \host <ip-address>
186 Set the host on which the VCS Server will run. VCSServer is not
186 Set the host on which the VCS Server will run. VCSServer is not
187 protected by any authentication, so we *highly* recommend running it
187 protected by any authentication, so we *highly* recommend running it
188 under localhost ip that is `127.0.0.1`
188 under localhost ip that is `127.0.0.1`
189
189
190 \port <int>
190 \port <int>
191 Set the port number on which the VCS Server will be available.
191 Set the port number on which the VCS Server will be available.
192
192
193 \locale <locale_utf>
193 \locale <locale_utf>
194 Set the locale the VCS Server expects.
194 Set the locale the VCS Server expects.
195
195
196 \workers <int>
196 \workers <int>
197 Set the number of process workers.Recommended
197 Set the number of process workers.Recommended
198 value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
198 value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
199
199
200 \max_requests <int>
200 \max_requests <int>
201 The maximum number of requests a worker will process before restarting.
201 The maximum number of requests a worker will process before restarting.
202 Any value greater than zero will limit the number of requests a work
202 Any value greater than zero will limit the number of requests a work
203 will process before automatically restarting. This is a simple method
203 will process before automatically restarting. This is a simple method
204 to help limit the damage of memory leaks.
204 to help limit the damage of memory leaks.
205
205
206 \max_requests_jitter <int>
206 \max_requests_jitter <int>
207 The maximum jitter to add to the max_requests setting.
207 The maximum jitter to add to the max_requests setting.
208 The jitter causes the restart per worker to be randomized by
208 The jitter causes the restart per worker to be randomized by
209 randint(0, max_requests_jitter). This is intended to stagger worker
209 randint(0, max_requests_jitter). This is intended to stagger worker
210 restarts to avoid all workers restarting at the same time.
210 restarts to avoid all workers restarting at the same time.
211
211
212
212
213 .. note::
213 .. note::
214
214
215 After making changes, you need to restart your VCS Server to pick them up.
215 After making changes, you need to restart your VCS Server to pick them up.
216
216
217 .. code-block:: ini
217 .. code-block:: ini
218
218
219 ################################################################################
219 ################################################################################
220 # RhodeCode VCSServer with HTTP Backend - configuration #
220 # RhodeCode VCSServer with HTTP Backend - configuration #
221 # #
221 # #
222 ################################################################################
222 ################################################################################
223
223
224
224
225 [server:main]
225 [server:main]
226 ## COMMON ##
226 ## COMMON ##
227 host = 127.0.0.1
227 host = 127.0.0.1
228 port = 10002
228 port = 10002
229
229
230 ##########################
230 ##########################
231 ## GUNICORN WSGI SERVER ##
231 ## GUNICORN WSGI SERVER ##
232 ##########################
232 ##########################
233 ## run with gunicorn --log-config vcsserver.ini --paste vcsserver.ini
233 ## run with gunicorn --log-config vcsserver.ini --paste vcsserver.ini
234 use = egg:gunicorn#main
234 use = egg:gunicorn#main
235 ## Sets the number of process workers. Recommended
235 ## Sets the number of process workers. Recommended
236 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
236 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
237 workers = 3
237 workers = 3
238 ## process name
238 ## process name
239 proc_name = rhodecode_vcsserver
239 proc_name = rhodecode_vcsserver
240 ## type of worker class, one of sync, gevent
240 ## type of worker class, one of sync, gevent
241 ## recommended for bigger setup is using of of other than sync one
241 ## recommended for bigger setup is using of of other than sync one
242 worker_class = sync
242 worker_class = sync
243 ## The maximum number of simultaneous clients. Valid only for Gevent
243 ## The maximum number of simultaneous clients. Valid only for Gevent
244 #worker_connections = 10
244 #worker_connections = 10
245 ## max number of requests that worker will handle before being gracefully
245 ## max number of requests that worker will handle before being gracefully
246 ## restarted, could prevent memory leaks
246 ## restarted, could prevent memory leaks
247 max_requests = 1000
247 max_requests = 1000
248 max_requests_jitter = 30
248 max_requests_jitter = 30
249 ## amount of time a worker can spend with handling a request before it
249 ## amount of time a worker can spend with handling a request before it
250 ## gets killed and restarted. Set to 6hrs
250 ## gets killed and restarted. Set to 6hrs
251 timeout = 21600
251 timeout = 21600
252
252
253 [app:main]
253 [app:main]
254 use = egg:rhodecode-vcsserver
254 use = egg:rhodecode-vcsserver
255
255
256 pyramid.default_locale_name = en
256 pyramid.default_locale_name = en
257 pyramid.includes =
257 pyramid.includes =
258
258
259 ## default locale used by VCS systems
259 ## default locale used by VCS systems
260 locale = en_US.UTF-8
260 locale = en_US.UTF-8
261
261
262 # cache regions, please don't change
262 # cache regions, please don't change
263 beaker.cache.regions = repo_object
263 beaker.cache.regions = repo_object
264 beaker.cache.repo_object.type = memorylru
264 beaker.cache.repo_object.type = memorylru
265 beaker.cache.repo_object.max_items = 100
265 beaker.cache.repo_object.max_items = 100
266 # cache auto-expires after N seconds
266 # cache auto-expires after N seconds
267 beaker.cache.repo_object.expire = 300
267 beaker.cache.repo_object.expire = 300
268 beaker.cache.repo_object.enabled = true
268 beaker.cache.repo_object.enabled = true
269
269
270
270
271 ################################
271 ################################
272 ### LOGGING CONFIGURATION ####
272 ### LOGGING CONFIGURATION ####
273 ################################
273 ################################
274 [loggers]
274 [loggers]
275 keys = root, vcsserver, beaker
275 keys = root, vcsserver, beaker
276
276
277 [handlers]
277 [handlers]
278 keys = console
278 keys = console
279
279
280 [formatters]
280 [formatters]
281 keys = generic
281 keys = generic
282
282
283 #############
283 #############
284 ## LOGGERS ##
284 ## LOGGERS ##
285 #############
285 #############
286 [logger_root]
286 [logger_root]
287 level = NOTSET
287 level = NOTSET
288 handlers = console
288 handlers = console
289
289
290 [logger_vcsserver]
290 [logger_vcsserver]
291 level = DEBUG
291 level = DEBUG
292 handlers =
292 handlers =
293 qualname = vcsserver
293 qualname = vcsserver
294 propagate = 1
294 propagate = 1
295
295
296 [logger_beaker]
296 [logger_beaker]
297 level = DEBUG
297 level = DEBUG
298 handlers =
298 handlers =
299 qualname = beaker
299 qualname = beaker
300 propagate = 1
300 propagate = 1
301
301
302
302
303 ##############
303 ##############
304 ## HANDLERS ##
304 ## HANDLERS ##
305 ##############
305 ##############
306
306
307 [handler_console]
307 [handler_console]
308 class = StreamHandler
308 class = StreamHandler
309 args = (sys.stderr,)
309 args = (sys.stderr,)
310 level = DEBUG
310 level = DEBUG
311 formatter = generic
311 formatter = generic
312
312
313 ################
313 ################
314 ## FORMATTERS ##
314 ## FORMATTERS ##
315 ################
315 ################
316
316
317 [formatter_generic]
317 [formatter_generic]
318 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
318 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
319 datefmt = %Y-%m-%d %H:%M:%S
319 datefmt = %Y-%m-%d %H:%M:%S
320
320
321
321
322 .. _Subversion Red Book: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.svn
322 .. _Subversion Red Book: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.svn
323
323
324 .. _Ask Ubuntu: http://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue
324 .. _Ask Ubuntu: http://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue
@@ -1,208 +1,208 b''
1 .. _api:
1 .. _api:
2
2
3 API Documentation
3 API Documentation
4 =================
4 =================
5
5
6 The |RCE| API uses a single scheme for calling all API methods. The API is
6 The |RCE| API uses a single scheme for calling all API methods. The API is
7 implemented with JSON protocol in both directions. To send API requests to
7 implemented with JSON protocol in both directions. To send API requests to
8 your instance of |RCE|, use the following URL format
8 your instance of |RCE|, use the following URL format
9 ``<your_server>/_admin``
9 ``<your_server>/_admin``
10
10
11 .. note::
11 .. note::
12
12
13 To use the API, you should configure the :file:`~/.rhoderc` file with
13 To use the API, you should configure the :file:`~/.rhoderc` file with
14 access details per instance. For more information, see
14 access details per instance. For more information, see
15 :ref:`config-rhoderc`.
15 :ref:`config-rhoderc`.
16
16
17
17
18 API ACCESS FOR WEB VIEWS
18 API ACCESS FOR WEB VIEWS
19 ------------------------
19 ------------------------
20
20
21 API access can also be turned on for each web view in |RCE| that is
21 API access can also be turned on for each web view in |RCE| that is
22 decorated with a `@LoginRequired` decorator. To enable API access, change
22 decorated with a `@LoginRequired` decorator. To enable API access, change
23 the standard login decorator to `@LoginRequired(api_access=True)`.
23 the standard login decorator to `@LoginRequired(api_access=True)`.
24
24
25 From |RCM| version 1.7.0 you can configure a white list
25 From |RCE| version 1.7.0 you can configure a white list
26 of views that have API access enabled by default. To enable these,
26 of views that have API access enabled by default. To enable these,
27 edit the |RCM| configuration ``.ini`` file. The default location is:
27 edit the |RCE| configuration ``.ini`` file. The default location is:
28
28
29 * |RCM| Pre-2.2.7 :file:`root/rhodecode/data/production.ini`
29 * |RCE| Pre-2.2.7 :file:`root/rhodecode/data/production.ini`
30 * |RCM| 3.0 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
30 * |RCE| 3.0 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
31
31
32 To configure the white list, edit this section of the file. In this
32 To configure the white list, edit this section of the file. In this
33 configuration example, API access is granted to the patch/diff raw file and
33 configuration example, API access is granted to the patch/diff raw file and
34 archive.
34 archive.
35
35
36 .. code-block:: ini
36 .. code-block:: ini
37
37
38 ## List of controllers (using glob syntax) that AUTH TOKENS could be used for access.
38 ## List of controllers (using glob syntax) that AUTH TOKENS could be used for access.
39 ## Adding ?auth_token = <token> to the url authenticates this request as if it
39 ## Adding ?auth_token = <token> to the url authenticates this request as if it
40 ## came from the the logged in user who own this authentication token.
40 ## came from the the logged in user who own this authentication token.
41 ##
41 ##
42 ## Syntax is <ControllerClass>:<function_pattern>.
42 ## Syntax is <ControllerClass>:<function_pattern>.
43 ## The list should be "," separated and on a single line.
43 ## The list should be "," separated and on a single line.
44 ##
44 ##
45 api_access_controllers_whitelist = RepoCommitsView:repo_commit_raw,RepoCommitsView:repo_commit_patch,RepoCommitsView:repo_commit_download
45 api_access_controllers_whitelist = RepoCommitsView:repo_commit_raw,RepoCommitsView:repo_commit_patch,RepoCommitsView:repo_commit_download
46
46
47 After this change, a |RCE| view can be accessed without login by adding a
47 After this change, a |RCE| view can be accessed without login by adding a
48 GET parameter ``?auth_token=<auth_token>`` to a url. For example to
48 GET parameter ``?auth_token=<auth_token>`` to a url. For example to
49 access the raw diff.
49 access the raw diff.
50
50
51 .. code-block:: html
51 .. code-block:: html
52
52
53 http://<server>/<repo>/changeset-diff/<sha>?auth_token=<auth_token>
53 http://<server>/<repo>/changeset-diff/<sha>?auth_token=<auth_token>
54
54
55 By default this is only enabled on RSS/ATOM feed views. Exposing raw diffs is a
55 By default this is only enabled on RSS/ATOM feed views. Exposing raw diffs is a
56 good way to integrate with 3rd party services like code review, or build farms
56 good way to integrate with 3rd party services like code review, or build farms
57 that could download archives.
57 that could download archives.
58
58
59 API ACCESS
59 API ACCESS
60 ----------
60 ----------
61
61
62 All clients are required to send JSON-RPC spec JSON data.
62 All clients are required to send JSON-RPC spec JSON data.
63
63
64 .. code-block:: bash
64 .. code-block:: bash
65
65
66 {
66 {
67 "id:"<id>",
67 "id:"<id>",
68 "auth_token":"<auth_token>",
68 "auth_token":"<auth_token>",
69 "method":"<method_name>",
69 "method":"<method_name>",
70 "args":{"<arg_key>":"<arg_val>"}
70 "args":{"<arg_key>":"<arg_val>"}
71 }
71 }
72
72
73 Example call for auto pulling from remote repositories using curl:
73 Example call for auto pulling from remote repositories using curl:
74
74
75 .. code-block:: bash
75 .. code-block:: bash
76
76
77 curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"id":1,
77 curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"id":1,
78 "auth_token":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull", "args":{"repoid":"CPython"}}'
78 "auth_token":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull", "args":{"repoid":"CPython"}}'
79
79
80 Provide those parameters:
80 Provide those parameters:
81 - **id** A value of any type, which is used to match the response with the
81 - **id** A value of any type, which is used to match the response with the
82 request that it is replying to.
82 request that it is replying to.
83 - **auth_token** for access and permission validation.
83 - **auth_token** for access and permission validation.
84 - **method** is name of method to call
84 - **method** is name of method to call
85 - **args** is an ``key:value`` list of arguments to pass to method
85 - **args** is an ``key:value`` list of arguments to pass to method
86
86
87 .. note::
87 .. note::
88
88
89 To get your |authtoken|, from the |RCE| interface,
89 To get your |authtoken|, from the |RCE| interface,
90 go to:
90 go to:
91 :menuselection:`username --> My account --> Auth tokens`
91 :menuselection:`username --> My account --> Auth tokens`
92
92
93 For security reasons you should always create a dedicated |authtoken| for
93 For security reasons you should always create a dedicated |authtoken| for
94 API use only.
94 API use only.
95
95
96
96
97 The |RCE| API will always return a JSON-RPC response:
97 The |RCE| API will always return a JSON-RPC response:
98
98
99 .. code-block:: bash
99 .. code-block:: bash
100
100
101 {
101 {
102 "id": <id>, # matching id sent by request
102 "id": <id>, # matching id sent by request
103 "result": "<result>"|null, # JSON formatted result, null if any errors
103 "result": "<result>"|null, # JSON formatted result, null if any errors
104 "error": "null"|<error_message> # JSON formatted error (if any)
104 "error": "null"|<error_message> # JSON formatted error (if any)
105 }
105 }
106
106
107 All responses from API will be with `HTTP/1.0 200 OK` status code.
107 All responses from API will be with `HTTP/1.0 200 OK` status code.
108 If there is an error when calling the API, the *error* key will contain a
108 If there is an error when calling the API, the *error* key will contain a
109 failure description and the *result* will be `null`.
109 failure description and the *result* will be `null`.
110
110
111 API CLIENT
111 API CLIENT
112 ----------
112 ----------
113
113
114 To install the |RCE| API, see :ref:`install-tools`. To configure the API per
114 To install the |RCE| API, see :ref:`install-tools`. To configure the API per
115 instance, see the :ref:`rc-tools` section as you need to configure a
115 instance, see the :ref:`rc-tools` section as you need to configure a
116 :file:`~/.rhoderc` file with your |authtokens|.
116 :file:`~/.rhoderc` file with your |authtokens|.
117
117
118 Once you have set up your instance API access, use the following examples to
118 Once you have set up your instance API access, use the following examples to
119 get started.
119 get started.
120
120
121 .. code-block:: bash
121 .. code-block:: bash
122
122
123 # Getting the 'rhodecode' repository
123 # Getting the 'rhodecode' repository
124 # from a RhodeCode Enterprise instance
124 # from a RhodeCode Enterprise instance
125 rhodecode-api --instance-name=enterprise-1 get_repo repoid:rhodecode
125 rhodecode-api --instance-name=enterprise-1 get_repo repoid:rhodecode
126
126
127 Calling method get_repo => http://127.0.0.1:5000
127 Calling method get_repo => http://127.0.0.1:5000
128 Server response
128 Server response
129 {
129 {
130 <json data>
130 <json data>
131 }
131 }
132
132
133 # Creating a new mercurial repository called 'brand-new'
133 # Creating a new mercurial repository called 'brand-new'
134 # with a description 'Repo-description'
134 # with a description 'Repo-description'
135 rhodecode-api --instance-name=enterprise-1 create_repo repo_name:brand-new repo_type:hg description:Repo-description
135 rhodecode-api --instance-name=enterprise-1 create_repo repo_name:brand-new repo_type:hg description:Repo-description
136 {
136 {
137 "error": null,
137 "error": null,
138 "id": 1110,
138 "id": 1110,
139 "result": {
139 "result": {
140 "msg": "Created new repository `brand-new`",
140 "msg": "Created new repository `brand-new`",
141 "success": true,
141 "success": true,
142 "task": null
142 "task": null
143 }
143 }
144 }
144 }
145
145
146 A broken example, what not to do.
146 A broken example, what not to do.
147
147
148 .. code-block:: bash
148 .. code-block:: bash
149
149
150 # A call missing the required arguments
150 # A call missing the required arguments
151 # and not specifying the instance
151 # and not specifying the instance
152 rhodecode-api get_repo
152 rhodecode-api get_repo
153
153
154 Calling method get_repo => http://127.0.0.1:5000
154 Calling method get_repo => http://127.0.0.1:5000
155 Server response
155 Server response
156 "Missing non optional `repoid` arg in JSON DATA"
156 "Missing non optional `repoid` arg in JSON DATA"
157
157
158 You can specify pure JSON using the ``--format`` parameter.
158 You can specify pure JSON using the ``--format`` parameter.
159
159
160 .. code-block:: bash
160 .. code-block:: bash
161
161
162 rhodecode-api --format=json get_repo repoid:rhodecode
162 rhodecode-api --format=json get_repo repoid:rhodecode
163
163
164 In such case only output that this function shows is pure JSON, we can use that
164 In such case only output that this function shows is pure JSON, we can use that
165 and pipe output to some json formatter.
165 and pipe output to some json formatter.
166
166
167 If output is in pure JSON format, you can pipe output to a JSON formatter.
167 If output is in pure JSON format, you can pipe output to a JSON formatter.
168
168
169 .. code-block:: bash
169 .. code-block:: bash
170
170
171 rhodecode-api --instance-name=enterprise-1 --format=json get_repo repoid:rhodecode | python -m json.tool
171 rhodecode-api --instance-name=enterprise-1 --format=json get_repo repoid:rhodecode | python -m json.tool
172
172
173 API METHODS
173 API METHODS
174 -----------
174 -----------
175
175
176 Each method by default required following arguments.
176 Each method by default required following arguments.
177
177
178 .. code-block:: bash
178 .. code-block:: bash
179
179
180 id : "<id_for_response>"
180 id : "<id_for_response>"
181 auth_token : "<auth_token>"
181 auth_token : "<auth_token>"
182 method : "<method name>"
182 method : "<method name>"
183 args : {}
183 args : {}
184
184
185 Use each **param** from docs and put it in args, Optional parameters
185 Use each **param** from docs and put it in args, Optional parameters
186 are not required in args.
186 are not required in args.
187
187
188 .. code-block:: bash
188 .. code-block:: bash
189
189
190 args: {"repoid": "rhodecode"}
190 args: {"repoid": "rhodecode"}
191
191
192 .. Note: From this point on things are generated by the script in
192 .. Note: From this point on things are generated by the script in
193 `scripts/fabfile.py`. To change things below, update the docstrings in the
193 `scripts/fabfile.py`. To change things below, update the docstrings in the
194 ApiController.
194 ApiController.
195
195
196 .. --- API DEFS MARKER ---
196 .. --- API DEFS MARKER ---
197 .. toctree::
197 .. toctree::
198
198
199 methods/views
199 methods/views
200 methods/license-methods
200 methods/license-methods
201 methods/deprecated-methods
201 methods/deprecated-methods
202 methods/gist-methods
202 methods/gist-methods
203 methods/pull-request-methods
203 methods/pull-request-methods
204 methods/repo-methods
204 methods/repo-methods
205 methods/repo-group-methods
205 methods/repo-group-methods
206 methods/server-methods
206 methods/server-methods
207 methods/user-methods
207 methods/user-methods
208 methods/user-group-methods
208 methods/user-group-methods
@@ -1,15 +1,15 b''
1 .. _config-crowd-ref:
1 .. _config-crowd-ref:
2
2
3 Crowd
3 Crowd
4 -----
4 -----
5
5
6 To enable Crowd authentication, use the following steps:
6 To enable Crowd authentication, use the following steps:
7
7
8 1. From the |RCM| interface, go to :menuselection:`Admin --> Authentication`
8 1. From the |RCE| interface, go to :menuselection:`Admin --> Authentication`
9 2. Enable the ``rhodecode.lib.auth_modules.auth_crowd`` library and select
9 2. Activate the ``rhodecode.lib.auth_modules.auth_crowd`` library and select
10 :guilabel:`Save`
10 :guilabel:`Save`
11 3. On the Crowd plugin settings section, do the following:
11 3. On the Crowd plugin settings section, do the following:
12
12
13 * Check the :guilabel:`Enable` checkbox
13 * Check the :guilabel:`Enable` checkbox
14 * Enter your Crowd server settings
14 * Enter your Crowd server settings
15 * Select :guilabel:`Save`
15 * Select :guilabel:`Save`
@@ -1,112 +1,160 b''
1 .. _config-ldap-groups-ref:
1 .. _config-ldap-groups-ref:
2
2
3 LDAP/AD With User Groups Sync
3 LDAP/AD With User Groups Sync
4 -----------------------------
4 -----------------------------
5
5
6 |RCM| supports LDAP (Lightweight Directory Access Protocol) or
6 **This plugin is available only in EE Edition.**
7
8 |RCE| supports LDAP (Lightweight Directory Access Protocol) or
7 AD (active Directory) authentication.
9 AD (active Directory) authentication.
8 All LDAP versions are supported, with the following |RCM| plugins managing each:
10 All LDAP versions are currently supported.
9
10 * For LDAP/AD with user group sync use ``LDAP + User Groups (egg:rhodecode-enterprise-ee#ldap_group)``
11
11
12 RhodeCode reads all data defined from plugin and creates corresponding
12 RhodeCode reads all data defined from plugin and creates corresponding
13 accounts on local database after receiving data from LDAP. This is done on
13 accounts on local database after receiving data from LDAP. This is done on
14 every user log-in including operations like pushing/pulling/checkout.
14 every user log-in including operations like pushing/pulling/checkout.
15 In addition group membership is read from LDAP and following operations are done:
15 In addition group membership is read from LDAP and following operations are done:
16
16
17 - automatic addition of user to |RCM| user group
17 - automatic addition of user to |RCE| user group
18 - automatic removal of user from any other |RCM| user groups not specified in LDAP.
18 - automatic removal of user from any other |RCE| user groups not specified in LDAP.
19 The removal is done *only* on groups that are marked to be synced from ldap.
19 The removal is done *only* on groups that are marked to be synced from ldap.
20 This setting can be changed in advanced settings on user groups
20 This setting can be changed in advanced settings on user groups
21 - automatic creation of user groups if they aren't yet existing in |RCM|
21 - automatic creation of user groups if they aren't yet existing in |RCE|
22 - marking user as super-admins if he is a member of any admin group defined in plugin settings
22 - marking user as super-admins if he is a member of any admin group defined in plugin settings
23
23
24 This plugin is available only in EE Edition.
25
24
26 .. important::
25 .. important::
27
26
28 The email used with your |RCE| super-admin account needs to match the email
27 The email used with your |RCE| super-admin account needs to match the email
29 address attached to your admin profile in LDAP. This is because
28 address attached to your admin profile in LDAP. This is because
30 within |RCE| the user email needs to be unique, and multiple users
29 within |RCE| the user email needs to be unique, and multiple users
31 cannot share an email account.
30 cannot share an email account.
32
31
33 Likewise, if as an admin you also have a user account, the email address
32 Likewise, if as an admin you also have a user account, the email address
34 attached to the user account needs to be different.
33 attached to the user account needs to be different.
35
34
36
35
37 LDAP Configuration Steps
36 LDAP Configuration Steps
38 ^^^^^^^^^^^^^^^^^^^^^^^^
37 ^^^^^^^^^^^^^^^^^^^^^^^^
39
38
40 To configure |LDAP|, use the following steps:
39 To configure |LDAP|, use the following steps:
41
40
42 1. From the |RCM| interface, select
41 1. From the |RCE| interface, select
43 :menuselection:`Admin --> Authentication`
42 :menuselection:`Admin --> Authentication`
44 2. Enable the ldap+ groups plugin and select :guilabel:`Save`
43 2. Activate the `LDAP + User Groups` plugin and select :guilabel:`Save`
45 3. Select the :guilabel:`Enabled` check box in the plugin configuration section
44 3. Go to newly available menu option called `LDAP + User Groups` on the left side.
46 4. Add the required LDAP information and :guilabel:`Save`, for more details,
45 4. Check the `enabled` check box in the plugin configuration section,
46 and fill in the required LDAP information and :guilabel:`Save`, for more details,
47 see :ref:`config-ldap-groups-examples`
47 see :ref:`config-ldap-groups-examples`
48
48
49 For a more detailed description of LDAP objects, see :ref:`ldap-gloss-ref`:
49 For a more detailed description of LDAP objects, see :ref:`ldap-gloss-ref`:
50
50
51 .. _config-ldap-groups-examples:
51 .. _config-ldap-groups-examples:
52
52
53 Example LDAP configuration
53 Example LDAP configuration
54 ^^^^^^^^^^^^^^^^^^^^^^^^^^
54 ^^^^^^^^^^^^^^^^^^^^^^^^^^
55 .. code-block:: bash
55
56 Below is example setup that can be used with Active Directory and LDAP server with groups sync::
57
58 *option*: `enabled` => `True`
59 # Enable or disable this authentication plugin.
60
61 *option*: `cache_ttl` => `360`
62 # Amount of seconds to cache the authentication and permissions check response call for this plugin.
63 # Useful for expensive calls like LDAP to improve the performance of the system (0 means disabled).
64
65 *option*: `host` => `192.168.245.143,192.168.1.240`
66 # Host[s] of the LDAP Server
67 # (e.g., 192.168.2.154, or ldap-server.domain.com.
68 # Multiple servers can be specified using commas
69
70 *option*: `port` => `389`
71 # Custom port that the LDAP server is listening on. Default value is: 389, use 689 for LDAPS(SSL)
72
73 *option*: `timeout` => `300`
74 # Timeout for LDAP connection
75
76 *option*: `dn_user` => `Administrator@rhodecode.com`
77 # Optional user DN/account to connect to LDAP if authentication is required.
78 # e.g., cn=admin,dc=mydomain,dc=com, or uid=root,cn=users,dc=mydomain,dc=com, or admin@mydomain.com
79
80 *option*: `dn_pass` => `SomeSecret`
81 # Password to authenticate for given user DN.
82
83 *option*: `tls_kind` => `PLAIN`
84 # TLS Type
85
86 *option*: `tls_reqcert` => `NEVER`
87 # Require Cert over TLS?. Self-signed and custom certificates can be used when
88 # `RhodeCode Certificate` found in admin > settings > system info page is extended.
89
90 *option*: `tls_cert_file` => ``
91 # This specifies the PEM-format file path containing certificates for use in TLS connection.
92 # If not specified `TLS Cert dir` will be used
93
94 *option*: `tls_cert_dir` => `/etc/openldap/cacerts`
95 # This specifies the path of a directory that contains individual CA certificates in separate files.
96
97 *option*: `base_dn` => `dc=rhodecode,dc=com`
98 # Base DN to search. Dynamic bind is supported. Add `$login` marker in it to be replaced with current user credentials
99 # (e.g., dc=mydomain,dc=com, or ou=Users,dc=mydomain,dc=com)
100
101 *option*: `user_search_base` => `ou=RC-Users`
102 # User search base will extend the Base DN
103 # (e.g., ou=Users will result in ou=Users,dc=mydomain,dc=com root DN)
56
104
57 # Auth Cache TTL, Defines the caching for authentication to offload LDAP server.
105 *option*: `user_search_filter` => ``
58 # This means that cache result will be saved for 3600 before contacting LDAP server to verify the user access
106 # Filter to narrow results
59 3600
107 # (e.g., (&(objectCategory=Person)(objectClass=user)), or
60 # Host, comma seperated format is optionally possible to specify more than 1 server
108 # (memberof=cn=rc-login,ou=groups,ou=company,dc=mydomain,dc=com)))
61 https://ldap1.server.com/ldap-admin/,https://ldap2.server.com/ldap-admin/
109
62 # Default LDAP Port, use 689 for LDAPS
110 *option*: `search_scope` => `SUBTREE`
63 389
111 # How deep to search LDAP. If unsure set to SUBTREE
64 # Account, used for SimpleBind if LDAP server requires an authentication
112
65 e.g admin@server.com
113 *option*: `attr_login` => `sAMAccountName`
66 # Password used for simple bind
114 # LDAP Attribute to map to user name (e.g., uid, or sAMAccountName)
67 ldap-user-password
115
68 # LDAP connection security
116 *option*: `attr_email` => `mail`
69 LDAPS
117 # LDAP Attribute to map to email address (e.g., mail).
70 # Certificate checks level
118 # Emails are a crucial part of RhodeCode.
71 DEMAND
119 # If possible add a valid email attribute to ldap users.
72 # Base DN
120
73 cn=Rufus Magillacuddy,ou=users,dc=rhodecode,dc=com
121 *option*: `attr_firstname` => `givenName`
74 # User Search Base
122 # LDAP Attribute to map to first name (e.g., givenName)
75 ou=groups,ou=users
123
76 # LDAP search filter to narrow the results
124 *option*: `attr_lastname` => `sn`
77 (objectClass=person)
125 # LDAP Attribute to map to last name (e.g., sn)
78 # LDAP search scope
126
79 SUBTREE
127 *option*: `group_extraction_type` => `rfc2307bis`
80 # Login attribute
128 # With rfc2307, group members are listed by name in the memberUid attribute
81 sAMAccountName
129 # With rfc2307bis (Microsoft AD compatible) group members are listed by DN and stored in the member attribute
82 # First Name Attribute to read
83 givenName
84 # Last Name Attribute to read
85 sn
86 # Email Attribute to read email address from
87 mail
88 # group extraction method
89 rfc2307bis
90 # Group search base
91 ou=RC-Groups
92 # Group Name Attribute, field to read the group name from
93 sAMAAccountName
94 # User Member of Attribute, field in which groups are stored
95 memberOf
96 # LDAP Group Search Filter, allows narrowing the results
97
130
98 # Admin Groups. Comma separated list of groups. If user is member of
131 *option*: `group_search_base` => `ou=RC-Groups`
99 # any of those he will be marked as super-admin in RhodeCode
132 # Group search base will extend the Base DN (e.g. ou=Groups will result in ou=Groups,dc=mydomain,dc=com)
100 admins, management
101
133
134 *option*: `group_name_attr` => `sAMAccountName`
135 # LDAP Attribute to map to group name (e.g., cn, or sAMAccountName)
136
137 *option*: `user_member_of` => `memberOf`
138 # Users Attribute used to fetch the group membership.
139 # Use if users have stored group membership inside their attributes
140 # (e.g., memberOf, or userMemberOf)
102
141
103 Below is example setup that can be used with Active Directory and ldap groups.
142 *option*: `group_search_filter` => ``
143 # Filter to narrow results (e.g., (&(objectCategory=Group)(objectClass=group)), etc)
144
145 *option*: `group_member_of` => `memberOf`
146 # LDAP Attribute used to resolve the parent group (e.g., memberOf)
104
147
105 .. image:: ../images/ldap-groups-example.png
148 *option*: `admin_groups` => `Admins,Management`
106 :alt: LDAP/AD setup example
149 # A comma separated list of group names that identify users as RhodeCode Administrators (e.g., admins)
107 :scale: 50 %
150
151 *option*: `admin_groups_sync` => `full`
152 # Way to sync Admin groups.
153 # Full means admin flag is set to on or off according to membership in administrator group defined above.
154 # On-only means the flag is only set to on, and not turned off once user is no longer a member
155
108
156
109 .. toctree::
157 .. toctree::
110
158
111 ldap-active-directory
159 ldap-active-directory
112 ldap-authentication No newline at end of file
160 ldap-authentication
@@ -1,89 +1,117 b''
1 .. _config-ldap-ref:
1 .. _config-ldap-ref:
2
2
3 LDAP/AD
3 LDAP/AD
4 -------
4 -------
5
5
6 |RCM| supports LDAP (Lightweight Directory Access Protocol) or
6 |RCE| supports LDAP (Lightweight Directory Access Protocol) or
7 AD (active Directory) authentication.
7 AD (active Directory) authentication.
8 All LDAP versions are supported, with the following |RCM| plugins managing each:
8 All LDAP versions are currently supported.
9
10 * For LDAP or Active Directory use ``LDAP (egg:rhodecode-enterprise-ce#ldap)``
11
9
12 RhodeCode reads all data defined from plugin and creates corresponding
10 RhodeCode reads all data defined from plugin and creates corresponding
13 accounts on local database after receiving data from LDAP. This is done on
11 accounts on local database after receiving data from LDAP. This is done on
14 every user log-in including operations like pushing/pulling/checkout.
12 every user log-in including operations like pushing/pulling/checkout.
15
13
16
14
17 .. important::
15 .. important::
18
16
19 The email used with your |RCE| super-admin account needs to match the email
17 The email used with your |RCE| super-admin account needs to match the email
20 address attached to your admin profile in LDAP. This is because
18 address attached to your admin profile in LDAP. This is because
21 within |RCE| the user email needs to be unique, and multiple users
19 within |RCE| the user email needs to be unique, and multiple users
22 cannot share an email account.
20 cannot share an email account.
23
21
24 Likewise, if as an admin you also have a user account, the email address
22 Likewise, if as an admin you also have a user account, the email address
25 attached to the user account needs to be different.
23 attached to the user account needs to be different.
26
24
27
25
28 LDAP Configuration Steps
26 LDAP Configuration Steps
29 ^^^^^^^^^^^^^^^^^^^^^^^^
27 ^^^^^^^^^^^^^^^^^^^^^^^^
30
28
31 To configure |LDAP|, use the following steps:
29 To configure |LDAP|, use the following steps:
32
30
33 1. From the |RCM| interface, select
31 1. From the |RCE| interface, select
34 :menuselection:`Admin --> Authentication`
32 :menuselection:`Admin --> Authentication`
35 2. Enable the ldap plugin and select :guilabel:`Save`
33 2. Activate the `LDAP` plugin and select :guilabel:`Save`
36 3. Select the :guilabel:`Enabled` check box in the plugin configuration section
34 3. Go to newly available menu option called `LDAP` on the left side.
37 4. Add the required LDAP information and :guilabel:`Save`, for more details,
35 4. Check the `enabled` check box in the plugin configuration section,
36 and fill in the required LDAP information and :guilabel:`Save`, for more details,
38 see :ref:`config-ldap-examples`
37 see :ref:`config-ldap-examples`
39
38
40 For a more detailed description of LDAP objects, see :ref:`ldap-gloss-ref`:
39 For a more detailed description of LDAP objects, see :ref:`ldap-gloss-ref`:
41
40
42 .. _config-ldap-examples:
41 .. _config-ldap-examples:
43
42
44 Example LDAP configuration
43 Example LDAP configuration
45 ^^^^^^^^^^^^^^^^^^^^^^^^^^
44 ^^^^^^^^^^^^^^^^^^^^^^^^^^
46 .. code-block:: bash
45
46 Below is example setup that can be used with Active Directory/LDAP server::
47
48 *option*: `enabled` => `True`
49 # Enable or disable this authentication plugin.
50
51 *option*: `cache_ttl` => `360`
52 # Amount of seconds to cache the authentication and permissions check response call for this plugin.
53 # Useful for expensive calls like LDAP to improve the performance of the system (0 means disabled).
54
55 *option*: `host` => `192.168.245.143,192.168.1.240`
56 # Host[s] of the LDAP Server
57 # (e.g., 192.168.2.154, or ldap-server.domain.com.
58 # Multiple servers can be specified using commas
59
60 *option*: `port` => `389`
61 # Custom port that the LDAP server is listening on. Default value is: 389, use 689 for LDAPS(SSL)
62
63 *option*: `timeout` => `300`
64 # Timeout for LDAP connection
65
66 *option*: `dn_user` => `Administrator@rhodecode.com`
67 # Optional user DN/account to connect to LDAP if authentication is required.
68 # e.g., cn=admin,dc=mydomain,dc=com, or uid=root,cn=users,dc=mydomain,dc=com, or admin@mydomain.com
69
70 *option*: `dn_pass` => `SomeSecret`
71 # Password to authenticate for given user DN.
72
73 *option*: `tls_kind` => `PLAIN`
74 # TLS Type
47
75
48 # Auth Cache TTL, Defines the caching for authentication to offload LDAP server.
76 *option*: `tls_reqcert` => `NEVER`
49 # This means that cache result will be saved for 3600 before contacting LDAP server to verify the user access
77 # Require Cert over TLS?. Self-signed and custom certificates can be used when
50 3600
78 # `RhodeCode Certificate` found in admin > settings > system info page is extended.
51 # Host, comma seperated format is optionally possible to specify more than 1 server
79
52 https://ldap1.server.com/ldap-admin/,https://ldap2.server.com/ldap-admin/
80 *option*: `tls_cert_file` => ``
53 # Default LDAP Port, use 689 for LDAPS
81 # This specifies the PEM-format file path containing certificates for use in TLS connection.
54 389
82 # If not specified `TLS Cert dir` will be used
55 # Account, used for SimpleBind if LDAP server requires an authentication
83
56 e.g admin@server.com
84 *option*: `tls_cert_dir` => `/etc/openldap/cacerts`
57 # Password used for simple bind
85 # This specifies the path of a directory that contains individual CA certificates in separate files.
58 ldap-user-password
86
59 # LDAP connection security
87 *option*: `base_dn` => `cn=Rufus Magillacuddy,ou=users,dc=rhodecode,dc=com`
60 LDAPS
88 # Base DN to search. Dynamic bind is supported. Add `$login` marker in it to be replaced with current user credentials
61 # Certificate checks level
89 # (e.g., dc=mydomain,dc=com, or ou=Users,dc=mydomain,dc=com)
62 DEMAND
63 # Base DN
64 cn=Rufus Magillacuddy,ou=users,dc=rhodecode,dc=com
65 # LDAP search filter to narrow the results
66 (objectClass=person)
67 # LDAP search scope
68 SUBTREE
69 # Login attribute
70 sAMAccountName
71 # First Name Attribute to read
72 givenName
73 # Last Name Attribute to read
74 sn
75 # Email Attribute to read email address from
76 mail
77
90
91 *option*: `filter` => `(objectClass=person)`
92 # Filter to narrow results
93 # (e.g., (&(objectCategory=Person)(objectClass=user)), or
94 # (memberof=cn=rc-login,ou=groups,ou=company,dc=mydomain,dc=com)))
78
95
79 Below is example setup that can be used with Active Directory/LDAP server.
96 *option*: `search_scope` => `SUBTREE`
97 # How deep to search LDAP. If unsure set to SUBTREE
98
99 *option*: `attr_login` => `sAMAccountName`
100 # LDAP Attribute to map to user name (e.g., uid, or sAMAccountName)
80
101
81 .. image:: ../images/ldap-example.png
102 *option*: `attr_email` => `mail`
82 :alt: LDAP/AD setup example
103 # LDAP Attribute to map to email address (e.g., mail).
83 :scale: 50 %
104 # Emails are a crucial part of RhodeCode.
105 # If possible add a valid email attribute to ldap users.
106
107 *option*: `attr_firstname` => `givenName`
108 # LDAP Attribute to map to first name (e.g., givenName)
109
110 *option*: `attr_lastname` => `sn`
111 # LDAP Attribute to map to last name (e.g., sn)
84
112
85
113
86 .. toctree::
114 .. toctree::
87
115
88 ldap-active-directory
116 ldap-active-directory
89 ldap-authentication
117 ldap-authentication
@@ -1,14 +1,14 b''
1 .. _config-pam-ref:
1 .. _config-pam-ref:
2
2
3 PAM
3 PAM
4 ---
4 ---
5
5
6 To enable PAM authentication, use the following steps:
6 To enable PAM authentication, use the following steps:
7
7
8 1. From the |RCM| interface, go to :menuselection:`Admin --> Authentication`
8 1. From the |RCE| interface, go to :menuselection:`Admin --> Authentication`
9 2. Enable the ``rhodecode.lib.auth_modules.auth_pam`` library and select save
9 2. Activate the ``rhodecode.lib.auth_modules.auth_pam`` library and select save
10 3. On the PAM plugin settings section, do the following:
10 3. On the PAM plugin settings section, do the following:
11
11
12 * Check the :guilabel:`Enable` checkbox
12 * Check the :guilabel:`Enable` checkbox
13 * Enter your PAM server settings
13 * Enter your PAM server settings
14 * Select :guilabel:`Save`
14 * Select :guilabel:`Save`
@@ -1,76 +1,80 b''
1 .. _config-token-ref:
1 .. _config-token-ref:
2
2
3 Authentication Tokens
3 Authentication Tokens
4 ---------------------
4 ---------------------
5
5
6 |RCE| has 4 different kinds of authentication tokens.
6 |RCE| has 4 different kinds of authentication tokens. `API token`, `Feed tokens` work
7 without a need to enable any additional authentication. `VCS tokens` require dedicated
8 authentication plugin to be activated. `Web Interface tokens` are controlled by the
9 white_list configuration.
7
10
8 * *API tokens*: API tokens can only be used to execute |RCE| API operations.
11 * *API tokens*: API tokens can only be used to execute |RCE| API operations.
9 You can store your API token and assign it to each instance in
12 You can store your API token and assign it to each instance in
10 the :file:`/home/{user}/.rhoderc` file. See the
13 the :file:`/home/{user}/.rhoderc` file. See the
11 example in :ref:`indexing-ref` section for more details.
14 example in :ref:`indexing-ref` section for more details.
12
15
13 * *Feed tokens*: The feed token can only be used to access the RSS feed.
16 * *Feed tokens*: The feed token can only be used to access the RSS feed.
14 Usually those are safe to store inside your RSS feed reader.
17 Usually those are safe to store inside your RSS feed reader.
15
16 * *VCS tokens*: You can use these to authenticate with |git|, |hg| and |svn|
17 operations instead of a password. They are designed to be used with
18 CI Servers or other third party tools that require |repo| access.
19 They are also a good replacement for SSH based access.
20 To use these tokens you need be enabled special authentication method on
21 |RCE|, as they are disabled by default.
22 See :ref:`enable-vcs-tokens`.
23
18
24 * *Web Interface tokens*: These token allows users to access the web
19 * *Web Interface tokens*: These token allows users to access the web
25 interface of |RCE| without logging in.
20 interface of |RCE| without logging in.
26
21
27 You can add these tokens to an |RCE| server url, to expose the page content
22 You can add these tokens to an |RCE| server url, to expose the page content
28 based on the given token.
23 based on the given token.
29
24
30 This is useful to integrate 3rd party systems, good example is to expose
25 This is useful to integrate 3rd party systems, good example is to expose
31 raw diffs to another code-review system without having to worry about
26 raw diffs to another code-review system without having to worry about
32 authentication.
27 authentication.
33
28
34 These tokens only work if a certain view is whitelisted
29 These tokens only work if a certain view is whitelisted
35 under `api_access_controllers_whitelist` inside
30 under `api_access_controllers_whitelist` inside
36 the :file:`rhodecode.ini` file.
31 the :file:`rhodecode.ini` file.
37
32
38 .. code-block:: bash
33 .. code-block:: bash
39
34
40 # To download a repo without logging into Web UI
35 # To download a repo without logging into Web UI
41 https://rhodecode.com/repo/archive/tip.zip?auth_token=<web-api-token>
36 https://rhodecode.com/repo/archive/tip.zip?auth_token=<web-api-token>
42
37
43 # To show commit diff without logging into Web UI
38 # To show commit diff without logging into Web UI
44 https://rhodecode.com/repo/changeset-diff/<sha>?auth_token=<web-api-token>
39 https://rhodecode.com/repo/raw-diff/<sha>?auth_token=<web-api-token>
40
41 * *VCS tokens*: You can use these to authenticate with |git|, |hg| and |svn|
42 operations instead of a password. They are designed to be used with
43 CI Servers or other third party tools that require |repo| access.
44 They are also a good replacement for SSH based access.
45 To use these tokens you need be enabled special authentication method on
46 |RCE|, as they are disabled by default.
47 See :ref:`enable-vcs-tokens`.
48
45
49
46 .. _enable-vcs-tokens:
50 .. _enable-vcs-tokens:
47
51
48 Enabling VCS Tokens
52 Enabling VCS Tokens
49 ^^^^^^^^^^^^^^^^^^^
53 ^^^^^^^^^^^^^^^^^^^
50
54
51 To enable VCS Tokens, use the following steps:
55 To enable VCS Tokens, use the following steps:
52
56
53 1. Go to :menuselection:`Admin --> Authentication`.
57 1. Go to :menuselection:`Admin --> Authentication`.
54 2. Enable the ``rhodecode.lib.auth_modules.auth_token`` plugin.
58 2. Activate the ``rhodecode.lib.auth_modules.auth_token`` plugin.
55 3. Click :guilabel:`Save`.
59 3. Click :guilabel:`Save`.
56
60
57 Authentication Token Tips
61 Authentication Token Tips
58 ^^^^^^^^^^^^^^^^^^^^^^^^^
62 ^^^^^^^^^^^^^^^^^^^^^^^^^
59
63
60 * Use Authentication Tokens instead of your password with external services.
64 * Use Authentication Tokens instead of your password with external services.
61 * Create multiple Authentication Tokens on your account to enable
65 * Create multiple Authentication Tokens on your account to enable
62 access to your |repos| with a different |authtoken| per method used.
66 access to your |repos| with a different |authtoken| per method used.
63 * Set an expiry limit on certain tokens if you think it would be a good idea.
67 * Set an expiry limit on certain tokens if you think it would be a good idea.
64
68
65 Creating Tokens
69 Creating Tokens
66 ^^^^^^^^^^^^^^^
70 ^^^^^^^^^^^^^^^
67
71
68 To create authentication tokens for an user, use the following steps:
72 To create authentication tokens for an user, use the following steps:
69
73
70 1. From the |RCM| interface go to
74 1. From the |RCE| interface go to
71 :menuselection:`Username --> My Account --> Auth tokens`.
75 :menuselection:`Username --> My Account --> Auth tokens`.
72
76
73 2. Label and Add the tokens you wish to use with |RCE|.
77 2. Label and Add the tokens you wish to use with |RCE|.
74
78
75 .. image:: ../images/tokens.png
79 .. image:: ../images/tokens.png
76
80
@@ -1,32 +1,34 b''
1 .. _authentication-ref:
1 .. _authentication-ref:
2
2
3 Authentication Options
3 Authentication Options
4 ======================
4 ======================
5
5
6 |RCE| provides a built in authentication against its own database. This is
6 |RCE| provides a built in authentication against its own database. This is
7 implemented using ``rhodecode.lib.auth_rhodecode`` plugin. This plugin is
7 implemented using ``RhodeCode Internal`` plugin. This plugin is enabled by default.
8 enabled by default.
9 Additionally, |RCE| provides a Pluggable Authentication System. This gives the
8 Additionally, |RCE| provides a Pluggable Authentication System. This gives the
10 administrator greater control over how users authenticate with the system.
9 administrator greater control over how users authenticate with the system.
11
10
12 .. important::
11 .. important::
13
12
14 You can disable the built in |RCM| authentication plugin
13 You can disable the built in |RCE| authentication plugin
15 ``rhodecode.lib.auth_rhodecode`` and force all authentication to go
14 ``RhodeCode Internal`` and force all authentication to go
16 through your authentication plugin of choice e.g LDAP only.
15 through your authentication plugin of choice e.g LDAP only.
17 However, if you do this, and your external authentication tools fails,
16 However, if you do this, and your external authentication tools fails,
18 you will be unable to access |RCM|.
17 accessing |RCE| will be blocked unless a fallback plugin is
18 enabled via :file: rhodecode.ini
19
19
20 |RCM| comes with the following user authentication management plugins:
20
21 |RCE| comes with the following user authentication management plugins:
21
22
22
23
23 .. toctree::
24 .. toctree::
24
25
26 auth-token
25 auth-ldap
27 auth-ldap
26 auth-ldap-groups
28 auth-ldap-groups
29 auth-saml-generic
30 auth-saml-onelogin
31 auth-saml-duosecurity
27 auth-crowd
32 auth-crowd
28 auth-pam
33 auth-pam
29 auth-token
30 ssh-connection
34 ssh-connection
31
32
@@ -1,29 +1,75 b''
1 .. _ldap-act-dir-ref:
1 .. _ldap-act-dir-ref:
2
2
3 Active Directory
3 Active Directory
4 ----------------
4 ----------------
5
5
6 |RCM| can use Microsoft Active Directory for user authentication. This is
6 |RCE| can use Microsoft Active Directory for user authentication. This is
7 done through an LDAP or LDAPS connection to Active Directory. Use the
7 done through an LDAP or LDAPS connection to Active Directory. Use the
8 following example LDAP configuration setting to set your Active Directory
8 following example LDAP configuration setting to set your Active Directory
9 authentication.
9 authentication::
10
11 .. code-block:: ini
12
13 # Set the Base DN
14 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
15 # Set the Active Directory SAM-Account-Name
16 Login Attribute = sAMAccountName
17 # Set the Active Directory user name
18 First Name Attribute = usernameame
19 # Set the Active Directory user surname
20 Last Name Attribute = user_surname
21 # Set the Active Directory user email
22 E-mail Attribute = userEmail
23
10
24
11
25 Below is example setup that can be used with Active Directory and ldap groups.
12 *option*: `enabled` => `True`
13 # Enable or disable this authentication plugin.
14
15 *option*: `cache_ttl` => `360`
16 # Amount of seconds to cache the authentication and permissions check response call for this plugin.
17 # Useful for expensive calls like LDAP to improve the performance of the system (0 means disabled).
18
19 *option*: `host` => `192.168.245.143,192.168.1.240`
20 # Host[s] of the LDAP Server
21 # (e.g., 192.168.2.154, or ldap-server.domain.com.
22 # Multiple servers can be specified using commas
23
24 *option*: `port` => `389`
25 # Custom port that the LDAP server is listening on. Default value is: 389, use 689 for LDAPS(SSL)
26
27 *option*: `timeout` => `300`
28 # Timeout for LDAP connection
29
30 *option*: `dn_user` => `Administrator@rhodecode.com`
31 # Optional user DN/account to connect to LDAP if authentication is required.
32 # e.g., cn=admin,dc=mydomain,dc=com, or uid=root,cn=users,dc=mydomain,dc=com, or admin@mydomain.com
33
34 *option*: `dn_pass` => `SomeSecret`
35 # Password to authenticate for given user DN.
36
37 *option*: `tls_kind` => `PLAIN`
38 # TLS Type
39
40 *option*: `tls_reqcert` => `NEVER`
41 # Require Cert over TLS?. Self-signed and custom certificates can be used when
42 # `RhodeCode Certificate` found in admin > settings > system info page is extended.
26
43
27 .. image:: ../images/ldap-groups-example.png
44 *option*: `tls_cert_file` => ``
28 :alt: LDAP/AD setup example
45 # This specifies the PEM-format file path containing certificates for use in TLS connection.
29 :scale: 50 % No newline at end of file
46 # If not specified `TLS Cert dir` will be used
47
48 *option*: `tls_cert_dir` => `/etc/openldap/cacerts`
49 # This specifies the path of a directory that contains individual CA certificates in separate files.
50
51 *option*: `base_dn` => `OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local`
52 # Base DN to search. Dynamic bind is supported. Add `$login` marker in it to be replaced with current user credentials
53 # (e.g., dc=mydomain,dc=com, or ou=Users,dc=mydomain,dc=com)
54
55 *option*: `filter` => `(objectClass=person)`
56 # Filter to narrow results
57 # (e.g., (&(objectCategory=Person)(objectClass=user)), or
58 # (memberof=cn=rc-login,ou=groups,ou=company,dc=mydomain,dc=com)))
59
60 *option*: `search_scope` => `SUBTREE`
61 # How deep to search LDAP. If unsure set to SUBTREE
62
63 *option*: `attr_login` => `sAMAccountName`
64 # LDAP Attribute to map to user name (e.g., uid, or sAMAccountName)
65
66 *option*: `attr_email` => `userEmail`
67 # LDAP Attribute to map to email address (e.g., mail).
68 # Emails are a crucial part of RhodeCode.
69 # If possible add a valid email attribute to ldap users.
70
71 *option*: `attr_firstname` => `user_firstname`
72 # LDAP Attribute to map to first name (e.g., givenName)
73
74 *option*: `attr_lastname` => `user_surname`
75 # LDAP Attribute to map to last name (e.g., sn)
@@ -1,113 +1,107 b''
1 .. _ldap-gloss-ref:
1 .. _ldap-gloss-ref:
2
2
3 |LDAP| Glossary
3 |LDAP| Glossary
4 ---------------
4 ---------------
5
5
6 This topic aims to give you a concise overview of the different settings and
6 This topic aims to give you a concise overview of the different settings and
7 requirements that enabling |LDAP| on |RCE| requires.
7 requirements that enabling |LDAP| on |RCE| requires.
8
8
9 Required settings
9 Required settings
10 ^^^^^^^^^^^^^^^^^
10 ^^^^^^^^^^^^^^^^^
11
11
12 The following LDAP attributes are required when enabling |LDAP| on |RCE|.
12 The following LDAP attributes are required when enabling |LDAP| on |RCE|.
13
13
14 * **Hostname** or **IP Address**: Use a comma separated list for failover
14 * **Hostname** or **IP Address**: Use a comma separated list for failover
15 support.
15 support.
16 * **First Name**
16 * **First Name**
17 * **Surname**
17 * **Surname**
18 * **Email**
18 * **Email**
19 * **Port**: Port `389` for unencrypted LDAP or port `636` for SSL-encrypted
19 * **Port**: Port `389` for unencrypted LDAP or port `636` for SSL-encrypted
20 LDAP (LDAPS).
20 LDAP (LDAPS).
21 * **Base DN (Distinguished Name)**: The Distinguished Name (DN)
21 * **Base DN (Distinguished Name)**: The Distinguished Name (DN)
22 is how searches for users will be performed, and these searches can be
22 is how searches for users will be performed, and these searches can be
23 controlled by using an LDAP Filter or LDAP Search Scope. A DN is a sequence of
23 controlled by using an LDAP Filter or LDAP Search Scope. A DN is a sequence of
24 relative distinguished names (RDN) connected by commas. For example,
24 relative distinguished names (RDN) connected by commas. For example,
25
25
26 .. code-block:: vim
26 .. code-block:: vim
27
27
28 DN: cn='Monty Python',ou='people',dc='example',dc='com'
28 DN: cn='Monty Python',ou='people',dc='example',dc='com'
29
29
30 * **Connection security level**: The following are the valid types:
30 * **Connection security level**: The following are the valid types:
31
31
32 * *No encryption*: This connection type uses a plain non-encrypted connection.
32 * *No encryption*: This connection type uses a plain non-encrypted connection.
33 * *LDAPS connection*: This connection type uses end-to-end SSL. To enable
33 * *LDAPS connection*: This connection type uses end-to-end SSL. To enable
34 an LDAPS connection you must set the following requirements:
34 an LDAPS connection you must set the following requirements:
35
35
36 * You must specify port `636`
36 * You must specify port `636`
37 * Certificate checks are required.
37 * Certificate checks are required.
38 * To enable ``START_TLS`` on LDAP connection, set the path to the SSL
38 * To enable ``START_TLS`` on LDAP connection, set the path to the SSL
39 certificate in the default LDAP configuration file. The default
39 certificate in the default LDAP configuration file. The default
40 `ldap.conf` file is located in `/etc/openldap/ldap.conf`.
40 `ldap.conf` file is located in `/etc/openldap/ldap.conf`.
41
41
42 .. code-block:: vim
42 .. code-block:: vim
43
43
44 TLS_CACERT /etc/ssl/certs/ca.crt
44 TLS_CACERT /etc/ssl/certs/ca.crt
45
45
46 * The LDAP username or account used to connect to |RCE|. This will be added
46 * The LDAP username or account used to connect to |RCE|. This will be added
47 to the LDAP filter for locating the user object.
47 to the LDAP filter for locating the user object.
48 * For example, if an LDAP filter is specified as `LDAPFILTER`,
48 * For example, if an LDAP filter is specified as `LDAPFILTER`,
49 the login attribute is specified as `uid`, and the user connects as
49 the login/username attribute is specified as `uid`, and the user connects as
50 `jsmith`, then the LDAP Filter will be like the following example.
50 `jsmith`, then the LDAP Filter will be like the following example.
51
51
52 .. code-block:: vim
52 .. code-block:: vim
53
53
54 (&(LDAPFILTER)(uid=jsmith))
54 (&(LDAPFILTER)(uid=jsmith))
55
55
56 * The LDAP search scope must be set. This limits how far LDAP will search for
56 * The LDAP search scope must be set. This limits how far LDAP will search for
57 a matching object.
57 a matching object.
58
58
59 * ``BASE`` Only allows searching of the Base DN.
59 * ``BASE`` Only allows searching of the Base DN.
60 * ``ONELEVEL`` Searches all entries under the Base DN,
60 * ``ONELEVEL`` Searches all entries under the Base DN,
61 but not the Base DN itself.
61 but not the Base DN itself.
62 * ``SUBTREE`` Searches all entries below the Base DN, but not Base DN itself.
62 * ``SUBTREE`` Searches all entries below the Base DN, but not Base DN itself.
63
63
64 .. note::
64 .. note::
65
65
66 When using ``SUBTREE`` LDAP filtering it is useful to limit object location.
66 When using ``SUBTREE`` LDAP filtering it is useful to limit object location.
67
67
68 Optional settings
68 Optional settings
69 ^^^^^^^^^^^^^^^^^
69 ^^^^^^^^^^^^^^^^^
70
70
71 The following are optional when enabling LDAP on |RCM|
71 The following are optional when enabling LDAP on |RCE|
72
72
73 * An LDAP account is only required if the LDAP server does not allow
73 * An LDAP account is only required if the LDAP server does not allow
74 anonymous browsing of records.
74 anonymous browsing of records.
75 * An LDAP password is only required if the LDAP server does not allow
75 * An LDAP password is only required if the LDAP server does not allow
76 anonymous browsing of records
76 anonymous browsing of records
77 * Using an LDAP filter is optional. An LDAP filter defined by `RFC 2254`_. This
77 * Using an LDAP filter is optional. An LDAP filter defined by `RFC 2254`_. This
78 is more useful that the LDAP Search Scope if set to `SUBTREE`. The filter
78 is more useful that the LDAP Search Scope if set to `SUBTREE`. The filter
79 is useful for limiting which LDAP objects are identified as representing
79 is useful for limiting which LDAP objects are identified as representing
80 Users for authentication. The filter is augmented by Login Attribute
80 Users for authentication. The filter is augmented by Login Attribute
81 below. This can commonly be left blank.
81 below. This can commonly be left blank.
82 * Certificate Checks are only required if you need to use LDAPS.
82 * Certificate Checks are only required if you need to use LDAPS.
83 You can use the following levels of LDAP service with RhodeCode Enterprise:
83 You can use the following levels of LDAP service with RhodeCode Enterprise:
84
84
85 * **NEVER** : A serve certificate will never be requested or checked.
85 * **NEVER** : A serve certificate will never be requested or checked.
86 * **ALLOW** : A server certificate is requested. Failure to provide a
86 * **ALLOW** : A server certificate is requested. Failure to provide a
87 certificate or providing a bad certificate will not terminate the session.
87 certificate or providing a bad certificate will not terminate the session.
88 * **TRY** : A server certificate is requested. Failure to provide a
88 * **TRY** : A server certificate is requested. Failure to provide a
89 certificate does not halt the session; providing a bad certificate
89 certificate does not halt the session; providing a bad certificate
90 halts the session.
90 halts the session.
91 * **DEMAND** : A server certificate is requested and must be provided
91 * **DEMAND** : A server certificate is requested and must be provided
92 and authenticated for the session to proceed.
92 and authenticated for the session to proceed.
93 * **HARD** : The same as DEMAND.
93 * **HARD** : The same as DEMAND.
94
94
95 .. note::
95 .. note::
96
96
97 Only **DEMAND** or **HARD** offer full SSL security while the other
97 Only **DEMAND** or **HARD** offer full SSL security while the other
98 options are vulnerable to man-in-the-middle attacks.
98 options are vulnerable to man-in-the-middle attacks.
99
99
100 |RCE| uses ``OPENLDAP`` libraries. This allows **DEMAND** or
100 |RCE| uses ``OPENLDAP`` libraries. This allows **DEMAND** or
101 **HARD** LDAPS connections to use self-signed certificates or
101 **HARD** LDAPS connections to use self-signed certificates or
102 certificates that do not have traceable certificates of authority.
102 certificates that do not have traceable certificates of authority.
103 To enable this functionality install the SSL certificates in the
103 To enable this functionality install the SSL certificates in the
104 following directory: `/etc/openldap/cacerts`
104 following directory: `/etc/openldap/cacerts`
105
105
106
106
107 Below is example setup that can be used with Active Directory and ldap groups.
108
109 .. image:: ../images/ldap-groups-example.png
110 :alt: LDAP/AD setup example
111 :scale: 50 %
112
113 .. _RFC 2254: http://www.rfc-base.org/rfc-2254.html No newline at end of file
107 .. _RFC 2254: http://www.rfc-base.org/rfc-2254.html
@@ -1,27 +1,27 b''
1 .. _code-review-ref:
1 .. _code-review-ref:
2
2
3 Code Review
3 Code Review
4 ===========
4 ===========
5
5
6 |RCM| provides two ways in which you can review code. You can review |prs| or
6 |RCE| provides two ways in which you can review code. You can review |prs| or
7 commits. To better understand |prs|, see the :ref:`pull-requests-ref`
7 commits. To better understand |prs|, see the :ref:`pull-requests-ref`
8 and :ref:`collaborate-ref` sections. For more information about why
8 and :ref:`collaborate-ref` sections. For more information about why
9 code review matters, see these posts on the topic:
9 code review matters, see these posts on the topic:
10
10
11 * `Code Review - Fix Bugs Early and Often`_
11 * `Code Review - Fix Bugs Early and Often`_
12 * `Code Review - How to Convince a Skeptic`_
12 * `Code Review - How to Convince a Skeptic`_
13 * `Code Review - Learn How NASA Codes`_
13 * `Code Review - Learn How NASA Codes`_
14
14
15 You can also use the |RCE| API set up continuous integration servers to leave
15 You can also use the |RCE| API set up continuous integration servers to leave
16 comments from a test suite. See the :ref:`api` and
16 comments from a test suite. See the :ref:`api` and
17 :ref:`extensions-hooks-ref` sections for examples on how to set this up.
17 :ref:`extensions-hooks-ref` sections for examples on how to set this up.
18
18
19 .. toctree::
19 .. toctree::
20
20
21 review-diffs
21 review-diffs
22 approve-changes
22 approve-changes
23 reviewing-best-practices
23 reviewing-best-practices
24
24
25 .. _Code Review - Fix Bugs Early and Often: https://rhodecode.com/blog/code-review-fix-bugs-early-often/
25 .. _Code Review - Fix Bugs Early and Often: https://rhodecode.com/blog/code-review-fix-bugs-early-often/
26 .. _Code Review - How to Convince a Skeptic: https://rhodecode.com/blog/code-review-convince-skeptic/
26 .. _Code Review - How to Convince a Skeptic: https://rhodecode.com/blog/code-review-convince-skeptic/
27 .. _Code Review - Learn How NASA Codes: https://rhodecode.com/blog/code-review-learn-nasa-codes/
27 .. _Code Review - Learn How NASA Codes: https://rhodecode.com/blog/code-review-learn-nasa-codes/
@@ -1,42 +1,42 b''
1 .. _code-diff-side-ref:
1 .. _code-diff-side-ref:
2
2
3 Reviewing Diffs
3 Reviewing Diffs
4 ---------------
4 ---------------
5
5
6 Diffs are representations of changes made between different changesets of
6 Diffs are representations of changes made between different changesets of
7 a file. |RCE| provides 4 different types of diffs for each commit or
7 a file. |RCE| provides 4 different types of diffs for each commit or
8 changeset, and depending on your preference you can use whichever for code
8 changeset, and depending on your preference you can use whichever for code
9 review purposes.
9 review purposes.
10
10
11 * Plain diff
11 * Plain diff
12 * Full diff
12 * Full diff
13 * Side-by-side diff
13 * Side-by-side diff
14 * Raw diff
14 * Raw diff
15
15
16 Reviewing Changes
16 Reviewing Changes
17 -----------------
17 -----------------
18
18
19 |RCM| displays all code changes made with each commit. Removed content is
19 |RCE| displays all code changes made with each commit. Removed content is
20 marked in red and new content in green.
20 marked in red and new content in green.
21
21
22 .. image:: ../images/plain-diff.png
22 .. image:: ../images/plain-diff.png
23 :alt: Plain Diff
23 :alt: Plain Diff
24
24
25 Side-By-Side Diffs
25 Side-By-Side Diffs
26 ------------------
26 ------------------
27
27
28 To review code with a side-by-side diff, use the following steps:
28 To review code with a side-by-side diff, use the following steps:
29
29
30 1. Open the repository in which you wish to review a file
30 1. Open the repository in which you wish to review a file
31 2. Select the revision you wish to review
31 2. Select the revision you wish to review
32 3. Select the side-by-side diff icon beside the file name
32 3. Select the side-by-side diff icon beside the file name
33
33
34 .. image:: ../images/side-by-side-diff.png
34 .. image:: ../images/side-by-side-diff.png
35 :alt: Side by side diff
35 :alt: Side by side diff
36
36
37
37
38 Notifying Users
38 Notifying Users
39 ---------------
39 ---------------
40
40
41 To notify other users of you comments, or requests for feedback,
41 To notify other users of you comments, or requests for feedback,
42 see :ref:`review-notifications-ref`
42 see :ref:`review-notifications-ref`
@@ -1,19 +1,19 b''
1 Approve |prs|
1 Approve |prs|
2 -------------
2 -------------
3
3
4 To approve a |pr|, use the following steps:
4 To approve a |pr|, use the following steps:
5
5
6 1. Select :menuselection:`username --> Notifications --> Pull Requests`
6 1. Select :menuselection:`username --> Notifications --> Pull Requests`
7 and open the |pr| you with to approve
7 and open the |pr| you with to approve
8 2. Leave your review comments inline, or in the commit message.
8 2. Leave your review comments inline, or in the commit message.
9 3. Leave a commit message that outlines the review.
9 3. Leave a commit message that outlines the review.
10 4. Set the review status to :guilabel:`Approved`
10 4. Set the review status to :guilabel:`Approved`
11 5. Select :guilabel:`Comment`
11 5. Select :guilabel:`Comment`
12
12
13 If you approve the |pr|, you will be able to merge automatically if |RCM|
13 If you approve the |pr|, you will be able to merge automatically if |RCE|
14 detects that it can do so safely. You will see this message:
14 detects that it can do so safely. You will see this message:
15
15
16 :guilabel:`This pull request can be automatically merged.`
16 :guilabel:`This pull request can be automatically merged.`
17
17
18 Otherwise you will need to merge the |pr| locally and push your changes, see
18 Otherwise you will need to merge the |pr| locally and push your changes, see
19 :ref:`manual-merge-requests-ref`.
19 :ref:`manual-merge-requests-ref`.
@@ -1,24 +1,24 b''
1 .. _collaborate-ref:
1 .. _collaborate-ref:
2
2
3 Collaboration
3 Collaboration
4 =============
4 =============
5
5
6 .. note::
6 .. note::
7
7
8 Forking and branching does not work with |svn| |repos|.
8 Forking and branching does not work with |svn| |repos|.
9
9
10 Collaboration in |RCM| is accomplished through a combination of the following
10 Collaboration in |RCE| is accomplished through a combination of the following
11 functions:
11 functions:
12
12
13 .. only:: latex
13 .. only:: latex
14
14
15 * :ref:`review-notifications-ref`
15 * :ref:`review-notifications-ref`
16 * :ref:`forks-branches-ref`
16 * :ref:`forks-branches-ref`
17 * :ref:`pull-requests-ref`
17 * :ref:`pull-requests-ref`
18
18
19 .. toctree::
19 .. toctree::
20
20
21 workflow
21 workflow
22 forks-branches
22 forks-branches
23 repo-locking
23 repo-locking
24
24
@@ -1,101 +1,101 b''
1 .. _forks-branches-ref:
1 .. _forks-branches-ref:
2
2
3 Forking and Branching
3 Forking and Branching
4 ---------------------
4 ---------------------
5
5
6 Forking clones the original |repo| and creates an independent |repo|.
6 Forking clones the original |repo| and creates an independent |repo|.
7 Branching allows you to develop independently
7 Branching allows you to develop independently
8 of the main branch based on the changeset branched, but remains linked to the
8 of the main branch based on the changeset branched, but remains linked to the
9 main |repo|.
9 main |repo|.
10
10
11 Both provide excellent collaboration functionality,
11 Both provide excellent collaboration functionality,
12 and do not differ greatly, but you can find many online discussions
12 and do not differ greatly, but you can find many online discussions
13 where people fight about the differences.
13 where people fight about the differences.
14
14
15 Fork a |repo|
15 Fork a |repo|
16 ^^^^^^^^^^^^^
16 ^^^^^^^^^^^^^
17
17
18 To fork a |repo|, use the following steps:
18 To fork a |repo|, use the following steps:
19
19
20 1. Select :menuselection:`Admin --> repositories`
20 1. Select :menuselection:`Admin --> repositories`
21 2. Select the |repo| you wish to fork.
21 2. Select the |repo| you wish to fork.
22 3. Select :menuselection:`Options --> Fork`
22 3. Select :menuselection:`Options --> Fork`
23 4. On the :guilabel:`Create fork` page, set the following properties:
23 4. On the :guilabel:`Create fork` page, set the following properties:
24
24
25 * The fork name
25 * The fork name
26 * The fork description
26 * The fork description
27 * If the fork is private or public
27 * If the fork is private or public
28 * The copy permissions
28 * The copy permissions
29
29
30 Branch a |git| |repo|
30 Branch a |git| |repo|
31 ^^^^^^^^^^^^^^^^^^^^^
31 ^^^^^^^^^^^^^^^^^^^^^
32
32
33 Currently branching is only supported from the command line but is picked up
33 Currently branching is only supported from the command line but is picked up
34 on the web interface. To branch a |git| |repo| use the following example:
34 on the web interface. To branch a |git| |repo| use the following example:
35
35
36 .. code-block:: bash
36 .. code-block:: bash
37
37
38 # branch and checkout
38 # branch and checkout
39 git branch new-branch
39 git branch new-branch
40 git checkout new-branch
40 git checkout new-branch
41
41
42 # same function shorthand
42 # same function shorthand
43 git checkout -b new-branch
43 git checkout -b new-branch
44
44
45 # Example usage
45 # Example usage
46 $ git checkout -b example-branch
46 $ git checkout -b example-branch
47 Switched to a new branch 'example-branch'
47 Switched to a new branch 'example-branch'
48
48
49 $ git status
49 $ git status
50 On branch example-branch
50 On branch example-branch
51 Initial commit
51 Initial commit
52 nothing to commit (create/copy files and use "git add" to track)
52 nothing to commit (create/copy files and use "git add" to track)
53 $ vi example-script.sh
53 $ vi example-script.sh
54 $ git add example-script.sh
54 $ git add example-script.sh
55 $ git commit -a -m "ghost script: initial file"
55 $ git commit -a -m "ghost script: initial file"
56 $ git push
56 $ git push
57
57
58 Once it is pushed to the |RCM| server, you can switch to the newly created
58 Once it is pushed to the |RCE| server, you can switch to the newly created
59 branch using the following steps:
59 branch using the following steps:
60
60
61 1. Select :menuselection:`Admin --> Repositories`.
61 1. Select :menuselection:`Admin --> Repositories`.
62 2. Select the |repo| you branched.
62 2. Select the |repo| you branched.
63 3. Select :menuselection:`Switch To --> Branches` and choose the new branch.
63 3. Select :menuselection:`Switch To --> Branches` and choose the new branch.
64
64
65 For more information, your can read more here on the Git website,
65 For more information, your can read more here on the Git website,
66 `Git Branching`_.
66 `Git Branching`_.
67
67
68 Branch a |hg| |repo|
68 Branch a |hg| |repo|
69 ^^^^^^^^^^^^^^^^^^^^
69 ^^^^^^^^^^^^^^^^^^^^
70
70
71 .. note::
71 .. note::
72
72
73 To use branches in |hg| like |git|, use the `hg bookmark` option instead.
73 To use branches in |hg| like |git|, use the `hg bookmark` option instead.
74 Also see the :ref:`bvb` section for more information.
74 Also see the :ref:`bvb` section for more information.
75
75
76 To branch a |hg| |repo|, use the following example and push your changes to
76 To branch a |hg| |repo|, use the following example and push your changes to
77 the main |repo|. Once pushed, you can view the new branch in |RCE| by
77 the main |repo|. Once pushed, you can view the new branch in |RCE| by
78 selecting :menuselection:`Switch To --> Branches` from the |repo| page.
78 selecting :menuselection:`Switch To --> Branches` from the |repo| page.
79
79
80 .. code-block:: bash
80 .. code-block:: bash
81
81
82 $ hg branch example-456
82 $ hg branch example-456
83 $ hg ci -m "branch: ticket #456"
83 $ hg ci -m "branch: ticket #456"
84 $ hg push --new-branch
84 $ hg push --new-branch
85
85
86 Bookmark a |hg| |repo|
86 Bookmark a |hg| |repo|
87 ^^^^^^^^^^^^^^^^^^^^^^
87 ^^^^^^^^^^^^^^^^^^^^^^
88
88
89 Bookmarks are used in |hg| in much the same way as branches are in |git|. See
89 Bookmarks are used in |hg| in much the same way as branches are in |git|. See
90 the `Mercurial Bookmarks`_ documentation for more information.
90 the `Mercurial Bookmarks`_ documentation for more information.
91
91
92 .. code-block:: bash
92 .. code-block:: bash
93
93
94 $ hg bookmark example-456
94 $ hg bookmark example-456
95 $ hg ci -m "branch: ticket #456"
95 $ hg ci -m "branch: ticket #456"
96 $ hg push -B example-456
96 $ hg push -B example-456
97
97
98 .. image:: ../images/branch-example.png
98 .. image:: ../images/branch-example.png
99
99
100 .. _Git Branching: http://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
100 .. _Git Branching: http://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
101 .. _Mercurial Bookmarks: https://mercurial.selenic.com/wiki/Bookmarks
101 .. _Mercurial Bookmarks: https://mercurial.selenic.com/wiki/Bookmarks
@@ -1,39 +1,39 b''
1 .. _user-notify-ref:
1 .. _user-notify-ref:
2
2
3 Using Notifications
3 Using Notifications
4 -------------------
4 -------------------
5
5
6 To notify users of items that require their attention you can use the mention
6 To notify users of items that require their attention you can use the mention
7 function. The mention function allows you to use ``@username`` within |RCM|.
7 function. The mention function allows you to use ``@username`` within |RCE|.
8 The notification function can be used within the following
8 The notification function can be used within the following
9 items to highlight their need for attention:
9 items to highlight their need for attention:
10
10
11 * Commit messages
11 * Commit messages
12 * Pull requests
12 * Pull requests
13 * Inline comments
13 * Inline comments
14 * Code review
14 * Code review
15
15
16 .. note::
16 .. note::
17
17
18 Mentioned users will receive an email and a notification.
18 Mentioned users will receive an email and a notification.
19
19
20 Pull Request Notifications
20 Pull Request Notifications
21 --------------------------
21 --------------------------
22
22
23 To notify a user of a pull request, use the following steps.
23 To notify a user of a pull request, use the following steps.
24
24
25 1. Open the repository fork
25 1. Open the repository fork
26 2. Select :guilabel:`Open new pull request`
26 2. Select :guilabel:`Open new pull request`
27 3. Add the :guilabel:`@username` in the :guilabel:`Pull request viewers`
27 3. Add the :guilabel:`@username` in the :guilabel:`Pull request viewers`
28 input field.
28 input field.
29 4. Select :guilabel:`Submit Pull Request`
29 4. Select :guilabel:`Submit Pull Request`
30
30
31 Commit Message Notifications
31 Commit Message Notifications
32 ----------------------------
32 ----------------------------
33
33
34 To notify a user in a commit message, use the following steps.
34 To notify a user in a commit message, use the following steps.
35
35
36 1. Open a repository with commits in it.
36 1. Open a repository with commits in it.
37 2. Click on the commit message or revision number.
37 2. Click on the commit message or revision number.
38 3. Add an :guilabel:`@username` in an inline comment or in your approval
38 3. Add an :guilabel:`@username` in an inline comment or in your approval
39 comment and commit.
39 comment and commit.
@@ -1,35 +1,35 b''
1 .. _merge-requests-ref:
1 .. _merge-requests-ref:
2
2
3 Merge a |pr|
3 Merge a |pr|
4 ------------
4 ------------
5
5
6 |RCM| can detect if it can automatically merge the changes in a |pr|. If it
6 |RCE| can detect if it can automatically merge the changes in a |pr|. If it
7 can, you will see the following message:
7 can, you will see the following message:
8 :guilabel:`This pull request can be automatically merged.` To merge,
8 :guilabel:`This pull request can be automatically merged.` To merge,
9 click the big blue button! To enable this feature, see :ref:`server-side-merge`.
9 click the big blue button! To enable this feature, see :ref:`server-side-merge`.
10
10
11 .. image:: ../images/merge-pr-button.png
11 .. image:: ../images/merge-pr-button.png
12
12
13 If you cannot automatically merge a |pr|, you will see one of the following
13 If you cannot automatically merge a |pr|, you will see one of the following
14 messages:
14 messages:
15
15
16 * :guilabel:`This pull request cannot be merged because of conflicts`
16 * :guilabel:`This pull request cannot be merged because of conflicts`
17 * :guilabel:`Reviewer approval is pending`
17 * :guilabel:`Reviewer approval is pending`
18
18
19 .. _manual-merge-requests-ref:
19 .. _manual-merge-requests-ref:
20
20
21 Manual Merge a |PR|
21 Manual Merge a |PR|
22 ^^^^^^^^^^^^^^^^^^^
22 ^^^^^^^^^^^^^^^^^^^
23
23
24 If |RCM| cannot safely merge the changes in a |pr|,
24 If |RCE| cannot safely merge the changes in a |pr|,
25 usually due to conflicts, you need to manually merge the changes on the
25 usually due to conflicts, you need to manually merge the changes on the
26 command line. You can see more information for each |repo| type at the
26 command line. You can see more information for each |repo| type at the
27 following links:
27 following links:
28
28
29 * `Git Manual Merging`_
29 * `Git Manual Merging`_
30 * `Mercurial Manual Merging`_
30 * `Mercurial Manual Merging`_
31 * `Subversion Manual Merging`_
31 * `Subversion Manual Merging`_
32
32
33 .. _Git Manual Merging: http://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
33 .. _Git Manual Merging: http://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
34 .. _Mercurial Manual Merging: http://hgbook.red-bean.com/read/a-tour-of-mercurial-merging-work.html
34 .. _Mercurial Manual Merging: http://hgbook.red-bean.com/read/a-tour-of-mercurial-merging-work.html
35 .. _Subversion Manual Merging: http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html
35 .. _Subversion Manual Merging: http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html
@@ -1,22 +1,22 b''
1 Notifications Overview
1 Notifications Overview
2 ----------------------
2 ----------------------
3
3
4 |RCM| has an integrated notification system which alerts users to requests
4 |RCE| has an integrated notification system which alerts users to requests
5 that they have received. Notifications can occur for the following reasons:
5 that they have received. Notifications can occur for the following reasons:
6
6
7 * Pull request reviews
7 * Pull request reviews
8 * Commit message mentions
8 * Commit message mentions
9
9
10 When someone opens a |pr| on one of your |repos|, or adds you as a |pr|
10 When someone opens a |pr| on one of your |repos|, or adds you as a |pr|
11 reviewer, you will receive a notification in |RCE| and an email,
11 reviewer, you will receive a notification in |RCE| and an email,
12 if not configured see :ref:`set-up-mail`. Also, during the review process you
12 if not configured see :ref:`set-up-mail`. Also, during the review process you
13 receive notifications on the following actions:
13 receive notifications on the following actions:
14
14
15 * New comments
15 * New comments
16 * Status changes
16 * Status changes
17 * Inline code review comments
17 * Inline code review comments
18
18
19 Each notifications provides a link to take you directly to the issue.
19 Each notifications provides a link to take you directly to the issue.
20
20
21 .. image:: ../images/notifications.png
21 .. image:: ../images/notifications.png
22 :alt: Notifying Colleagues
22 :alt: Notifying Colleagues
@@ -1,47 +1,47 b''
1 Pull request management
1 Pull request management
2 -----------------------
2 -----------------------
3
3
4 .. only:: html
4 .. only:: html
5
5
6 There are two ways of tracking |prs| within |RCM|.
6 There are two ways of tracking |prs| within |RCE|.
7
7
8 1. :ref:`prs-your-review`
8 1. :ref:`prs-your-review`
9 2. :ref:`prs-per-repo`
9 2. :ref:`prs-per-repo`
10
10
11 .. _prs-your-review:
11 .. _prs-your-review:
12
12
13 Pull requests for your review
13 Pull requests for your review
14 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15
15
16 To view pull requests for your review, use the following steps:
16 To view pull requests for your review, use the following steps:
17
17
18 1. From the |RCM| interface, Select
18 1. From the |RCE| interface, Select
19 :menuselection:`username --> Notifications`
19 :menuselection:`username --> Notifications`
20 2. Select :guilabel:`Pull Requests`
20 2. Select :guilabel:`Pull Requests`
21
21
22 .. image:: ../images/prs-for-my-review.png
22 .. image:: ../images/prs-for-my-review.png
23 :alt: pull requests for my review
23 :alt: pull requests for my review
24
24
25 .. _prs-per-repo:
25 .. _prs-per-repo:
26
26
27 Pull requests per |repo|
27 Pull requests per |repo|
28 ^^^^^^^^^^^^^^^^^^^^^^^^
28 ^^^^^^^^^^^^^^^^^^^^^^^^
29
29
30 To view pull requests going to and from a |repo|, use the following steps:
30 To view pull requests going to and from a |repo|, use the following steps:
31
31
32 1. Select the |repo| you wish to view
32 1. Select the |repo| you wish to view
33 2. Select :guilabel:`Pull Requests` from the top menu
33 2. Select :guilabel:`Pull Requests` from the top menu
34 3. On the left-hand pane you will see the following options for |pr|
34 3. On the left-hand pane you will see the following options for |pr|
35 management on that |repo|:
35 management on that |repo|:
36
36
37 * :guilabel:`Opened`: Pull requests opened on this |repo|.
37 * :guilabel:`Opened`: Pull requests opened on this |repo|.
38 * :guilabel:`Opened by me`: Pull requests you opened on this |repo|.
38 * :guilabel:`Opened by me`: Pull requests you opened on this |repo|.
39 * :guilabel:`Awaiting my review`: Pull requests awaiting your review.
39 * :guilabel:`Awaiting my review`: Pull requests awaiting your review.
40 * :guilabel:`Closed`: Closed |prs| on this |repo|.
40 * :guilabel:`Closed`: Closed |prs| on this |repo|.
41 * :guilabel:`Awaiting review`: Pull requests still awaiting review on
41 * :guilabel:`Awaiting review`: Pull requests still awaiting review on
42 this |repo|.
42 this |repo|.
43 * :guilabel:`From this repo`: Pull requests opened on another |repo| with
43 * :guilabel:`From this repo`: Pull requests opened on another |repo| with
44 the changes coming from this |repo|.
44 the changes coming from this |repo|.
45
45
46 .. image:: ../images/pr-screen.png
46 .. image:: ../images/pr-screen.png
47 :alt: pull request dashboard
47 :alt: pull request dashboard
@@ -1,27 +1,27 b''
1 .. _review-requests-ref:
1 .. _review-requests-ref:
2
2
3 Review a |pr|
3 Review a |pr|
4 -------------
4 -------------
5
5
6 To review a pull request, use the following steps:
6 To review a pull request, use the following steps:
7
7
8 1. Open the review request from
8 1. Open the review request from
9 :menuselection:`Admin --> Repositories --> repo name --> Pull Requests --> Awaiting my review`
9 :menuselection:`Admin --> Repositories --> repo name --> Pull Requests --> Awaiting my review`
10 2. Leave your review comments inline, or in the commit message.
10 2. Leave your review comments inline, or in the commit message.
11 3. Set the review status from one of the following options:
11 3. Set the review status from one of the following options:
12
12
13 * :guilabel:`Not Reviewed`
13 * :guilabel:`Not Reviewed`
14 * :guilabel:`Approved`
14 * :guilabel:`Approved`
15 * :guilabel:`Approved & Closed`
15 * :guilabel:`Approved & Closed`
16 * :guilabel:`Rejected`
16 * :guilabel:`Rejected`
17 * :guilabel:`Rejected & Closed`
17 * :guilabel:`Rejected & Closed`
18 * :guilabel:`Under Review`
18 * :guilabel:`Under Review`
19
19
20 4. Select Comment
20 4. Select Comment
21
21
22 When the |pr| is approved by all reviewers you will be able to merge
22 When the |pr| is approved by all reviewers you will be able to merge
23 automatically if |RCM| detects that it can do so safely. You will see this
23 automatically if |RCE| detects that it can do so safely. You will see this
24 message: `This pull request can be automatically merged.`
24 message: `This pull request can be automatically merged.`
25
25
26 If rejected, you can fix the issues raised during review and then update the
26 If rejected, you can fix the issues raised during review and then update the
27 |pr|.
27 |pr|.
@@ -1,9 +1,9 b''
1 Supported Workflows
1 Supported Workflows
2 -------------------
2 -------------------
3
3
4 |RCM| can be used to develop using a variety of different workflows.
4 |RCE| can be used to develop using a variety of different workflows.
5
5
6 * Centralized, using |svn|, |git|, or |hg| |repos|
6 * Centralized, using |svn|, |git|, or |hg| |repos|
7 * Feature-Branch, using |git| or |hg| |repos|
7 * Feature-Branch, using |git| or |hg| |repos|
8 * Fork-Pull, using |git| or |hg| |repos|
8 * Fork-Pull, using |git| or |hg| |repos|
9 * Gitflow, using |git| |repos|
9 * Gitflow, using |git| |repos|
@@ -1,36 +1,32 b''
1 # Try and keep this list alphabetical
1 # Try and keep this list alphabetical
2 # ui is for user interface elements and messages
2 # ui is for user interface elements and messages
3 # button - that's obvious
3 # button - that's obvious
4
4
5 rst_epilog = '''
5 rst_epilog = '''
6 .. |AE| replace:: Appenlight
6 .. |AE| replace:: Appenlight
7 .. |authtoken| replace:: Authentication Token
7 .. |authtoken| replace:: Authentication Token
8 .. |authtokens| replace:: **Auth Tokens**
8 .. |authtokens| replace:: **Auth Tokens**
9 .. |RCCEshort| replace:: Community
9 .. |RCCEshort| replace:: Community
10 .. |RCEEshort| replace:: Enterprise
10 .. |RCEEshort| replace:: Enterprise
11 .. |git| replace:: Git
11 .. |git| replace:: Git
12 .. |hg| replace:: Mercurial
12 .. |hg| replace:: Mercurial
13 .. |svn| replace:: Subversion
13 .. |svn| replace:: Subversion
14 .. |LDAP| replace:: LDAP / Active Directory
14 .. |LDAP| replace:: LDAP / Active Directory
15 .. |os| replace:: operating system
15 .. |os| replace:: operating system
16 .. |OS| replace:: Operating System
16 .. |OS| replace:: Operating System
17 .. |PY| replace:: Python
17 .. |PY| replace:: Python
18 .. |pr| replace:: pull request
18 .. |pr| replace:: pull request
19 .. |prs| replace:: pull requests
19 .. |prs| replace:: pull requests
20 .. |psf| replace:: Python Software Foundation
20 .. |psf| replace:: Python Software Foundation
21 .. |repo| replace:: repository
21 .. |repo| replace:: repository
22 .. |repos| replace:: repositories
22 .. |repos| replace:: repositories
23 .. |RCI| replace:: RhodeCode Control
24 .. |RCC| replace:: RhodeCode Control
23 .. |RCC| replace:: RhodeCode Control
25 .. |RCV| replace:: RhodeCode Enterprise
26 .. |RCM| replace:: RhodeCode Enterprise
27 .. |RCE| replace:: RhodeCode Enterprise
24 .. |RCE| replace:: RhodeCode Enterprise
28 .. |RCCE| replace:: RhodeCode Community
25 .. |RCCE| replace:: RhodeCode Community
29 .. |RCEE| replace:: RhodeCode Enterprise
26 .. |RCEE| replace:: RhodeCode Enterprise
30 .. |RCX| replace:: RhodeCode Extensions
27 .. |RCX| replace:: RhodeCode Extensions
31 .. |RCT| replace:: RhodeCode Tools
28 .. |RCT| replace:: RhodeCode Tools
32 .. |RCEBOLD| replace:: **RhodeCode Enterprise**
29 .. |RCEBOLD| replace:: **RhodeCode Enterprise**
33 .. |RCEITALICS| replace:: `RhodeCode Enterprise`
30 .. |RCEITALICS| replace:: `RhodeCode Enterprise`
34 .. |RC| replace:: RhodeCode
35 .. |RNS| replace:: Release Notes
31 .. |RNS| replace:: Release Notes
36 '''
32 '''
@@ -1,36 +1,36 b''
1 .. _extensions-hooks-ref:
1 .. _extensions-hooks-ref:
2
2
3 Extensions & Hooks
3 Extensions & Hooks
4 ==================
4 ==================
5
5
6 The extensions & hooks section references three concepts regularly,
6 The extensions & hooks section references three concepts regularly,
7 so to clarify what is meant each time, read the following definitions:
7 so to clarify what is meant each time, read the following definitions:
8
8
9 * **Plugin**: A Plugin is software that adds a specific feature to
9 * **Plugin**: A Plugin is software that adds a specific feature to
10 an existing software application.
10 an existing software application.
11 * **Extension**: An extension extends the capabilities of,
11 * **Extension**: An extension extends the capabilities of,
12 or the data available to, an existing software application.
12 or the data available to, an existing software application.
13 * **Hook**: A hook intercepts function calls, messages, or events passed
13 * **Hook**: A hook intercepts function calls, messages, or events passed
14 between software components and can be used to trigger plugins, or their
14 between software components and can be used to trigger plugins, or their
15 extensions.
15 extensions.
16
16
17
17
18 Hooks
18 Hooks
19 -----
19 -----
20
20
21 Within |RCM| there are two types of supported hooks.
21 Within |RCE| there are two types of supported hooks.
22
22
23 * **Internal built-in hooks**: The internal |hg|, |git| or |svn| hooks are
23 * **Internal built-in hooks**: The internal |hg|, |git| or |svn| hooks are
24 triggered by different VCS operations, like push, pull,
24 triggered by different VCS operations, like push, pull,
25 or clone and are non-configurable, but you can add your own VCS hooks,
25 or clone and are non-configurable, but you can add your own VCS hooks,
26 see :ref:`custom-hooks`.
26 see :ref:`custom-hooks`.
27 * **Custom rcextensions hooks**: User defined hooks centre around the lifecycle of
27 * **Custom rcextensions hooks**: User defined hooks centre around the lifecycle of
28 certain actions such are |repo| creation, user creation etc. The actions
28 certain actions such are |repo| creation, user creation etc. The actions
29 these hooks trigger can be rejected based on the API permissions of the
29 these hooks trigger can be rejected based on the API permissions of the
30 user calling them.
30 user calling them.
31
31
32 On instructions how to use the custom `rcextensions`
32 On instructions how to use the custom `rcextensions`
33 see :ref:`integrations-rcextensions` section.
33 see :ref:`integrations-rcextensions` section.
34
34
35
35
36
36
@@ -1,87 +1,87 b''
1 |RCM|
1 |RCE|
2 =====
2 =====
3
3
4 |RCM| is a high-performance source code management and collaboration system.
4 |RCE| is a high-performance source code management and collaboration system.
5 It enables you to develop projects securely behind the firewall while
5 It enables you to develop projects securely behind the firewall while
6 providing collaboration tools that work with |git|, |hg|,
6 providing collaboration tools that work with |git|, |hg|,
7 and |svn| |repos|. The user interface allows you to create, edit,
7 and |svn| |repos|. The user interface allows you to create, edit,
8 and commit files and |repos| while managing their security permissions.
8 and commit files and |repos| while managing their security permissions.
9
9
10 |RCM| provides the following features:
10 |RCE| provides the following features:
11
11
12 * Source code management.
12 * Source code management.
13 * Extended permissions management.
13 * Extended permissions management.
14 * Integrated code collaboration tools.
14 * Integrated code collaboration tools.
15 * Integrated code review and notifications.
15 * Integrated code review and notifications.
16 * Scalability provided by multi-node setup.
16 * Scalability provided by multi-node setup.
17 * Fully programmable automation API.
17 * Fully programmable automation API.
18 * Web-based hook management.
18 * Web-based hook management.
19 * Native |svn| support.
19 * Native |svn| support.
20 * Migration from existing databases.
20 * Migration from existing databases.
21 * |RCM| SDK.
21 * |RCE| SDK.
22 * Built-in analytics
22 * Built-in analytics
23 * Built in integrations including: Slack, Webhooks (used for Jenkins/TeamCity and other CIs), Jira, Redmine, Hipchat
23 * Built in integrations including: Slack, Webhooks (used for Jenkins/TeamCity and other CIs), Jira, Redmine, Hipchat
24 * Pluggable authentication system.
24 * Pluggable authentication system.
25 * Support for AD, |LDAP|, Crowd, CAS, PAM.
25 * Support for AD, |LDAP|, Crowd, CAS, PAM.
26 * Support for external authentication via Oauth Google, Github, Bitbucket, Twitter.
26 * Support for external authentication via Oauth Google, Github, Bitbucket, Twitter.
27 * Debug modes of operation.
27 * Debug modes of operation.
28 * Private and public gists.
28 * Private and public gists.
29 * Gists with limited lifetimes and within instance only sharing.
29 * Gists with limited lifetimes and within instance only sharing.
30 * Fully integrated code search function.
30 * Fully integrated code search function.
31 * Always on SSL connectivity.
31 * Always on SSL connectivity.
32
32
33 .. only:: html
33 .. only:: html
34
34
35 Table of Contents
35 Table of Contents
36 -----------------
36 -----------------
37
37
38 .. toctree::
38 .. toctree::
39 :maxdepth: 1
39 :maxdepth: 1
40 :caption: Admin Documentation
40 :caption: Admin Documentation
41
41
42 install/quick-start
42 install/quick-start
43 install/install-database
43 install/install-database
44 install/install-steps
44 install/install-steps
45 admin/system-overview
45 admin/system-overview
46 nix/default-env
46 nix/default-env
47 admin/system-admin
47 admin/system-admin
48 admin/user-admin
48 admin/user-admin
49 admin/setting-repo-perms
49 admin/setting-repo-perms
50 admin/security-tips
50 admin/security-tips
51 auth/auth
51 auth/auth
52 issue-trackers/issue-trackers
52 issue-trackers/issue-trackers
53 admin/lab-settings
53 admin/lab-settings
54
54
55 .. toctree::
55 .. toctree::
56 :maxdepth: 1
56 :maxdepth: 1
57 :caption: Feature Documentation
57 :caption: Feature Documentation
58
58
59 collaboration/collaboration
59 collaboration/collaboration
60 collaboration/review-notifications
60 collaboration/review-notifications
61 collaboration/pull-requests
61 collaboration/pull-requests
62 code-review/code-review
62 code-review/code-review
63 integrations/integrations
63 integrations/integrations
64
64
65 .. toctree::
65 .. toctree::
66 :maxdepth: 1
66 :maxdepth: 1
67 :caption: Developer Documentation
67 :caption: Developer Documentation
68
68
69 api/api
69 api/api
70 tools/rhodecode-tools
70 tools/rhodecode-tools
71 extensions/extensions-hooks
71 extensions/extensions-hooks
72 contributing/contributing
72 contributing/contributing
73
73
74 .. toctree::
74 .. toctree::
75 :maxdepth: 1
75 :maxdepth: 1
76 :caption: User Documentation
76 :caption: User Documentation
77
77
78 usage/basic-usage
78 usage/basic-usage
79 tutorials/tutorials
79 tutorials/tutorials
80
80
81 .. toctree::
81 .. toctree::
82 :maxdepth: 1
82 :maxdepth: 1
83 :caption: About
83 :caption: About
84
84
85 known-issues/known-issues
85 known-issues/known-issues
86 release-notes/release-notes
86 release-notes/release-notes
87 admin/glossary
87 admin/glossary
@@ -1,68 +1,66 b''
1 .. _rhodecode-database-ref:
1 .. _rhodecode-database-ref:
2
2
3 Supported Databases
3 Supported Databases
4 ===================
4 ===================
5
5
6 .. important::
6 .. important::
7
7
8 We do not recommend using SQLite in a production environment. It is
8 We do not recommend using SQLite in a production environment of more than 5 people.
9 supported by |RCE| for evaluation purposes.
9 It is not suited for higher usage and mayb cause problems.
10
11
12 |RCE| supports the following databases. The recommended encoding is UTF-8.
13
14 .. only:: latex
15
16 * :ref:`install-sqlite-database`
17 * :ref:`install-mysql-database`
18 * :ref:`install-postgresql-database`
19
20 .. toctree::
21
22 using-mysql
23 using-postgresql
24 using-sqllite
25
10
26
11 Database Overview
27 Database Overview
12 -----------------
28 -----------------
13
29
14 Prior to installing |RCE| you should install and set up your database.
30 Prior to installing |RCE| you should install and set up your database.
15 This means carrying out the following tasks:
31 This means carrying out the following tasks:
16
32
17 1. Install the database software of your choice.
33 1. Install the database software of your choice.
18 2. Using the relevant instructions, create a user on that database to use
34 2. Using the relevant instructions, create a user on that database to use
19 with |RCE|.
35 with |RCE|.
20 3. Create a database, granting that user read/write access.
36 3. Create a database, granting that user read/write access.
21 4. During |RCE| installation you will be prompted for these user credentials,
37 4. During |RCE| installation you will be prompted for these user credentials,
22 enter them where appropriate. These credentials will be what |RCE| uses
38 enter them where appropriate. These credentials will be what |RCE| uses
23 to read/write from the database tables.
39 to read/write from the database tables.
24
40
25 Version Differences
41 Version Differences
26 -------------------
42 -------------------
27
43
28 |RCE| releases 2(Major).x(Minor).x(Bug Fix) and 3.x.x use different database
44 |RCE| releases 2(Major).x(Minor).x(Bug Fix) and 3.x.x use different database
29 schemas. Therefore, if you wish to run multiple instances using one database,
45 schemas. Therefore, if you wish to run multiple instances using one database,
30 you can only do so using the same Minor Release numbered versions.
46 you can only do so using the same Minor Release numbered versions.
31 Though Bug Fix updates rarely have a database change, it is recommended to use
47 Though Bug Fix updates rarely have a database change, it is recommended to use
32 identical |RCE| version numbers for multi-instance setups.
48 identical |RCE| version numbers for multi-instance setups.
33
49
34 You can use the same database server to run multiple databases for differing
50 You can use the same database server to run multiple databases for differing
35 version numbers, but you will need separate databases for each |RCE| version on
51 version numbers, but you will need separate databases for each |RCE| version on
36 that server. You can specify the database during installation, use the
52 that server. You can specify the database during installation, use the
37 following example to configure the correct one.
53 following example to configure the correct one.
38
54
39 .. code-block:: bash
55 .. code-block:: bash
40
56
41 Database type - [s]qlite, [m]ysql, [p]ostresql:
57 Database type - [s]qlite, [m]ysql, [p]ostresql:
42 PostgreSQL selected
58 PostgreSQL selected
43 Database host [127.0.0.1]:
59 Database host [127.0.0.1]:
44 Database port [5432]:
60 Database port [5432]:
45 Database username: rhodecode
61 Database username: rhodecode
46 Database password: somepassword
62 Database password: somepassword
47 # Specify the database you with to use on that server
63 # Specify the database you with to use on that server
48 # for the RCE instance you are installing
64 # for the RCE instance you are installing
49 Database name: example-db-name-for-2xx # The 2xx version database
65 Database name: example-db-name-for-2xx # The 2xx version database
50 Database name: example-db-name-for-3xx # The 3xx version database
66 Database name: example-db-name-for-3xx # The 3xx version database
51
52 Supported Databases
53 -------------------
54
55 |RCM| supports the following databases. The recommended encoding is Unicode
56 UTF-8.
57
58 .. only:: latex
59
60 * :ref:`install-sqlite-database`
61 * :ref:`install-mysql-database`
62 * :ref:`install-postgresql-database`
63
64 .. toctree::
65
66 using-mysql
67 using-postgresql
68 using-sqllite
@@ -1,14 +1,14 b''
1 .. _rhodecode-post-instal-ref:
1 .. _rhodecode-post-instal-ref:
2
2
3 Post Installation Tasks
3 Post Installation Tasks
4 =======================
4 =======================
5
5
6 The following tasks are the most common post installation requirements. Use
6 The following tasks are the most common post installation requirements. Use
7 the information in these sections to configure your instance of |RCM|.
7 the information in these sections to configure your instance of |RCE|.
8
8
9 .. toctree::
9 .. toctree::
10
10
11 setup-email
11 setup-email
12 database-string
12 database-string
13 configure-celery
13 configure-celery
14 migrate-repos
14 migrate-repos
@@ -1,23 +1,23 b''
1 .. _mig-repos:
1 .. _mig-repos:
2
2
3 Migrating |repos|
3 Migrating |repos|
4 -----------------
4 -----------------
5
5
6 If you have installed |RCM| and have |repos| that you wish to migrate into
6 If you have installed |RCE| and have |repos| that you wish to migrate into
7 the system, use the following instructions.
7 the system, use the following instructions.
8
8
9 1. On the |RCM| interface, check your |repo| storage location under
9 1. On the |RCE| interface, check your |repo| storage location under
10 :menuselection:`Admin --> Settings --> System Info`. For example,
10 :menuselection:`Admin --> Settings --> System Info`. For example,
11 Storage location: /home/{username}/repos.
11 Storage location: /home/{username}/repos.
12
12
13 2. Copy the |repos| that you want |RCM| to manage to this location.
13 2. Copy the |repos| that you want |RCE| to manage to this location.
14 3. Remap and rescan the |repos|, see :ref:`remap-rescan`
14 3. Remap and rescan the |repos|, see :ref:`remap-rescan`
15
15
16 .. important::
16 .. important::
17
17
18 Directories create |repo| groups inside |RCM|.
18 Directories create |repo| groups inside |RCE|.
19
19
20 Importing adds |RCM| git hooks to your |repos|.
20 Importing adds |RCE| git hooks to your |repos|.
21
21
22 You should verify if custom ``.hg`` or ``.hgrc`` files inside
22 You should verify if custom ``.hg`` or ``.hgrc`` files inside
23 repositories should be adjusted since |RCM| reads the content of them.
23 repositories should be adjusted since |RCE| reads the content of them.
@@ -1,110 +1,113 b''
1 .. _quick-start:
1 .. _quick-start:
2
2
3 Quick Start Installation Guide
3 Quick Start Installation Guide
4 ==============================
4 ==============================
5
5
6 .. important::
6 .. important::
7
7
8 These are quick start instructions. To optimize your |RCE|,
8 These are quick start instructions. To optimize your |RCE|,
9 |RCC|, and |RCT| usage, read the more detailed instructions in our guides.
9 |RCC|, and |RCT| usage, read the more detailed instructions in our guides.
10 For detailed installation instructions, see
10 For detailed installation instructions, see
11 :ref:`RhodeCode Control Documentation <control:rcc>`
11 :ref:`RhodeCode Control Documentation <control:rcc>`
12
12
13 .. tip::
13 .. tip::
14
14
15 If using a non-SQLite database, install and configure the database, create
15 If using a non-SQLite database, install and configure the database, create
16 a new user, and grant permissions. You will be prompted for this user's
16 a new user, and grant permissions. You will be prompted for this user's
17 credentials during |RCE| installation. See the relevant database
17 credentials during |RCE| installation. See the relevant database
18 documentation for more details.
18 documentation for more details.
19
19
20 To get |RCE| up and running, run through the below steps:
20 To get |RCE| up and running, run through the below steps:
21
21
22 1. Download the latest |RCC| installer from `rhodecode.com/download`_.
22 1. Download the latest |RCC| installer from `rhodecode.com/download`_.
23 If you don't have an account, sign up at `rhodecode.com/register`_.
23 If you don't have an account, sign up at `rhodecode.com/register`_.
24
24
25 2. Run the |RCC| installer and accept the End User Licence using the
25 2. Run the |RCC| installer and accept the End User Licence using the
26 following example:
26 following example:
27
27
28 .. code-block:: bash
28 .. code-block:: bash
29
29
30 $ chmod 755 RhodeCode-installer-linux-*
30 $ chmod +x RhodeCode-installer-linux-*
31 $ ./RhodeCode-installer-linux-*
31 $ ./RhodeCode-installer-linux-*
32
32
33 Do you accept the RhodeCode Control license?
34 Press [Y] to accept license and [V] to view license text: y
35
33 3. Install a VCS Server, and configure it to start at boot.
36 3. Install a VCS Server, and configure it to start at boot.
34
37
35 .. code-block:: bash
38 .. code-block:: bash
36
39
37 $ rccontrol install VCSServer
40 $ rccontrol install VCSServer
38
41
39 Agree to the licence agreement? [y/N]: y
42 Agree to the licence agreement? [y/N]: y
40 IP to start the server on [127.0.0.1]:
43 IP to start the server on [127.0.0.1]:
41 Port for the server to start [10005]:
44 Port for the server to start [10005]:
42 Creating new instance: vcsserver-1
45 Creating new instance: vcsserver-1
43 Installing RhodeCode VCSServer
46 Installing RhodeCode VCSServer
44 Configuring RhodeCode VCS Server ...
47 Configuring RhodeCode VCS Server ...
45 Supervisord state is: RUNNING
48 Supervisord state is: RUNNING
46 Added process group vcsserver-1
49 Added process group vcsserver-1
47
50
48
51
49 4. Install |RCEE| or |RCCE|. If using MySQL or PostgreSQL, during
52 4. Install |RCEE| or |RCCE|. If using MySQL or PostgreSQL, during
50 installation you'll be asked for your database credentials, so have them at hand.
53 installation you'll be asked for your database credentials, so have them at hand.
51 Mysql or Postgres needs to be running and a new database needs to be created.
54 Mysql or Postgres needs to be running and a new database needs to be created.
52 You don't need any credentials or to create a database for SQLite.
55 You don't need any credentials or to create a database for SQLite.
53
56
54 .. code-block:: bash
57 .. code-block:: bash
55 :emphasize-lines: 11-16
58 :emphasize-lines: 11-16
56
59
57 $ rccontrol install Community
60 $ rccontrol install Community
58
61
59 or
62 or
60
63
61 $ rccontrol install Enterprise
64 $ rccontrol install Enterprise
62
65
63 Username [admin]: username
66 Username [admin]: username
64 Password (min 6 chars):
67 Password (min 6 chars):
65 Repeat for confirmation:
68 Repeat for confirmation:
66 Email: your@mail.com
69 Email: your@mail.com
67 Respositories location [/home/brian/repos]:
70 Respositories location [/home/brian/repos]:
68 IP to start the Enterprise server on [127.0.0.1]:
71 IP to start the Enterprise server on [127.0.0.1]:
69 Port for the Enterprise server to use [10004]:
72 Port for the Enterprise server to use [10004]:
70 Database type - [s]qlite, [m]ysql, [p]ostresql:
73 Database type - [s]qlite, [m]ysql, [p]ostresql:
71 PostgreSQL selected
74 PostgreSQL selected
72 Database host [127.0.0.1]:
75 Database host [127.0.0.1]:
73 Database port [5432]:
76 Database port [5432]:
74 Database username: db-user-name
77 Database username: db-user-name
75 Database password: somepassword
78 Database password: somepassword
76 Database name: example-db-name
79 Database name: example-db-name
77
80
78 5. Check the status of your installation. You |RCEE|/|RCCE| instance runs
81 5. Check the status of your installation. You |RCEE|/|RCCE| instance runs
79 on the URL displayed in the status message.
82 on the URL displayed in the status message.
80
83
81 .. code-block:: bash
84 .. code-block:: bash
82
85
83 $ rccontrol status
86 $ rccontrol status
84
87
85 - NAME: enterprise-1
88 - NAME: enterprise-1
86 - STATUS: RUNNING
89 - STATUS: RUNNING
87 - TYPE: Enterprise
90 - TYPE: Enterprise
88 - VERSION: 4.1.0
91 - VERSION: 4.1.0
89 - URL: http://127.0.0.1:10003
92 - URL: http://127.0.0.1:10003
90
93
91 - NAME: vcsserver-1
94 - NAME: vcsserver-1
92 - STATUS: RUNNING
95 - STATUS: RUNNING
93 - TYPE: VCSServer
96 - TYPE: VCSServer
94 - VERSION: 4.1.0
97 - VERSION: 4.1.0
95 - URL: http://127.0.0.1:10001
98 - URL: http://127.0.0.1:10001
96
99
97 .. note::
100 .. note::
98
101
99 Recommended post quick start install instructions:
102 Recommended post quick start install instructions:
100
103
101 * Read the documentation
104 * Read the documentation
102 * Carry out the :ref:`rhodecode-post-instal-ref`
105 * Carry out the :ref:`rhodecode-post-instal-ref`
103 * Set up :ref:`indexing-ref`
106 * Set up :ref:`indexing-ref`
104 * Familiarise yourself with the :ref:`rhodecode-admin-ref` section.
107 * Familiarise yourself with the :ref:`rhodecode-admin-ref` section.
105
108
106 .. _rhodecode.com/download/: https://rhodecode.com/download/
109 .. _rhodecode.com/download/: https://rhodecode.com/download/
107 .. _rhodecode.com: https://rhodecode.com/
110 .. _rhodecode.com: https://rhodecode.com/
108 .. _rhodecode.com/register: https://rhodecode.com/register/
111 .. _rhodecode.com/register: https://rhodecode.com/register/
109 .. _rhodecode.com/download: https://rhodecode.com/download/
112 .. _rhodecode.com/download: https://rhodecode.com/download/
110
113
@@ -1,30 +1,30 b''
1 .. _set-up-mail:
1 .. _set-up-mail:
2
2
3 Set up Email
3 Set up Email
4 ------------
4 ------------
5
5
6 To setup email with your |RCM| instance, open the default
6 To setup email with your |RCE| instance, open the default
7 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
7 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
8 file and uncomment and configure the email section. If it is not there,
8 file and uncomment and configure the email section. If it is not there,
9 use the below example to insert it.
9 use the below example to insert it.
10
10
11 Once configured you can check the settings for your |RCM| instance on the
11 Once configured you can check the settings for your |RCE| instance on the
12 :menuselection:`Admin --> Settings --> Email` page.
12 :menuselection:`Admin --> Settings --> Email` page.
13
13
14 .. code-block:: ini
14 .. code-block:: ini
15
15
16 ################################################################################
16 ################################################################################
17 ## Uncomment and replace with the email address which should receive ##
17 ## Uncomment and replace with the email address which should receive ##
18 ## any error reports after an application crash ##
18 ## any error reports after an application crash ##
19 ## Additionally these settings will be used by the RhodeCode mailing system ##
19 ## Additionally these settings will be used by the RhodeCode mailing system ##
20 ################################################################################
20 ################################################################################
21 #email_to = admin@localhost
21 #email_to = admin@localhost
22 #app_email_from = rhodecode-noreply@localhost
22 #app_email_from = rhodecode-noreply@localhost
23 #email_prefix = [RhodeCode]
23 #email_prefix = [RhodeCode]
24
24
25 #smtp_server = mail.server.com
25 #smtp_server = mail.server.com
26 #smtp_username =
26 #smtp_username =
27 #smtp_password =
27 #smtp_password =
28 #smtp_port =
28 #smtp_port =
29 #smtp_use_tls = false
29 #smtp_use_tls = false
30 #smtp_use_ssl = true
30 #smtp_use_ssl = true
@@ -1,26 +1,26 b''
1 .. _install-mysql-database:
1 .. _install-mysql-database:
2
2
3 MySQL or MariaDB
3 MySQL or MariaDB
4 ----------------
4 ----------------
5
5
6 To use a MySQL or MariaDB database you should install and configure the
6 To use a MySQL or MariaDB database you should install and configure the
7 database before installing |RCM|. This is because during |RCM| installation
7 database before installing |RCE|. This is because during |RCE| installation
8 you will setup a connection to your MySQL or MariaDB database. To work with
8 you will setup a connection to your MySQL or MariaDB database. To work with
9 either, use the following steps:
9 either, use the following steps:
10
10
11 1. Depending on your |os|, install a MySQL or MariaDB database following the
11 1. Depending on your |os|, install a MySQL or MariaDB database following the
12 appropriate instructions from the `MySQL website`_ or `MariaDB website`_.
12 appropriate instructions from the `MySQL website`_ or `MariaDB website`_.
13 2. Configure the database with a username and password which you will use
13 2. Configure the database with a username and password which you will use
14 with |RCM|.
14 with |RCE|.
15 3. Install |RCM|, and during installation select MySQL as your database.
15 3. Install |RCE|, and during installation select MySQL as your database.
16 4. Enter the following information during the database setup:
16 4. Enter the following information during the database setup:
17
17
18 * Your network IP Address
18 * Your network IP Address
19 * The port number for MySQL or MariaDB access.
19 * The port number for MySQL or MariaDB access.
20 The default port for both is ``3306``
20 The default port for both is ``3306``
21 * Your database username
21 * Your database username
22 * Your database password
22 * Your database password
23 * A new database name
23 * A new database name
24
24
25 .. _MySQL website: http://www.mysql.com/
25 .. _MySQL website: http://www.mysql.com/
26 .. _MariaDB website: https://mariadb.com/
26 .. _MariaDB website: https://mariadb.com/
@@ -1,24 +1,24 b''
1 .. _install-postgresql-database:
1 .. _install-postgresql-database:
2
2
3 PostgreSQL
3 PostgreSQL
4 ----------
4 ----------
5
5
6 To use a PostgreSQL database, you should install and configure the database
6 To use a PostgreSQL database, you should install and configure the database
7 before installing |RCV|. This is because during |RCV| installation you will
7 before installing |RCE|. This is because during |RCE| installation you will
8 setup the connection to your PostgreSQL database. To work with PostgreSQL,
8 setup the connection to your PostgreSQL database. To work with PostgreSQL,
9 use the following steps:
9 use the following steps:
10
10
11 1. Depending on your |os|, install a PostgreSQL database following the
11 1. Depending on your |os|, install a PostgreSQL database following the
12 appropriate instructions from the `PostgreSQL website`_.
12 appropriate instructions from the `PostgreSQL website`_.
13 2. Configure the database with a username and password, which you will use
13 2. Configure the database with a username and password, which you will use
14 with |RCV|.
14 with |RCE|.
15 3. Install |RCV|, and during installation select PostgreSQL as your database.
15 3. Install |RCE|, and during installation select PostgreSQL as your database.
16 4. Enter the following information during the database setup:
16 4. Enter the following information during the database setup:
17
17
18 * Your network IP Address
18 * Your network IP Address
19 * The port number for PostgreSQL access; the default port is ``5434``
19 * The port number for PostgreSQL access; the default port is ``5434``
20 * Your database username
20 * Your database username
21 * Your database password
21 * Your database password
22 * A new database name
22 * A new database name
23
23
24 .. _PostgreSQL website: http://www.postgresql.org/
24 .. _PostgreSQL website: http://www.postgresql.org/
@@ -1,32 +1,32 b''
1 .. _install-sqlite-database:
1 .. _install-sqlite-database:
2
2
3 SQLite
3 SQLite
4 ------
4 ------
5
5
6 .. important::
6 .. important::
7
7
8 We do not recommend using SQLite in a large development environment
8 We do not recommend using SQLite in a large development environment
9 as it has an internal locking mechanism which can become a performance
9 as it has an internal locking mechanism which can become a performance
10 bottleneck when there are more than 5 concurrent users.
10 bottleneck when there are more than 5 concurrent users.
11
11
12 |RCM| installs SQLite as the default database if you do not specify another
12 |RCE| installs SQLite as the default database if you do not specify another
13 during installation. SQLite is suitable for small teams,
13 during installation. SQLite is suitable for small teams,
14 projects with a low load, and evaluation purposes since it is built into
14 projects with a low load, and evaluation purposes since it is built into
15 |RCM| and does not require any additional database server.
15 |RCE| and does not require any additional database server.
16
16
17 Using MySQL or PostgreSQL in an large setup gives you much greater
17 Using MySQL or PostgreSQL in an large setup gives you much greater
18 performance, and while migration tools exist to move from one database type
18 performance, and while migration tools exist to move from one database type
19 to another, it is better to get it right first time and to immediately use
19 to another, it is better to get it right first time and to immediately use
20 MySQL or PostgreSQL when you deploy |RCM| in a production environment.
20 MySQL or PostgreSQL when you deploy |RCE| in a production environment.
21
21
22 Migrating From SQLite to PostgreSQL
22 Migrating From SQLite to PostgreSQL
23 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
24
24
25 If you started working with SQLite and now need to migrate your database
25 If you started working with SQLite and now need to migrate your database
26 to PostgreSQL, you can contact support@rhodecode.com for some help. We have a
26 to PostgreSQL, you can contact support@rhodecode.com for some help. We have a
27 set of scripts that enable SQLite to PostgreSQL migration. These scripts have
27 set of scripts that enable SQLite to PostgreSQL migration. These scripts have
28 been tested, and work with PostgreSQL 9.1+.
28 been tested, and work with PostgreSQL 9.1+.
29
29
30 .. note::
30 .. note::
31
31
32 There are no SQLite to MySQL or MariaDB scripts available.
32 There are no SQLite to MySQL or MariaDB scripts available.
@@ -1,60 +1,60 b''
1 .. _integrations:
1 .. _integrations:
2
2
3 Integrations
3 Integrations
4 ------------
4 ------------
5
5
6 |RCE| supports integrations with external services for various events,
6 |RCE| supports integrations with external services for various events,
7 such as commit pushes and pull requests. Multiple integrations of the same type
7 such as commit pushes and pull requests. Multiple integrations of the same type
8 can be added at the same time; this is useful for posting different events to
8 can be added at the same time; this is useful for posting different events to
9 different Slack channels, for example.
9 different Slack channels, for example.
10
10
11 Supported integrations
11 Supported integrations
12 ^^^^^^^^^^^^^^^^^^^^^^
12 ^^^^^^^^^^^^^^^^^^^^^^
13
13
14 ================================ ============ ========================================
14 ================================ ================== ========================================
15 Type/Name |RC| Edition Description
15 Type/Name RhodeCode Edition Description
16 ================================ ============ ========================================
16 ================================ ================== ========================================
17 :ref:`integrations-webhook` |RCCEshort| Trigger events as `json` to a custom url
17 :ref:`integrations-webhook` |RCCEshort| Trigger events as `json` to a custom url
18 :ref:`integrations-slack` |RCCEshort| Integrate with https://slack.com/
18 :ref:`integrations-slack` |RCCEshort| Integrate with https://slack.com/
19 :ref:`integrations-hipchat` |RCCEshort| Integrate with https://www.hipchat.com/
19 :ref:`integrations-hipchat` |RCCEshort| Integrate with https://www.hipchat.com/
20 :ref:`integrations-email` |RCCEshort| Send repo push commits by email
20 :ref:`integrations-email` |RCCEshort| Send repo push commits by email
21 :ref:`integrations-ci` |RCCEshort| Trigger Builds for Common CI Systems
21 :ref:`integrations-ci` |RCCEshort| Trigger Builds for Common CI Systems
22 :ref:`integrations-rcextensions` |RCCEshort| Advanced low-level integration framework
22 :ref:`integrations-rcextensions` |RCCEshort| Advanced low-level integration framework
23
23
24 :ref:`integrations-jenkins` |RCEEshort| Trigger Builds for Jenkins CI System
24 :ref:`integrations-jenkins` |RCEEshort| Trigger Builds for Jenkins CI System
25 :ref:`integrations-redmine` |RCEEshort| Close/Resolve/Reference Redmine issues
25 :ref:`integrations-redmine` |RCEEshort| Close/Resolve/Reference Redmine issues
26 :ref:`integrations-jira` |RCEEshort| Close/Resolve/Reference JIRA issues
26 :ref:`integrations-jira` |RCEEshort| Close/Resolve/Reference JIRA issues
27 ================================ ============ ========================================
27 ================================ ================== ========================================
28
28
29 .. _creating-integrations:
29 .. _creating-integrations:
30
30
31 Creating an Integration
31 Creating an Integration
32 ^^^^^^^^^^^^^^^^^^^^^^^
32 ^^^^^^^^^^^^^^^^^^^^^^^
33
33
34 Integrations can be added globally via the admin UI:
34 Integrations can be added globally via the admin UI:
35
35
36 :menuselection:`Admin --> Integrations`
36 :menuselection:`Admin --> Integrations`
37
37
38 or per repository in each repository's settings:
38 or per repository in each repository's settings:
39
39
40 :menuselection:`Admin --> Repositories --> Edit --> Integrations`
40 :menuselection:`Admin --> Repositories --> Edit --> Integrations`
41
41
42 To create an integration, select the type from the list in the *Create New
42 To create an integration, select the type from the list in the *Create New
43 Integration* section.
43 Integration* section.
44
44
45 The *Current Integrations* section shows existing integrations that have been
45 The *Current Integrations* section shows existing integrations that have been
46 created along with their type (eg. Slack) and enabled status.
46 created along with their type (eg. Slack) and enabled status.
47
47
48 See pages specific to each type of integration for more instructions:
48 See pages specific to each type of integration for more instructions:
49
49
50 .. toctree::
50 .. toctree::
51
51
52 slack
52 slack
53 hipchat
53 hipchat
54 redmine
54 redmine
55 jira
55 jira
56 webhook
56 webhook
57 email
57 email
58 ci
58 ci
59 jenkins
59 jenkins
60 integrations-rcextensions
60 integrations-rcextensions
@@ -1,81 +1,81 b''
1 .. _rhodecode-issue-trackers-ref:
1 .. _rhodecode-issue-trackers-ref:
2
2
3 Issue Tracker Integration
3 Issue Tracker Integration
4 =========================
4 =========================
5
5
6 You can set an issue tracker connection in two ways with |RCE|.
6 You can set an issue tracker connection in two ways with |RCE|.
7
7
8 * At the instance level, you can set a default issue tracker.
8 * At the instance level, you can set a default issue tracker.
9 * At the |repo| level, you can configure an integration with a different issue
9 * At the |repo| level, you can configure an integration with a different issue
10 tracker.
10 tracker.
11
11
12 To integrate |RCM| with an issue tracker, you need to define a regular
12 To integrate |RCE| with an issue tracker, you need to define a regular
13 expression that will fetch the issue ID stored in commit messages, and replace
13 expression that will fetch the issue ID stored in commit messages, and replace
14 it with a URL. This enables |RCE| to generate a link matching each issue to the
14 it with a URL. This enables |RCE| to generate a link matching each issue to the
15 target |repo|.
15 target |repo|.
16
16
17 Default Issue Tracker Configuration
17 Default Issue Tracker Configuration
18 -----------------------------------
18 -----------------------------------
19
19
20 To integrate your issue tracker, use the following steps:
20 To integrate your issue tracker, use the following steps:
21
21
22 1. Open :menuselection:`Admin --> Settings --> Issue Tracker`.
22 1. Open :menuselection:`Admin --> Settings --> Issue Tracker`.
23 2. In the new entry field, enter the following information:
23 2. In the new entry field, enter the following information:
24
24
25 * :guilabel:`Description`: A name for this set of rules.
25 * :guilabel:`Description`: A name for this set of rules.
26 * :guilabel:`Pattern`: The regular expression that will match issues
26 * :guilabel:`Pattern`: The regular expression that will match issues
27 tagged in commit messages, or more see :ref:`issue-tr-eg-ref`.
27 tagged in commit messages, or more see :ref:`issue-tr-eg-ref`.
28 * :guilabel:`URL`: The URL to your issue tracker.
28 * :guilabel:`URL`: The URL to your issue tracker.
29 * :guilabel:`Prefix`: The prefix with which you want to mark issues.
29 * :guilabel:`Prefix`: The prefix with which you want to mark issues.
30
30
31 3. Select **Add** so save the rule to your issue tracker configuration.
31 3. Select **Add** so save the rule to your issue tracker configuration.
32
32
33 Repository Issue Tracker Configuration
33 Repository Issue Tracker Configuration
34 --------------------------------------
34 --------------------------------------
35
35
36 You can configure specific |repos| to use a different issue tracker than the
36 You can configure specific |repos| to use a different issue tracker than the
37 default one. See the instructions in :ref:`repo-it`
37 default one. See the instructions in :ref:`repo-it`
38
38
39 .. _issue-tr-eg-ref:
39 .. _issue-tr-eg-ref:
40
40
41 Jira Integration
41 Jira Integration
42 ----------------
42 ----------------
43
43
44 * Regex = ``(?:^#|\s#)(\w+-\d+)``
44 * Regex = ``(?:^#|\s#)(\w+-\d+)``
45 * URL = ``https://myissueserver.com/browse/${id}``
45 * URL = ``https://myissueserver.com/browse/${id}``
46 * Issue Prefix = ``#``
46 * Issue Prefix = ``#``
47
47
48 Confluence (Wiki)
48 Confluence (Wiki)
49 -----------------
49 -----------------
50
50
51 * Regex = ``(?:conf-)([A-Z0-9]+)``
51 * Regex = ``(?:conf-)([A-Z0-9]+)``
52 * URL = ``https://example.atlassian.net/display/wiki/${id}/${repo_name}``
52 * URL = ``https://example.atlassian.net/display/wiki/${id}/${repo_name}``
53 * issue prefix = ``CONF-``
53 * issue prefix = ``CONF-``
54
54
55 Redmine Integration
55 Redmine Integration
56 -------------------
56 -------------------
57
57
58 * Regex = ``(issue-+\d+)``
58 * Regex = ``(issue-+\d+)``
59 * URL = ``https://myissueserver.com/redmine/issue/${id}``
59 * URL = ``https://myissueserver.com/redmine/issue/${id}``
60 * Issue Prefix = ``issue-``
60 * Issue Prefix = ``issue-``
61
61
62 Redmine (wiki)
62 Redmine (wiki)
63 --------------
63 --------------
64
64
65 * Regex = ``(?:wiki-)([a-zA-Z0-9]+)``
65 * Regex = ``(?:wiki-)([a-zA-Z0-9]+)``
66 * URL = ``https://example.com/redmine/projects/wiki/${repo_name}``
66 * URL = ``https://example.com/redmine/projects/wiki/${repo_name}``
67 * Issue prefix = ``Issue-``
67 * Issue prefix = ``Issue-``
68
68
69 Pivotal Tracker
69 Pivotal Tracker
70 ---------------
70 ---------------
71
71
72 * Regex = ``(?:pivot-)(?<project_id>\d+)-(?<story>\d+)``
72 * Regex = ``(?:pivot-)(?<project_id>\d+)-(?<story>\d+)``
73 * URL = ``https://www.pivotaltracker.com/s/projects/${project_id}/stories/${story}``
73 * URL = ``https://www.pivotaltracker.com/s/projects/${project_id}/stories/${story}``
74 * Issue prefix = ``Piv-``
74 * Issue prefix = ``Piv-``
75
75
76 Trello
76 Trello
77 ------
77 ------
78
78
79 * Regex = ``(?:trello-)(?<card_id>[a-zA-Z0-9]+)``
79 * Regex = ``(?:trello-)(?<card_id>[a-zA-Z0-9]+)``
80 * URL = ``https://trello.com/example.com/${card_id}``
80 * URL = ``https://trello.com/example.com/${card_id}``
81 * Issue prefix = ``Trello-``
81 * Issue prefix = ``Trello-``
@@ -1,15 +1,15 b''
1 .. _err-msg-ref:
1 .. _err-msg-ref:
2
2
3 Error Message Guide
3 Error Message Guide
4 ===================
4 ===================
5
5
6 Error Message
6 Error Message
7 Error creating repository repo-name
7 Error creating repository repo-name
8
8
9 Cause
9 Cause
10 As of |RCM| 3.0, a VCS Server is required to run backend operations.
10 As of |RCE| 3.0, a VCS Server is required to run backend operations.
11
11
12 Solution
12 Solution
13 Install a VCS Server. See the `Install a VCS Server`_ section of |RCC|
13 Install a VCS Server. See the `Install a VCS Server`_ section of |RCC|
14
14
15 .. _Install a VCS Server: https://docs.rhodecode.com/RhodeCode-Control/tasks/upgrade-from-cli.html#install-a-vcs-server No newline at end of file
15 .. _Install a VCS Server: https://docs.rhodecode.com/RhodeCode-Control/tasks/upgrade-from-cli.html#install-a-vcs-server
@@ -1,31 +1,31 b''
1 .. _rhodecode-nix-ref:
1 .. _rhodecode-nix-ref:
2
2
3 Nix Packaging
3 Nix Packaging
4 =============
4 =============
5
5
6 |RCM| is installed using |Nix Package Manager|. The Nix environment provides
6 |RCE| is installed using |Nix Package Manager|. The Nix environment provides
7 the following features for maintenance and deployment:
7 the following features for maintenance and deployment:
8
8
9 * Atomic upgrades and rollbacks
9 * Atomic upgrades and rollbacks
10 * Complete dependency management
10 * Complete dependency management
11 * Garbage collection
11 * Garbage collection
12 * Binary patching
12 * Binary patching
13 * Secure channel updates
13 * Secure channel updates
14 * Nix works on Windows, Linux, and OSX
14 * Nix works on Windows, Linux, and OSX
15
15
16 The complete list of dependencies can be found in
16 The complete list of dependencies can be found in
17 :file:`/opt/rhodecode/store/{unique-hash}`.
17 :file:`/opt/rhodecode/store/{unique-hash}`.
18
18
19 .. note::
19 .. note::
20
20
21 No |RCE| data is stored in this location.
21 No |RCE| data is stored in this location.
22
22
23 .. warning::
23 .. warning::
24
24
25 Never alter any of the packages in the store. Always use the
25 Never alter any of the packages in the store. Always use the
26 :ref:`RhodeCode Control CLI <control:rcc-cli>` update functions to keep
26 :ref:`RhodeCode Control CLI <control:rcc-cli>` update functions to keep
27 the packages and instances updated.
27 the packages and instances updated.
28
28
29 .. |Nix Package Manager| raw:: html
29 .. |Nix Package Manager| raw:: html
30
30
31 <a href="http://nixos.org/nix/" target="_blank">Nix</a>
31 <a href="http://nixos.org/nix/" target="_blank">Nix</a>
@@ -1,221 +1,221 b''
1 # Generated by pip2nix 0.8.0.dev1
1 # Generated by pip2nix 0.8.0.dev1
2 # See https://github.com/johbo/pip2nix
2 # See https://github.com/johbo/pip2nix
3
3
4 { pkgs, fetchurl, fetchgit, fetchhg }:
4 { pkgs, fetchurl, fetchgit, fetchhg }:
5
5
6 self: super: {
6 self: super: {
7 "alabaster" = super.buildPythonPackage {
7 "alabaster" = super.buildPythonPackage {
8 name = "alabaster-0.7.11";
8 name = "alabaster-0.7.12";
9 doCheck = false;
9 doCheck = false;
10 src = fetchurl {
10 src = fetchurl {
11 url = "https://files.pythonhosted.org/packages/3f/46/9346ea429931d80244ab7f11c4fce83671df0b7ae5a60247a2b588592c46/alabaster-0.7.11.tar.gz";
11 url = "https://files.pythonhosted.org/packages/cc/b4/ed8dcb0d67d5cfb7f83c4d5463a7614cb1d078ad7ae890c9143edebbf072/alabaster-0.7.12.tar.gz";
12 sha256 = "1mvm69xsn5xf1jc45kdq1mn0yq0pfn54mv2jcww4s1vwqx6iyfxn";
12 sha256 = "00nwwjj2d2ym4s2kk217x7jkx1hnczc3fvm8yxbqmsp6b0nxfqd6";
13 };
13 };
14 };
14 };
15 "babel" = super.buildPythonPackage {
15 "babel" = super.buildPythonPackage {
16 name = "babel-2.6.0";
16 name = "babel-2.6.0";
17 doCheck = false;
17 doCheck = false;
18 propagatedBuildInputs = [
18 propagatedBuildInputs = [
19 self."pytz"
19 self."pytz"
20 ];
20 ];
21 src = fetchurl {
21 src = fetchurl {
22 url = "https://files.pythonhosted.org/packages/be/cc/9c981b249a455fa0c76338966325fc70b7265521bad641bf2932f77712f4/Babel-2.6.0.tar.gz";
22 url = "https://files.pythonhosted.org/packages/be/cc/9c981b249a455fa0c76338966325fc70b7265521bad641bf2932f77712f4/Babel-2.6.0.tar.gz";
23 sha256 = "08rxmbx2s4irp0w0gmn498vns5xy0fagm0fg33xa772jiks51flc";
23 sha256 = "08rxmbx2s4irp0w0gmn498vns5xy0fagm0fg33xa772jiks51flc";
24 };
24 };
25 };
25 };
26 "certifi" = super.buildPythonPackage {
26 "certifi" = super.buildPythonPackage {
27 name = "certifi-2018.8.24";
27 name = "certifi-2018.11.29";
28 doCheck = false;
28 doCheck = false;
29 src = fetchurl {
29 src = fetchurl {
30 url = "https://files.pythonhosted.org/packages/e1/0f/f8d5e939184547b3bdc6128551b831a62832713aa98c2ccdf8c47ecc7f17/certifi-2018.8.24.tar.gz";
30 url = "https://files.pythonhosted.org/packages/55/54/3ce77783acba5979ce16674fc98b1920d00b01d337cfaaf5db22543505ed/certifi-2018.11.29.tar.gz";
31 sha256 = "0f0nhrj9mlrf79iway4578wrsgmjh0fmacl9zv8zjckdy7b90rip";
31 sha256 = "1dvccavd2fzq4j37w0sznylp92ps14zi6gvlxzm23in0yhzciya7";
32 };
32 };
33 };
33 };
34 "chardet" = super.buildPythonPackage {
34 "chardet" = super.buildPythonPackage {
35 name = "chardet-3.0.4";
35 name = "chardet-3.0.4";
36 doCheck = false;
36 doCheck = false;
37 src = fetchurl {
37 src = fetchurl {
38 url = "https://files.pythonhosted.org/packages/fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d/chardet-3.0.4.tar.gz";
38 url = "https://files.pythonhosted.org/packages/fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d/chardet-3.0.4.tar.gz";
39 sha256 = "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4";
39 sha256 = "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4";
40 };
40 };
41 };
41 };
42 "docutils" = super.buildPythonPackage {
42 "docutils" = super.buildPythonPackage {
43 name = "docutils-0.14";
43 name = "docutils-0.14";
44 doCheck = false;
44 doCheck = false;
45 src = fetchurl {
45 src = fetchurl {
46 url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
46 url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
47 sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
47 sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
48 };
48 };
49 };
49 };
50 "idna" = super.buildPythonPackage {
50 "idna" = super.buildPythonPackage {
51 name = "idna-2.7";
51 name = "idna-2.7";
52 doCheck = false;
52 doCheck = false;
53 src = fetchurl {
53 src = fetchurl {
54 url = "https://files.pythonhosted.org/packages/65/c4/80f97e9c9628f3cac9b98bfca0402ede54e0563b56482e3e6e45c43c4935/idna-2.7.tar.gz";
54 url = "https://files.pythonhosted.org/packages/65/c4/80f97e9c9628f3cac9b98bfca0402ede54e0563b56482e3e6e45c43c4935/idna-2.7.tar.gz";
55 sha256 = "05jam7d31767dr12x0rbvvs8lxnpb1mhdb2zdlfxgh83z6k3hjk8";
55 sha256 = "05jam7d31767dr12x0rbvvs8lxnpb1mhdb2zdlfxgh83z6k3hjk8";
56 };
56 };
57 };
57 };
58 "imagesize" = super.buildPythonPackage {
58 "imagesize" = super.buildPythonPackage {
59 name = "imagesize-1.1.0";
59 name = "imagesize-1.1.0";
60 doCheck = false;
60 doCheck = false;
61 src = fetchurl {
61 src = fetchurl {
62 url = "https://files.pythonhosted.org/packages/41/f5/3cf63735d54aa9974e544aa25858d8f9670ac5b4da51020bbfc6aaade741/imagesize-1.1.0.tar.gz";
62 url = "https://files.pythonhosted.org/packages/41/f5/3cf63735d54aa9974e544aa25858d8f9670ac5b4da51020bbfc6aaade741/imagesize-1.1.0.tar.gz";
63 sha256 = "1dg3wn7qpwmhgqc0r9na2ding1wif9q5spz3j9zn2riwphc2k0zk";
63 sha256 = "1dg3wn7qpwmhgqc0r9na2ding1wif9q5spz3j9zn2riwphc2k0zk";
64 };
64 };
65 };
65 };
66 "jinja2" = super.buildPythonPackage {
66 "jinja2" = super.buildPythonPackage {
67 name = "jinja2-2.9.6";
67 name = "jinja2-2.9.6";
68 doCheck = false;
68 doCheck = false;
69 propagatedBuildInputs = [
69 propagatedBuildInputs = [
70 self."markupsafe"
70 self."markupsafe"
71 ];
71 ];
72 src = fetchurl {
72 src = fetchurl {
73 url = "https://files.pythonhosted.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
73 url = "https://files.pythonhosted.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
74 sha256 = "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx";
74 sha256 = "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx";
75 };
75 };
76 };
76 };
77 "markupsafe" = super.buildPythonPackage {
77 "markupsafe" = super.buildPythonPackage {
78 name = "markupsafe-1.0";
78 name = "markupsafe-1.0";
79 doCheck = false;
79 doCheck = false;
80 src = fetchurl {
80 src = fetchurl {
81 url = "https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz";
81 url = "https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz";
82 sha256 = "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6";
82 sha256 = "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6";
83 };
83 };
84 };
84 };
85 "packaging" = super.buildPythonPackage {
85 "packaging" = super.buildPythonPackage {
86 name = "packaging-17.1";
86 name = "packaging-18.0";
87 doCheck = false;
87 doCheck = false;
88 propagatedBuildInputs = [
88 propagatedBuildInputs = [
89 self."pyparsing"
89 self."pyparsing"
90 self."six"
90 self."six"
91 ];
91 ];
92 src = fetchurl {
92 src = fetchurl {
93 url = "https://files.pythonhosted.org/packages/77/32/439f47be99809c12ef2da8b60a2c47987786d2c6c9205549dd6ef95df8bd/packaging-17.1.tar.gz";
93 url = "https://files.pythonhosted.org/packages/cf/50/1f10d2626df0aa97ce6b62cf6ebe14f605f4e101234f7748b8da4138a8ed/packaging-18.0.tar.gz";
94 sha256 = "0nrpayk8kij1zm9sjnk38ldz3a6705ggvw8ljylqbrb4vmqbf6gh";
94 sha256 = "01wq9c53ix5rz6qg2c98gy8n4ff768rmanifm8m5jpjiaizj51h8";
95 };
95 };
96 };
96 };
97 "pygments" = super.buildPythonPackage {
97 "pygments" = super.buildPythonPackage {
98 name = "pygments-2.2.0";
98 name = "pygments-2.3.0";
99 doCheck = false;
99 doCheck = false;
100 src = fetchurl {
100 src = fetchurl {
101 url = "https://files.pythonhosted.org/packages/71/2a/2e4e77803a8bd6408a2903340ac498cb0a2181811af7c9ec92cb70b0308a/Pygments-2.2.0.tar.gz";
101 url = "https://files.pythonhosted.org/packages/63/a2/91c31c4831853dedca2a08a0f94d788fc26a48f7281c99a303769ad2721b/Pygments-2.3.0.tar.gz";
102 sha256 = "1k78qdvir1yb1c634nkv6rbga8wv4289xarghmsbbvzhvr311bnv";
102 sha256 = "1z34ms51dh4jq4h3cizp7vd1dmsxcbvffkjsd2xxfav22nn6lrl2";
103 };
103 };
104 };
104 };
105 "pyparsing" = super.buildPythonPackage {
105 "pyparsing" = super.buildPythonPackage {
106 name = "pyparsing-2.2.0";
106 name = "pyparsing-2.3.0";
107 doCheck = false;
107 doCheck = false;
108 src = fetchurl {
108 src = fetchurl {
109 url = "https://files.pythonhosted.org/packages/3c/ec/a94f8cf7274ea60b5413df054f82a8980523efd712ec55a59e7c3357cf7c/pyparsing-2.2.0.tar.gz";
109 url = "https://files.pythonhosted.org/packages/d0/09/3e6a5eeb6e04467b737d55f8bba15247ac0876f98fae659e58cd744430c6/pyparsing-2.3.0.tar.gz";
110 sha256 = "016b9gh606aa44sq92jslm89bg874ia0yyiyb643fa6dgbsbqch8";
110 sha256 = "14k5v7n3xqw8kzf42x06bzp184spnlkya2dpjyflax6l3yrallzk";
111 };
111 };
112 };
112 };
113 "pytz" = super.buildPythonPackage {
113 "pytz" = super.buildPythonPackage {
114 name = "pytz-2018.4";
114 name = "pytz-2018.4";
115 doCheck = false;
115 doCheck = false;
116 src = fetchurl {
116 src = fetchurl {
117 url = "https://files.pythonhosted.org/packages/10/76/52efda4ef98e7544321fd8d5d512e11739c1df18b0649551aeccfb1c8376/pytz-2018.4.tar.gz";
117 url = "https://files.pythonhosted.org/packages/10/76/52efda4ef98e7544321fd8d5d512e11739c1df18b0649551aeccfb1c8376/pytz-2018.4.tar.gz";
118 sha256 = "0jgpqx3kk2rhv81j1izjxvmx8d0x7hzs1857pgqnixic5wq2ar60";
118 sha256 = "0jgpqx3kk2rhv81j1izjxvmx8d0x7hzs1857pgqnixic5wq2ar60";
119 };
119 };
120 };
120 };
121 "requests" = super.buildPythonPackage {
121 "requests" = super.buildPythonPackage {
122 name = "requests-2.19.1";
122 name = "requests-2.20.1";
123 doCheck = false;
123 doCheck = false;
124 propagatedBuildInputs = [
124 propagatedBuildInputs = [
125 self."chardet"
125 self."chardet"
126 self."idna"
126 self."idna"
127 self."urllib3"
127 self."urllib3"
128 self."certifi"
128 self."certifi"
129 ];
129 ];
130 src = fetchurl {
130 src = fetchurl {
131 url = "https://files.pythonhosted.org/packages/54/1f/782a5734931ddf2e1494e4cd615a51ff98e1879cbe9eecbdfeaf09aa75e9/requests-2.19.1.tar.gz";
131 url = "https://files.pythonhosted.org/packages/40/35/298c36d839547b50822985a2cf0611b3b978a5ab7a5af5562b8ebe3e1369/requests-2.20.1.tar.gz";
132 sha256 = "0snf8xxdzsgh1x2zv3vilvbrv9jbpmnfagzzb1rjmmvflckdh8pc";
132 sha256 = "0qzj6cgv3k9wyj7wlxgz7xq0cfg4jbbkfm24pp8dnhczwl31527a";
133 };
133 };
134 };
134 };
135 "setuptools" = super.buildPythonPackage {
135 "setuptools" = super.buildPythonPackage {
136 name = "setuptools-40.2.0";
136 name = "setuptools-40.6.2";
137 doCheck = false;
137 doCheck = false;
138 src = fetchurl {
138 src = fetchurl {
139 url = "https://files.pythonhosted.org/packages/ef/1d/201c13e353956a1c840f5d0fbf0461bd45bbd678ea4843ebf25924e8984c/setuptools-40.2.0.zip";
139 url = "https://files.pythonhosted.org/packages/b0/d1/8acb42f391cba52e35b131e442e80deffbb8d0676b93261d761b1f0ef8fb/setuptools-40.6.2.zip";
140 sha256 = "19ng5m7kigllg3x96c91y3a2k28g6kwnbb1v4warrnp4xma1v227";
140 sha256 = "0r2c5hapirlzm34h7pl1lgkm6gk7bcrlrdj28qgsvaqg3f74vfw6";
141 };
141 };
142 };
142 };
143 "six" = super.buildPythonPackage {
143 "six" = super.buildPythonPackage {
144 name = "six-1.11.0";
144 name = "six-1.11.0";
145 doCheck = false;
145 doCheck = false;
146 src = fetchurl {
146 src = fetchurl {
147 url = "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
147 url = "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
148 sha256 = "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h";
148 sha256 = "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h";
149 };
149 };
150 };
150 };
151 "snowballstemmer" = super.buildPythonPackage {
151 "snowballstemmer" = super.buildPythonPackage {
152 name = "snowballstemmer-1.2.1";
152 name = "snowballstemmer-1.2.1";
153 doCheck = false;
153 doCheck = false;
154 src = fetchurl {
154 src = fetchurl {
155 url = "https://files.pythonhosted.org/packages/20/6b/d2a7cb176d4d664d94a6debf52cd8dbae1f7203c8e42426daa077051d59c/snowballstemmer-1.2.1.tar.gz";
155 url = "https://files.pythonhosted.org/packages/20/6b/d2a7cb176d4d664d94a6debf52cd8dbae1f7203c8e42426daa077051d59c/snowballstemmer-1.2.1.tar.gz";
156 sha256 = "0a0idq4y5frv7qsg2x62jd7rd272749xk4x99misf5rcifk2d7wi";
156 sha256 = "0a0idq4y5frv7qsg2x62jd7rd272749xk4x99misf5rcifk2d7wi";
157 };
157 };
158 };
158 };
159 "sphinx" = super.buildPythonPackage {
159 "sphinx" = super.buildPythonPackage {
160 name = "sphinx-1.7.8";
160 name = "sphinx-1.8.2";
161 doCheck = false;
161 doCheck = false;
162 propagatedBuildInputs = [
162 propagatedBuildInputs = [
163 self."six"
163 self."six"
164 self."jinja2"
164 self."jinja2"
165 self."pygments"
165 self."pygments"
166 self."docutils"
166 self."docutils"
167 self."snowballstemmer"
167 self."snowballstemmer"
168 self."babel"
168 self."babel"
169 self."alabaster"
169 self."alabaster"
170 self."imagesize"
170 self."imagesize"
171 self."requests"
171 self."requests"
172 self."setuptools"
172 self."setuptools"
173 self."packaging"
173 self."packaging"
174 self."sphinxcontrib-websupport"
174 self."sphinxcontrib-websupport"
175 self."typing"
175 self."typing"
176 ];
176 ];
177 src = fetchurl {
177 src = fetchurl {
178 url = "https://files.pythonhosted.org/packages/ac/54/4ef326d0c654da1ed91341a7a1f43efc18a8c770ddd2b8e45df97cb79d82/Sphinx-1.7.8.tar.gz";
178 url = "https://files.pythonhosted.org/packages/4c/ea/7388faba7cf02999e1bc42f6a8eb1ea0120aec3dd93474cee21cea2d693f/Sphinx-1.8.2.tar.gz";
179 sha256 = "1ryz0w4c31930f1br2sjwrxwx9cmsy7cqdb0d81g98n9bj250w50";
179 sha256 = "1sia2h5rfzy76rbsd69ghr8bbidhsjzzinf3f523dcmivp5k41qj";
180 };
180 };
181 };
181 };
182 "sphinx-rtd-theme" = super.buildPythonPackage {
182 "sphinx-rtd-theme" = super.buildPythonPackage {
183 name = "sphinx-rtd-theme-0.4.1";
183 name = "sphinx-rtd-theme-0.4.1";
184 doCheck = false;
184 doCheck = false;
185 propagatedBuildInputs = [
185 propagatedBuildInputs = [
186 self."sphinx"
186 self."sphinx"
187 ];
187 ];
188 src = fetchurl {
188 src = fetchurl {
189 url = "https://files.pythonhosted.org/packages/f2/b0/a1933d792b806118ddbca6699f2e2c844d9b1b16e84a89d7effd5cd2a800/sphinx_rtd_theme-0.4.1.tar.gz";
189 url = "https://files.pythonhosted.org/packages/f2/b0/a1933d792b806118ddbca6699f2e2c844d9b1b16e84a89d7effd5cd2a800/sphinx_rtd_theme-0.4.1.tar.gz";
190 sha256 = "1xkyqam8dzbjaymdyvkiif85m4y3jf8crdiwlgcfp8gqcj57aj9v";
190 sha256 = "1xkyqam8dzbjaymdyvkiif85m4y3jf8crdiwlgcfp8gqcj57aj9v";
191 };
191 };
192 };
192 };
193 "sphinxcontrib-websupport" = super.buildPythonPackage {
193 "sphinxcontrib-websupport" = super.buildPythonPackage {
194 name = "sphinxcontrib-websupport-1.1.0";
194 name = "sphinxcontrib-websupport-1.1.0";
195 doCheck = false;
195 doCheck = false;
196 src = fetchurl {
196 src = fetchurl {
197 url = "https://files.pythonhosted.org/packages/07/7a/e74b06dce85555ffee33e1d6b7381314169ebf7e31b62c18fcb2815626b7/sphinxcontrib-websupport-1.1.0.tar.gz";
197 url = "https://files.pythonhosted.org/packages/07/7a/e74b06dce85555ffee33e1d6b7381314169ebf7e31b62c18fcb2815626b7/sphinxcontrib-websupport-1.1.0.tar.gz";
198 sha256 = "1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x";
198 sha256 = "1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x";
199 };
199 };
200 };
200 };
201 "typing" = super.buildPythonPackage {
201 "typing" = super.buildPythonPackage {
202 name = "typing-3.6.6";
202 name = "typing-3.6.6";
203 doCheck = false;
203 doCheck = false;
204 src = fetchurl {
204 src = fetchurl {
205 url = "https://files.pythonhosted.org/packages/bf/9b/2bf84e841575b633d8d91ad923e198a415e3901f228715524689495b4317/typing-3.6.6.tar.gz";
205 url = "https://files.pythonhosted.org/packages/bf/9b/2bf84e841575b633d8d91ad923e198a415e3901f228715524689495b4317/typing-3.6.6.tar.gz";
206 sha256 = "0ba9acs4awx15bf9v3nrs781msbd2nx826906nj6fqks2bvca9s0";
206 sha256 = "0ba9acs4awx15bf9v3nrs781msbd2nx826906nj6fqks2bvca9s0";
207 };
207 };
208 };
208 };
209 "urllib3" = super.buildPythonPackage {
209 "urllib3" = super.buildPythonPackage {
210 name = "urllib3-1.23";
210 name = "urllib3-1.24.1";
211 doCheck = false;
211 doCheck = false;
212 src = fetchurl {
212 src = fetchurl {
213 url = "https://files.pythonhosted.org/packages/3c/d2/dc5471622bd200db1cd9319e02e71bc655e9ea27b8e0ce65fc69de0dac15/urllib3-1.23.tar.gz";
213 url = "https://files.pythonhosted.org/packages/b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1/urllib3-1.24.1.tar.gz";
214 sha256 = "1bvbd35q3zdcd7gsv38fwpizy7p06dr0154g5gfybrvnbvhwb2m6";
214 sha256 = "08lwd9f3hqznyf32vnzwvp87pchx062nkbgyrf67rwlkgj0jk5fy";
215 };
215 };
216 };
216 };
217
217
218 ### Test requirements
218 ### Test requirements
219
219
220
220
221 }
221 }
@@ -1,166 +1,166 b''
1 |RCE| 3.0.0 |RNS|
1 |RCE| 3.0.0 |RNS|
2 -----------------
2 -----------------
3
3
4 As |RCM| 3.0 is a big release, the release notes have been split into the following sections:
4 As |RCE| 3.0 is a big release, the release notes have been split into the following sections:
5
5
6 * :ref:`general-rn-ref`
6 * :ref:`general-rn-ref`
7 * :ref:`security-rn-ref`
7 * :ref:`security-rn-ref`
8 * :ref:`api-rn-ref`
8 * :ref:`api-rn-ref`
9 * :ref:`performance-rn-ref`
9 * :ref:`performance-rn-ref`
10 * :ref:`prs-rn-ref`
10 * :ref:`prs-rn-ref`
11 * :ref:`gists-rn-ref`
11 * :ref:`gists-rn-ref`
12 * :ref:`search-rn-ref`
12 * :ref:`search-rn-ref`
13 * :ref:`fixes-rn-ref`
13 * :ref:`fixes-rn-ref`
14
14
15 .. _general-rn-ref:
15 .. _general-rn-ref:
16
16
17 General
17 General
18 ^^^^^^^
18 ^^^^^^^
19 * Released 2015-01-27
19 * Released 2015-01-27
20 * Basic |svn| support added
20 * Basic |svn| support added
21 * GPLv3 components removed
21 * GPLv3 components removed
22 * Server/Client architecture for VCS systems created
22 * Server/Client architecture for VCS systems created
23 * Python 2.5 and 2.6 support deprecated
23 * Python 2.5 and 2.6 support deprecated
24 * Server info pages now show gist/archive cache storage, and also CPU/Memory/Load information.
24 * Server info pages now show gist/archive cache storage, and also CPU/Memory/Load information.
25 * Added new bulk commit (changeset) status comment form into compare view which enables bulk code-reviews without
25 * Added new bulk commit (changeset) status comment form into compare view which enables bulk code-reviews without
26 opening a pull-request.
26 opening a pull-request.
27 * License checks and limits now only apply to active users.
27 * License checks and limits now only apply to active users.
28 * Removed CLI command for |repo| scans as it can be done via an API call.
28 * Removed CLI command for |repo| scans as it can be done via an API call.
29 * VCS backends can be globally enabled/disabled from the :file:`rhodecode.ini` file.
29 * VCS backends can be globally enabled/disabled from the :file:`rhodecode.ini` file.
30 * Added a UI option to set default rendering to rst or markdown.
30 * Added a UI option to set default rendering to rst or markdown.
31 * Added syntax highlighting to 2 way compare diff.
31 * Added syntax highlighting to 2 way compare diff.
32 * Markup rendering can now render checkboxes for easy checklists generation.
32 * Markup rendering can now render checkboxes for easy checklists generation.
33 * Gravatars are now retina ready.
33 * Gravatars are now retina ready.
34 * Admins can define custom CSS or JavaScript in the header or footer via new pre/post code options.
34 * Admins can define custom CSS or JavaScript in the header or footer via new pre/post code options.
35 * Replaced ``graph.js`` with ``commits-graph.js`` html5 implementation.
35 * Replaced ``graph.js`` with ``commits-graph.js`` html5 implementation.
36 * Added editable owner field for repository groups, and user group.
36 * Added editable owner field for repository groups, and user group.
37 * Added an option to detach/delete user repositories when deleting users from the system.
37 * Added an option to detach/delete user repositories when deleting users from the system.
38 * Added a Supervisor control page that shows status of processes.
38 * Added a Supervisor control page that shows status of processes.
39 * User admin grid can now filter by username OR email.
39 * User admin grid can now filter by username OR email.
40 * Added personal |repo| group link for easier fork creation.
40 * Added personal |repo| group link for easier fork creation.
41 * Added support for using subdirectories when creating and uploading new files.
41 * Added support for using subdirectories when creating and uploading new files.
42 * Added option to rename a file from the web interface.
42 * Added option to rename a file from the web interface.
43 * Added arrow key navigation to file filter and fixed the back button behaviour.
43 * Added arrow key navigation to file filter and fixed the back button behaviour.
44 * Added fuzzy matching to file filter.
44 * Added fuzzy matching to file filter.
45 * Added functionality to create folder structures along with files when adding content via the web interface.
45 * Added functionality to create folder structures along with files when adding content via the web interface.
46 * Separated default permissions UI into `global`, `user`, or `object` permissions management.
46 * Separated default permissions UI into `global`, `user`, or `object` permissions management.
47 * Added an inheritance flag to object permissions which allows for explicit permissions which disregard global
47 * Added an inheritance flag to object permissions which allows for explicit permissions which disregard global
48 permissions.
48 permissions.
49 * Added post create repository group hook.
49 * Added post create repository group hook.
50 * Added trigger push hooks on online file editor.
50 * Added trigger push hooks on online file editor.
51 * Added default title for pull request.
51 * Added default title for pull request.
52 * More detailed logs during Authentication.
52 * More detailed logs during Authentication.
53 * More explicit logging when permission checks occur.
53 * More explicit logging when permission checks occur.
54 * Switched the implementation of |git| ``fetch clone pull checkout`` commands to pure |py| without any subprocess
54 * Switched the implementation of |git| ``fetch clone pull checkout`` commands to pure |py| without any subprocess
55 calls.
55 calls.
56 * Introduced the ``rcserver`` command for custom development.
56 * Introduced the ``rcserver`` command for custom development.
57 * Added the ability to force no cache archived via the ``GET no_cache`` flag
57 * Added the ability to force no cache archived via the ``GET no_cache`` flag
58
58
59 .. _security-rn-ref:
59 .. _security-rn-ref:
60
60
61 Security
61 Security
62 ^^^^^^^^
62 ^^^^^^^^
63
63
64 * CSRF (Cross-Site Request Forgery) tokens now in all pages that use forms.
64 * CSRF (Cross-Site Request Forgery) tokens now in all pages that use forms.
65 * The ``clone_url`` field is now AES encrypted inside the database.
65 * The ``clone_url`` field is now AES encrypted inside the database.
66 * ACLs (Access Control Lists) are checked on the gist edit page for logged in users.
66 * ACLs (Access Control Lists) are checked on the gist edit page for logged in users.
67 * New repository groups and repositories are created with 0755 permissions and not not 0777.
67 * New repository groups and repositories are created with 0755 permissions and not not 0777.
68 * Explicit RSS tokens are used for the RSS journal, when leaked, limits access to RSS only.
68 * Explicit RSS tokens are used for the RSS journal, when leaked, limits access to RSS only.
69 * Fixed XSS issues when rendering raw SVG files.
69 * Fixed XSS issues when rendering raw SVG files.
70 * Added force password reset option for users.
70 * Added force password reset option for users.
71 * IP list now accepts comma-separated values, and also ranges using `-` to specify multiple addresses.
71 * IP list now accepts comma-separated values, and also ranges using `-` to specify multiple addresses.
72 * Added ``auth tokens``, these authentication tokens can be used as an alternative to passwords.
72 * Added ``auth tokens``, these authentication tokens can be used as an alternative to passwords.
73 * Added roles (``http, api, rss, all, vcs``) into authentication tokens (previously called ``apikeys``).
73 * Added roles (``http, api, rss, all, vcs``) into authentication tokens (previously called ``apikeys``).
74 * LDAP Group Support added.
74 * LDAP Group Support added.
75 * Added JASIG CAS auth plugin support.
75 * Added JASIG CAS auth plugin support.
76 * Added a plugin parameter that defines if a plugin can create new users on the fly.
76 * Added a plugin parameter that defines if a plugin can create new users on the fly.
77
77
78 .. _api-rn-ref:
78 .. _api-rn-ref:
79
79
80 API
80 API
81 ^^^
81 ^^^
82 * Added permissions delegation when creating |repos| or |repo| groups.
82 * Added permissions delegation when creating |repos| or |repo| groups.
83 * Added ``strip`` support for |hg| and |git| |repos|.
83 * Added ``strip`` support for |hg| and |git| |repos|.
84 * Added comments API for commits.
84 * Added comments API for commits.
85 * Added add/remove methods for extra fields in repositories.
85 * Added add/remove methods for extra fields in repositories.
86 * ``get_*`` calls now use ``permission()`` and ``permission_user_group()`` methods for unified permissions structure.
86 * ``get_*`` calls now use ``permission()`` and ``permission_user_group()`` methods for unified permissions structure.
87 * ``get_repo_nodes`` information sending has changed and is no longer a boolean flag, it's now ``basic`` or ``full``.
87 * ``get_repo_nodes`` information sending has changed and is no longer a boolean flag, it's now ``basic`` or ``full``.
88 * Due to configurable backends ``repo_type`` is now mandatory parameter for the ``create_repo`` call.
88 * Due to configurable backends ``repo_type`` is now mandatory parameter for the ``create_repo`` call.
89
89
90 .. _performance-rn-ref:
90 .. _performance-rn-ref:
91
91
92 Performance
92 Performance
93 ^^^^^^^^^^^
93 ^^^^^^^^^^^
94
94
95 * Significant performance improvements across all application functions.
95 * Significant performance improvements across all application functions.
96 * HTTP Authentication performance enhancements.
96 * HTTP Authentication performance enhancements.
97 * Added a ``scope`` variable to the permissions fetching function which improves building permission trees in large
97 * Added a ``scope`` variable to the permissions fetching function which improves building permission trees in large
98 amounts by a factor of 10.
98 amounts by a factor of 10.
99 * Implemented caching logic for all authentication plugins. The ``AUTH_CACHE_TTL = <int>`` property now allow you to
99 * Implemented caching logic for all authentication plugins. The ``AUTH_CACHE_TTL = <int>`` property now allow you to
100 set the cache in seconds.
100 set the cache in seconds.
101
101
102 .. _prs-rn-ref:
102 .. _prs-rn-ref:
103
103
104 Pull Requests
104 Pull Requests
105 ^^^^^^^^^^^^^
105 ^^^^^^^^^^^^^
106
106
107 * Pull requests can be now updated and merged from the web interface
107 * Pull requests can be now updated and merged from the web interface
108 * Fixed creating a Mercurial |pr| from a bookmark.
108 * Fixed creating a Mercurial |pr| from a bookmark.
109 * Forbid closing pull requests when calculated status is different that the approved or rejected version.
109 * Forbid closing pull requests when calculated status is different that the approved or rejected version.
110 * Properly display calculated pull request review status on listing page.
110 * Properly display calculated pull request review status on listing page.
111 * Disable delete comment button if |pr| is closed.
111 * Disable delete comment button if |pr| is closed.
112
112
113 .. _gists-rn-ref:
113 .. _gists-rn-ref:
114
114
115 Gists
115 Gists
116 ^^^^^
116 ^^^^^
117 * New UI based on grids with filtering.
117 * New UI based on grids with filtering.
118 * Super-admins can see all gists.
118 * Super-admins can see all gists.
119 * Gists can now be created with a custom names.
119 * Gists can now be created with a custom names.
120
120
121 .. _search-rn-ref:
121 .. _search-rn-ref:
122
122
123 Search
123 Search
124 ^^^^^^
124 ^^^^^^
125
125
126 * New API based indexer.
126 * New API based indexer.
127 * Added the ability to create size limits for indexed files.
127 * Added the ability to create size limits for indexed files.
128 * Added a new mapping configuration file which gives a very high level of flexibility when creating full text search.
128 * Added a new mapping configuration file which gives a very high level of flexibility when creating full text search.
129
129
130 .. _fixes-rn-ref:
130 .. _fixes-rn-ref:
131
131
132 Fixes
132 Fixes
133 ^^^^^
133 ^^^^^
134
134
135 * General: fixed issues with dependent objects, such as ``users`` in ``user groups``. Cleaning up these dependent
135 * General: fixed issues with dependent objects, such as ``users`` in ``user groups``. Cleaning up these dependent
136 objects is now done in a safe way.
136 objects is now done in a safe way.
137 * General: deleting a ``user group`` from **settings > advanced** will use force removal and cleanup from all
137 * General: deleting a ``user group`` from **settings > advanced** will use force removal and cleanup from all
138 associations.
138 associations.
139 * General: fixed issue with filter proxy middleware it's now more error prone.
139 * General: fixed issue with filter proxy middleware it's now more error prone.
140 * General: fixed issues with unable to create fork inside a group.
140 * General: fixed issues with unable to create fork inside a group.
141 * General: fixed bad logic in ``ext_json`` lib, that checked bool on microseconds, in case it was 0 bool it returned False.
141 * General: fixed bad logic in ``ext_json`` lib, that checked bool on microseconds, in case it was 0 bool it returned False.
142 * General: authors in annotation mode shows authors of current source, not from all history (that is in normal mode)
142 * General: authors in annotation mode shows authors of current source, not from all history (that is in normal mode)
143 * Permissions: fix issue when inherit flag for user group stopped working after initial permissions set.
143 * Permissions: fix issue when inherit flag for user group stopped working after initial permissions set.
144 * |git|: fixed shallow clones.
144 * |git|: fixed shallow clones.
145 * |git|: added ``\n`` into the service line of |git| protocol. It is in the specifications and some python clients
145 * |git|: added ``\n`` into the service line of |git| protocol. It is in the specifications and some python clients
146 require this.
146 require this.
147 * |hg|: fix thread safety for mercurial ``in-memory`` commits.
147 * |hg|: fix thread safety for mercurial ``in-memory`` commits.
148 * Windows: fixed issue with shebang and env headers.
148 * Windows: fixed issue with shebang and env headers.
149 * MySQL: fixed database fields with 256 char length with added indexes. Mysql had problems with them.
149 * MySQL: fixed database fields with 256 char length with added indexes. Mysql had problems with them.
150 * Database: fixed bad usage of matching using ``ILIKE``. Previously it could happen that if you had
150 * Database: fixed bad usage of matching using ``ILIKE``. Previously it could happen that if you had
151 ``marcin_1@rhodecode.com`` and ``marcin_2@rhodecode.com`` emails, using ``marcin_@rhodecode.com`` would match both.
151 ``marcin_1@rhodecode.com`` and ``marcin_2@rhodecode.com`` emails, using ``marcin_@rhodecode.com`` would match both.
152 * VCS: fixed issues with double new lines on the commit patches.
152 * VCS: fixed issues with double new lines on the commit patches.
153 * VCS: repository locking now requires write permission to repository. If we allowed locking with read,
153 * VCS: repository locking now requires write permission to repository. If we allowed locking with read,
154 people can lock repository without an option to unlock it.
154 people can lock repository without an option to unlock it.
155 * Models: removed the ``isdigit`` call that can create issues when names are actually numbers on fetching objects.
155 * Models: removed the ``isdigit`` call that can create issues when names are actually numbers on fetching objects.
156 * Files: Fix bug with show authors in annotate view.
156 * Files: Fix bug with show authors in annotate view.
157 * Hooks: truncate excessive commit lists on ``post_push`` hook.
157 * Hooks: truncate excessive commit lists on ``post_push`` hook.
158 * Hooks: in |git|, support added to set the default branch if it is not ``master``.
158 * Hooks: in |git|, support added to set the default branch if it is not ``master``.
159 * Notifications: now can be marked as read when you are not admin.
159 * Notifications: now can be marked as read when you are not admin.
160 * Notifications: marking all notifications as read will hide the counter.
160 * Notifications: marking all notifications as read will hide the counter.
161 * Frontend: fixed branch-tag switcher multiple ajax calls.
161 * Frontend: fixed branch-tag switcher multiple ajax calls.
162 * Repository group: |repo| group owners can now change group settings even if they don't have access to top-level
162 * Repository group: |repo| group owners can now change group settings even if they don't have access to top-level
163 permissions.
163 permissions.
164 * Repositories: if you set ``Fork of`` in advanced repository settings it will now only show valid repositories
164 * Repositories: if you set ``Fork of`` in advanced repository settings it will now only show valid repositories
165 with the same type.
165 with the same type.
166
166
@@ -1,125 +1,126 b''
1 .. _rhodecode-release-notes-ref:
1 .. _rhodecode-release-notes-ref:
2
2
3 Release Notes
3 Release Notes
4 =============
4 =============
5
5
6 |RCE| 4.x Versions
6 |RCE| 4.x Versions
7 ------------------
7 ------------------
8
8
9 .. toctree::
9 .. toctree::
10 :maxdepth: 1
10 :maxdepth: 1
11
11
12 release-notes-4.15.0.rst
12 release-notes-4.14.1.rst
13 release-notes-4.14.1.rst
13 release-notes-4.14.0.rst
14 release-notes-4.14.0.rst
14 release-notes-4.13.3.rst
15 release-notes-4.13.3.rst
15 release-notes-4.13.2.rst
16 release-notes-4.13.2.rst
16 release-notes-4.13.1.rst
17 release-notes-4.13.1.rst
17 release-notes-4.13.0.rst
18 release-notes-4.13.0.rst
18 release-notes-4.12.4.rst
19 release-notes-4.12.4.rst
19 release-notes-4.12.3.rst
20 release-notes-4.12.3.rst
20 release-notes-4.12.2.rst
21 release-notes-4.12.2.rst
21 release-notes-4.12.1.rst
22 release-notes-4.12.1.rst
22 release-notes-4.12.0.rst
23 release-notes-4.12.0.rst
23 release-notes-4.11.6.rst
24 release-notes-4.11.6.rst
24 release-notes-4.11.5.rst
25 release-notes-4.11.5.rst
25 release-notes-4.11.4.rst
26 release-notes-4.11.4.rst
26 release-notes-4.11.3.rst
27 release-notes-4.11.3.rst
27 release-notes-4.11.2.rst
28 release-notes-4.11.2.rst
28 release-notes-4.11.1.rst
29 release-notes-4.11.1.rst
29 release-notes-4.11.0.rst
30 release-notes-4.11.0.rst
30 release-notes-4.10.6.rst
31 release-notes-4.10.6.rst
31 release-notes-4.10.5.rst
32 release-notes-4.10.5.rst
32 release-notes-4.10.4.rst
33 release-notes-4.10.4.rst
33 release-notes-4.10.3.rst
34 release-notes-4.10.3.rst
34 release-notes-4.10.2.rst
35 release-notes-4.10.2.rst
35 release-notes-4.10.1.rst
36 release-notes-4.10.1.rst
36 release-notes-4.10.0.rst
37 release-notes-4.10.0.rst
37 release-notes-4.9.1.rst
38 release-notes-4.9.1.rst
38 release-notes-4.9.0.rst
39 release-notes-4.9.0.rst
39 release-notes-4.8.0.rst
40 release-notes-4.8.0.rst
40 release-notes-4.7.2.rst
41 release-notes-4.7.2.rst
41 release-notes-4.7.1.rst
42 release-notes-4.7.1.rst
42 release-notes-4.7.0.rst
43 release-notes-4.7.0.rst
43 release-notes-4.6.1.rst
44 release-notes-4.6.1.rst
44 release-notes-4.6.0.rst
45 release-notes-4.6.0.rst
45 release-notes-4.5.2.rst
46 release-notes-4.5.2.rst
46 release-notes-4.5.1.rst
47 release-notes-4.5.1.rst
47 release-notes-4.5.0.rst
48 release-notes-4.5.0.rst
48 release-notes-4.4.2.rst
49 release-notes-4.4.2.rst
49 release-notes-4.4.1.rst
50 release-notes-4.4.1.rst
50 release-notes-4.4.0.rst
51 release-notes-4.4.0.rst
51 release-notes-4.3.1.rst
52 release-notes-4.3.1.rst
52 release-notes-4.3.0.rst
53 release-notes-4.3.0.rst
53 release-notes-4.2.1.rst
54 release-notes-4.2.1.rst
54 release-notes-4.2.0.rst
55 release-notes-4.2.0.rst
55 release-notes-4.1.2.rst
56 release-notes-4.1.2.rst
56 release-notes-4.1.1.rst
57 release-notes-4.1.1.rst
57 release-notes-4.1.0.rst
58 release-notes-4.1.0.rst
58 release-notes-4.0.1.rst
59 release-notes-4.0.1.rst
59 release-notes-4.0.0.rst
60 release-notes-4.0.0.rst
60
61
61 |RCE| 3.x Versions
62 |RCE| 3.x Versions
62 ------------------
63 ------------------
63
64
64 .. toctree::
65 .. toctree::
65 :maxdepth: 1
66 :maxdepth: 1
66
67
67 release-notes-3.8.4.rst
68 release-notes-3.8.4.rst
68 release-notes-3.8.3.rst
69 release-notes-3.8.3.rst
69 release-notes-3.8.2.rst
70 release-notes-3.8.2.rst
70 release-notes-3.8.1.rst
71 release-notes-3.8.1.rst
71 release-notes-3.8.0.rst
72 release-notes-3.8.0.rst
72 release-notes-3.7.1.rst
73 release-notes-3.7.1.rst
73 release-notes-3.7.0.rst
74 release-notes-3.7.0.rst
74 release-notes-3.6.1.rst
75 release-notes-3.6.1.rst
75 release-notes-3.6.0.rst
76 release-notes-3.6.0.rst
76 release-notes-3.5.2.rst
77 release-notes-3.5.2.rst
77 release-notes-3.5.1.rst
78 release-notes-3.5.1.rst
78 release-notes-3.5.0.rst
79 release-notes-3.5.0.rst
79 release-notes-3.4.1.rst
80 release-notes-3.4.1.rst
80 release-notes-3.4.0.rst
81 release-notes-3.4.0.rst
81 release-notes-3.3.4.rst
82 release-notes-3.3.4.rst
82 release-notes-3.3.3.rst
83 release-notes-3.3.3.rst
83 release-notes-3.3.2.rst
84 release-notes-3.3.2.rst
84 release-notes-3.3.1.rst
85 release-notes-3.3.1.rst
85 release-notes-3.3.0.rst
86 release-notes-3.3.0.rst
86 release-notes-3.2.3.rst
87 release-notes-3.2.3.rst
87 release-notes-3.2.2.rst
88 release-notes-3.2.2.rst
88 release-notes-3.2.1.rst
89 release-notes-3.2.1.rst
89 release-notes-3.2.0.rst
90 release-notes-3.2.0.rst
90 release-notes-3.1.1.rst
91 release-notes-3.1.1.rst
91 release-notes-3.1.0.rst
92 release-notes-3.1.0.rst
92 release-notes-3.0.2.rst
93 release-notes-3.0.2.rst
93 release-notes-3.0.1.rst
94 release-notes-3.0.1.rst
94 release-notes-3.0.0.rst
95 release-notes-3.0.0.rst
95
96
96 |RCE| 2.x Versions
97 |RCE| 2.x Versions
97 ------------------
98 ------------------
98
99
99 .. toctree::
100 .. toctree::
100 :maxdepth: 1
101 :maxdepth: 1
101
102
102 release-notes-2.2.8.rst
103 release-notes-2.2.8.rst
103 release-notes-2.2.7.rst
104 release-notes-2.2.7.rst
104 release-notes-2.2.6.rst
105 release-notes-2.2.6.rst
105 release-notes-2.2.5.rst
106 release-notes-2.2.5.rst
106 release-notes-2.2.4.rst
107 release-notes-2.2.4.rst
107 release-notes-2.2.3.rst
108 release-notes-2.2.3.rst
108 release-notes-2.2.2.rst
109 release-notes-2.2.2.rst
109 release-notes-2.2.1.rst
110 release-notes-2.2.1.rst
110 release-notes-2.2.0.rst
111 release-notes-2.2.0.rst
111 release-notes-2.1.0.rst
112 release-notes-2.1.0.rst
112 release-notes-2.0.2.rst
113 release-notes-2.0.2.rst
113 release-notes-2.0.1.rst
114 release-notes-2.0.1.rst
114 release-notes-2.0.0.rst
115 release-notes-2.0.0.rst
115
116
116 |RCE| 1.x Versions
117 |RCE| 1.x Versions
117 ------------------
118 ------------------
118
119
119 .. toctree::
120 .. toctree::
120 :maxdepth: 1
121 :maxdepth: 1
121
122
122 release-notes-1.7.2.rst
123 release-notes-1.7.2.rst
123 release-notes-1.7.1.rst
124 release-notes-1.7.1.rst
124 release-notes-1.7.0.rst
125 release-notes-1.7.0.rst
125 release-notes-1.6.0.rst
126 release-notes-1.6.0.rst
@@ -1,8 +1,8 b''
1 sphinx==1.7.8
1 sphinx==1.8.2
2 six==1.11.0
2 six==1.11.0
3 sphinx_rtd_theme==0.4.1
3 sphinx_rtd_theme==0.4.1
4 docutils==0.14.0
4 docutils==0.14.0
5 pygments==2.2.0
5 pygments==2.3.0
6 markupsafe==1.0.0
6 markupsafe==1.0.0
7 jinja2==2.9.6
7 jinja2==2.9.6
8 pytz==2018.4
8 pytz==2018.4
@@ -1,85 +1,85 b''
1 .. _install-tools:
1 .. _install-tools:
2
2
3 |RCT| Installation
3 |RCT| Installation
4 ------------------
4 ------------------
5
5
6 As of |RCE| 3.4.1 |RCT| is installed automatically on the server with |RCE|. You
6 As of |RCE| 3.4.1 |RCT| is installed automatically on the server with |RCE|. You
7 do not need to install |RCT| on the server, but you will need to install them
7 do not need to install |RCT| on the server, but you will need to install them
8 on machines that need remote access. The tools are linked to the instance
8 on machines that need remote access. The tools are linked to the instance
9 folder, for example :file:`~/.rccontrol/{instance-id}/profile/bin`
9 folder, for example :file:`~/.rccontrol/{instance-id}/profile/bin`
10
10
11 You can list the available tools using the following example, and the valid
11 You can list the available tools using the following example, and the valid
12 tools options are those which correspond with those in the :ref:`rc-tools`
12 tools options are those which correspond with those in the :ref:`rc-tools`
13 section.
13 section.
14
14
15 .. code-block:: bash
15 .. code-block:: bash
16
16
17 $ ls ~/.rccontrol/enterprise-4/profile/bin/
17 $ ls ~/.rccontrol/enterprise-4/profile/bin/
18
18
19 gen_js_i18n rhodecode-cleanup-gists rhodecode-tools svnrdump
19 gen_js_i18n rhodecode-cleanup-gists rhodecode-tools svnrdump
20 gen_js_routes rhodecode-cleanup-repos supervisorctl svnserve
20 gen_js_routes rhodecode-cleanup-repos supervisorctl svnserve
21 git rhodecode-config supervisord svnsync
21 git rhodecode-config supervisord svnsync
22 gunicorn rhodecode-extensions svn svnversion
22 gunicorn rhodecode-extensions svn svnversion
23 hg rhodecode-gist svnadmin vcsserver
23 hg rhodecode-gist svnadmin vcsserver
24 paster rhodecode-index svndumpfilter
24 paster rhodecode-index svndumpfilter
25 rc-server rhodecode-list-instances svnlook
25 rc-server rhodecode-list-instances svnlook
26 rhodecode-api rhodecode-setup-config svnmucc
26 rhodecode-api rhodecode-setup-config svnmucc
27
27
28 You can then use the tools as described in the :ref:`rc-tools` section using the
28 You can then use the tools as described in the :ref:`rc-tools` section using the
29 following example:
29 following example:
30
30
31 .. code-block:: bash
31 .. code-block:: bash
32
32
33 # Running the indexer
33 # Running the indexer
34 $ ~/.rccontrol/enterprise-1/profile/bin/rhodecode-index \
34 $ ~/.rccontrol/enterprise-1/profile/bin/rhodecode-index \
35 --instance-name=enterprise-1
35 --instance-name=enterprise-1
36
36
37 # Cleaning up gists
37 # Cleaning up gists
38 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-cleanup-gists \
38 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-cleanup-gists \
39 --instance-name=enterprise-4
39 --instance-name=enterprise-4
40
40
41 Scanning for gists in /home/brian/repos/.rc_gist_store...
41 Scanning for gists in /home/brian/repos/.rc_gist_store...
42 preparing to remove [1] found gists
42 preparing to remove [1] found gists
43
43
44 Installing |RCT|
44 Installing |RCT|
45 ^^^^^^^^^^^^^^^^
45 ^^^^^^^^^^^^^^^^
46
46
47 |RCT| enable you to automate many of the most common |RCM| functions through
47 |RCT| enable you to automate many of the most common |RCE| functions through
48 the API. Installing them on a local machine lets you carry out maintenance on
48 the API. Installing them on a local machine lets you carry out maintenance on
49 the server remotely. Once installed you can use them to index your |repos|
49 the server remotely. Once installed you can use them to index your |repos|
50 to setup full-text search, strip commits, or install |RC| Extensions for
50 to setup full-text search, strip commits, or install RhodeCode Extensions for
51 additional functionality.
51 additional functionality.
52
52
53 For more detailed instructions about using |RCT| for indexing and full-text
53 For more detailed instructions about using |RCT| for indexing and full-text
54 search, see :ref:`indexing-ref`
54 search, see :ref:`indexing-ref`
55
55
56 To install |RCT|, use the following steps:
56 To install |RCT|, use the following steps:
57
57
58 1. Set up a ``virtualenv`` on your local machine, see virtualenv_ instructions
58 1. Set up a ``virtualenv`` on your local machine, see virtualenv_ instructions
59 here.
59 here.
60 2. Install |RCT| using pip. Full url with token is available at https://rhodecode.com/u/#rhodecode-tools
60 2. Install |RCT| using pip. Full url with token is available at https://rhodecode.com/u/#rhodecode-tools
61 ``pip install -I https://dls.rhodecode.com/dls/<token>/rhodecode-tools/latest``
61 ``pip install -I https://dls.rhodecode.com/dls/<token>/rhodecode-tools/latest``
62
62
63
63
64 Once |RCT| is installed using these steps there are a few extra
64 Once |RCT| is installed using these steps there are a few extra
65 configuration changes you can make. These are explained in more detail in the
65 configuration changes you can make. These are explained in more detail in the
66 :ref:`indexing-ref` section, and the :ref:`rc-tools` section.
66 :ref:`indexing-ref` section, and the :ref:`rc-tools` section.
67
67
68 .. code-block:: bash
68 .. code-block:: bash
69
69
70 # Create a virtualenv
70 # Create a virtualenv
71 brian@ubuntu:~$ virtualenv venv
71 brian@ubuntu:~$ virtualenv venv
72 New python executable in venv/bin/python
72 New python executable in venv/bin/python
73 Installing setuptools, pip...done.
73 Installing setuptools, pip...done.
74
74
75 # Activate the virtualenv
75 # Activate the virtualenv
76 brian@ubuntu:~$ . venv/bin/activate
76 brian@ubuntu:~$ . venv/bin/activate
77
77
78 # Install RhodeCode Tools inside the virtualenv, full url with token is available at https://rhodecode.com/u/#rhodecode-tools
78 # Install RhodeCode Tools inside the virtualenv, full url with token is available at https://rhodecode.com/u/#rhodecode-tools
79 $ pip install -I https://dls.rhodecode.com/dls/<token>/rhodecode-tools/latest
79 $ pip install -I https://dls.rhodecode.com/dls/<token>/rhodecode-tools/latest
80
80
81 # Check the installation
81 # Check the installation
82 $ rhodecode-tools --help
82 $ rhodecode-tools --help
83
83
84 .. _virtualenv: https://virtualenv.pypa.io/en/latest/index.html
84 .. _virtualenv: https://virtualenv.pypa.io/en/latest/index.html
85
85
@@ -1,14 +1,14 b''
1 .. _rc-tools:
1 .. _rc-tools:
2
2
3 |RCT|
3 |RCT|
4 =====
4 =====
5
5
6 |RCT| enable you to automate many of the most common |RCM| functions through
6 |RCT| enable you to automate many of the most common |RCE| functions through
7 the API.
7 the API.
8
8
9 .. toctree::
9 .. toctree::
10 :maxdepth: 1
10 :maxdepth: 1
11
11
12 tools-overview
12 tools-overview
13 install-tools
13 install-tools
14 tools-cli
14 tools-cli
@@ -1,578 +1,578 b''
1 .. _tools-cli:
1 .. _tools-cli:
2
2
3 |RCT| CLI
3 |RCT| CLI
4 ---------
4 ---------
5
5
6 The commands available with |RCT| can be split into three categories:
6 The commands available with |RCT| can be split into three categories:
7
7
8 - Remotely executable commands that can be run from your local machine once you
8 - Remotely executable commands that can be run from your local machine once you
9 have your connection details to |RCE| configured.
9 have your connection details to |RCE| configured.
10 - Locally executable commands the can be run on the server to carry out
10 - Locally executable commands the can be run on the server to carry out
11 general maintenance.
11 general maintenance.
12 - Local configuration commands used to help set up your |RCT| configuration.
12 - Local configuration commands used to help set up your |RCT| configuration.
13
13
14
14
15 rhodecode-tools
15 rhodecode-tools
16 ---------------
16 ---------------
17
17
18 Use |RCT| to setup automation, run the indexer, and install extensions for
18 Use |RCT| to setup automation, run the indexer, and install extensions for
19 your |RCM| instances. Options:
19 your |RCE| instances. Options:
20
20
21 .. rst-class:: dl-horizontal
21 .. rst-class:: dl-horizontal
22
22
23 \ - -apihost <api_host>
23 \ - -apihost <api_host>
24 Set the API host value.
24 Set the API host value.
25
25
26 \ - -apikey <apikey_value>
26 \ - -apikey <apikey_value>
27 Set the API key value.
27 Set the API key value.
28
28
29 \-c, - -config <config_file>
29 \-c, - -config <config_file>
30 Create a configuration file. The default file is created
30 Create a configuration file. The default file is created
31 in ``~/.rhoderc``
31 in ``~/.rhoderc``
32
32
33 \ - -save-config
33 \ - -save-config
34 Save the configuration file.
34 Save the configuration file.
35
35
36 \ - -show-config
36 \ - -show-config
37 Show the current configuration values.
37 Show the current configuration values.
38
38
39 \ - -format {json,pretty}
39 \ - -format {json,pretty}
40 Set the formatted representation.
40 Set the formatted representation.
41
41
42 Example usage:
42 Example usage:
43
43
44 .. code-block:: bash
44 .. code-block:: bash
45
45
46 $ rhodecode-tools --apikey=key --apihost=http://rhodecode.server \
46 $ rhodecode-tools --apikey=key --apihost=http://rhodecode.server \
47 --save-config
47 --save-config
48
48
49 rhodecode-api
49 rhodecode-api
50 -------------
50 -------------
51
51
52 The |RC| API lets you connect to |RCE| and carry out management tasks from a
52 The RhodeCode API lets you connect to |RCE| and carry out management tasks from a
53 remote machine, for more information about the API, see the :ref:`api`. To
53 remote machine, for more information about the API, see the :ref:`api`. To
54 pass arguments on the command-line use the ``method:option`` syntax.
54 pass arguments on the command-line use the ``method:option`` syntax.
55
55
56 Example usage:
56 Example usage:
57
57
58 .. code-block:: bash
58 .. code-block:: bash
59
59
60 # Run the get_repos API call and sample output
60 # Run the get_repos API call and sample output
61 $ rhodecode-api --instance-name=enterprise-1 create_repo \
61 $ rhodecode-api --instance-name=enterprise-1 create_repo \
62 repo_name:brand-new repo_type:hg description:repo-desc
62 repo_name:brand-new repo_type:hg description:repo-desc
63
63
64 {
64 {
65 "error": null,
65 "error": null,
66 "id": 1110,
66 "id": 1110,
67 "result": {
67 "result": {
68 "msg": "Created new repository `brand-new`",
68 "msg": "Created new repository `brand-new`",
69 "success": true,
69 "success": true,
70 "task": null
70 "task": null
71 }
71 }
72 }
72 }
73
73
74 Options:
74 Options:
75
75
76 .. rst-class:: dl-horizontal
76 .. rst-class:: dl-horizontal
77
77
78 \ - -api-cache-only
78 \ - -api-cache-only
79 Requires a cache to be present when running this call
79 Requires a cache to be present when running this call
80
80
81 \ - -api-cache-rebuild
81 \ - -api-cache-rebuild
82 Replaces existing cached values with new ones from server
82 Replaces existing cached values with new ones from server
83
83
84 \ - -api-cache <PATH>
84 \ - -api-cache <PATH>
85 Use a special cache dir to read responses from instead of the server
85 Use a special cache dir to read responses from instead of the server
86
86
87 \ - -api-cert-verify
87 \ - -api-cert-verify
88 Verify the endpoint ssl certificate
88 Verify the endpoint ssl certificate
89
89
90 \ - -api-cert <PATH>
90 \ - -api-cert <PATH>
91 Path to alternate CA bundle.
91 Path to alternate CA bundle.
92
92
93 \ - -apihost <api_host>
93 \ - -apihost <api_host>
94 Set the API host value.
94 Set the API host value.
95
95
96 \ - -apikey <apikey_value>
96 \ - -apikey <apikey_value>
97 Set the API key value.
97 Set the API key value.
98
98
99 \ - -instance-name <instance-id>
99 \ - -instance-name <instance-id>
100 Set the instance name
100 Set the instance name
101
101
102 \-I, - -install-dir <DIR>
102 \-I, - -install-dir <DIR>
103 Location of application instances
103 Location of application instances
104
104
105 \-c, - -config <.rhoderc-file>
105 \-c, - -config <.rhoderc-file>
106 Location of the :file:`.rhoderc`
106 Location of the :file:`.rhoderc`
107
107
108 \-F, - -format {json,pretty}
108 \-F, - -format {json,pretty}
109 Set the formatted representation.
109 Set the formatted representation.
110
110
111 \-h, - -help
111 \-h, - -help
112 Show help messages.
112 Show help messages.
113
113
114 \-v, - -verbose
114 \-v, - -verbose
115 Enable verbose messaging
115 Enable verbose messaging
116
116
117 rhodecode-cleanup-gists
117 rhodecode-cleanup-gists
118 -----------------------
118 -----------------------
119
119
120 Use this to delete gists within |RCM|. Options:
120 Use this to delete gists within |RCE|. Options:
121
121
122 .. rst-class:: dl-horizontal
122 .. rst-class:: dl-horizontal
123
123
124 \-c, - -config <config_file>
124 \-c, - -config <config_file>
125 Set the file path to the configuration file. The default file is
125 Set the file path to the configuration file. The default file is
126 :file:`/home/{user}/.rhoderc`
126 :file:`/home/{user}/.rhoderc`
127
127
128 \ - -corrupted
128 \ - -corrupted
129 Remove gists with corrupted metadata.
129 Remove gists with corrupted metadata.
130
130
131 \ - -dont-ask
131 \ - -dont-ask
132 Remove gists without asking for confirmation.
132 Remove gists without asking for confirmation.
133
133
134 \-h, - -help
134 \-h, - -help
135 Show help messages. current configuration values.
135 Show help messages. current configuration values.
136
136
137 \ - -instance-name <instance-id>
137 \ - -instance-name <instance-id>
138 Set the instance name.
138 Set the instance name.
139
139
140 \-R, - -repo-dir
140 \-R, - -repo-dir
141 Set the repository file path.
141 Set the repository file path.
142
142
143 \ - -version
143 \ - -version
144 Display your |RCT| version.
144 Display your |RCT| version.
145
145
146 Example usage:
146 Example usage:
147
147
148 .. code-block:: bash
148 .. code-block:: bash
149
149
150 # Clean up gists related to an instance
150 # Clean up gists related to an instance
151 $ rhodecode-cleanup-gists --instance-name=enterprise-1
151 $ rhodecode-cleanup-gists --instance-name=enterprise-1
152 Scanning for gists in /home/brian/repos/.rc_gist_store...
152 Scanning for gists in /home/brian/repos/.rc_gist_store...
153 preparing to remove [3] found gists
153 preparing to remove [3] found gists
154
154
155 # Clean up corrupted gists in an instance
155 # Clean up corrupted gists in an instance
156 $ rhodecode-cleanup-gists --instance-name=enterprise-1 --corrupted
156 $ rhodecode-cleanup-gists --instance-name=enterprise-1 --corrupted
157 Scanning for gists in /home/brian/repos/.rc_gist_store...
157 Scanning for gists in /home/brian/repos/.rc_gist_store...
158 preparing to remove [2] found gists
158 preparing to remove [2] found gists
159 the following gists will be archived:
159 the following gists will be archived:
160 * EXPIRED: BAD METADATA | /home/brian/repos/.rc_gist_store/5
160 * EXPIRED: BAD METADATA | /home/brian/repos/.rc_gist_store/5
161 * EXPIRED: BAD METADATA | /home/brian/repos/.rc_gist_store/8FtC
161 * EXPIRED: BAD METADATA | /home/brian/repos/.rc_gist_store/8FtC
162 are you sure you want to archive them? [y/N]: y
162 are you sure you want to archive them? [y/N]: y
163 removing gist /home/brian/repos/.rc_gist_store/5
163 removing gist /home/brian/repos/.rc_gist_store/5
164 removing gist /home/brian/repos/.rc_gist_store/8FtCKdcbRKmEvRzTVsEt
164 removing gist /home/brian/repos/.rc_gist_store/8FtCKdcbRKmEvRzTVsEt
165
165
166 rhodecode-cleanup-repos
166 rhodecode-cleanup-repos
167 -----------------------
167 -----------------------
168
168
169 Use this to manage |repos| and |repo| groups within |RCM|. Options:
169 Use this to manage |repos| and |repo| groups within |RCE|. Options:
170
170
171 .. rst-class:: dl-horizontal
171 .. rst-class:: dl-horizontal
172
172
173 \-c, - -config <config_file>
173 \-c, - -config <config_file>
174 Set the file path to the configuration file. The default file is
174 Set the file path to the configuration file. The default file is
175 :file:`/home/{user}/.rhoderc`.
175 :file:`/home/{user}/.rhoderc`.
176
176
177 \-h, - -help
177 \-h, - -help
178 Show help messages. current configuration values.
178 Show help messages. current configuration values.
179
179
180 \ - -interactive
180 \ - -interactive
181 Enable an interactive prompt for each repository when deleting.
181 Enable an interactive prompt for each repository when deleting.
182
182
183 \ - -include-groups
183 \ - -include-groups
184 Remove repository groups.
184 Remove repository groups.
185
185
186 \ - -instance-name <instance-id>
186 \ - -instance-name <instance-id>
187 Set the instance name.
187 Set the instance name.
188
188
189 \ - -list-only
189 \ - -list-only
190 Display repositories selected for deletion.
190 Display repositories selected for deletion.
191
191
192 \ - -older-than <str>
192 \ - -older-than <str>
193 Delete repositories older that a specified time.
193 Delete repositories older that a specified time.
194 You can use the following suffixes; d for days, h for hours,
194 You can use the following suffixes; d for days, h for hours,
195 m for minutes, s for seconds.
195 m for minutes, s for seconds.
196
196
197 \-R, - -repo-dir
197 \-R, - -repo-dir
198 Set the repository file path
198 Set the repository file path
199
199
200 Example usage:
200 Example usage:
201
201
202 .. code-block:: bash
202 .. code-block:: bash
203
203
204 # Cleaning up repos using tools installed with RCE 350 and above
204 # Cleaning up repos using tools installed with RCE 350 and above
205 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-cleanup-repos \
205 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-cleanup-repos \
206 --instance-name=enterprise-4 --older-than=1d
206 --instance-name=enterprise-4 --older-than=1d
207 Scanning for repositories in /home/brian/repos...
207 Scanning for repositories in /home/brian/repos...
208 preparing to remove [2] found repositories older than 1 day, 0:00:00 (1d)
208 preparing to remove [2] found repositories older than 1 day, 0:00:00 (1d)
209
209
210 the following repositories will be deleted completely:
210 the following repositories will be deleted completely:
211 * REMOVED: 2015-08-05 00:23:18 | /home/brian/repos/rm__20150805_002318_831
211 * REMOVED: 2015-08-05 00:23:18 | /home/brian/repos/rm__20150805_002318_831
212 * REMOVED: 2015-08-04 01:22:10 | /home/brian/repos/rm__20150804_012210_336
212 * REMOVED: 2015-08-04 01:22:10 | /home/brian/repos/rm__20150804_012210_336
213 are you sure you want to remove them? [y/N]:
213 are you sure you want to remove them? [y/N]:
214
214
215 # Clean up repos older than 1 year
215 # Clean up repos older than 1 year
216 # If using virtualenv and pre RCE 350 tools installation
216 # If using virtualenv and pre RCE 350 tools installation
217 (venv)$ rhodecode-cleanup-repos --instance-name=enterprise-1 \
217 (venv)$ rhodecode-cleanup-repos --instance-name=enterprise-1 \
218 --older-than=365d
218 --older-than=365d
219
219
220 Scanning for repositories in /home/brian/repos...
220 Scanning for repositories in /home/brian/repos...
221 preparing to remove [343] found repositories older than 365 days
221 preparing to remove [343] found repositories older than 365 days
222
222
223 # clean up repos older than 3 days
223 # clean up repos older than 3 days
224 # If using virtualenv and pre RCE 350 tools installation
224 # If using virtualenv and pre RCE 350 tools installation
225 (venv)$ rhodecode-cleanup-repos --instance-name=enterprise-1 \
225 (venv)$ rhodecode-cleanup-repos --instance-name=enterprise-1 \
226 --older-than=3d
226 --older-than=3d
227 Scanning for repositories in /home/brian/repos...
227 Scanning for repositories in /home/brian/repos...
228 preparing to remove [3] found repositories older than 3 days
228 preparing to remove [3] found repositories older than 3 days
229
229
230 .. _tools-config:
230 .. _tools-config:
231
231
232 rhodecode-config
232 rhodecode-config
233 ----------------
233 ----------------
234
234
235 Use this to create or update a |RCE| configuration file on the local machine.
235 Use this to create or update a |RCE| configuration file on the local machine.
236
236
237 .. rst-class:: dl-horizontal
237 .. rst-class:: dl-horizontal
238
238
239 \- -filename </path/to/config_file>
239 \- -filename </path/to/config_file>
240 Set the file path to the |RCE| configuration file.
240 Set the file path to the |RCE| configuration file.
241
241
242 \- -show-defaults
242 \- -show-defaults
243 Display the defaults set in the |RCE| configuration file.
243 Display the defaults set in the |RCE| configuration file.
244
244
245 \- -update
245 \- -update
246 Update the configuration with the new settings passed on the command
246 Update the configuration with the new settings passed on the command
247 line.
247 line.
248
248
249 .. code-block:: bash
249 .. code-block:: bash
250
250
251 # Create a new config file
251 # Create a new config file
252 $ rhodecode-config --filename=dev.ini
252 $ rhodecode-config --filename=dev.ini
253 Wrote new config file in /Users/user/dev.ini
253 Wrote new config file in /Users/user/dev.ini
254
254
255 # Update config value for given section:
255 # Update config value for given section:
256 $ rhodecode-config --update --filename=prod.ini [handler_console]level=INFO
256 $ rhodecode-config --update --filename=prod.ini [handler_console]level=INFO
257
257
258 $ rhodecode-config --filename=dev.ini --show-defaults
258 $ rhodecode-config --filename=dev.ini --show-defaults
259 lang=en
259 lang=en
260 cpu_number=4
260 cpu_number=4
261 uuid=<function <lambda> at 0x10d86ac08>
261 uuid=<function <lambda> at 0x10d86ac08>
262 license_token=ff1e-aa9c-bb66-11e5
262 license_token=ff1e-aa9c-bb66-11e5
263 host=127.0.0.1
263 host=127.0.0.1
264 here=/Users/brian
264 here=/Users/brian
265 error_aggregation_service=None
265 error_aggregation_service=None
266 database_url=sqlite:///%(here)s/rhodecode.db?timeout=30
266 database_url=sqlite:///%(here)s/rhodecode.db?timeout=30
267 git_path=git
267 git_path=git
268 http_server=waitress
268 http_server=waitress
269 port=5000
269 port=5000
270
270
271 .. _tools-rhodecode-extensions:
271 .. _tools-rhodecode-extensions:
272
272
273 rhodecode-extensions
273 rhodecode-extensions
274 --------------------
274 --------------------
275
275
276 The `rcextensions` since version 4.14 are now shipped together with |RCE| please check
276 The `rcextensions` since version 4.14 are now shipped together with |RCE| please check
277 the using :ref:`integrations-rcextensions` section.
277 the using :ref:`integrations-rcextensions` section.
278
278
279
279
280 rhodecode-gist
280 rhodecode-gist
281 --------------
281 --------------
282
282
283 Use this to create, list, show, or delete gists within |RCM|. Options:
283 Use this to create, list, show, or delete gists within |RCE|. Options:
284
284
285 .. rst-class:: dl-horizontal
285 .. rst-class:: dl-horizontal
286
286
287 \ - -api-cache-only
287 \ - -api-cache-only
288 Requires a cache to be present when running this call
288 Requires a cache to be present when running this call
289
289
290 \ - -api-cache-rebuild
290 \ - -api-cache-rebuild
291 Replaces existing cached values with new ones from server
291 Replaces existing cached values with new ones from server
292
292
293 \ - -api-cache PATH
293 \ - -api-cache PATH
294 Use a special cache dir to read responses from instead of the server
294 Use a special cache dir to read responses from instead of the server
295
295
296 \ - -api-cert-verify
296 \ - -api-cert-verify
297 Verify the endpoint ssl certificate
297 Verify the endpoint ssl certificate
298
298
299 \ - -api-cert PATH
299 \ - -api-cert PATH
300 Path to alternate CA bundle.
300 Path to alternate CA bundle.
301
301
302 \ - -apihost <api_host>
302 \ - -apihost <api_host>
303 Set the API host value.
303 Set the API host value.
304
304
305 \ - -apikey <apikey_value>
305 \ - -apikey <apikey_value>
306 Set the API key value.
306 Set the API key value.
307
307
308 \-c, - -config <config_file>
308 \-c, - -config <config_file>
309 Create a configuration file.
309 Create a configuration file.
310 The default file is created in :file:`~/.rhoderc`
310 The default file is created in :file:`~/.rhoderc`
311
311
312 \ - -create <gistname>
312 \ - -create <gistname>
313 create the gist
313 create the gist
314
314
315 \-d, - -description <str>
315 \-d, - -description <str>
316 Set gist description
316 Set gist description
317
317
318 \ - -delete <gistid>
318 \ - -delete <gistid>
319 Delete the gist
319 Delete the gist
320
320
321 \-f, - -file
321 \-f, - -file
322 Specify the filename The file extension will enable syntax highlighting.
322 Specify the filename The file extension will enable syntax highlighting.
323
323
324 \-F, - -format {json,pretty}
324 \-F, - -format {json,pretty}
325 Set the formatted representation.
325 Set the formatted representation.
326
326
327 \ - -help
327 \ - -help
328 Show help messages.
328 Show help messages.
329
329
330 \-I, - -install-dir <DIR>
330 \-I, - -install-dir <DIR>
331 Location of application instances
331 Location of application instances
332
332
333 \ - -instance-name <instance-id>
333 \ - -instance-name <instance-id>
334 Set the instance name.
334 Set the instance name.
335
335
336 \ - -list
336 \ - -list
337 Display instance gists.
337 Display instance gists.
338
338
339 \-l, --lifetime <minutes>
339 \-l, --lifetime <minutes>
340 Set the gist lifetime. The default value is (-1) forever
340 Set the gist lifetime. The default value is (-1) forever
341
341
342 \ - -show <gistname>
342 \ - -show <gistname>
343 Show the content of the gist
343 Show the content of the gist
344
344
345 \-o, - -open
345 \-o, - -open
346 After creating Gist open it in browser
346 After creating Gist open it in browser
347
347
348 \-p, - -private
348 \-p, - -private
349 Create a private gist
349 Create a private gist
350
350
351 \ - -version
351 \ - -version
352 Display your |RCT| version.
352 Display your |RCT| version.
353
353
354 Example usage:
354 Example usage:
355
355
356 .. code-block:: bash
356 .. code-block:: bash
357
357
358 # List the gists in an instance
358 # List the gists in an instance
359 (venv)brian@ubuntu:~$ rhodecode-gist --instance-name=enterprise-1 list
359 (venv)brian@ubuntu:~$ rhodecode-gist --instance-name=enterprise-1 list
360 {
360 {
361 "error": null,
361 "error": null,
362 "id": 7102,
362 "id": 7102,
363 "result": [
363 "result": [
364 {
364 {
365 "access_id": "2",
365 "access_id": "2",
366 "content": null,
366 "content": null,
367 "created_on": "2015-01-19T12:52:26.494",
367 "created_on": "2015-01-19T12:52:26.494",
368 "description": "A public gust",
368 "description": "A public gust",
369 "expires": -1.0,
369 "expires": -1.0,
370 "gist_id": 2,
370 "gist_id": 2,
371 "type": "public",
371 "type": "public",
372 "url": "http://127.0.0.1:10003/_admin/gists/2"
372 "url": "http://127.0.0.1:10003/_admin/gists/2"
373 },
373 },
374 {
374 {
375 "access_id": "7gs6BsSEC4pKUEPLz5AB",
375 "access_id": "7gs6BsSEC4pKUEPLz5AB",
376 "content": null,
376 "content": null,
377 "created_on": "2015-01-19T11:27:40.812",
377 "created_on": "2015-01-19T11:27:40.812",
378 "description": "Gist testing API",
378 "description": "Gist testing API",
379 "expires": -1.0,
379 "expires": -1.0,
380 "gist_id": 1,
380 "gist_id": 1,
381 "type": "private",
381 "type": "private",
382 "url": "http://127.0.0.1:10003/_admin/gists/7gs6BsSEC4pKUEPLz5AB"
382 "url": "http://127.0.0.1:10003/_admin/gists/7gs6BsSEC4pKUEPLz5AB"
383 }
383 }
384 ]
384 ]
385 }
385 }
386
386
387 # delete a particular gist
387 # delete a particular gist
388 # You use the access_id to specify the gist to delete
388 # You use the access_id to specify the gist to delete
389 (venv)brian@ubuntu:~$ rhodecode-gist delete 2 --instance-name=enterprise-1
389 (venv)brian@ubuntu:~$ rhodecode-gist delete 2 --instance-name=enterprise-1
390 {
390 {
391 "error": null,
391 "error": null,
392 "id": 6284,
392 "id": 6284,
393 "result": {
393 "result": {
394 "gist": null,
394 "gist": null,
395 "msg": "deleted gist ID:2"
395 "msg": "deleted gist ID:2"
396 }
396 }
397 }
397 }
398
398
399 # cat a file and pipe to new gist
399 # cat a file and pipe to new gist
400 # This is if you are using virtualenv
400 # This is if you are using virtualenv
401 (venv)$ cat ~/.rhoderc | rhodecode-gist --instance-name=enterprise-1 \
401 (venv)$ cat ~/.rhoderc | rhodecode-gist --instance-name=enterprise-1 \
402 -d '.rhoderc copy' create
402 -d '.rhoderc copy' create
403
403
404 {
404 {
405 "error": null,
405 "error": null,
406 "id": 5374,
406 "id": 5374,
407 "result": {
407 "result": {
408 "gist": {
408 "gist": {
409 "access_id": "7",
409 "access_id": "7",
410 "content": null,
410 "content": null,
411 "created_on": "2015-01-26T11:31:58.774",
411 "created_on": "2015-01-26T11:31:58.774",
412 "description": ".rhoderc copy",
412 "description": ".rhoderc copy",
413 "expires": -1.0,
413 "expires": -1.0,
414 "gist_id": 7,
414 "gist_id": 7,
415 "type": "public",
415 "type": "public",
416 "url": "http://127.0.0.1:10003/_admin/gists/7"
416 "url": "http://127.0.0.1:10003/_admin/gists/7"
417 },
417 },
418 "msg": "created new gist"
418 "msg": "created new gist"
419 }
419 }
420 }
420 }
421
421
422 # Cat a file and pipe to gist
422 # Cat a file and pipe to gist
423 # in RCE 3.5.0 tools and above
423 # in RCE 3.5.0 tools and above
424 $ cat ~/.rhoderc | ~/.rccontrol/{instance-id}/profile/bin/rhodecode-gist \
424 $ cat ~/.rhoderc | ~/.rccontrol/{instance-id}/profile/bin/rhodecode-gist \
425 --instance-name=enterprise-4 -d '.rhoderc copy' create
425 --instance-name=enterprise-4 -d '.rhoderc copy' create
426 {
426 {
427 "error": null,
427 "error": null,
428 "id": 9253,
428 "id": 9253,
429 "result": {
429 "result": {
430 "gist": {
430 "gist": {
431 "access_id": "4",
431 "access_id": "4",
432 "acl_level": "acl_public",
432 "acl_level": "acl_public",
433 "content": null,
433 "content": null,
434 "created_on": "2015-08-20T05:54:11.250",
434 "created_on": "2015-08-20T05:54:11.250",
435 "description": ".rhoderc copy",
435 "description": ".rhoderc copy",
436 "expires": -1.0,
436 "expires": -1.0,
437 "gist_id": 4,
437 "gist_id": 4,
438 "modified_at": "2015-08-20T05:54:11.250",
438 "modified_at": "2015-08-20T05:54:11.250",
439 "type": "public",
439 "type": "public",
440 "url": "http://127.0.0.1:10000/_admin/gists/4"
440 "url": "http://127.0.0.1:10000/_admin/gists/4"
441 },
441 },
442 "msg": "created new gist"
442 "msg": "created new gist"
443 }
443 }
444 }
444 }
445
445
446
446
447 rhodecode-index
447 rhodecode-index
448 ---------------
448 ---------------
449
449
450 More detailed information regarding setting up the indexer is available in
450 More detailed information regarding setting up the indexer is available in
451 the :ref:`indexing-ref` section. Options:
451 the :ref:`indexing-ref` section. Options:
452
452
453 .. rst-class:: dl-horizontal
453 .. rst-class:: dl-horizontal
454
454
455 \ - -api-cache-only
455 \ - -api-cache-only
456 Requires a cache to be present when running this call
456 Requires a cache to be present when running this call
457
457
458 \ - -api-cache-rebuild
458 \ - -api-cache-rebuild
459 Replaces existing cached values with new ones from server
459 Replaces existing cached values with new ones from server
460
460
461 \ - -api-cache PATH
461 \ - -api-cache PATH
462 Use a special cache dir to read responses from instead of the server
462 Use a special cache dir to read responses from instead of the server
463
463
464 \ - -api-cert-verify
464 \ - -api-cert-verify
465 Verify the endpoint ssl certificate
465 Verify the endpoint ssl certificate
466
466
467 \ - -api-cert PATH
467 \ - -api-cert PATH
468 Path to alternate CA bundle.
468 Path to alternate CA bundle.
469
469
470 \ - -apihost <api_host>
470 \ - -apihost <api_host>
471 Set the API host value.
471 Set the API host value.
472
472
473 \ - -apikey <apikey_value>
473 \ - -apikey <apikey_value>
474 Set the API key value.
474 Set the API key value.
475
475
476 \-c, --config <config_file>
476 \-c, --config <config_file>
477 Create a configuration file.
477 Create a configuration file.
478 The default file is created in :file:`~/.rhoderc`
478 The default file is created in :file:`~/.rhoderc`
479
479
480 \ - -create-mapping <PATH>
480 \ - -create-mapping <PATH>
481 Creates an example mapping configuration for indexer.
481 Creates an example mapping configuration for indexer.
482
482
483 \-F, - -format {json,pretty}
483 \-F, - -format {json,pretty}
484 Set the formatted representation.
484 Set the formatted representation.
485
485
486 \-h, - -help
486 \-h, - -help
487 Show help messages.
487 Show help messages.
488
488
489 \ - -instance-name <instance-id>
489 \ - -instance-name <instance-id>
490 Set the instance name
490 Set the instance name
491
491
492 \-I, - -install-dir <DIR>
492 \-I, - -install-dir <DIR>
493 Location of application instances
493 Location of application instances
494
494
495 \-m, - -mapping <file_name>
495 \-m, - -mapping <file_name>
496 Parse the output to the .ini mapping file.
496 Parse the output to the .ini mapping file.
497
497
498 \ - -optimize
498 \ - -optimize
499 Optimize index for performance by amalgamating multiple index files
499 Optimize index for performance by amalgamating multiple index files
500 into one. Greatly increases incremental indexing speed.
500 into one. Greatly increases incremental indexing speed.
501
501
502 \-R, - -repo-dir <DIRECTORY>
502 \-R, - -repo-dir <DIRECTORY>
503 Location of repositories
503 Location of repositories
504
504
505 \ - -source <PATH>
505 \ - -source <PATH>
506 Use a special source JSON file to feed the indexer
506 Use a special source JSON file to feed the indexer
507
507
508 \ - -version
508 \ - -version
509 Display your |RCT| version.
509 Display your |RCT| version.
510
510
511 Example usage:
511 Example usage:
512
512
513 .. code-block:: bash
513 .. code-block:: bash
514
514
515 # Run the indexer
515 # Run the indexer
516 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-index \
516 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-index \
517 --instance-name=enterprise-4
517 --instance-name=enterprise-4
518
518
519 # Run indexer based on mapping.ini file
519 # Run indexer based on mapping.ini file
520 # This is using pre-350 virtualenv
520 # This is using pre-350 virtualenv
521 (venv)$ rhodecode-index --instance-name=enterprise-1
521 (venv)$ rhodecode-index --instance-name=enterprise-1
522
522
523 # Index from the command line without creating
523 # Index from the command line without creating
524 # the .rhoderc file
524 # the .rhoderc file
525 $ rhodecode-index --apikey=key --apihost=http://rhodecode.server \
525 $ rhodecode-index --apikey=key --apihost=http://rhodecode.server \
526 --instance-name=enterprise-2 --save-config
526 --instance-name=enterprise-2 --save-config
527
527
528 # Create the indexing mapping file
528 # Create the indexing mapping file
529 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-index \
529 $ ~/.rccontrol/enterprise-4/profile/bin/rhodecode-index \
530 --create-mapping mapping.ini --instance-name=enterprise-4
530 --create-mapping mapping.ini --instance-name=enterprise-4
531
531
532 .. _tools-rhodecode-list-instance:
532 .. _tools-rhodecode-list-instance:
533
533
534 rhodecode-list-instances
534 rhodecode-list-instances
535 ------------------------
535 ------------------------
536
536
537 Use this command to list the instance details configured in the
537 Use this command to list the instance details configured in the
538 :file:`~/.rhoderc` file.
538 :file:`~/.rhoderc` file.
539
539
540 .. code-block:: bash
540 .. code-block:: bash
541
541
542 $ .rccontrol/enterprise-1/profile/bin/rhodecode-list-instances
542 $ .rccontrol/enterprise-1/profile/bin/rhodecode-list-instances
543 [instance:production] - Config only
543 [instance:production] - Config only
544 API-HOST: https://some.url.com
544 API-HOST: https://some.url.com
545 API-KEY: some.auth.token
545 API-KEY: some.auth.token
546
546
547 [instance:development] - Config only
547 [instance:development] - Config only
548 API-HOST: http://some.ip.address
548 API-HOST: http://some.ip.address
549 API-KEY: some.auth.token
549 API-KEY: some.auth.token
550
550
551
551
552 .. _tools-setup-config:
552 .. _tools-setup-config:
553
553
554 rhodecode-setup-config
554 rhodecode-setup-config
555 ----------------------
555 ----------------------
556
556
557 Use this command to create the ``~.rhoderc`` file required by |RCT| to access
557 Use this command to create the ``~.rhoderc`` file required by |RCT| to access
558 remote instances.
558 remote instances.
559
559
560 .. rst-class:: dl-horizontal
560 .. rst-class:: dl-horizontal
561
561
562 \- -instance-name <name>
562 \- -instance-name <name>
563 Specify the instance name in the :file:`~/.rhoderc`
563 Specify the instance name in the :file:`~/.rhoderc`
564
564
565 \api_host <hostname>
565 \api_host <hostname>
566 Create a configuration file. The default file is created
566 Create a configuration file. The default file is created
567 in ``~/.rhoderc``
567 in ``~/.rhoderc``
568
568
569 \api_key <auth-token>
569 \api_key <auth-token>
570 Create a configuration file. The default file is created
570 Create a configuration file. The default file is created
571 in ``~/.rhoderc``
571 in ``~/.rhoderc``
572
572
573
573
574 .. code-block:: bash
574 .. code-block:: bash
575
575
576 (venv)$ rhodecode-setup-config --instance-name=tea api_host=URL api_key=xyz
576 (venv)$ rhodecode-setup-config --instance-name=tea api_host=URL api_key=xyz
577 Config not found under /Users/username/.rhoderc, creating a new one
577 Config not found under /Users/username/.rhoderc, creating a new one
578 Wrote new configuration into /Users/username/.rhoderc
578 Wrote new configuration into /Users/username/.rhoderc
@@ -1,66 +1,66 b''
1 .. _tools-overview:
1 .. _tools-overview:
2
2
3 |RCT| Overview
3 |RCT| Overview
4 --------------
4 --------------
5
5
6 To install |RCT| correctly, see the installation steps covered in
6 To install |RCT| correctly, see the installation steps covered in
7 :ref:`install-tools`, and :ref:`config-rhoderc`.
7 :ref:`install-tools`, and :ref:`config-rhoderc`.
8
8
9 Once |RCT| is installed, and the :file:`/home/{user}/.rhoderc` file is
9 Once |RCT| is installed, and the :file:`/home/{user}/.rhoderc` file is
10 configured you can then use |RCT| on each |RCM| instance to carry out admin
10 configured you can then use |RCT| on each |RCE| instance to carry out admin
11 tasks. Use the following example to configure that file,
11 tasks. Use the following example to configure that file,
12 and once configured see the :ref:`tools-cli` for more details.
12 and once configured see the :ref:`tools-cli` for more details.
13
13
14 .. note::
14 .. note::
15
15
16 |RCT| require |PY| 2.7 to run.
16 |RCT| require |PY| 2.7 to run.
17
17
18 .. code-block:: bash
18 .. code-block:: bash
19
19
20 # Get the status of each instance you wish to use with Tools
20 # Get the status of each instance you wish to use with Tools
21 (venv)brian@ubuntu:~$ rccontrol status
21 (venv)brian@ubuntu:~$ rccontrol status
22
22
23 - NAME: momentum-1
23 - NAME: momentum-1
24 - STATUS: RUNNING
24 - STATUS: RUNNING
25 - TYPE: Momentum
25 - TYPE: Momentum
26 - VERSION: 3.0.0-nightly-momentum
26 - VERSION: 3.0.0-nightly-momentum
27 - URL: http://127.0.0.1:10003
27 - URL: http://127.0.0.1:10003
28
28
29 - NAME: momentum-3
29 - NAME: momentum-3
30 - STATUS: RUNNING
30 - STATUS: RUNNING
31 - TYPE: Momentum
31 - TYPE: Momentum
32 - VERSION: 3.0.0-nightly-momentum
32 - VERSION: 3.0.0-nightly-momentum
33 - URL: http://127.0.0.1:10007
33 - URL: http://127.0.0.1:10007
34
34
35 Example :file:`/home/{user}/.rhoderc` file.
35 Example :file:`/home/{user}/.rhoderc` file.
36
36
37 .. code-block:: ini
37 .. code-block:: ini
38
38
39 # Configure the .rhoderc file for each instance
39 # Configure the .rhoderc file for each instance
40 # API keys found in your instance
40 # API keys found in your instance
41 [instance:enterprise-1]
41 [instance:enterprise-1]
42 api_host = http://127.0.0.1:10003/
42 api_host = http://127.0.0.1:10003/
43 api_key = 91fdbdc257289c46633ef5aab274412911de1ba9
43 api_key = 91fdbdc257289c46633ef5aab274412911de1ba9
44 repo_dir = /home/brian/repos
44 repo_dir = /home/brian/repos
45
45
46 [instance:enterprise-3]
46 [instance:enterprise-3]
47 api_host = http://127.0.0.1:10007/
47 api_host = http://127.0.0.1:10007/
48 api_key = 5a925f65438d29f8d6ced8ab8e8c3d305998d1d9
48 api_key = 5a925f65438d29f8d6ced8ab8e8c3d305998d1d9
49 repo_dir = /home/brian/testing-repos/
49 repo_dir = /home/brian/testing-repos/
50
50
51
51
52 Example usage of |RCT| after |RCE| 3.5.0. From this version onwards |RCT| is
52 Example usage of |RCT| after |RCE| 3.5.0. From this version onwards |RCT| is
53 packaged with |RCE| by default.
53 packaged with |RCE| by default.
54
54
55 .. code-block:: bash
55 .. code-block:: bash
56
56
57 $ .rccontrol/enterprise-4/profile/bin/rhodecode-api --instance-name=enterprise-4 get_ip [11:56:57 on 05/10/2018]
57 $ .rccontrol/enterprise-4/profile/bin/rhodecode-api --instance-name=enterprise-4 get_ip [11:56:57 on 05/10/2018]
58
58
59 {
59 {
60 "error": null,
60 "error": null,
61 "id": 1000,
61 "id": 1000,
62 "result": {
62 "result": {
63 "server_ip_addr": "1.2.3.4",
63 "server_ip_addr": "1.2.3.4",
64 "user_ips": []
64 "user_ips": []
65 }
65 }
66 }
66 }
@@ -1,220 +1,220 b''
1 .. _hosted-solution:
1 .. _hosted-solution:
2
2
3 Deploy |RCE| From a Hosted Server
3 Deploy |RCE| From a Hosted Server
4 =================================
4 =================================
5
5
6 If you wish to deploy your own |RCE| instance from something like a
6 If you wish to deploy your own |RCE| instance from something like a
7 `Digital Ocean`_ droplet, or a `hetzner`_ server use the following
7 `Digital Ocean`_ droplet, or a `hetzner`_ server use the following
8 instructions to get it setup.
8 instructions to get it setup.
9
9
10 I'm using an Ubuntu 14.04 image for the purposes of this
10 I'm using an Ubuntu 14.04 image for the purposes of this
11 tutorial, but all other Unix environments will be pretty similar. You can
11 tutorial, but all other Unix environments will be pretty similar. You can
12 check out the full lists of supported platforms and versions in the
12 check out the full lists of supported platforms and versions in the
13 :ref:`system-overview-ref` section.
13 :ref:`system-overview-ref` section.
14
14
15
15
16 Create a Digital Ocean Droplet
16 Create a Digital Ocean Droplet
17 ------------------------------
17 ------------------------------
18
18
19 1. Sign into Digital Ocean.
19 1. Sign into Digital Ocean.
20 2. Create a Droplet choosing Ubuntu 14.04 as your |os|.
20 2. Create a Droplet choosing Ubuntu 14.04 as your |os|.
21 3. (Optional) Add SSH keys if you have them set up.
21 3. (Optional) Add SSH keys if you have them set up.
22
22
23 Configure Your Server
23 Configure Your Server
24 ---------------------
24 ---------------------
25
25
26 Once you have your server created, you need to sign into it and set it up to
26 Once you have your server created, you need to sign into it and set it up to
27 host |RCE|.
27 host |RCE|.
28
28
29 1. Open a terminal and sign into your server. Digital Ocean will mail you the
29 1. Open a terminal and sign into your server. Digital Ocean will mail you the
30 IP address. You'll need to change your password on the first login if you
30 IP address. You'll need to change your password on the first login if you
31 don not have SSH keys set up.
31 don not have SSH keys set up.
32
32
33 .. code-block:: bash
33 .. code-block:: bash
34
34
35 $ ssh root@203.0.113.113
35 $ ssh root@203.0.113.113
36
36
37 2. It is not advised to install |RCE| as the ``root`` user. So create a user
37 2. It is not advised to install |RCE| as the ``root`` user. So create a user
38 with sudo permissions and then carry out the rest of the steps from that user
38 with sudo permissions and then carry out the rest of the steps from that user
39 account.
39 account.
40
40
41 .. code-block:: bash
41 .. code-block:: bash
42
42
43 # Create a user with sudo permissions
43 # Create a user with sudo permissions
44 root@rhodecode:~# sudo useradd -m -s /bin/bash -d /home/brian -U brian
44 root@rhodecode:~# sudo useradd -m -s /bin/bash -d /home/brian -U brian
45 root@rhodecode:~# sudo usermod -a -G sudo brian
45 root@rhodecode:~# sudo usermod -a -G sudo brian
46
46
47 # Set the password for that user
47 # Set the password for that user
48 root@rhodecode:~# passwd brian
48 root@rhodecode:~# passwd brian
49 Enter new UNIX password:
49 Enter new UNIX password:
50 Retype new UNIX password:
50 Retype new UNIX password:
51 passwd: password updated successfully
51 passwd: password updated successfully
52
52
53 # Switch to that user for the rest of the steps
53 # Switch to that user for the rest of the steps
54 root@rhodecode:~# su brian
54 root@rhodecode:~# su brian
55
55
56 # You should see your home dir change to what was set during installation
56 # You should see your home dir change to what was set during installation
57 brian@rhodecode:~$ cd ~
57 brian@rhodecode:~$ cd ~
58 brian@rhodecode:~$ pwd
58 brian@rhodecode:~$ pwd
59 /home/brian
59 /home/brian
60
60
61 Once you have this set up, you are ready to install |RCC|.
61 Once you have this set up, you are ready to install |RCC|.
62
62
63 Install |RCC|
63 Install |RCC|
64 -------------
64 -------------
65
65
66 |RCC| will install and manage the package dependencies for your |RCE| instance.
66 |RCC| will install and manage the package dependencies for your |RCE| instance.
67
67
68 1. Download the |RCC| installer from https://rhodecode.com/download/
68 1. Download the |RCC| installer from https://rhodecode.com/download/
69 2. Once downloaded to your computer, transfer the package to your server
69 2. Once downloaded to your computer, transfer the package to your server
70
70
71 .. note::
71 .. note::
72
72
73 These steps happen on your computer, not on the server.
73 These steps happen on your computer, not on the server.
74
74
75 .. code-block:: bash
75 .. code-block:: bash
76
76
77 # Change to where the file is downloaded
77 # Change to where the file is downloaded
78 $ cd Downloads/
78 $ cd Downloads/
79
79
80 # SFTP to your server
80 # SFTP to your server
81 $ sftp brian@203.0.113.113
81 $ sftp brian@203.0.113.113
82
82
83 # Use mput to transfer the file
83 # Use mput to transfer the file
84 sftp> mput RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
84 sftp> mput RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
85 Uploading RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3 to /home/brian/RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
85 Uploading RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3 to /home/brian/RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
86 RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d 100% 289MB 4.1MB/s 01:11
86 RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d 100% 289MB 4.1MB/s 01:11
87 sftp> exit
87 sftp> exit
88
88
89 The |RCC| installer is now on your server, and you can read the full
89 The |RCC| installer is now on your server, and you can read the full
90 instructions here
90 instructions here
91 :ref:`Install RhodeCode Control <control:rcc-linux-ref>` ,
91 :ref:`Install RhodeCode Control <control:rcc-linux-ref>` ,
92 but below is the example shortcut.
92 but below is the example shortcut.
93
93
94 .. code-block:: bash
94 .. code-block:: bash
95
95
96 # Check that the script is uploaded to your home directory
96 # Check that the script is uploaded to your home directory
97 $ ls -1
97 $ ls -1
98 RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
98 RhodeCode-installer-linux-buildYYYYXXXX_ZZZZ
99
99
100 # Change the script permissions
100 # Change the script permissions
101 $ chmod 755 RhodeCode-installer-linux*
101 $ chmod +x RhodeCode-installer-linux*
102
102
103 # Run the installer and accept the prompts
103 # Run the installer and accept the prompts
104 $ ./RhodeCode-installer-linux-*
104 $ ./RhodeCode-installer-linux-*
105
105
106 .. important::
106 .. important::
107
107
108 Once finished, exit the terminal and sign in again. This is to refresh you
108 Once finished, exit the terminal and sign in again. This is to refresh you
109 session to pick up the new commands.
109 session to pick up the new commands.
110
110
111 Install |RCE|
111 Install |RCE|
112 -------------
112 -------------
113
113
114 Now that |RCC| is installed, you can install |RCE|. For the full
114 Now that |RCC| is installed, you can install |RCE|. For the full
115 instructions, see
115 instructions, see
116 :ref:`Install RhodeCode Enterprise <control:rce-cli-install-ref>`,
116 :ref:`Install RhodeCode Enterprise <control:rce-cli-install-ref>`,
117 but the below is an example shortcut.
117 but the below is an example shortcut.
118
118
119 .. code-block:: bash
119 .. code-block:: bash
120
120
121 # Install a VCS Server and follow the prompts
121 # Install a VCS Server and follow the prompts
122 $ rccontrol install VCSServer --start-at-boot
122 $ rccontrol install VCSServer --start-at-boot
123
123
124 Extracting VCSServer ...
124 Extracting VCSServer ...
125 Configuring RhodeCode VCS Server ...
125 Configuring RhodeCode VCS Server ...
126 Supervisord state is: RUNNING
126 Supervisord state is: RUNNING
127 Added process group vcsserver-1
127 Added process group vcsserver-1
128
128
129 # Install a RhodeCode Enterprise instance and follow the prompts
129 # Install a RhodeCode Enterprise instance and follow the prompts
130 $ rccontrol install Enterprise --start-at-boot
130 $ rccontrol install Enterprise --start-at-boot
131
131
132 Configuration of RhodeCode Enterprise passed.
132 Configuration of RhodeCode Enterprise passed.
133 Supervisord state is: RUNNING
133 Supervisord state is: RUNNING
134 Added process group enterprise-1
134 Added process group enterprise-1
135
135
136 |RCE| is now installed on your server, and is running on the port displayed
136 |RCE| is now installed on your server, and is running on the port displayed
137 by the ``rccontrol status`` command.
137 by the ``rccontrol status`` command.
138
138
139 .. code-block:: bash
139 .. code-block:: bash
140
140
141 brian@rhodecode:~$ rccontrol status
141 brian@rhodecode:~$ rccontrol status
142
142
143 - NAME: enterprise-1
143 - NAME: enterprise-1
144 - STATUS: RUNNING
144 - STATUS: RUNNING
145 - TYPE: Enterprise
145 - TYPE: Enterprise
146 - VERSION: 3.1.1
146 - VERSION: 3.1.1
147 - URL: http://127.0.0.1:10002
147 - URL: http://127.0.0.1:10002
148
148
149 - NAME: vcsserver-1
149 - NAME: vcsserver-1
150 - STATUS: RUNNING
150 - STATUS: RUNNING
151 - TYPE: VCSServer
151 - TYPE: VCSServer
152 - VERSION: 1.1.1
152 - VERSION: 1.1.1
153 - URL: http://127.0.0.1:10001
153 - URL: http://127.0.0.1:10001
154
154
155 Serve |RCE| using Nginx
155 Serve |RCE| using Nginx
156 -----------------------
156 -----------------------
157
157
158 Now that |RCE| is running, you need to use Nginx or Apache to serve it to
158 Now that |RCE| is running, you need to use Nginx or Apache to serve it to
159 users. For detailed instructions about setting up your webserver, see the
159 users. For detailed instructions about setting up your webserver, see the
160 :ref:`rhodecode-admin-ref` section. But the below shortcut should help serve
160 :ref:`rhodecode-admin-ref` section. But the below shortcut should help serve
161 it.
161 it.
162
162
163 1. Install Nginx on your server.
163 1. Install Nginx on your server.
164
164
165 .. code-block:: bash
165 .. code-block:: bash
166
166
167 # Install nginx
167 # Install nginx
168 $ sudo apt-get install nginx
168 $ sudo apt-get install nginx
169
169
170 2. Create a virtual hosts file for RhodeCode Enterprise. Create
170 2. Create a virtual hosts file for RhodeCode Enterprise. Create
171 the file in this location :file:`/etc/nginx/sites-available`. In this demo
171 the file in this location :file:`/etc/nginx/sites-available`. In this demo
172 I have called it ``vcs.conf``
172 I have called it ``vcs.conf``
173
173
174 .. code-block:: bash
174 .. code-block:: bash
175
175
176 # Create the file
176 # Create the file
177 $ sudo vi /etc/nginx/sites-available/vcs.conf
177 $ sudo vi /etc/nginx/sites-available/vcs.conf
178
178
179 Use the following example to create yours.
179 Use the following example to create yours.
180
180
181 .. code-block:: nginx
181 .. code-block:: nginx
182
182
183 server {
183 server {
184 listen 80;
184 listen 80;
185 # Change to your IP, or a domain name if you've set that up
185 # Change to your IP, or a domain name if you've set that up
186 server_name 203.0.113.113 ;
186 server_name 203.0.113.113 ;
187
187
188 location / {
188 location / {
189 # Set this line to match the RhodeCode Enterprise Instance URL
189 # Set this line to match the RhodeCode Enterprise Instance URL
190 proxy_pass http://127.0.0.1:10002/;
190 proxy_pass http://127.0.0.1:10002/;
191 proxy_set_header Host $Host;
191 proxy_set_header Host $Host;
192 proxy_buffering off;
192 proxy_buffering off;
193 # Setting this to a high number allows large repo pushes
193 # Setting this to a high number allows large repo pushes
194 client_max_body_size 4G;
194 client_max_body_size 4G;
195 }
195 }
196 }
196 }
197
197
198 3. Symlink the virtual hosts file to the ``sites-enabled`` folder,
198 3. Symlink the virtual hosts file to the ``sites-enabled`` folder,
199 and then restart Nginx.
199 and then restart Nginx.
200
200
201 .. code-block:: bash
201 .. code-block:: bash
202
202
203 # Symlink the virtual hosts file
203 # Symlink the virtual hosts file
204 $ ln -s /etc/nginx/sites-available/vcs.conf /etc/nginx/sites-enabled/vcs.conf
204 $ ln -s /etc/nginx/sites-available/vcs.conf /etc/nginx/sites-enabled/vcs.conf
205
205
206 # You can also delete the Nginx default symlink
206 # You can also delete the Nginx default symlink
207 $ rm /etc/nginx/sites-enabled/default
207 $ rm /etc/nginx/sites-enabled/default
208
208
209 # Restart Nginx
209 # Restart Nginx
210 $ sudo /etc/init.d/nginx restart
210 $ sudo /etc/init.d/nginx restart
211 * Restarting nginx nginx [ OK ]
211 * Restarting nginx nginx [ OK ]
212
212
213 Once restarted, you should see a clean |RCE| instance running on the IP
213 Once restarted, you should see a clean |RCE| instance running on the IP
214 address, or the domain you have set up.
214 address, or the domain you have set up.
215
215
216 .. image:: ../images/clean-rce.png
216 .. image:: ../images/clean-rce.png
217 :alt: A fresh RhodeCode Enterprise Instance
217 :alt: A fresh RhodeCode Enterprise Instance
218
218
219 .. _Digital Ocean: https://www.digitalocean.com/
219 .. _Digital Ocean: https://www.digitalocean.com/
220 .. _hetzner: https://www.hetzner.de/en/
220 .. _hetzner: https://www.hetzner.de/en/
@@ -1,93 +1,93 b''
1 .. _git-lfs-files:
1 .. _git-lfs-files:
2
2
3 |git| LFS Extension
3 |git| LFS Extension
4 ===================
4 ===================
5
5
6
6
7 Git Large File Storage (or LFS) is a new, open-source extension to Git that
7 Git Large File Storage (or LFS) is a new, open-source extension to Git that
8 aims to improve handling of large files. It does this by replacing large files
8 aims to improve handling of large files. It does this by replacing large files
9 in your repository—such as graphics and videos—with simple text pointers.
9 in your repository—such as graphics and videos—with simple text pointers.
10 |RC| Server includes an embedded LFS object store server, allowing storage of
10 RhodeCode Server includes an embedded LFS object store server, allowing storage of
11 large files without the need for an external object store.
11 large files without the need for an external object store.
12 Git LFS is disabled by default, globally, and for each individual repository.
12 Git LFS is disabled by default, globally, and for each individual repository.
13
13
14 .. note::
14 .. note::
15
15
16 |RC| implements V2 API of Git LFS. Please make sure your git client is
16 RhodeCode implements V2 API of Git LFS. Please make sure your git client is
17 using the latest version (2.0.X recommended) to leverage full feature set
17 using the latest version (2.0.X recommended) to leverage full feature set
18 of the V2 API.
18 of the V2 API.
19
19
20
20
21
21
22 Enabling Git LFS
22 Enabling Git LFS
23 ++++++++++++++++
23 ++++++++++++++++
24
24
25 Git LFS is disabled by default within |RC| Server.
25 Git LFS is disabled by default within RhodeCode Server.
26
26
27 To enable Git LFS Globally:
27 To enable Git LFS Globally:
28
28
29 - Go to :menuselection:`Admin --> Settings --> VCS`
29 - Go to :menuselection:`Admin --> Settings --> VCS`
30
30
31 - Scroll down into `Git settings`
31 - Scroll down into `Git settings`
32
32
33 - Tick `Enable lfs extension`
33 - Tick `Enable lfs extension`
34
34
35 - Save your settings.
35 - Save your settings.
36
36
37 Those settings apply globally to each repository that inherits from the defaults
37 Those settings apply globally to each repository that inherits from the defaults
38 You can leave `lfs extension` disabled globally, and only enable it per
38 You can leave `lfs extension` disabled globally, and only enable it per
39 repository that would use the lfs.
39 repository that would use the lfs.
40
40
41
41
42 .. note::
42 .. note::
43
43
44 You might want to adjust the global storage location at that point, however
44 You might want to adjust the global storage location at that point, however
45 we recommend leaving the default one created.
45 we recommend leaving the default one created.
46
46
47
47
48 Installing and using the Git LFS command line client
48 Installing and using the Git LFS command line client
49 ++++++++++++++++++++++++++++++++++++++++++++++++++++
49 ++++++++++++++++++++++++++++++++++++++++++++++++++++
50
50
51 Git LFS aims to integrate with the standard Git workflow as seamlessly
51 Git LFS aims to integrate with the standard Git workflow as seamlessly
52 as possible. To push your first Git LFS files to an existing repository
52 as possible. To push your first Git LFS files to an existing repository
53 Download and install the git-lfs command line client
53 Download and install the git-lfs command line client
54 Install the Git LFS filters::
54 Install the Git LFS filters::
55
55
56 git lfs install
56 git lfs install
57
57
58 This adds the following lines to the .gitconfig file located in your home directory::
58 This adds the following lines to the .gitconfig file located in your home directory::
59
59
60 [filter "lfs"]
60 [filter "lfs"]
61 clean = git-lfs clean %f
61 clean = git-lfs clean %f
62 smudge = git-lfs smudge %f
62 smudge = git-lfs smudge %f
63 required = true
63 required = true
64
64
65 The above change applies globally, so it is not necessary to run this for
65 The above change applies globally, so it is not necessary to run this for
66 each repository you work with. Choose the file types you would like LFS to
66 each repository you work with. Choose the file types you would like LFS to
67 handle by executing the git lfs track command. The git lfs track command
67 handle by executing the git lfs track command. The git lfs track command
68 creates or updates the .gitattributes file in your repository.
68 creates or updates the .gitattributes file in your repository.
69 Change to your cloned repository, then execute git add to ensure updates
69 Change to your cloned repository, then execute git add to ensure updates
70 to the .gitattributes are later committed::
70 to the .gitattributes are later committed::
71
71
72 git lfs track "*.jpg"
72 git lfs track "*.jpg"
73 git add .gitattributes
73 git add .gitattributes
74
74
75 Add, commit, and push your changes as you normally would::
75 Add, commit, and push your changes as you normally would::
76
76
77 git add image.jpg
77 git add image.jpg
78 git commit -m "Added an image"
78 git commit -m "Added an image"
79 git push
79 git push
80
80
81 When pushed, the Git tree updates to include a pointer to the file actual
81 When pushed, the Git tree updates to include a pointer to the file actual
82 file content. This pointer will include the SHA256 hash of the object and its
82 file content. This pointer will include the SHA256 hash of the object and its
83 size in bytes. For example::
83 size in bytes. For example::
84
84
85 oid sha256:4fa32d6f9b1461c4a53618a47324ee43e36ce7ceaea2ad440cc811a7e6881be1
85 oid sha256:4fa32d6f9b1461c4a53618a47324ee43e36ce7ceaea2ad440cc811a7e6881be1
86 size 2580390
86 size 2580390
87
87
88
88
89 The object itself will be uploaded to a separate location via the Git LFS Batch API.
89 The object itself will be uploaded to a separate location via the Git LFS Batch API.
90 The transfer is validated and authorized by |RC| server itself.
90 The transfer is validated and authorized by RhodeCode server itself.
91
91
92 If give repository has Git LFS disabled, a proper message will be sent back to
92 If give repository has Git LFS disabled, a proper message will be sent back to
93 the client and upload of LFS objects will be forbidden.
93 the client and upload of LFS objects will be forbidden.
@@ -1,69 +1,69 b''
1 .. _hg-big-files:
1 .. _hg-big-files:
2
2
3 |hg| Large Files Extension
3 |hg| Large Files Extension
4 ==========================
4 ==========================
5
5
6 Large files, such as image or zip files can cause a lot of bandwidth overhead
6 Large files, such as image or zip files can cause a lot of bandwidth overhead
7 during clone, push, and pull operations. To remove this inefficiency, |hg|
7 during clone, push, and pull operations. To remove this inefficiency, |hg|
8 has a large files extension which tracks their revisions by checksums. This
8 has a large files extension which tracks their revisions by checksums. This
9 means that the large files are only downloaded when they are needed as part
9 means that the large files are only downloaded when they are needed as part
10 of the current revision. This saves both disk space and bandwidth.
10 of the current revision. This saves both disk space and bandwidth.
11
11
12
12
13 Enabling HG Largefiles
13 Enabling HG Largefiles
14 ++++++++++++++++++++++
14 ++++++++++++++++++++++
15
15
16 Mercurial Largefiles extension is disabled by default within |RC| Server.
16 Mercurial Largefiles extension is disabled by default within RhodeCode Server.
17
17
18 To enable Mercurial Largefiles Globally:
18 To enable Mercurial Largefiles Globally:
19
19
20 - Go to :menuselection:`Admin --> Settings --> VCS`
20 - Go to :menuselection:`Admin --> Settings --> VCS`
21
21
22 - Scroll down into `Mercurial settings`
22 - Scroll down into `Mercurial settings`
23
23
24 - Tick `Enable largefiles extension`
24 - Tick `Enable largefiles extension`
25
25
26 - Save your settings.
26 - Save your settings.
27
27
28 Those settings apply globally to each repository that inherits from the defaults
28 Those settings apply globally to each repository that inherits from the defaults
29 You can leave `largefiles extension` disabled globally, and only enable it per
29 You can leave `largefiles extension` disabled globally, and only enable it per
30 repository that would use the largefiles.
30 repository that would use the largefiles.
31
31
32
32
33 .. note::
33 .. note::
34
34
35 You might want to adjust the global storage location at that point, however
35 You might want to adjust the global storage location at that point, however
36 we recommend leaving the default one created.
36 we recommend leaving the default one created.
37
37
38
38
39 Installing and using the |hg| Largefiles
39 Installing and using the |hg| Largefiles
40 ++++++++++++++++++++++++++++++++++++++++
40 ++++++++++++++++++++++++++++++++++++++++
41
41
42 To find out more, see the |hg| `Large Files Extensions Documentation`_.
42 To find out more, see the |hg| `Large Files Extensions Documentation`_.
43
43
44 To configure the large files extension, you need to set up your
44 To configure the large files extension, you need to set up your
45 :file:`~/.hgrc` file.
45 :file:`~/.hgrc` file.
46
46
47 1. Open your :file:`~/.hgrc` file.
47 1. Open your :file:`~/.hgrc` file.
48 2. Add ``largefiles =`` to the ``[extensions]`` section.
48 2. Add ``largefiles =`` to the ``[extensions]`` section.
49 3. Configure the ``[largefiles]`` section with the patterns and file size you
49 3. Configure the ``[largefiles]`` section with the patterns and file size you
50 wish |hg| to handle as large. The ``minsize`` option is specified in
50 wish |hg| to handle as large. The ``minsize`` option is specified in
51 megabytes.
51 megabytes.
52 4. Save your changes.
52 4. Save your changes.
53
53
54 .. code-block:: ini
54 .. code-block:: ini
55
55
56 [extensions]
56 [extensions]
57 hgext.churn =
57 hgext.churn =
58 largefiles =
58 largefiles =
59 rebase =
59 rebase =
60 record =
60 record =
61 histedit =
61 histedit =
62
62
63 [largefiles]
63 [largefiles]
64 patterns = re:.*\.(png|bmp|jpg|zip|tar|tar.gz|rar)$
64 patterns = re:.*\.(png|bmp|jpg|zip|tar|tar.gz|rar)$
65 minsize = 10
65 minsize = 10
66
66
67 For a complete :file:`~/.hgrc` file example, see :ref:`config-hgrc`.
67 For a complete :file:`~/.hgrc` file example, see :ref:`config-hgrc`.
68
68
69 .. _Large Files Extensions Documentation: http://mercurial.selenic.com/wiki/LargefilesExtension
69 .. _Large Files Extensions Documentation: http://mercurial.selenic.com/wiki/LargefilesExtension
@@ -1,121 +1,121 b''
1 Moving From Windows to Linux
1 Moving From Windows to Linux
2 ============================
2 ============================
3
3
4 If you are moving from a Windows server to a Linux server, especially from
4 If you are moving from a Windows server to a Linux server, especially from
5 running an older version of |RCE| pre 2.x, use the following information to
5 running an older version of |RCE| pre 2.x, use the following information to
6 successfully migrate your instances and database.
6 successfully migrate your instances and database.
7
7
8 Overview
8 Overview
9 --------
9 --------
10
10
11 * Install |RCC| on your Linux server, use the
11 * Install |RCC| on your Linux server, use the
12 :ref:`RhodeCode Control Docs <control:rcc>` to guide you through this.
12 :ref:`RhodeCode Control Docs <control:rcc>` to guide you through this.
13 * Copy your |repos| directory to the Linux server.
13 * Copy your |repos| directory to the Linux server.
14 * Copy your original :file:`rhodecode.ini` file to the Linux server, named
14 * Copy your original :file:`rhodecode.ini` file to the Linux server, named
15 :file:`production.ini` in older versions, and make a minor edit to
15 :file:`production.ini` in older versions, and make a minor edit to
16 point to the copied database.
16 point to the copied database.
17 * Copy your original instance database and update Windows paths to Linux
17 * Copy your original instance database and update Windows paths to Linux
18 paths pointing to your |repos| directory.
18 paths pointing to your |repos| directory.
19 * Use |RCC| to import and upgrade your |RCE| instance, using the copied and
19 * Use |RCC| to import and upgrade your |RCE| instance, using the copied and
20 edited file and database.
20 edited file and database.
21
21
22 Pre-requisites
22 Pre-requisites
23 --------------
23 --------------
24
24
25 * For MySQL, do not use `localhost` in the database connection string of the
25 * For MySQL, do not use `localhost` in the database connection string of the
26 :file:`rhodecode.ini` file.
26 :file:`rhodecode.ini` file.
27 * InnoDB must be the database tables engine.
27 * InnoDB must be the database tables engine.
28 * Contact |RC| for a new licence Key/Token pair. If you don't, a trial licence
28 * Contact RhodeCode for a new licence Key/Token pair. If you don't, a trial licence
29 will be applied so you are not locked out of the upgraded instance.
29 will be applied so you are not locked out of the upgraded instance.
30
30
31 You can find the specific instructions to carry out these pre-requisite steps
31 You can find the specific instructions to carry out these pre-requisite steps
32 in the :ref:`RhodeCode Control upgrade <control:rce-upgrade-2x>` docs.
32 in the :ref:`RhodeCode Control upgrade <control:rce-upgrade-2x>` docs.
33
33
34 Configuration File Update
34 Configuration File Update
35 -------------------------
35 -------------------------
36
36
37 Configure the copied :file:`rhodecode.ini` file to connect to your copied
37 Configure the copied :file:`rhodecode.ini` file to connect to your copied
38 database. Use the following steps:
38 database. Use the following steps:
39
39
40 1. Open the copied :file:`rhodecode.ini` file.
40 1. Open the copied :file:`rhodecode.ini` file.
41 2. When you open the file, find the database configuration section,
41 2. When you open the file, find the database configuration section,
42 and use the below example to change the connection details:
42 and use the below example to change the connection details:
43
43
44 .. code-block:: ini
44 .. code-block:: ini
45
45
46 #########################################################
46 #########################################################
47 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
47 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
48 #########################################################
48 #########################################################
49
49
50 # Point to copied DB
50 # Point to copied DB
51 sqlalchemy.db1.url = postgresql://postgres:qwe@localhost/rhodecode.db.copy
51 sqlalchemy.db1.url = postgresql://postgres:qwe@localhost/rhodecode.db.copy
52 sqlalchemy.db1.url = mysql://root:qweqwe@127.0.0.1/rhodecode.db.copy
52 sqlalchemy.db1.url = mysql://root:qweqwe@127.0.0.1/rhodecode.db.copy
53
53
54 Database Update
54 Database Update
55 ---------------
55 ---------------
56
56
57 Update the Windows paths in the ``rhodecode.rhodecode_ui`` database tables.
57 Update the Windows paths in the ``rhodecode.rhodecode_ui`` database tables.
58 To do this log into the database and reset the file paths to
58 To do this log into the database and reset the file paths to
59 Unix format. One login option is to use iShell, see usage examples in the
59 Unix format. One login option is to use iShell, see usage examples in the
60 :ref:`rhodecode-reset-ref` section.
60 :ref:`rhodecode-reset-ref` section.
61
61
62 .. code-block:: python
62 .. code-block:: python
63
63
64 In [28]: from rhodecode.model.settings import SettingsModel
64 In [28]: from rhodecode.model.settings import SettingsModel
65 In [29]: paths = SettingsModel().get_ui_by_section('paths')
65 In [29]: paths = SettingsModel().get_ui_by_section('paths')
66 In [30]: paths[0].value = '/home/user/repos'
66 In [30]: paths[0].value = '/home/user/repos'
67 In [32]: Session().add(paths[0])
67 In [32]: Session().add(paths[0])
68 In [33]: Session().commit()
68 In [33]: Session().commit()
69
69
70 Import and Upgrade
70 Import and Upgrade
71 ------------------
71 ------------------
72
72
73 Once you have made your changes, use |RCC| to import and upgrade your |RCE|
73 Once you have made your changes, use |RCC| to import and upgrade your |RCE|
74 instance to the latest version.
74 instance to the latest version.
75
75
76 .. code-block:: bash
76 .. code-block:: bash
77
77
78 # Import original instance as explained above
78 # Import original instance as explained above
79 $ rccontrol import Enterprise path/to/rhodecode.ini
79 $ rccontrol import Enterprise path/to/rhodecode.ini
80
80
81 # Install a VCS Server as explained above
81 # Install a VCS Server as explained above
82 $ rccontrol install VCSServer
82 $ rccontrol install VCSServer
83
83
84 # Check the status of them
84 # Check the status of them
85 $ rccontrol status
85 $ rccontrol status
86
86
87 - NAME: enterprise-1
87 - NAME: enterprise-1
88 - STATUS: RUNNING
88 - STATUS: RUNNING
89 - TYPE: Enterprise
89 - TYPE: Enterprise
90 - VERSION: 1.5.0
90 - VERSION: 1.5.0
91 - URL: http://127.0.0.1:10000
91 - URL: http://127.0.0.1:10000
92
92
93 - NAME: vcsserver-1
93 - NAME: vcsserver-1
94 - STATUS: RUNNING
94 - STATUS: RUNNING
95 - TYPE: VCSServer
95 - TYPE: VCSServer
96 - VERSION: 3.5.0
96 - VERSION: 3.5.0
97 - URL: http://127.0.0.1:10001
97 - URL: http://127.0.0.1:10001
98
98
99 # Upgrade from version 1.5.0 to 3.5.0
99 # Upgrade from version 1.5.0 to 3.5.0
100 $ rccontrol upgrade enterprise-1 --version 3.5.0
100 $ rccontrol upgrade enterprise-1 --version 3.5.0
101
101
102 Checking for available update for enterprise-1 @ 1.5.0
102 Checking for available update for enterprise-1 @ 1.5.0
103 Stopped enterprise-1
103 Stopped enterprise-1
104 Initiating upgrade to version 3.5.0
104 Initiating upgrade to version 3.5.0
105 ...
105 ...
106 ****************************************
106 ****************************************
107 *** UPGRADE TO VERSION 45 SUCCESSFUL ***
107 *** UPGRADE TO VERSION 45 SUCCESSFUL ***
108 ****************************************
108 ****************************************
109
109
110 Note that RCE 3.x requires a new license please contact support@rhodecode.com
110 Note that RCE 3.x requires a new license please contact support@rhodecode.com
111
111
112 Upgrade of RhodeCode Enterprise successful.
112 Upgrade of RhodeCode Enterprise successful.
113 Auto starting enterprise-1
113 Auto starting enterprise-1
114
114
115 Post Migration Tasks
115 Post Migration Tasks
116 --------------------
116 --------------------
117
117
118 * From the |RCE| :menuselection:`Admin --> Settings --> VCS` page, check that
118 * From the |RCE| :menuselection:`Admin --> Settings --> VCS` page, check that
119 the :guilabel:`Repositories Location` is correctly pointing to your |repos|.
119 the :guilabel:`Repositories Location` is correctly pointing to your |repos|.
120 * Remap and rescan |repos| so that the new instance picks them up, see
120 * Remap and rescan |repos| so that the new instance picks them up, see
121 :ref:`remap-rescan`.
121 :ref:`remap-rescan`.
@@ -1,28 +1,28 b''
1 .. _basic-vcs-cmds:
1 .. _basic-vcs-cmds:
2
2
3 Getting Started with VCS
3 Getting Started with VCS
4 ------------------------
4 ------------------------
5
5
6 When using |RCM|, you will be working with |git|, |svn| or |hg| |repos| from the
6 When using |RCE|, you will be working with |git|, |svn| or |hg| |repos| from the
7 command line or using a GUI client such as Tortoise, Tower or SourceTree.
7 command line or using a GUI client such as Tortoise, Tower or SourceTree.
8
8
9 |RCM| uses a standard |git|, |svn| and |hg| protocols. So all tools that
9 |RCE| uses a standard |git|, |svn| and |hg| protocols. So all tools that
10 can interact with there protocols are supported, including Eclipse or PyCharm
10 can interact with there protocols are supported, including Eclipse or PyCharm
11 plugins.
11 plugins.
12
12
13
13
14 If you have never used either before, the following information should
14 If you have never used either before, the following information should
15 help you set up your local machine so that you can sync changes with the
15 help you set up your local machine so that you can sync changes with the
16 |RCM| server.
16 |RCE| server.
17
17
18 All of the following instructions assume you have a |RCM| account,
18 All of the following instructions assume you have a |RCE| account,
19 and you can access your |repos| from the web interface.
19 and you can access your |repos| from the web interface.
20
20
21 .. note::
21 .. note::
22
22
23 |svn| |repo| management is currently only available from the web interface.
23 |svn| |repo| management is currently only available from the web interface.
24
24
25 .. toctree::
25 .. toctree::
26
26
27 get-start-hg
27 get-start-hg
28 get-start-git
28 get-start-git
@@ -1,17 +1,17 b''
1 File Editing
1 File Editing
2 ^^^^^^^^^^^^
2 ^^^^^^^^^^^^
3
3
4 To edit files using the online editor, use the following steps.
4 To edit files using the online editor, use the following steps.
5
5
6 1. From the |RCM| interface, select :menuselection:`Admin --> Repositories`
6 1. From the |RCE| interface, select :menuselection:`Admin --> Repositories`
7 2. Select the |repo| in which you want to edit a file.
7 2. Select the |repo| in which you want to edit a file.
8 3. Select the :guilabel:`file` view of the |repo|, and double-click on the file.
8 3. Select the :guilabel:`file` view of the |repo|, and double-click on the file.
9 4. To open the editor, select the :guilabel:`edit on branch:default` button.
9 4. To open the editor, select the :guilabel:`edit on branch:default` button.
10
10
11 * If the filename has an extension |RCM| recognises,
11 * If the filename has an extension |RCE| recognises,
12 the syntax highlighting will appear automatically.
12 the syntax highlighting will appear automatically.
13 * If the filename does not have an extension |RCM| recognises,
13 * If the filename does not have an extension |RCE| recognises,
14 you can set the language syntax highlighter by
14 you can set the language syntax highlighter by
15 choosing from the file type drop down menu.
15 choosing from the file type drop down menu.
16 5. To save your changes, select :guilabel:`Commit changes`
16 5. To save your changes, select :guilabel:`Commit changes`
17
17
@@ -1,33 +1,33 b''
1 .. _gist-edit:
1 .. _gist-edit:
2
2
3 Gist Editing
3 Gist Editing
4 ^^^^^^^^^^^^
4 ^^^^^^^^^^^^
5
5
6 Gists are standalone files that only the creator can edit. To work with
6 Gists are standalone files that only the creator can edit. To work with
7 gists, click on the :guilabel:`Gists` tab on the |RCM| header. The gist
7 gists, click on the :guilabel:`Gists` tab on the |RCE| header. The gist
8 editor also has syntax highlighting.
8 editor also has syntax highlighting.
9
9
10 You can set the following properties for each gist:
10 You can set the following properties for each gist:
11
11
12 * :guilabel:`Public`: Public gists are as the name suggests,
12 * :guilabel:`Public`: Public gists are as the name suggests,
13 and will show up in searches.
13 and will show up in searches.
14 * :guilabel:`Gist Lifetime`: You can set a gist to expire after a set
14 * :guilabel:`Gist Lifetime`: You can set a gist to expire after a set
15 period by using the :guilabel:`Gist Lifetime` dropdown menu.
15 period by using the :guilabel:`Gist Lifetime` dropdown menu.
16 This means that when the gist expires it will be deleted from the |RCM|
16 This means that when the gist expires it will be deleted from the |RCE|
17 gist database.
17 gist database.
18 * :guilabel:`Private`: This means that the gist will not show up in searches.
18 * :guilabel:`Private`: This means that the gist will not show up in searches.
19 * :guilabel:`Gist access level`: If you create a private gist you can have
19 * :guilabel:`Gist access level`: If you create a private gist you can have
20 two levels of privacy with the gist link.
20 two levels of privacy with the gist link.
21
21
22 * :guilabel:`Requires registered account`: This option requires users to
22 * :guilabel:`Requires registered account`: This option requires users to
23 have a registered account on the |RCE| instance, otherwise they will not
23 have a registered account on the |RCE| instance, otherwise they will not
24 have access to the gist.
24 have access to the gist.
25 * :guilabel:`Can be accessed by anonymous users`: This option hides the
25 * :guilabel:`Can be accessed by anonymous users`: This option hides the
26 link so that it does not show up in searches, but you can still share it
26 link so that it does not show up in searches, but you can still share it
27 with people outside of your organisation.
27 with people outside of your organisation.
28
28
29 For more advanced use of gists, see the gist API options in the :ref:`api`
29 For more advanced use of gists, see the gist API options in the :ref:`api`
30
30
31 .. image:: ../images/gists-acl.png
31 .. image:: ../images/gists-acl.png
32 :alt: Gist Management
32 :alt: Gist Management
33 :scale: 50 %
33 :scale: 50 %
@@ -1,11 +1,11 b''
1 Online Editing
1 Online Editing
2 --------------
2 --------------
3
3
4 |RCM| has an integrated online editor, allowing you to edit files in the
4 |RCE| has an integrated online editor, allowing you to edit files in the
5 browser. The online editor has syntax highlighting and the ability to fork,
5 browser. The online editor has syntax highlighting and the ability to fork,
6 merge, and commit changes to files.
6 merge, and commit changes to files.
7
7
8 .. toctree::
8 .. toctree::
9
9
10 file-editing
10 file-editing
11 gist-editing No newline at end of file
11 gist-editing
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: file renamed from rhodecode/apps/admin/interfaces.py to rhodecode/apps/_base/interfaces.py
NO CONTENT: file renamed from rhodecode/apps/admin/interfaces.py to rhodecode/apps/_base/interfaces.py
1 NO CONTENT: file renamed from rhodecode/apps/admin/navigation.py to rhodecode/apps/_base/navigation.py
NO CONTENT: file renamed from rhodecode/apps/admin/navigation.py to rhodecode/apps/_base/navigation.py
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: file renamed from rhodecode/apps/admin/subscribers.py to rhodecode/apps/_base/subscribers.py
NO CONTENT: file renamed from rhodecode/apps/admin/subscribers.py to rhodecode/apps/_base/subscribers.py
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: file was removed, binary diff hidden
NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now