I’ve used Digital Ocean for quite awhile now to spin up servers for web projects and the like, but it was not until I was at the OSCON 2017 event in Austin, Texas the other week where SAP had a booth next to one from Digital Ocean that I realized that I had never taken the time to document the simple steps to get HXE up and running there.

Therefore I decided to put together a few steps today to document the process.


SAP HANA, express edition (HXE) is officially supported on SLES and RHEL. SAP Community members have been successful in running HXE on other Linux operating systems that are not formally supported by SAP, such as Ubuntu, openSUSE and Fedora. SAP is not committing to resolving any issues that may arise from running HXE on these platforms.

From your dashboard in Digital Ocean, click on Create Droplet:

Pick an image for your Droplet. Then a region to run your Droplet.


The minimum requirements for HANA Express Edition, server-only are:

  • 4 CPU cores
  • 8 GB RAM
  • 100 GB Disk

Then scroll down and be sure to enter a name for the Droplet. This name will also be the name of the host and the example used in this tutorial is ubuntu-hxe-server.

The minimum requirements for HANA Express Edition with XS Advanced installation are:
– 4 CPU cores
– 24 GB RAM
– 120 GB Disk

Now create the Droplet.

Upload the HXE installation packages to your Droplet (/tmp). Upload the files hxe.tgz and hxexsa.tgz for server + applications:

To do this you can use a FTP program or from the command line you can execute

scp hxe.tgz root@207.154.xxx.xxx:/tmp

Now to prep your server. Go to the download page for the Java Runtime Environment. Accept the license agreement and download the tar.gz file:

Right-click on the file with extension .tar.gz for x64 Linux and copy the link.

Now upload this to your server with the command:

scp jre-8u131-linux-x64.tar.gz root@207.154.xxx.xxx:/tmp

Now on the server itself, create a new directory called /usr/java and copy the downloaded installation package into a new folder. The name of the installation package may be different from the example, so replace jre-8u121-linux-x64.tar.gz with the package you have just downloaded:

sudo su –
mkdir /usr/java
chmod 777 /usr/java
cp ./jre-8u121-linux-x64.tar.gz /usr/java/jre-8u121-linux-x64.tar.gz
cd  /usr/java
tar -zxvf jre-8u121-linux-x64.tar.gz

This is what the console would look like:

After it finishes extracting the files, if you list the directory you will see a new folder created by the extraction process:

Set the JVM path with the following command, where /usr/java is the directory you created to extract the JRE installation package and jre1.8.0_131 refers to the directory that has just been created during extraction. Replace these references accordingly:

update-alternatives --install /usr/bin/java java /usr/java/jre1.8.0_131/bin/java 100

Now to install some additional libraries.

apt-get update
apt-get install openssl
apt-get install libpam-cracklib
apt-get install libltdl7
apt-get install libaio1
apt-get install unzip

The last one is specific for XSA.

This is a command (create an alias for chkconfig and install curl) that is not available in Ubuntu. You will download its equivalent and create an alias so it can be called by the installation script.

apt-get install sysv-rc-conf
alias chkconfig='sysv-rc-conf'

Once the upload of the installation package is finished, execute the following commands from a console. Replace the home directory accordingly if you have uploaded the files into a different location.

cd /tmp
chmod -R 777 hxe.tgz
tar -xvzf hxe.tgz

If you are also installing XS Advanced applications, execute the following commands:

chmod -R 777 hxexsa.tgz
tar -xvzf hxexsa.tgz

You will see the list of files that have been extracted. These are the files you will later use for installation.

From the command line of your Droplet you will run the following commands.

sudo ufw enable

This will enable the Firewall in Ubuntu.

sudo ufw allow ssh
sudo ufw allow 8090/tcp
sudo ufw allow 8000/tcp
sudo ufw allow 4300/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 1128:1129/tcp
sudo ufw allow 51002:51027/tcp
sudo ufw allow 30000:30100/tcp
sudo ufw allow 50000:50050/tcp

If you are installing the XS Advanced tools, you also need to add the following rules:

sudo ufw allow 38326/tcp
sudo ufw allow 39228/tcp
sudo ufw allow 49000:49100/tcp
sudo ufw allow 55752/tcp
sudo ufw allow 53001:53100/tcp
sudo ufw allow 51000:51100/tcp
sudo ufw allow 55742/tcp

You can confirm all the rules have been processed using command

sudo ufw status

This step applies ONLY if you are installing the XS Advanced tools.

