-
-
Save Bill/fc94b3814bef00ebf44d to your computer and use it in GitHub Desktop.
# This docker-compose.yml will run the Hypothes.is annotation server. | |
# (adapted from instructions here https://h.readthedocs.org/en/latest/INSTALL.html) | |
# | |
# Place this file in the working directory (clone of https://github.com/hypothesis/h) | |
# run with docker-compose up -d | |
# | |
# Now browse to Hypothes.is at http://192.168.59.103:8000/ and create an account | |
# You'll see the invitation email in Mailcatcher at http://192.168.59.103:1080/ | |
# Click that invitation link and log in on your local Hypothes.is | |
# And you are ready to annotate! | |
hh: | |
image: hypothesis/h | |
environment: | |
DATABASE_URL: postgresql://postgres:foo@postgres/postgres | |
MAIL_PORT_25_TCP_ADDR: 192.168.59.103 | |
MAIL_PORT_25_TCP_PORT: 25 | |
MODEL_CREATE_ALL: true | |
ports: | |
- "8000:8000" | |
links: | |
- postgres | |
- elasticsearch | |
- nsqd | |
- redis | |
elasticsearch: | |
image: nickstenning/elasticsearch-icu | |
nsqd: | |
image: nsqio/nsq | |
ports: | |
- "4150" | |
- "4151" | |
command: /nsqd | |
redis: | |
image: redis | |
postgres: | |
image: postgres | |
environment: | |
POSTGRES_PASSWORD: foo | |
mail: | |
image: schickling/mailcatcher | |
ports: | |
- "1080:1080" | |
- "25:1025" |
@kemifl, I notice that the EXPOSE port of hypothesis/hypothesis is 5000, so change ports: - "8000:8000" to ports: - "8000:5000"
But now, Nginx 502 bad gateway returned.
Hi Bill,
thank you for the yml file. Iam trying to use h for annotating documentation in our internal project so I am running a local h server and client, and I have run into these issues:
- sign up via mailer doesn't work: on the h sign up screen I get the nginx 504 Gateway Time-out error. I log into the mailcatcher and no mails are present there.
I can effectively create users only via terminal tox command. This works but is far from ideal. - saving annotations doesn't work smoothly: the spinner spins and I get the Saving annotation error, but weirdly, the annotations do get saved on the server (on signing in to a user, we can see the annotations, and after a while they do stick in the client too!).
Now, I am rather new to docker and setting up a project like that so I have a lot to catch up on.
I enclose my docker-compose.yml with my local ip and ID replaced with myIP
and myID
:
version: '3'
services:
postgres:
image: postgres:11.5-alpine
ports:
- '127.0.0.1:5432:5432'
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
interval: 1s
elasticsearch:
image: hypothesis/elasticsearch:latest
ports:
- '127.0.0.1:9200:9200'
environment:
- discovery.type=single-node
rabbit:
image: rabbitmq:3.6-management-alpine
ports:
- '127.0.0.1:5672:5672'
- '127.0.0.1:15672:15672'
mail:
image: schickling/mailcatcher
ports:
- "1080:1080"
- "25:1025"
hypothesis:
image: hypothesis/hypothesis
ports:
- '5000:5000'
environment:
- APP_URL=http://localhost:5000
- AUTHORITY=localhost
- BROKER_URL=amqp://guest:guest@rabbitmq:5672
- DATABASE_URL=postgresql://postgres@postgres/postgres
- ELASTICSEARCH_URL=http://elasticsearch:9200
- SECRET_KEY=notasecret
- CLIENT_URL=http://myIP:3001/hypothesis
- CLIENT_OAUTH_ID=myId
- MODEL_CREATE_ALL=true
- MAIL_PORT_25_TCP_ADDR=myIP
- MAIL_PORT_25_TCP_PORT=25
Is there sth amiss/undefined in the yml file?
I am also totally new to databases and am not sure if postgres environment is correctly configured above.
Nothing is obvious to me, so even if it's simple to you, it may be where I am totally ignorant.
I hope you can assist!
lukasz
Hi Bill, I can't get this to work for me, I wonder if you can help? When I first ran it, I needed to replace
MODEL_CREATE_ALL: true
withMODEL_CREATE_ALL: "true"
and then it seems the imagehypothesis/h
no longer exists, so I replaced it withhypothesis/hypothesis
. With these two changes, the containers all start up, but browsing to http://192.168.59.103:8000/ produces no response: the browser eventually times out. Same thing happens on port 1080. Do you have any idea what the problem is? Any help you can give would be very much appreciated.