Community Solid Server
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.
Running the server
Installing and running locally
npm install -g @solid/community-server
community-solid-server # add parameters if needed
Installing and running from source
npm ci
npm start -- # add parameters if needed
Running via Docker
# Build the Docker image
docker build --rm -f Dockerfile -t css:latest .
# Run the image against your `~/Solid` directory on `http://localhost:3000`
docker run --rm -v ~/Solid:/data -p 3000:3000 -it css:latest
# Use alternative built-in configurations
docker run --rm -p 3000:3000 -it css:latest -c config/default.json
# Use your own configuration mapped to the right directory
docker run --rm -v ~/solid-config:/config -p 3000:3000 -it css:latest -c /config/my-config.json
Configuring the server
Community Solid Server (CSS) uses
ComponentJS to manage all
configuration for the server. There are a variety of configuration files for
common use cases in the config
folder.
Additional recipes for configuring and deploying the server can be found at solid/community-server-recipes.
Parameter | Default | Description |
---|---|---|
--port, -p |
3000 |
|
--baseUrl. -b |
"http://localhost:$PORT/" |
Needs to be set to the base URL of the server for authentication and authorization to function. |
--config, -c |
"config/default.json" |
config/default.json stores all data in memory. To persist data to your filesystem, try config/file.json |
--mainModulePath, -m |
Absolute path to the package root from which ComponentJS module resolution should start. | |
--loggingLevel, -l |
"info" |
|
--rootFilePath, -f |
"./" |
Folder to start the server in when using a file-based config. |
--sparqlEndpoint, -s |
Endpoint to call when using a SPARQL-based config. | |
--showStackTrace, -t |
false | Whether error stack traces should be shown in responses. |
--podConfigJson |
"./pod-config.json" |
JSON file to store pod configuration when using a dynamic config. |
Developing server code
The 📗 API documentation and the 📐 architectural diagram can help you find your way.
If you want to help out with the development of this server, have a look at the 📓 developer notes and 🛠️ good first issues.