Notch8's ops wrapper around stock Dataverse (GDCC container images), aligned with the DataverseUp plan: pinned versions, compose-first bring-up, and a Helm chart for Kubernetes without forking core.
| Repository | github.com/notch8/dataverseup |
| Live demo | demo-dataverseup.notch8.cloud — deployed from this stack (Helm/Kubernetes); seeded demo data for smoke tests |
-
Prerequisites: Docker + Docker Compose v2 (
docker compose), ~4 GB+ RAM (Payara + Solr + Postgres), and Ruby + RubyGems for Stack Car (edge TLS — same*.localhost.directpattern as Hyku). On Apple Silicon, images uselinux/amd64(emulation). -
Edge proxy (Stack Car): This repo does not ship Traefik; labels target the shared Docker network
stackcar(same assc proxy up). Install the gem, trust the CA once, then keep the proxy running while you use the site:gem install stack_car sc proxy cert # usually once per machine sc proxy up # Traefik on 80/443, network stackcar
-
Secrets (never commit real
.envorsecrets/):cp .env.example .env # Defaults use *.localhost.direct; adjust hostname/traefikhost only if your edge differs. mkdir -p secrets cp -r secrets.example/. secrets/Use
secrets.example/.→secrets/so files land assecrets/admin/..., not nested undersecrets/secrets.example/. -
Start: A single
docker compose up -dbrings up Postgres, Solr, MinIO (optional), Dataverse, then runsdev_bootstrap→dev_branding→dev_seedin order (seex-dataverseup-workflowindocker-compose.yml). -
Watch first boot (can take several minutes):
docker compose logs -f dataverse docker compose logs -f dev_bootstrap docker compose logs -f dev_branding docker compose logs -f dev_seed
-
URLs (defaults in
.env.example,traefikhost=localhost.direct):- Dataverse (via Stack Car):
https://localhost.direct/andhttps://www.localhost.direct/ - Direct Payara:
http://localhost:8080/ - Traefik dashboard (Stack Car):
https://traefik.localhost.direct/ - Bootstrap admin (after
dev_bootstrapsucceeds):dataverseAdmin/admin1(change before any shared or AWS host; seedocs/DEPLOYMENT.mdwhen you maintain it)
- Dataverse (via Stack Car):
-
Branding / seed (re-runs): On first boot, configbaker writes
API_TOKENtosecrets/api/bootstrap.env;dev_branding/dev_seedrefreshsecrets/api/keyfrom that whenAPI_TOKENis set. To re-apply after you changebranding/orfixtures/seed/:docker compose run --rm dev_branding docker compose run --rm dev_seed
If you need a manual token, put it on one line in
secrets/api/key(superuser token from the UI), then rundev_brandingagain.
- Chart:
charts/dataverseup— see charts/dataverseup/README.md for a feature summary andhelmcommands. - Runbook: docs/DEPLOYMENT.md — Helm (prereqs, Secrets, Solr, S3, bootstrap), GitHub Actions deploy,
./bin/helm_deploy, smoke tests, upgrades.
Compose remains the default path for local/lab; Helm reuses the same Payara scripts from scripts/init.d/ (chart symlinks under charts/dataverseup/files/init.d/) where applicable.
| Path | Purpose |
|---|---|
docker-compose.yml |
Stack: Postgres, Solr, MinIO (optional), Dataverse, bootstrap, branding, seed; Traefik labels + networks.default.name: stackcar (Stack Car proxy) |
.env.example |
Version pins and env template — copy to .env |
secrets.example/ |
Payara/Dataverse secret files template — copy to secrets/ (see Quick start) |
scripts/ |
All automation: Payara init.d/, Compose/K8s entrypoints, apply-branding.sh, seed-content.sh, solr-initdb/, solr/update-fields.sh, triggers/, k8s/ |
scripts/init.d/vendor-solr/ |
Vendored Solr helpers for 1002-custom-metadata.sh |
config/schema.xml, config/solrconfig.xml |
Solr XML bind-mounts / upstream copies (see scripts/solr-initdb/) |
branding/ |
Installation branding + static assets |
fixtures/seed/ |
JSON + files for dev_seed |
charts/dataverseup/ |
Helm chart for Dataverse on Kubernetes (optional Solr, bootstrap Job, S3, Ingress, …) |
bin/helm_deploy |
Wrapper around helm upgrade --install with sane defaults (see docs/DEPLOYMENT.md) |
docs/DEPLOYMENT.md |
Deployment runbook: Helm/Kubernetes, optional GitHub Actions, Compose pointer, learnings log |
Default image tag in .env.example targets Dataverse 6.10.x (GDCC tags, e.g. 6.10.1-noble-r0). Bump only after checking release notes and Solr/schema compatibility.
Compose uses solr:9.10.1 with IQSS schema.xml / solrconfig.xml vendored under config/. Refresh those when you upgrade Dataverse:
REF=develop # or a release tag, e.g. v6.10.1
curl -fsSL -o config/schema.xml "https://raw.githubusercontent.com/IQSS/dataverse/${REF}/conf/solr/schema.xml"
curl -fsSL -o config/solrconfig.xml "https://raw.githubusercontent.com/IQSS/dataverse/${REF}/conf/solr/solrconfig.xml"
curl -fsSL -o scripts/solr/update-fields.sh "https://raw.githubusercontent.com/IQSS/dataverse/${REF}/conf/solr/update-fields.sh"
chmod +x scripts/solr/update-fields.shIf you previously ran Solr 8, remove the compose Solr volume once so the core is recreated under Solr 9, then reindex from Dataverse.
- IQSS Dataverse
conf/solr/(schema + solrconfig +update-fields.sh) - Running Dataverse in Docker
- Application image tags
- GDCC on Docker Hub
Dataverse is licensed by IQSS; container images by their publishers.