Install with the ldh CLI, and follow LinkedDataHub onto one Fuseki - #28
Open
namedgraph wants to merge 2 commits into
Open
namedgraph wants to merge 2 commits into
namedgraph wants to merge 2 commits into
Conversation
…lic with ldh admin make-public and pushes the root and container documents with a single ldh push, so update-folder.sh goes and import-ns.sh reaches the ontology document through ldh patch, post and clear instead of the platform's bin/ scripts; .ldhignore keeps ns.ttl out of the push, which installs separately. Certificates are the PKCS12 keystore the CLI reads rather than the cert.pem the scripts fed curl, and the option naming follows it: -c, not the -f the CLI no longer has. bin/make-public.sh goes with them - it wrote the same two authorizations straight to the admin store to avoid needing a certificate, which ldh admin make-public now does through the API, so make public calls that too. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…tical copies of LinkedDataHub's, and every delta lives in an override or an include. One Fuseki serves both dataspace roles as its own dataset: the mount widens from ./fuseki/<role> to ./fuseki and each location gains the role, so the TDB2 folders stay where fuseki-admin and fuseki-end-user wrote them and no data moves - the role used to be encoded in the per-container mount, which one server cannot do. system.trig follows to fuseki:3030/admin/ and /end-user/, and both Varnish backends to the one host. The copy also brings the egress forward proxy that confines the store's SPARQL SERVICE and LOAD to public addresses, the sef-compiler the platform calls to compose package stylesheets, the ./sef, ./packages and ./settings mounts, Memento-Datetime in the four CORS expose-header lines, and the ?query= ban that invalidates cached SPARQL results after a write. The Makefile keeps only what every deployment shares; make/config.mk carries this repo's settings and make/local.mk its interactive install. BASE_URI is derived from .env without ABS_PATH, which had exactly one working value and is gone from .env and from bin/server-cert-gen.sh, re-copied from the platform. `make sef` had resolved the platform image with an unanchored grep that matched the sef-compiler's just as readily, in an order Compose does not guarantee, and it now refuses up front when the pinned image is neither built nor pullable instead of failing four commands later. `make load` clears every dataset's tdb.lock rather than only the end-user one: stopping the single server leaves a PID-1 lock in each, and any of them blocks the restart. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
namedgraph
force-pushed
the
chore/ldh-cli-and-single-fuseki
branch
from
September 27, 2026 15:12
f3f118c to
ba08c97
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes that follow LinkedDataHub's own, and one convention.
The app installs with the
ldhCLIapp/install.shgrants public read withldh admin make-publicand pushes the root and container documents with a singleldh push, soapp/update-folder.shgoes;app/import-ns.shreaches the ontology document through the CLI instead of the platform's deprecatedbin/scripts. Certificates are the PKCS12 keystore the CLI reads rather than thecert.pemthose scripts fedcurl— and the option is-c, not the-fthe CLI no longer accepts, somake installwas failing with a usage error before doing anything.bin/make-public.shgoes with them. It wrote the same two authorizations straight to the admin store so it would need no certificate;ldh admin make-publicdoes it through the API, andmake publicnow calls that.One Fuseki, both dataspace roles
The mount widens from
./fuseki/<role>to./fusekiand eachtdb2:locationgains its role, so the TDB2 folders stay exactly wherefuseki-adminandfuseki-end-userwrote them and no data moves — verified after the switch at 1,482,147 quads inend-userand 3,285 inadmin. The role used to be encoded in the per-container mount, which one server cannot do.config/system.trigfollows tofuseki:3030/admin/and/end-user/, and both Varnish backends to the one host.One-time migration note for anyone else running this stack: the pre-existing
fuseki-adminandfuseki-end-usercontainers survivedocker compose upas orphans and keep holdingfuseki/*/DB2/tdb.lock, so the first start needsdocker compose down --remove-orphansandrm -f fuseki/*/DB2/tdb.lock.docker-compose.yml,Makefileandbin/server-cert-gen.share copies of LinkedDataHub'sByte-identical, with every delta in
docker-compose.override.yml,make/config.mkormake/local.mk.diff ../LinkedDataHub/<file> <file>prints nothing for all three.The compose copy also brings what this repo had drifted behind on: the
egressforward proxy confining the store's SPARQLSERVICEandLOADto public addresses, thesef-compilerthe platform calls to compose package stylesheets, the./sef,./packagesand./settingsmounts,Memento-Datetimein the four CORS expose-header lines, and the?query=ban that invalidates cached SPARQL results after a write.Three fixes fell out of the Makefile work:
ABS_PATHhad exactly one working value and is gone from.envand frombin/server-cert-gen.sh;BASE_URIis derived from.envinstead.make sefresolved the platform image with an unanchoredgrepthat matched the sef-compiler's image just as readily, in an order Compose does not guarantee. It is anchored now, and refuses up front when the pinned image is neither built nor pullable rather than failing four commands later.make loadclears every dataset'stdb.lock, not only the end-user one: stopping the single server leaves a PID-1 lock in each, and any of them blocks the restart.Verification
riot --validateon the changed RDF,bash -non the changed scripts,docker compose configrenders,make -non every target, and the stack brought up end to end — siteHTTP 200, platform healthy, both datasets served and counted.🤖 Generated with Claude Code