56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
version: '3.1'
|
|
|
|
services:
|
|
|
|
dshackle:
|
|
image: emeraldpay/dshackle:0.13.1
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./dshackle/config:/etc/dshackle # This should hold all your yaml files
|
|
expose:
|
|
- 8080 # /eth
|
|
- 8081 # /metrics
|
|
- 8082 # healthcheck
|
|
- 2449 # grpc
|
|
ports:
|
|
- "127.0.0.1:8082:8082" # healthcheck
|
|
environment:
|
|
- ALCHEMY_KEY=${ALCHEMY_KEY}
|
|
- ANYBLOCK_KEY=${ANYBLOCK_KEY}
|
|
- CHAINSTACK_NODE=${CHAINSTACK_NODE}
|
|
- CHAINSTACK_USERNAME=${CHAINSTACK_USERNAME}
|
|
- CHAINSTACK_PASSWORD=${CHAINSTACK_PASSWORD}
|
|
- COINBASE_USERNAME=${COINBASE_USERNAME}
|
|
- COINBASE_PASSWORD=${COINBASE_PASSWORD}
|
|
- INFURA_KEY=${INFURA_KEY}
|
|
- RIVET_KEY=${RIVET_KEY}
|
|
- QUICKNODE_HTTP=${QUICKNODE_HTTP}
|
|
- QUICKNODE_WSS=${QUICKNODE_WSS}
|
|
labels:
|
|
- "prometheus-scrape.enabled=true"
|
|
- "prometheus-scrape.port=8081"
|
|
- "prometheus-scrape.job_name=dshackle"
|
|
- "prometheus-scrape.metrics_path=/metrics"
|
|
- "traefik.enable=true"
|
|
- "traefik.http.middlewares.dshackle-stripprefix.stripprefix.prefixes=/dshackle"
|
|
- "traefik.http.middlewares.shackle-replacepath.replacepath.path=/eth"
|
|
- "traefik.http.services.dshackle.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.dshackle.entrypoints=websecure"
|
|
- "traefik.http.routers.dshackle.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.dshackle.rule=Host(`$DOMAIN`) && PathPrefix(`/dshackle`)"
|
|
- "traefik.http.routers.dshackle.middlewares=dshackle-stripprefix, dshackle-replacepath, ipwhitelist"
|
|
|
|
redis:
|
|
image: healthcheck/redis:alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
- REDIS_RAM=${REDIS_RAM}
|
|
command:
|
|
- "redis-server"
|
|
- "--maxmemory ${REDIS_RAM}"
|
|
- "--maxmemory-policy allkeys-lru"
|
|
- '--save ""'
|
|
|
|
|
|
|