Deploy RhodeCode Enterprise From a Hosted Server#

If you wish to deploy your own RhodeCode Enterprise instance from something like a Digital Ocean droplet, or a hetzner server use the following instructions to get it setup.

I’m using an Ubuntu 14.04 image for the purposes of this tutorial, but all other Unix environments will be pretty similar. You can check out the full lists of supported platforms and versions in the System Overview section.

Create a Digital Ocean Droplet#

  1. Sign into Digital Ocean.

  2. Create a Droplet choosing Ubuntu 14.04 as your operating system.

  3. (Optional) Add SSH keys if you have them set up.

Configure Your Server#

Once you have your server created, you need to sign into it and set it up to host RhodeCode Enterprise.

  1. Open a terminal and sign into your server. Digital Ocean will mail you the IP address. You’ll need to change your password on the first login if you don not have SSH keys set up.

$ ssh root@
  1. It is not advised to install RhodeCode Enterprise as the root user. So create a user with sudo permissions and then carry out the rest of the steps from that user account.

# Create a user with sudo permissions
root@rhodecode:~# sudo useradd -m -s /bin/bash -d /home/brian -U brian
root@rhodecode:~# sudo usermod -a -G sudo brian

# Set the password for that user
root@rhodecode:~# passwd brian
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

# Switch to that user for the rest of the steps
root@rhodecode:~# su brian

# You should see your home dir change to what was set during installation
brian@rhodecode:~$ cd ~
brian@rhodecode:~$ pwd

Once you have this set up, you are ready to install RhodeCode Control.

Install RhodeCode Control#

RhodeCode Control will install and manage the package dependencies for your RhodeCode Enterprise instance.

  1. Download the RhodeCode Control installer from

  2. Once downloaded to your computer, transfer the package to your server


These steps happen on your computer, not on the server.

# Change to where the file is downloaded
$ cd Downloads/

# SFTP to your server
$ sftp brian@

# Use mput to transfer the file
sftp> mput RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
Uploading RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3 to /home/brian/RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d520e3
RhodeCode-installer-linux-391_b1a804c4d69b_d6c087d 100%  289MB   4.1MB/s   01:11
sftp> exit

The RhodeCode Control installer is now on your server, and you can read the full instructions here Install RhodeCode Control , but below is the example shortcut.

# Check that the script is uploaded to your home directory
$ ls -1

# Change the script permissions
$ chmod +x RhodeCode-installer-linux*

# Run the installer and accept the prompts
$ ./RhodeCode-installer-linux-*


Once finished, exit the terminal and sign in again. This is to refresh you session to pick up the new commands.

Install RhodeCode Enterprise#

Now that RhodeCode Control is installed, you can install RhodeCode Enterprise. For the full instructions, see Install RhodeCode Enterprise, but the below is an example shortcut.

# Install a VCS Server and follow the prompts
$ rccontrol install VCSServer --start-at-boot

Extracting VCSServer ...
Configuring RhodeCode VCS Server ...
Supervisord state is: RUNNING
Added process group vcsserver-1

# Install a RhodeCode Enterprise instance and follow the prompts
$ rccontrol install Enterprise --start-at-boot

Configuration of RhodeCode Enterprise passed.
Supervisord state is: RUNNING
Added process group enterprise-1

RhodeCode Enterprise is now installed on your server, and is running on the port displayed by the rccontrol status command.

brian@rhodecode:~$ rccontrol status

 - NAME: enterprise-1
 - TYPE: Enterprise
 - VERSION: 3.1.1
 - URL:

 - NAME: vcsserver-1
 - TYPE: VCSServer
 - VERSION: 1.1.1
 - URL:

Serve RhodeCode Enterprise using Nginx#

Now that RhodeCode Enterprise is running, you need to use Nginx or Apache to serve it to users. For detailed instructions about setting up your webserver, see the System Administration section. But the below shortcut should help serve it.

  1. Install Nginx on your server.

# Install nginx
$ sudo apt-get install nginx
  1. Create a virtual hosts file for RhodeCode Enterprise. Create the file in this location /etc/nginx/sites-available. In this demo I have called it vcs.conf

# Create the file
$ sudo vi /etc/nginx/sites-available/vcs.conf

Use the following example to create yours.

server {
    listen 80;
    # Change to your IP, or a domain name if you've set that up
    server_name ;

    location / {
    # Set this line to match the RhodeCode Enterprise Instance URL
        proxy_set_header    Host $Host;
        proxy_buffering             off;
    # Setting this to a high number allows large repo pushes
        client_max_body_size        4G;
  1. Symlink the virtual hosts file to the sites-enabled folder, and then restart Nginx.

# Symlink the virtual hosts file
$ ln -s /etc/nginx/sites-available/vcs.conf /etc/nginx/sites-enabled/vcs.conf

# You can also delete the Nginx default symlink
$ rm /etc/nginx/sites-enabled/default

# Restart Nginx
$ sudo  /etc/init.d/nginx restart
  * Restarting nginx nginx                                     [ OK ]

Once restarted, you should see a clean RhodeCode Enterprise instance running on the IP address, or the domain you have set up.

A fresh RhodeCode Enterprise Instance