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:
- Community Solid Server for Node.js
- Node Solid Server for Node.js
- solid-nextcloud as a plugin for Nextcloud
- PHP Solid Server for PHP
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:
To run the server with file-based storage, type:
community-solid-server -c @css:config/file.json
You can now access your server locally.
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.
Creating your own account
To create your own account,
The server can then host your Pod and WebID.
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
community-solid-server -b https://server.example/
Here are instructions to set up common proxy servers: