Distributed Press CLI
Publish Site

Publish Website

Register as Publisher

Register a trial publisher account on Distributed Press using your email:

dp-cli register

You will be prompted for your name and email. Note: currently, only one site per email is allowed.

OR Set Your Authentication Token Manually

Obtain your authToken from your Distributed Press API administrator and set it using:

dp-cli set-auth-token

You will be prompted to enter your authentication token.

Create Your Site

Once registered, create a new site by specifying the domain name and whether it should be public:

dp-cli create-site

Publish Your Site

To upload and publish static content to the DP site from a specified directory:

dp-cli publish ./folder_here

DNS Setup

To use a custom domain for your Distributed Press site, you'll need to set up a DNS record to point to the Distributed Press infrastructure.

Using Distributed Press Infrastructure

CNAME Record

TypeNameValue
CNAME<your-site>api.distributed.press.
  • Replace `your-site`` with your domain or subdomain name.
  • Ensure that the trailing dot . is included in api.distributed.press. as required.

_dnslink Record

To make your site accessible through Distributed Press, set an NS Record to delegate DNSLink lookups to Distributed Press.

TypeNameValue
NS_dnslink.your.domainapi.distributed.press.
  • This eliminates the need to manually set TXT records.
  • contact the Distributed Press team for assistance if needed.

Example

If your site links include:

"ipfs": {
  "dnslink": "/ipns/k51qzi5uqu5djj6yo1nne5r2oomxgroy3tezhgupvx0v2jlbighfah1k028sc1/"
},
"hyper": {
  "dnslink": "/hyper/t685fd3snbadhqkss8spcgz454p95ap77kdfjafotsxfhhrhuqio/"
}

You only need to configure the NS Record as shown above. DNSLink propagation will handle IPFS and Hyper links automatically.

After DNS propagation, users will be able to access the site at example.com over IPFS and Hyper.

  • ipns://example.com
  • hyper://example.com

SSL Requirements

To use your custom domain, ensure that your domain has a valid HTTPS certificate. Most DNS providers offer free certificate generation via Let's Encrypt (opens in a new tab) or similar services.

Clone an Existing Site

Clone a website by creating a static copy from its HTTP URL:

dp-cli clone <site-id>

Configuration

The CLI uses a configuration file named .dprc to store API URLs, authentication tokens, keypairs, and actor information. The configuration file follows the format expected by the rc module (opens in a new tab), which loads configuration options in a flexible way.

Your .dprc file should look like this:

{
  "dpApiUrl": "https://api.distributed.press/v1",
  "socialInboxUrl": "https://social.distributed.press/v1",
  "authToken": "<your-auth-token>",
  "domain": "<your-site-domain>",
}
  • dpApiUrl: The base URL for the Distributed Press API.
  • socialInboxUrl: The base URL for the Social Inbox.
  • authToken: Your authentication token for API access.
  • domain: Your custom domain for the site, e.g., example.com.

Ensure that your .dprc file is not committed to version control to keep your credentials secure.

Commands

register

Description:

Register a trial publisher account with Distributed Press:

Usage:

dp-cli register

set-auth-token

Description:
Set your authentication token for API access.

Usage:

dp-cli set-auth-token

Prompt:

  • Enter your authentication token.

create-site

Description:

Create a new site by specifying the domain name and whether it should be public

Usage:

dp-cli create-site

Prompt:

  • Enter your site domain: e.g., example.com
  • Is your site public? (Yes/No)

publish-site

Description:

Upload and publish static content to the DP site from a specified directory:

Usage:

dp-cli publish ./folder_here

clone

Description:

Clone a website by creating a static copy from its HTTP URL:

Usage:

dp-cli clone <site-id>