Skip to content

Hypothesis

Hypothesis is an open-source software project that aims to collect comments about statements made in any web-accessible content, and filter and rank those comments to assess each statement's credibility.

It offers an online web application where registered users share highlights and annotations over any webpage.

As of 2020-06-11, although the service can be self-hosted, it's not yet easy to do so.

Install

Client

If you're using Chrome or any derivative there is an official extension.

Unfortunately if you use Firefox the extension is still being developed #310 although an unofficial release works just fine. Alternatively you can use the Hypothesis bookmarklet.

The only problem is that both the extensions and the bookmarklet only works for the official service. In theory you can tweak the extension build process to use your custom settings. Though there is yet no documentation on this topic.

I've thought of opening them a bug regarding this issue, but their github issues are only for bug reports, they use a google group to track the feature requests, I don't have an easy way to post there, so if you follow this path, please contact me.

Server

The infrastructure can be deployed with Docker-compose.

version: '3'
services:
  postgres:
    image: postgres:11.5-alpine
    ports:
      - 5432
      # - '5432:5432'
  elasticsearch:
    image: hypothesis/elasticsearch:latest
    ports:
      - 9200
      #- '9200:9200'
    environment:
      - discovery.type=single-node
  rabbit:
    image: rabbitmq:3.6-management-alpine
    ports:
      - 5672
      - 15672
      #- '5672:5672'
      #- '15672:15672'
  web:
    image: hypothesis/hypothesis:latest
    environment:
      - APP_URL=http://localhost:5000
      - AUTHORITY=localhost
      - BROKER_URL=amqp://guest:guest@rabbit:5672//
      - CLIENT_OAUTH_ID
      - CLIENT_URL=http://localhost:3001/hypothesis
      - DATABASE_URL=postgresql://postgres@postgres/postgres
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - NEW_RELIC_APP_NAME=h (dev)
      - NEW_RELIC_LICENSE_KEY
      - SECRET_KEY=notasecret
    ports:
      - '5000:5000'
    depends_on:
      - postgres
      - elasticsearch
      - rabbit
docker-compose up

Initialize the database and create the admin user.

docker-compose exec web /bin/sh
hypothesis init

hypothesis user add
hypothesis user admin <username>

The service is available at http://localhost:5000.

To check the latest developments of the Docker compose deployment follow the issue #4899.

They also provide the tools they use to deploy the production service into AWS.

References

Server deployment open issues