🚧 This website is still under construction. Please stay tuned. 🚧
Self-host
API Deployment

TEDective API deployment

TEDective API deployment can be done with help of provided Makefile. First make sure you have cloned the repo with API:

git clone https://git.fsfe.org/TEDective/api.git

If the TerminusDB instance is locally deployed with help of TEDective Parser, deployment is as easy as running

make dev.up

TEDective API should be now available under http://localhost:9000 (opens in a new tab).

Makefile targets

  • help: Displays a list of available targets with descriptions.

  • dev: Start all containers and display their logs. Optionally, you can set environment variables to configure the containers.

    • Usage: make dev [ADDRESS=<address>] [HEADERS=<headers>] [KEY=<key>]
  • dev.up: Start all containers and detach them.

    • Usage: make dev.up [ADDRESS=<address>] [HEADERS=<headers>] [KEY=<key>]
  • dev.up.test: Start containers necessary for testing and detach them.

    • Usage: make dev.up.test
  • dev.down: Stop all containers.

    • Usage: make dev.down
  • dev.kill: Kill and remove all containers.

    • Usage: make dev.kill
  • dev.rebuild: Stop and restart containers, rebuilding them this time.

    • Usage: make dev.rebuild [ADDRESS=<address>] [HEADERS=<headers>] [KEY=<key>]
  • api.test: Run tests for the TEDective API using pytest. It depends on dev.up.test to start the necessary containers for testing.

    • Usage: make api.test

Default database location, credentials, and how to change them

By default, so as long as you don't provide custom values for ADDRESS, HEADERS and KEY variables, API will look for TerminusDB instance under http://terminus-server:6363 (opens in a new tab), with the key being default TerminusDB admin password, and headers that are corresponding to that password. If you are planning to deploy TerminusDB instance somewhere outside of your local network, it is highly recommended to change default password.

Default values for those variables are stored in .env file and then used by Docker (opens in a new tab) to tell the API where it should look for the database.

DB_ADDRESS=http://terminusdb-server:6363
TERMINUS_ADMIN_KEY=root
HEADERS=YWRtaW46cm9vdA==

To change the values, add the new ones as an arguments while running the desired Makefile rule, or modify .env file. If you choose to use arguments, make sure you provide all 3 of them, otherwise the default ones from .env are going to be used!

For the headers value, make sure that you provide only the second part of Basic Auth header (opens in a new tab), "Basic " is already hardcoded!