Deploy OXFORDIA¶
This page covers deploying an OXFORDIA Node — the on-premise server that holds your institution's data and answers queries from researchers across the federation.
OXFORDIA Nodes ship in three release artifacts. Pick the form factor that matches your existing infrastructure.
| Artifact | Best for |
|---|---|
| Debian packages (amd64 / arm64) | A single VPS or bare-metal server running Debian/Ubuntu |
| Docker image | Container-native deployments |
| Helm chart | Kubernetes clusters |
Option 1: Debian package (recommended for a single VPS)¶
A fresh Debian 12 VPS can be running a TLS-terminated, production-ready OXFORDIA Node in under thirty minutes.
1. Install the node package¶
curl -LO https://github.com/OXFORDIA-project/OXFORDIA-node/releases/download/v0.0.1-alpha.6/oxfordia-pod_0.0.1-alpha.6_amd64.deb
sudo apt install ./oxfordia-pod_0.0.1-alpha.6_amd64.deb
2. Run the interactive setup script¶
curl -LO https://github.com/OXFORDIA-project/OXFORDIA-node/releases/download/v0.0.1-alpha.6/oxfordia-pod-init.sh
sudo bash oxfordia-pod-init.sh
The init script asks three questions and handles each one automatically:
- Install a local triplestore? — If yes, installs and configures Blazegraph. If no, point the node at an existing SPARQL endpoint via
/etc/default/oxfordia-pod. - Install nginx as a reverse proxy? — If yes, writes a working nginx site definition.
- Configure TLS with certbot? — If yes, provisions a Let's Encrypt certificate for your hostname.
A timestamped setup log is written to /var/log/oxfordia-pod/init.log.
3. Start the service¶
From here the node is managed with the same tools as any other Debian service: systemctl, journalctl, apt upgrade, and the environment file at /etc/default/oxfordia-pod.
Install the identity provider¶
A second package installs the identity provider (IDP). It ships separately so that one IDP can serve multiple node instances — one set of user accounts for your whole organization, multiple nodes per research project.
curl -LO https://github.com/OXFORDIA-project/OXFORDIA-node/releases/download/v0.0.1-alpha.6/oxfordia-pod-idp_0.0.1-alpha.6_amd64.deb
sudo apt install ./oxfordia-pod-idp_0.0.1-alpha.6_amd64.deb
sudo bash oxfordia-pod-idp-init.sh
sudo systemctl enable --now oxfordia-pod-idp
Option 2: Helm chart (Kubernetes)¶
helm repo add oxfordia https://oxfordia-project.github.io/pod-server
helm install my-pod oxfordia/pod-server \
--set app.baseUrl=https://oxfordia.med.example.edu \
--set triplestore.mode=external \
--set triplestore.external.url=https://sparql.example.edu/query \
--set ingress.enabled=true \
--set ingress.hostname=oxfordia.med.example.edu
The chart supports configurable persistence, ingress, TLS, and either a managed or external database.
Option 3: Docker image¶
The Docker image is published to the GitHub Container Registry. Pull and run it directly, or compose it into your existing container stack.
Refer to the image documentation for environment variable configuration.
Configuration reference¶
The node is configured via the environment file at /etc/default/oxfordia-pod (Debian) or via Helm values / environment variables (Docker/Kubernetes). Key settings:
| Variable | Description |
|---|---|
BASE_URL |
Public HTTPS URL of this node |
SPARQL_ENDPOINT |
URL of the SPARQL query endpoint |
IDP_URL |
URL of the identity provider |
Next steps¶
Once your node is running:
- Install plugins to add data models and statistics
- Load data and configure access rules