pull down to refresh

Here is a simple docker compose file for running your own instance of the JoinMarket orderbook.
services:
  jam-standalone:
    image: ghcr.io/joinmarket-webui/jam-standalone:v0.4.0-clientserver-v0.9.11
    container_name: joinmarket-orderbook
    volumes:
      - /data/joinmarket-orderbook/:/joinmarket/
    entrypoint: ""
    command: >
      bash -c "service tor start && 
      pip install matplotlib &&
      obwatch/ob-watcher.py -p 8080 -H 0.0.0.0 --datadir=/joinmarket"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/orderbook.json"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 180s
    deploy:
      resources:
        limits:
          cpus: 3
          memory: 2G
    restart: always
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.joinmarket-orderbook.rule=Host(`joinmarket.sgn.space`)"
      - "traefik.http.routers.joinmarket-orderbook.entrypoints=websecure"
      - "traefik.http.services.joinmarket-orderbook.loadbalancer.server.port=8080"
      - "traefik.http.middlewares.joinmarket-cors.headers.accesscontrolalloworiginlist=*"
      - "traefik.http.middlewares.joinmarket-cors.headers.accesscontrolallowmethods=GET,POST,OPTIONS"
      - "traefik.http.middlewares.joinmarket-cors.headers.accesscontrolallowheaders=Content-Type,Authorization"
      - "traefik.http.middlewares.joinmarket-cors.headers.accesscontrolmaxage=100"
      - "traefik.http.middlewares.joinmarket-cors.headers.addvaryheader=true"
      - "traefik.http.routers.joinmarket-orderbook.middlewares=joinmarket-cors@docker"
    networks:
      - bitcoind

networks:
  bitcoind:
    name: bitcoind
    external: true
Here is a running instance: https://joinmarket.sgn.space/