One-time Admin Tasks
- :ref:`web-analytics`
- :ref:`admin-tricks-license`
- :ref:`announcements`
- :ref:`md-rst`
- :ref:`repo-stats`
- :ref:`server-side-merge`
- :ref:`remap-rescan`
- :ref:`custom-hooks`
- :ref:`clear-repo-cache`
- :ref:`set-repo-pub`
- :ref:`ping`
Adding Web Analytics
If you wish to add a Google Analytics, or any other kind of tracker to your |RCE| instance you can add the necessary codes to the header or footer section of each instance using the following steps:
- From the |RCE| interface, select :menuselection:`Admin --> Settings --> Global`
- To add a tracking code to you instance, enter it in the header or footer section and select Save
Use the example templates in the drop-down menu to set up your configuration.
Licence Key Management
To manage your license key, go to :menuselection:`Admin --> Settings --> License`. On this page you can see the license key details. If you need a new license, or have questions about your current one, contact support@rhodecode.com
Server-wide Announcements
If you need to make a server-wide announcement to all users, you can add a message to be displayed using the following steps:
- From the |RCE| interface, select :menuselection:`Admin --> Settings --> Global`
- To add a message that will be displayed to all users, select :guilabel:`Server Announcement` from the drop-down menu and change the var message = "TYPE YOUR MESSAGE HERE"; example line.
- Select :guilabel:`Save`, and you will see the message once your page refreshes.
Suppress license warnings or errors
In case you're running on maximum allowed users, RhodeCode will display a warning message on pages that you're close to the license limits. It's often not desired to show that all the time. Here's how you can suppress the license messages.
- From the |RCE| interface, select :menuselection:`Admin --> Settings --> Global`
- Select :guilabel:`Flash message filtering` from the drop-down menu.
- Select :guilabel:`Save`, and you will no longer see the license message once your page refreshes.
Markdown or RST Rendering
|RCE| can use Markdown or reStructured Text in commit message, code review messages, and inline comments. To set the default to either, select your preference from the drop-down menu on the :menuselection:`Admin --> Settings --> Visual` page and select :guilabel:`Save settings`.
Enabling Repository Statistics
To enable |repo| statistics, use the following steps:
- From the |RCE| interface, open :menuselection:`Admin --> Repositories` and select :guilabel:`Edit` beside the |repo| for which you wish to enable statistics.
- Check the :guilabel:`Enable statistics` box, and select :guilabel:`Save`
Enabling Server-side Merging
To enable server-side merging, use the following steps:
- From the |RCE| interface, open :menuselection:`Admin --> Settings --> VCS`
- Check the :guilabel:`Server-side merge` box, and select :guilabel:`Save Settings`
If you encounter slow performance with server-side merging enabled, check the speed at which your server is performing actions. When server-side merging is enabled, the following actions occurs on the server.
- A |pr| is created in the database.
- A shadow |repo| is created as a working environment for the |pr|.
- On display, |RCE| checks if the |pr| can be merged.
To check how fast the shadow |repo| creation is occurring on your server, use the following steps:
- Log into your server and create a directory in your |repos| folder.
- Clone a |repo| that is showing slow performance and time the action.
# One option is to use the time command $ time hg clone SOURCE_REPO TARGET
Remap and Rescan Repositories
You may want to Remap and rescan the |repos| that |RCE| is managing to ensure the system is always up-to-date. This is useful after importing, deleting, or carrying out general cleaning up operations. To do this use the following steps:
- From the |RCE|, open :menuselection:`Admin --> Settings --> Remap and rescan`
- Click :guilabel:`Rescan Repositories`
Check the additional options if needed:
- :guilabel:`Destroy old data`: Useful for purging deleted repository information from the database.
- :guilabel:`Invalidate cache for all repositories`: Use this to completely remap all |repos|. Useful when importing or migrating |repos| to ensure all new information is picked up.
Adding Custom Hooks
To add custom hooks to your instance, use the following steps:
- Open :menuselection:`Admin --> Settings --> Hooks`
- Add your custom hook details, you can use a file path to specify custom hook scripts, for example: pretxnchangegroup.example with value python:/path/to/custom_hook.py:my_func_name
- Select :guilabel:`Save`
Also, see the RhodeCode Extensions section of the :ref:`rc-tools` guide. RhodeCode Extensions can be used to add additional hooks to your instance and comes with a number of pre-built plugins if you chose to install them.
Clearing |repo| cache
If you need to clear the cache for a particular |repo|, use the following steps:
- Open :menuselection:`Admin --> Repositories` and select :guilabel:`Edit` beside the |repo| whose cache you wish to clear.
- On the |repo| settings page, go to the :guilabel:`Caches` tab and select :guilabel:`Invalidate repository cache`.
Changing Default Language
To change the default language of a |RCE| instance, change the language code in the :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. To do this, use the following steps.
- Open the :file:`rhodecode.ini` file and set the required language code.
## Optional Languages ## en(default), de, fr, it, ja, pl, pt, ru, zh lang = de
- Restart the |RCE| instance and check that the language has been updated.
$ rccontrol restart enterprise-2 Instance "enterprise-2" successfully stopped. Instance "enterprise-2" successfully started.
Setting Repositories to Publish
To automatically promote your local |repos| to public after pushing to |RCE|, enable the :guilabel:`Set repositories as publishing` option on the :menuselection:`Admin --> Settings --> VCS` page.
Note
This option is enabled by default on most |RCE| versions, but if upgrading from a 1.7.x version it could be disabled on upgrade due to inheriting older default settings.
Pinging the |RCE| Server
You can check the IP Address of your |RCE| instance using the following URL: {instance-URL}/_admin/ping.
$ curl https://your.rhodecode.url/_admin/ping pong[rce-7880] => 203.0.113.23
Unarchiving a repository
Archive operation for the repository is similar as delete. Archive keeps the data for future references but makes the repository read-only. After archiving the repository it shouldn't be modified in any way. This is why repository settings are disabled for an archived repository.
If there's a need for unarchiving a repository for some reasons, the interactive ishell interface should be used.
# Open iShell from the terminal $ rccontrol ishell enterprise-1/community-1
# Set repository as un-archived In [1]: repo = Repository.get_by_repo_name('SOME_REPO_NAME') In [2]: repo.archived = False In [3]: Session().add(repo);Session().commit()
Bulk change repository owner
Here's how one can change an owner of repository for an user who has been de activated. Settings a new owner can be done via ishell for all repositories that past owner had.
do run this script the interactive ishell interface should be used.
# Open iShell from the terminal $ rccontrol ishell enterprise-1/community-1
from rhodecode.model.db import User, Repository, Session from rhodecode.model.permission import PermissionModel # replace old-owner and new-owner with your exact users old_owner = User.get_by_username('old-owner') new_owner = User.get_by_username('new-owner') # list of users we need to "flush" permissions affected_user_ids = [new_owner.user_id, old_owner.user_id] for repo in Repository.get_all_repos(user_id=old_owner.user_id): repo.user = new_owner Session().add(repo) Session().commit() PermissionModel().trigger_permission_flush(affected_user_ids)