Running your own Solid server

A Solid server allows you to register for a Pod and a WebID.
You can either use a publicly available server or follow the steps on this page to set up your own.

The following open-source servers are available:

We walk you through the installation of the Community Solid Server below.
We also provide Instructions for Node Solid Server.

Running the Community Solid Server

To run the Community Solid Server, you can choose between:

Via Node.js and npm

Ensure you have installed Node.js. We support versions 12.7 and up, but recommend 14 or 16.
To install the server, open a command prompt and type:

npm install -g @solid/community-server

To run the server with in-memory storage, type:

community-solid-server

To run the server with file-based storage, type:

community-solid-server -c @css:config/file.json

You can now access your server locally.

Via Docker

Docker allows you to run the server without having Node.js installed:

# Download the source code
git clone https://github.com/solid/community-server.git
cd community-server
# Build the Docker image
docker build --rm -f Dockerfile -t css:latest .

Run the server as follows:

# Run the image, serving your `~/Solid` directory on `http://localhost:3000`
docker run --rm -v ~/Solid:/data -p 3000:3000 -it css:latest
# Or use one of the built-in configurations
docker run --rm -p 3000:3000 -it css:latest -c config/default.json
# Or 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

Accessing your server

Open your browser and visit http://localhost:3000/. You will be greeted by a welcome page.

This welcome page is hosted on a root Pod, to which you and your apps can read and write.

Community Solid Server welcome page

Creating your own account

To create your own account, visit http://localhost:3000/idp/register/.
The server can then host your Pod and WebID.

Community Solid Server registration page

Exposing your server publicly

The Solid server will run as a local Web server. You can expose the server directly either by running it on a public port or by placing it behind a reverse proxy.

When going public, be sure to tell the server its base URL via the -b flag:

community-solid-server -b https://server.example/

Here are instructions to set up common proxy servers:

Feedback and questions

If you have feedback or questions about the server, don’t hesitate to start a discussion or report a bug.