Install as a Docker Container

Everything you need to install and run TerminusDB server as a docker container on your computer or on a remote server

Requirements

The container script is distributed via GitHub, so you will need Git to clone and update the TerminusDB bootstrap repo. You will also need Docker running.

A list of prerequisite components depending on your operating system. Click on the required component to download it from the provider's website.

Table: Installation requirements

ComponentVersionRequired to:LinuxmacOSWindows

Latest

Clone the TerminusDB bootstrap and run the container script.

Latest

Windows users should use the application "Git Bash" for all terminal commands described below, this application comes with Git for Windows.

Latest

Access security (optional).

Latest

Use the TerminusDB docker container.

Docker memory allocation on Windows On Windows, the default memory allocated for the Docker is 2GB. TerminusDB is an in-memory database so it is advised to increase the allocation in Docker desktop settings.

Install TerminusDB on Windows with Docker Guide

For a comprehensive guide to installing on Windows, our friends at DFRNT put this blog together - Run TerminusDB on Windows with Docker

Linux package manager On Linux, use your distro's package manager for containerized deployments or find more information here: https://www.docker.com/products/container-runtime

Install steps

Install and run the TerminusDB container with the following steps.

Clone the TerminusDB bootstrap

clone the terminusdb-bootstrap repository and cd to it.

git clone https://github.com/terminusdb/terminusdb-bootstrap
cd terminusdb-bootstrap

Run the container

Run the container using terminusdb-container script.

Running for the first time

Run the container with the parameter run. See Environment configuration for further configuration options.

./terminusdb-container run

This generates the message: terminusdb-server container started http://127.0.0.1:6363/. This is the TerminusDB Server and Console URL.

Subsequent runs

  • Stop the container if it is running.

  • Remove previous volumes. Enter y to confirm removal when prompted.

  • Rerun the container.

Warning: Removing previous volumes will erase local data.

./terminusdb-container stop
./terminusdb-container rm
./terminusdb-container run

Use the console

Open the TerminusDB console in a web browser using the URL.

http://127.0.0.1:6363/dashboard

Console commands

Run container script without a parameter to list the available commands.

./terminusdb-container 

The available commands are listed as follows.

USAGE:
  terminusdb-container [COMMAND]

  help        show usage
  run         run container
  stop        stop container
  console     launch console in web browser
  attach      attach to prolog shell
  exec        execute a command inside the container
  rm          remove volumes

Use the Dashboard

The TerminusDB local dashboard is included within terminusdb-bootstrap. The dashboard is a UI to create and manage data products, model data, and test queries. To use the dashboard visit:

localhost:6363/dashboard/ 

Use GraphQL

TerminusDB hosts a GraphQL endpoint at:

SERVERNAME/api/graphql/ORG/DATAPRODUCT

For instance, with a data product named admin/people, and a locally installed TerminusDB, you can query it at:

http://127.0.0.1:6363/api/graphql/admin/people

TerminusDB ships with a GraphiQL graphical GraphQL query interface and schema browser. This is a quick way to get acquainted with GraphQL in TerminusDB.

You can reach this browser at:

http://127.0.0.1:6363/api/graphiql/admin/people

You will need to set your Authorization header in the Header dialog box at the bottom center.

For instance, in the default install, as:

{
  "Authorization": "Basic YWRtaW46cm9vdA=="
}

Environment configuration

The container script uses a set of environment variables with default values. You can configure the environment by setting these variables.

The environment file

The terminusdb-bootstrap directory contains the file ENV.example. This file holds all configurable environment variables. The container script uses the file ENV if it exists in the terminusdb-bootstrap directory.

To run the container script with values specific to your environment:

  • Copy ENV.example to ENV: cp ENV.example ENV

  • Edit ENV to uncomment and set environment variable/s: vi ENV

  • Run the container as usual: ./terminusdb-container run

Environment variables reference

A description of some of the environment variables in ENV.example and their defaults.

Table: Environment variables reference

Environment variable nameDefault valueDescription

TERMINUSDB_DOCKER

sudo docker

Default docker command

TERMINUSDB_CONTAINER

terminusdb-server

Name of the running container

TERMINUSDB_REPOSITORY

terminusdb/terminusdb-server

TerminusDB docker image

TERMINUSDB_NETWORK

bridge

Docker network mode

TERMINUSDB_TAG

latest

The latest version of the terminusdb-server docker image

TERMINUSDB_STORAGE

terminusdb_storage_local

Storage volume name

TERMINUSDB_PORT

6363

The port used for TerminusDB

TERMINUSDB_LOCAL

your-folder-name

Local folder to mount inside container

TERMINUSDB_SERVER

127.0.0.1

Server on which TerminusDB runs

TERMINUSDB_PASS

root

Password for accessing TerminusDB

Examples of setting environment variables

Examples of environment variables you can set when running the container script. Replace the [COMMAND] property in the examples below with the parameter you want to use.

Mount a local directory inside the container

TERMINUSDB_LOCAL=/path/to/dir ./terminusdb-container [COMMAND]

Set the Docker Volume name

TERMINUSDB_STORAGE=terminus_storage_local ./terminusdb-container [COMMAND]

Use the latest release

TERMINUSDB_TAG=latest ./terminusdb-container [COMMAND]

Use the development release

TERMINUSDB_TAG=dev ./terminusdb-container [COMMAND]

Use a specific release instead of the latest release

TERMINUSDB_TAG=v1.1.2 ./terminusdb-container [COMMAND]

Use local version of the TerminusDB console instead of the published version

TERMINUSDB_CONSOLE_BASE_URL=//127.0.0.1:3005 ./terminusdb-container [COMMAND]

Do not use sudo even when sudo is available

TERMINUSDB_DOCKER=docker ./terminusdb-container [COMMAND]

Use podman instead of docker

TERMINUSDB_DOCKER="podman" ./terminusdb-container [COMMAND]

Server deployment

The TerminusDB server is deployed to your computer by default.

Local computer deployment

By default, the Docker container binds to IP 127.0.0.1. This prevents insecure deployments and ensures the TerminusDB server is accessible on a local computer only.

Remote server deployment

To deploy the TerminusDB server to a remote machine:

Run the container

Run the container script with the run parameter as usual.

./terminusdb-container run

Last updated