Skip to content


Repository files navigation


Post bin with distributed social features.

A networked place to store posted web documents. This is meant to allow for distributed social commentary and reaction around these documents using best practices recommended or noted by the W3C Social Web Working Group.

Use Cases

  • Wrote a poem but too embarassed to attach your name? Don't worry. Post it here!
  • Want to reply to a thought somewhere on the web, but that place doesn't have a comment system and you don't want to set up a blog or give your information to another organization? Post it here! Your Post can have an in-reply-to relation to another web resource.
  • Want to fact-check a selection of text somewhere on the web, but don't have a place to do it? Post it here! Your post can be an annotation of another web resource.


Quickstart using docker without cloning

docker run -p 8000:80 gobengo/distbin

open http://localhost:8000

Quickstart using docker-compose

docker-compose run -p 8000:80 distbin

Run the server to develop

npm run start-dev

Interacting with a running distbin

Create a Post ./bin/create-post



Configure distbin with the following environment variables:

  • DB_DIR - path to a directory in which distbin should read/write data
  • PORT - HTTP Port for distbin to listen on
  • EXTERNAL_URL - The public-facing base URL that distbin is deployed at, e.g.
  • INTERNAL_URL - If distbin is running with a network configuration such that it cannot make requests to the EXTERNAL_URL, all outgoing requests to the EXTERNAL_URL will be replaced with this INTERNAL_URL. See ./etc/distbin-nginx-subpath/docker-compose.yml for an example.
  • DISTBIN_DELIVER_TO_LOCALHOST - default: false in production - Whether or not to allow distbin to make requests to localhost URLs. This is discouraged in the security considerations of the ActivityPub spec