Provides the arks.org website and ARK resolver service.
Deployment and configuration is performed by a combination of puppet and ansible. These provide a deployment of arks.org on AWS EC2 instance listening on HTTP port 18880.
See UC3 Puppet module uc3_ezid_arks and ansible playbook deploy_arksorg_site.
For manual installation notes see Manual Installation on AWS EC2.
- Create and activate a virtual environment.
python -m venv .venv
source .venv/bin/activate
- Clone the repo
git clone https://github.com/CDLUC3/arksorg-site.git
cd arksorg-site
- Install using
uvorpip
uv sync
or
pip install -r requirements.txt
Note: use uv and the following files to manage package and dependency
pyproject.toml: define dependency requirementsuv.lock: record the exact versions that were resolvedrequirements.txt: autogenerated byuvand is used in arks production environment viapip install -r requirements.txt
A typical release workflow is:
- update package and dependencies via
uv addoruv removecommand - update
uv.lockviauv lock - generate
requirements.txtvia the following command:
uv export --no-hashes --no-dev --output-file=requirements.txt
- Set a local configuration, dev-config.env
ARKS_DEVHOST=localhost
ARKS_DEVPORT=8000
ARKS_DB_CONNECTION_STRING="sqlite:///data/registry.sqlite"
ARKS_ENVIRONMENT="development"
ARKS_SERVICE_PATTERN="(^https?://localhost:8000/)|(^https?://?n2t.net/)|(^https?://?arks.org/)"
LOG_LEVEL="debug"
DEBUG_SQL=false
ARKS_NAANS_SOURCE="https://cdluc3.github.io/naan_reg_priv/naan_records.json"
- Configure the local NAAN database
mkdir data
python -m arks -c dev-config.env load-naans
Note that this operation should be run periodically to keep the local NAAN registry up to date with the source.
- Run the local server
The local server requires uvicorn which should have been installed via uv sync.
Run the local server:
python -m arks -c dev-config.env serve