Skip to content

oxd-server Installation#

System Requirements#

oxd needs to be deployed on a server or VM with the following minimum requirements.

CPU Unit RAM Disk Space Processor Type
1 400MB 200MB 64 Bit


oxd requires Java version 1.8

oxd 4.0 works with CE 3.1.6 and above.

Linux Packages#

Before the installation, make sure that Java 8 is installed on your OS. Please check it with

# java -version
java version "1.8.0_181"
If the above command confirms that Java 8 is installed, you can go on with the oxd installation.

The oxd Linux packages provide an easy way to install the oxd-server. Follow the steps below to get started:

Step 1: Find the proper Linux package below.

Step 2: After the installation, configure your oxd server.

Step 3: Run oxd server:

Ubuntu 18.04 (bionic)#

echo "deb bionic main" > /etc/apt/sources.list.d/gluu-repo.list
curl | apt-key add -
apt-get update
apt-get install oxd-server

Ubuntu 16.04 (xenial)#

echo "deb xenial main" > /etc/apt/sources.list.d/gluu-repo.list
curl | apt-key add -
apt-get update
apt-get install oxd-server

Debian 9 (stretch)#

echo "deb stretch-stable main" > /etc/apt/sources.list.d/gluu-repo.list
curl | apt-key add -
apt-get update
apt-get install oxd-server

CentOS 7#

wget -O /etc/yum.repos.d/Gluu.repo
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-GLUU
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-GLUU
yum clean all
yum install oxd-server


wget -O /etc/yum.repos.d/Gluu.repo
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-GLUU
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-GLUU
yum clean all
yum install oxd-server

Service Operations#

Ubuntu 16.04 (xenial)

Operation Command
Start oxd server /etc/init.d/oxd-server start
Stop oxd server /etc/init.d/oxd-server stop
oxd server status /etc/init.d/oxd-server status
Restart oxd server /etc/init.d/oxd-server restart

Ubuntu 18.04 (bionic)/Debian 9 (stretch)/CentOS 7/RHEL 7

Operation Command
Start oxd server systemctl start oxd-server
Stop oxd server systemctl stop oxd-server
oxd server status systemctl status oxd-server
Restart oxd server systemctl restart oxd-server

Manual installation#

The oxd-server is a self-contained program.

To run oxd-server:

  1. download oxd distribution zip:

  2. create a new directory ($OXD_SERVER_HOME) with appropriate name and unzip the downloaded into it.

  3. move to $OXD_SERVER_HOME/conf folder and edit oxd-server.yml file to make necessary configuration changes (like setting correct absolute path of oxd-server.keystore in keyStorePath property etc.)

  4. now go to $OXD_SERVER_HOME/bin folder and start oxd-server using below command





Manual Build oxd-server Server#

If you're a Java geek, you can build the oxd-server server using Maven.

The code is available in Github.

The following command can be run inside the oxd folder to run the build:

  $ mvn clean package

oxd-server Uninstall Procedure#

Ubuntu 16.04 (xenial)#

/etc/init.d/oxd-server stop
sudo apt-get remove oxd-server
apt-get purge oxd-server

Ubuntu 18.04 (bionic)/Debian 9 (stretch)#

systemctl stop oxd-server
sudo apt-get remove oxd-server
apt-get purge oxd-server

CentOS 7/RHEL 7#

systemctl stop oxd-server
yum remove oxd-server
rm -rf /opt/

Utility scripts#

View, delete entries inside the oxd-server database with or lsox.bat scripts#

There are four types of parameters which can be used by files:

  • -l - list all oxd_ids inside the oxd database
  • -oxd_id <oxd_id> - view JSON representation of the entity by oxd_id
  • -d - removes entity by oxd_id.
  • -a - authorization access_token (e.g. -a gf4566-dlt456-emtr56-ddmg5kd). It is optional if oxd is not running. If it is running then it is REQUIRED. This is true if h2 database is used for persistence which is default. The reason is that if oxd is running it locks h2 database file. The lock is exclusive, so script can't access the file while oxd is running. To handle it script needs authorization via -a parameter. Authorization means access_token obtained via /get-client-token API call (same as Authorization header value used for all API calls).

The script is located in /opt/oxd-server/bin/ If you hit the script without any parameters, it shows a hint:

yuriy@yuriyz:~/oxd-server-distribution/bin$ sh
Missing required option: oxd_id
usage: utility-name
 -oxd_id,--oxd_id <arg>   oxd_id is unique identifier within oxd database
                          (returned by register_site and setup_client
 -l,--list                list all oxd_ids inside oxd database
 -d,--delete              deletes entry from oxd database                         

A typical call looks like this:

yuriy@yuriyz:~/oxd-server-4.0-SNAPSHOT-distribution/bin$ sh -oxd_id d8cc6dea-4d66-4995-b6e1-da3a33722f2e -a gf4566-dlt456-emtr56-ddmg5kd

yuriy@yuriyz:~/oxd-server-4.0-SNAPSHOT-distribution/bin$JSON for oxd_id d8cc6dea-4d66-4995-b6e1-da3a33722f2e