Before you launch the installation, you need to perform a minor modification on the script register_cockpit.sh which is executed at the end of the XS Advanced installation. This script has been extracted from the XS Advanced .tar.gz into a directory called HANA_EXPRESS_20.

Open the file for edition with the following command. Adjust accordingly with your username or if you extracted the installation files into a different directory:

 nano /tmp/HANA_EXPRESS_20/register_cockpit.sh

Look for a line containing variable local_hostname=hostname -f and replace it with hostname, i.e., remove the -f from this line.

Now just in case, you could end up with a Python error during install to work around that just run the following commands.

export PYTHONHOME=/usr/local/lib/python3.5/
export PYTHONPATH=/usr/local/lib/python3.5/

You have finally got to the most important and exciting part! Go into your home directory or wherever you have extracted the installation files into.

IMPORTANT: As this process should not be interrupted, use a separate SSH client that handles connection intermittence, instead of the web client.

sudo su –
cd /tmp

The script will prompt for different parameters:

  • Installer root directory

This is the directory where the files have been extracted, plus HANA_EXPRESS_20, for example /tmp/HANA_EXPRESS_20.

Paste this value and press Enter.

  • Components you want to install
    Choose all to include XS Advanced tools (provided you have uploaded them) or server for the server-only installation:
  • In this example, ubuntu-hxe-server:
  • System ID:
    The system ID you want to use. As you will probably use the tutorials on the many things you can do in HANA Express Edition, you may want to use HXE as proposed:
  • Enter Instance Number:
    The firewall rules have been created for instance 00, so please update them accordingly if you choose a different instance number. Also, bear this in mind as the usual instance number used in tutorials is also 00.
  • Master Password:
    This will be the password for administrator users such as SYSTEM or ADM. You will definitely need to remember this password.

If you are installing the Applications package, this password is also used for the XSA_ADMIN, XSA_DEV, and XSA_SHINE users.

Hit Enter.

Review the Installation summary and hit Y.

After you hit Enter the script will verbosely inform what it is doing. Avoid disconnecting the terminal or interrupting the execution.

Wait until the command prompt in the console is available for input again.

You can also check the log by running command ls -ltr in the directory
/var/tmp and open the latest installation log file using commands such as more <name of the file> or cat <name of the file>.

Finally, the command-line Lifecycle Management program can check the installation for you: /hana/shared/HXE/hdblcm/hdblcm.

Hint: You can start the database again with command ./HDB start and check if the services are running with ./HDB info

Remember: SAP HANA Express Edition license is free up to 32 GB of RAM.

Remember to set you hosts file in your local computer with the pair «external IP» «host name». You will generally fins these files in folders /etc/hosts or in C:\Windows\System32\drivers\etc, and the configuration would look like the following example:

207.154.xxx.xxx	ubuntu-hxe-server

Where the 207.154.XXX.XXX stands for the external IP and the ubuntu-hxe-server value stands for the name of the host that you have set up in the server.

The whole process is honestly quite simple and takes quite a bit less than the 60 minutes total that the tutorials indicate. In fact I threw up another instance today just to document the steps. It’s also very similar to the steps documented by Lucia.

Not really a whole lot of reasons not to actually give HXE a go is there?

To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Jelena Perfiljeva

    Digital what now to do what now? Oh dear, this is way far out…

    One of these days I’ll gather strength to actually follow one of these tutorials and do something. Most likely to share terrible failure afterwards. 🙂 (I’ve heard trying is the first step to get there.)

    Jokes aside – thanks for posting, your tutorials are always appreciated. I also like the format, with the level (beginner, etc.) and time needed. As with cooking, it’s helpful to know in advance what you might be getting into.

    1. Craig Cmehil Post author

      🙂 Digital Ocean is another cloud provider like Amazon, Google, Microsoft, etc. this one happens to be one I personally use. In fact I am right now doing the latest version of HXE (with XSA) on there.

  2. Gregory Misiorek

    Hi Craig,

    a good alternative to AWS and the rest of the cloud gang. the price points for xsa seem to be $0.50/hour or $320 per month, so not quite that competitive with AWS. the only remaining question is which cloud provider SAP prefers to do business with, but it seems like they are all treated the same way as Big 4 used to be on the other side of the ledger, so to speak.

    thx for the tutorial,


    1. Craig Cmehil Post author

      I actually launch a small size to give me the HD space then I modify up as needed to save costs. Since I focus on the server only it’s actually fine on the 8GB instance at about $0.12 an hour.


Leave a Reply