name: quilibrium

# See sysctl related warning in DOCKER-README.md.
# Host configuration changes are required.

services:
  node:
    image: ${QUILIBRIUM_IMAGE_NAME:-quilibrium}
    restart: unless-stopped
    command: ["--signature-check=false"]
    deploy:
      resources:
        limits:
          memory: '32G'
        reservations:
          cpus: '12'
          memory: '16G'
    environment:
      - DEFAULT_LISTEN_GRPC_MULTIADDR=/ip4/0.0.0.0/tcp/8337
      - DEFAULT_LISTEN_REST_MULTIADDR=/ip4/0.0.0.0/tcp/8338
      - DEFAULT_STATS_MULTIADDR=/dns/stats.quilibrium.com/tcp/443
    ports:
      - '${QUILIBRIUM_P2P_PORT:-8336}:8336/udp' # p2p
      - '127.0.0.1:${QUILIBRIUM_GRPC_PORT:-8337}:8337/tcp' # gRPC
      - '127.0.0.1:${QUILIBRIUM_REST_PORT:-8338}:8338/tcp' # REST
    healthcheck:
      test: ["CMD", "grpcurl", "-plaintext", "localhost:8337", "list", "quilibrium.node.node.pb.NodeService"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 1m
    volumes:
      - ./.config:/root/.config
    logging:
      driver: "json-file"
      options:
        max-file: "5"
        max-size: 2048m
