Repository navigation
v0.6.1
Compare: v0.6.0...v0.6.1
The public demo and its deployment, and the CI that keeps it current.
Added
- A public demo host on Google Cloud, described as Terraform in
deploy/gcp/terraform/: the APIs, a static address, the firewall (80 and 443 public, SSH through IAP), an Earth Engine service account that the VM runs as, a Debian 12 VM that provisions itself on first boot (deploy/gcp/startup.sh: Docker Engine, Compose v2, Caddy, the repository, a.envwith every non-secret value), and an optional Cloud DNS zone.deploy/gcp/finish.shstarts the stack and runs the runbook's checks;deploy/gcp/update.shmoves the host to a release. - Automatic deploys (
.github/workflows/deploy.yml): after the images of a release tag or ofmasterare published, the demo host is updated over an IAP tunnel. GitHub Actions authenticates through Workload Identity Federation, so no key is stored; the project id and the host come from repository variables. Terraform plans on pull requests that touch the configuration and applies onmasteronce remote state is set up (TF_STATE_BUCKET). The host's sign-in, allowlist and LLM-provider settings come from a GitHub environment,demo: each deploy writes its variables and secrets into the host's.env(deploy/gcp/configure.sh). docker-compose.ghcr.ymlruns the published images instead of building them (DT4LC_IMAGE_TAG).- Release rules in CI: the
Release gatecheck admits pull requests intomasterfromdev(a release),hotfix/*(a patch bump) ordocs/*(documentation and workflows only);Sync dev with masteropens a pull request frommasterintodevafter each push tomaster; a documentation-only push tomasterbuilds no images. GEE_USE_DEFAULT_CREDENTIALS=truelets Earth Engine use the host's default credentials, the attached service account on Google Cloud orgcloud auth application-default login, instead of a key file. Organisation policy forbids service-account keys on new Google Cloud projects.scripts/ghcr_prune.pydeletes stale container package versions by tag pattern.- README badges (CI, release, DOI, JOSS status, licence) and the Zenodo DOIs in
CITATION.cff.
Changed
- The backend image installs torch from the CPU wheel index (
TORCH_INDEXbuild argument), so it no longer carries the CUDA libraries that no container used: 1.1 GB instead of 12.3 GB. A GPU image is--build-arg TORCH_INDEX=https://download.pytorch.org/whl/cu124. CITATION.cffcites the Zenodo concept DOI, which resolves to the latest release.- Hotfixes have a documented path:
hotfix/<topic>frommaster, a patch bump, a pull request intomaster, thenmasterback intodev(CONTRIBUTING).
Container Images
Both images are published to GitHub Container Registry. Pull with:
docker pull ghcr.io/ipt-mmda/dt4lc/backend:0.6.1
docker pull ghcr.io/ipt-mmda/dt4lc/frontend:0.6.1Run with Docker Compose
The compose file builds the images from source:
git clone --branch v0.6.1 https://github.com/IPT-MMDA/dt4lc.git
cd dt4lc
cp .env.example .env # API keys are optional; without them the bundled Ollama model is used
docker compose --profile ollama up -d # UI at http://localhost, API docs at http://localhost/docs