Settings are resolved (lowest to highest precedence) from:
built-in defaults,
lws.properties on the classpath,
./lws.properties in the working directory,
-Dlws.* JVM system properties.
A starter file with every key and inline guidance ships as lws.example.properties — copy it to
lws.properties and edit.
Fail-fast validation
Invalid values fail fast at startup with an actionable message naming the key, the value, and
what was expected — for example an out-of-range port, an unknown enum (the message lists the allowed
values), a non-true/false flag, or a malformed lws.base-uri — rather than a raw parse exception.
Booleans are strict (true/false only). The bare-Jetty launcher prints the message and exits
without a stack trace.
Core
Property
Default
Meaning
lws.base-uri
http://localhost:8080
Public base IRI; also sets the listen port. Must be an http(s) URL. In production set it to the external https:// URL — every minted IRI, DPoP htu, WebID and ACL derives from it.
lws.data-dir
lws-data
Directory for the TDB2 dataset, binary blobs and signing keys.
lws.system-prefix
.lws
Path prefix for server-managed system resources (storage description, subscriptions, JWKS, search, access).
lws.owners
(empty)
Space/comma-separated owner WebIDs/DIDs. Empty ⇒ open dev mode (all reads and writes permitted).
lws.public-read
true
Default public-readability for newly created resources.
lws.access-control
OWNER
OWNER (single-tenant owner/public-read) or WAC (multi-user Web Access Control).
RDF backend
Property
Default
Meaning
lws.sparql.mode
TDB2
TDB2 (embedded) or REMOTE (any SPARQL 1.1 service).
lws.sparql.query / .update / .gsp
Query / Update / Graph Store Protocol endpoints when mode=REMOTE.
Trust X-Forwarded-* / Forwarded (RFC 7239) from a fronting TLS-terminating proxy.
lws.require-https
false
Refuse to start unless lws.base-uri is https:// (loopback exempt).
lws.tls.enabled
false
Terminate TLS in the server, provisioning a certificate via ACME (bare-Jetty launcher only).
lws.tls.port / lws.tls.http-port
443 / 80
HTTPS port, and the HTTP port serving the ACME challenge + redirect.
lws.tls.acme.directory-url
Let’s Encrypt prod
ACME directory URL (use the staging URL for testing).
lws.tls.acme.domains
base-URI host
Domain(s) to certify (space/comma separated).
lws.tls.acme.email
Contact email for the ACME account.
lws.tls.acme.accept-terms-of-service
false
MUST be true to register (agrees to the CA’s Terms of Service).
lws.tls.acme.renew-before-days / lws.tls.dir
30 / <data>/tls
Renewal lead time; directory for the account key, domain key and certificate.
With no lws.owners configured the server runs in open mode — all reads and writes are
permitted. Set owners (and consider WAC) before exposing the server.