Choose, configure, and deploy Solid servers. Covers all major implementations and public pod providers.
| Server | Language | License | Status | Repository |
|---|---|---|---|---|
| Community Solid Server (CSS) | TypeScript | MIT | Active | github |
| JavaScriptSolidServer (JSS) | JavaScript | AGPL-3.0 | Active | github |
| Node Solid Server (NSS) | JavaScript | MIT | Maintenance | github |
| Pivot | TypeScript | MIT | Active | github |
| Pod-As-App (PAA) | PHP | MIT | Active | github |
| Enterprise Solid Server (ESS) | Java | Proprietary | Active | Closed source |
npx @solid/community-server
Default: http://localhost:3000
With file-based storage:
npx @solid/community-server -c @css:config/file.json -f ./data
npx jss --port 5420
With all protocols:
npx jss --port 5420 --single-user-name alice --activitypub --idp
JSS supports Solid, remoteStorage, ActivityPub, and Solid-OIDC in a single server.
npx solid-server --port 8443
NSS is the original Solid server. Multi-user with WebID-TLS and WebID-OIDC.
Pivot is a community fork of CSS used by solidcommunity.net:
git clone https://github.com/solidcommunity/pivot
cd pivot
npm install
npm start
Public Solid pod providers where users can create accounts:
| Provider | URL | Server | Registration |
|---|---|---|---|
| solidcommunity.net | https://solidcommunity.net | Pivot | Open |
| solidweb.org | https://solidweb.org | NSS | Open |
| solidweb.me | https://solidweb.me | NSS | Open |
| solid.social | https://solid.social | NSS | Open |
| inrupt.net | https://inrupt.net | ESS | Open |
| use.id | https://use.id | ESS | Open |
| teamid.live | https://teamid.live | ESS | Open |
| trinpod.us | https://trinpod.us | Trinpod | Open |
| redpencil.io | https://solid.redpencil.io | CSS | Open |
| Feature | CSS | JSS | NSS | Pivot | ESS |
|---|---|---|---|---|---|
| LDP Containers | ✓ | ✓ | ✓ | ✓ | ✓ |
| WebACL (WAC) | ✓ | ✓ | ✓ | ✓ | ✗ |
| ACP | ✓ | ✗ | ✗ | ✓ | ✓ |
| Solid-OIDC | ✓ | ✓ | ✗ | ✓ | ✓ |
| WebID-TLS | ✗ | ✗ | ✓ | ✗ | ✗ |
| Content Negotiation | ✓ | ✓ | ✓ | ✓ | ✓ |
| PATCH (N3/SPARQL) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Multi-user | ✓ | ✓ | ✓ | ✓ | ✓ |
| Single-user mode | ✓ | ✓ | ✗ | ✗ | ✗ |
| ActivityPub | ✗ | ✓ | ✗ | ✗ | ✗ |
| remoteStorage | ✗ | ✓ | ✗ | ✗ | ✗ |
| File-based storage | ✓ | ✓ | ✓ | ✓ | ✗ |
| Docker image | ✓ | ✗ | ✓ | ✓ | ✓ |
| npm package | ✓ | ✓ | ✓ | ✗ | ✗ |
CSS uses JSON configuration files to compose components:
# Default in-memory
npx @solid/community-server
# File storage
npx @solid/community-server -c @css:config/file.json -f ./data
# File storage + WAC
npx @solid/community-server -c @css:config/file-wac.json -f ./data
# Custom port
npx @solid/community-server -p 4000
# With mashlib data browser
npm install css-mashlib
npx @solid/community-server -c @css:config/file.json -f ./data
JSS uses CLI flags:
# Basic
npx jss --port 5420
# Single-user with identity provider
npx jss --port 5420 --single-user-name alice --idp
# Full multi-protocol
npx jss --port 5420 --single-user-name alice --activitypub --idp
# Custom data directory
npx jss --port 5420 --data ./pods
NSS uses a config file or CLI flags:
# Basic
npx solid-server --port 8443
# With config file
npx solid-server --config ./config.json
# Multi-user
npx solid-server --port 8443 --multiuser
npm install -g pm2
# CSS
pm2 start npx --name solid -- @solid/community-server -c @css:config/file.json -f ./data
# JSS
pm2 start npx --name jss -- jss --port 5420 --single-user-name alice --idp
docker run --rm -p 3000:3000 -v ./data:/data \
solidproject/community-server -c @css:config/file.json -f /data
server {
listen 443 ssl;
server_name pod.example.com;
ssl_certificate /etc/letsencrypt/live/pod.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pod.example.com/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Given a WebID, find which server hosts it:
GET /profile/card HTTP/1.1
Host: alice.pod.example
Accept: application/ld+json
Check the Link header:
Link: <https://alice.pod.example/>; rel="http://www.w3.org/ns/pim/space#storage"
The Server response header often identifies the implementation:
| Header Value | Server |
|---|---|
CommunitySolidServer |
CSS |
JSS |
JSS |
solid-server or node-solid-server |
NSS |
AGPL-3.0