services:
  dshackle:
    image: drpcorg/dshackle:0.75.8
    restart: unless-stopped
    volumes:
      - ./main_configs:/etc/dshackle
    expose:
      - 8080
      - 8081
      - 25703
    #ports:
    #  - "2449:2449"
    environment:
      DSHACKLE_LOG_LEVEL: ${DSHACKLE_LOG_LEVEL:-info}
    labels:
      - "prometheus-scrape.enabled=true"
      - "prometheus-scrape.port=8081"
      - "prometheus-scrape.job_name=drpc-dshackle"
      - "prometheus-scrape.metrics_path=/metrics"
      - "traefik.enable=true"
      - "traefik.http.services.drpc.loadbalancer.server.scheme=h2c"
      - "traefik.http.services.drpc.loadbalancer.server.port=2449"
      - "traefik.http.routers.drpc.entrypoints=grpc"
      - "traefik.http.routers.drpc.service=drpc"
      - "traefik.http.routers.drpc.tls.certresolver=myresolver"
      - "traefik.http.routers.drpc.rule=Host(`$GW_DOMAIN`)"

      - "traefik.http.services.dshackle.loadbalancer.server.port=8080"
      - "traefik.http.routers.dshackle.entrypoints=websecure"
      - "traefik.http.routers.dshackle.service=dshackle"
      - "traefik.http.routers.dshackle.tls.certresolver=myresolver"
      - "traefik.http.routers.dshackle.rule=Host(`$GW_DOMAIN`)"
      - "${GW_ALLOW_LIST:+traefik.http.middlewares.gwallowlist.ipallowlist.sourcerange=$GW_ALLOW_LIST}"
      - "${GW_ALLOW_LIST:+traefik.http.routers.dshackle.middlewares=gwallowlist}"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    networks:
      - chains
    logging: 
      driver: journald
    
      
  redis:
    image: healthcheck/redis:alpine
    restart: unless-stopped
    command:
      - "redis-server"
      - "--maxmemory ${GW_REDIS_RAM}"
      - "--maxmemory-policy allkeys-lru"
      - '--save ""'
    networks:
      - chains


      
