Faceted search UI for ODIS metadata records. Read-only FastAPI backend + Svelte frontend.
Search is backed by the odis_metadata Elasticsearch index. See docs/faceted-search-plan.md and docs/data-sources-analysis.md for background.
- Docker
- Access to external Elasticsearch with the
odis_metadataindex
git clone https://github.com/iobis/odis-ui.git
cd odis-ui
cp .env.example .env
docker compose up --build- Frontend: http://localhost:8080/
- API health: http://localhost:8080/api/v1/health
- API docs (Swagger): http://localhost:8080/api/docs
- API docs (ReDoc): http://localhost:8080/api/redoc
Production runs nginx (static UI + reverse proxy) and the API in Docker. TLS uses host-installed Certbot with certificates on the VPS filesystem, bind-mounted into the nginx container.
- A domain pointing at the VPS (DNS A/AAAA record)
- Ports 80 and 443 open in the firewall
- Docker on the VPS
- Certbot on the host:
sudo apt update && sudo apt install -y certbot
sudo mkdir -p /var/www/certbotsudo ./scripts/init-letsencrypt.sh./scripts/deploy-prod.sh --pullcd api && pip install -e ".[dev]" && pytestOr via Docker:
docker compose run --rm api pytest