Self-hosted Open Concept Lab instance for local development, testing, and deployment.
This repo bundles the two services that make up an OCL instance:
- api/ — the OCL terminology API (backend), based on OpenConceptLab/oclapi2, with local self-hosting customizations (an added
rustfs/MinIO-compatible object storage service, pinned Docker image tags, extra Celery env vars). - web/ — the OCL TermBrowser (frontend web client), based on OpenConceptLab/oclweb2.
Each subfolder is a self-contained Docker Compose project — see api/README.md and web/README.md for full dev setup instructions. Quick start:
# Backend
cd api
touch .env # add required variables, see below
sysctl -w vm.max_map_count=262144 # required by Elasticsearch
docker compose up -d
# API available at http://localhost:8000/swagger/
# Frontend
cd ../web
docker compose up -d
# Web client available at http://localhost:4000api/.env holds all backend secrets and config (database, Redis, Elasticsearch, object storage, email, error tracking, etc.) and is not committed. Check api/docker-compose.yml for the full list of variables each service reads, and fill in real values for your environment. Never commit .env files or real credentials to this repo.
- History from the upstream OpenConceptLab repos was squashed when importing into this repo; see the upstream projects for full commit history.
- Large sample datasets under
api/core/samples/are used for testing/demo imports and are inherited as-is from upstream.
api/ and web/ are derived from OpenConceptLab/oclapi2 and OpenConceptLab/oclweb2, both licensed under the Mozilla Public License 2.0 — see LICENSE.md. The self-hosting customizations in this repo (object storage service, Docker/Compose config, env wiring) are provided under the same license.