An open and modular implementation of the Solid specifications
-
Community Solid Server is open software to provide people with their own Solid Pod.
-
It will give developers an environment to create and test new Solid applications.
-
Its modular architecture allows trying out new ideas on the server side and thereby shape the future of Solid.
This software is in alpha status, which means it is too early for use with Solid apps.
However, you can already boot up the server,
play around with it,
and check how it is made.
The architectural diagram
can help you find your way.
If you are interested in helping out with the development of this server, be sure to have a look at the developer notes and good first issues.
npm ci
npm start
The server supports low-level interaction via HTTP methods,
such as GET
, PUT
, HEAD
, ...
Below, we provide several examples on how to interact with the server using curl
.
Create a plain text file:
$ curl -X PUT -H "Content-Type: text/plain" \
-d "abc" \
http://localhost:3000/myfile.txt
Create a turtle file:
$ curl -X PUT -H "Content-Type: text/turtle" \
-d "<ex:s> <ex:p> <ex:o>." \
http://localhost:3000/myfile.ttl
Create a plain text file:
$ curl -X POST -H "Content-Type: text/plain" \
-d "abc" \
http://localhost:3000/
Create a turtle file:
$ curl -X POST -H "Content-Type: text/turtle" \
-d "<ex:s> <ex:p> <ex:o>." \
http://localhost:3000/
The response's Location
header will contain the URL of the created resource.
Retrieve a plain text file:
$ curl -H "Accept: text/plain" \
http://localhost:3000/myfile.txt
Retrieve a turtle file:
$ curl -H "Accept: text/turtle" \
http://localhost:3000/myfile.ttl
Retrieve a turtle file in a different serialization:
$ curl -H "Accept: application/ld+json" \
http://localhost:3000/myfile.ttl
$ curl -X DELETE http://localhost:3000/myfile.txt
Currently, only patches over RDF resources are supported using SPARQL Update
queries without WHERE
clause.
$ curl -X PATCH -H "Content-Type: application/sparql-update" \
-d "INSERT DATA { <ex:s2> <ex:p2> <ex:o2> }" \
http://localhost:3000/myfile.ttl
$ curl -I -H "Accept: text/plain" \
http://localhost:3000/myfile.txt
$ curl -X OPTIONS -i http://localhost:3000/myfile.txt