Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

OADA Reference API Server

CodeFactor code style: prettier License

This project is a reference implementation of an OADA-conformant API server. It can be used to host easily run your own OADA instance, or for comparison when creating an OADA-conformant API implementation.

The repository and releases come with configurations for easily running with docker-compose.

You can also theoretically run all the parts without docker or docker-compose, but you will need arangodb and either redpanda or kafka for the micro-services to use.

OADA micro-services

For information on the various micro-services comprising this reference implementation, see the oada folder.


Running a release

Download one of our releases and start it using docker-compose.

cd folder/containing/release/docker-compose
# Will pull the corresponding release images from dockerhub docker-compose up -d

Running from the git

If you want to contribute, or do other development type things, you can run the server straight from this codebase.

git clone
cd server
# Running up the first time will automatically build the docker images docker-compose up -d

Note that running from the git is not recommended for production use.

Using oadadeploy

If you need to migrate an OADA v2 instance, or are making a new installation but for some reason are averse to managing your own configuration, see oadadeploy.


To modify the docker-compose configuration of your OADA instance, you can simply create a docker-compose.override.yml in the same directory as the docker-compose.yml file. Any settings in this override file will be merged with ours when running docker-compose.

Environment variables

Additionally, there are various configuration environment variables available. Some important ones are:

  • DOMAIN: set to the domain name of your API server (e.g.,
  • EXTRA_DOMAINS: Additional domains to serve (e.g.,,
  • DEBUG: set the namespace(s) enabled in debug (e.g., *:info,*:error,*:warn)

Rather than trying to always remember to set your environment variables, you probably want to use a .env file for things like DOMAIN.