Skip to content
Self-host ceramic node

Self-host ceramic node

dapp-backend is a git repo we're providing to help you deploy a dataverse-gated ceramic node in a easy way. This section is for developers who want to run their own ceramic node in production. If you just want to use DataverseOS for testing or learning , you can skip this section.


Step 1: Clone this repo

git clone
cd dapp-backend

Step2: Generate private key and Admin DID

To generate and fill the private key and admin DID into .private-key.env and daemon.config.json automatically:

under dapp-backend/

docker run -it --rm \
  -v "$PWD/.private-key.env:/data/.private-key.env" \
  -v "$PWD/daemon.config.json:/data/daemon.config.json" \

Example Result

Generating random private key... Done!
Creating DID... Done!

Keep your private key safe. You will need it to use the ceramic node.

Step 3: Configure your ceramic node

copy the config to ceramic config folder

under dapp-backend/

mkdir ~/.ceramic
cp ./daemon.config.json ~/.ceramic/daemon.config.json

Step 4: Run ceramic node

docker-compose up -d

This command will start the ceramic node on port 7007 and the dapp-backend server on 8080. You can change the port to use by changing the port in the docker-compose.yml file.

Configure SSL certificate

To let your app connect to the ceramic node safely, you need to configure SSL certificate. You can use Let's Encrypt (opens in a new tab) to get a free SSL certificate.

[Optional] Run ceramic node on the mainnet

Verify your email address

curl --request POST \
  --url \
--header 'Content-Type: application/json' \
  --data '{"email": "youremailaddress"}'

Then check your email and copy the one time passcode enclosed within. It will be a string of letters and numbers similar to this: 2451cc10-5a39-494d-b8eb-1971ecd813de.

Send a revocation request

 curl --request POST \
  --url \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "youremailaddress",
      "otp": "youronetimepasscode",
      "dids": [