diff --git a/README.md b/README.md index 6849be8..98f2c72 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Skills specific to the Solid platform and its specifications. | Skill | Description | |-------|-------------| | [spec.md](solid/spec.md) | Solid Protocol, WebID Profile, Solid-OIDC, and ACP specifications | -| [servers.md](solid/servers.md) | Community Solid Server, Pivot, public servers, Docker, and CLI | +| [servers.md](solid/servers.md) | Community Solid Server, Pivot, JavaScript Solid Server (JSS), public servers, Docker, and CLI | | [style-guide.md](solid/style-guide.md) | Logo, brand colours (#7C4DFF), and usage rules | | [data-modelling.md](solid/data-modelling.md) | Vocabularies, SHACL | | [integration-guide.md](solid/integration-guide.md) | @inrupt/solid-client, @inrupt/solid-client-authn, and N3.js | diff --git a/solid/servers.md b/solid/servers.md index 8a48e45..dae9ed4 100644 --- a/solid/servers.md +++ b/solid/servers.md @@ -150,6 +150,76 @@ Default port: 3000 (same as CSS) --- +## JavaScript Solid Server (JSS) + +**Repo**: https://github.com/JavaScriptSolidServer/JavaScriptSolidServer +**Docs**: https://javascriptsolidserver.github.io/docs/ + +A minimal, JSON-LD native Solid server. Stores resources as JSON-LD on disk; serves Turtle via optional content negotiation. Targets local development and self-hosted deployments. + +### Requirements + +- Node.js 18+ +- npm or npx + +### Quick Start + +```bash +npx javascript-solid-server start +``` + +Server available at http://localhost:4443/ + +### Global Install + +```bash +npm install -g javascript-solid-server +jss start +``` + +### Common Options + +```bash +jss start --port 8443 --idp --mashlib --conneg +``` + +### Key CLI Flags + +| Flag | Default | Description | +|------|---------|-------------| +| `--port, -p` | `4443` | TCP port to listen on | +| `--baseUrl, -b` | `http://localhost:4443/` | Base URL for generated resource URIs | +| `--idp` | off | Enable built-in Solid-OIDC Identity Provider | +| `--mashlib` | off | Mount mashlib data browser at `/` | +| `--conneg` | off | Enable Turtle ↔ JSON-LD content negotiation | +| `--single-user` | off | Run as a personal pod (single-user mode) | + +### Storage + +File-system backed. JSON-LD is the on-disk canonical format. + +### Access Control + +Web Access Control (WAC) via `.acl` files. + +### Identity + +Built-in Solid-OIDC Identity Provider with DPoP, available via `--idp`. + +### Multi-user Pods + +Path-based (`/alice/`) or subdomain-based (`alice.example.com`). + +### Creating a Pod + +```bash +curl -X POST http://localhost:4443/.pods \ + -H "Content-Type: application/json" \ + -d '{"name": "alice"}' +``` + +--- + ## Local Development Tips ### Running Two Servers Side-by-Side @@ -219,3 +289,5 @@ cd conformance-test-harness | Start CSS (custom port) | `npx @solid/community-server -p 4000` | | Start CSS (Docker) | `docker run --rm -v ~/Solid:/data -p 3000:3000 solidproject/community-server:latest -c @css:config/file.json -f /data` | | Debug logging | `npx @solid/community-server -l debug` | +| Start JSS (ephemeral) | `npx javascript-solid-server start` | +| Start JSS (custom port) | `jss start --port 4000` |