sockudo 2.7.2

A simple, fast, and secure WebSocket server for real-time applications.
Documentation
name: sockudo-benchmark

services:
  sockudo-node:
    build:
      context: ./
      dockerfile: ./test/multinode/Dockerfile.multinode
    volumes:
      - ./target:/app/target:ro
      - ./config:/app/config:ro
    environment:
      - DEBUG=false
      - PORT=6003
      - HOST=0.0.0.0
      - METRICS_ENABLED=true
      - METRICS_PORT=9603
      - SHUTDOWN_GRACE_PERIOD=0
      - SOCKUDO_DEFAULT_APP_ID=app-id
      - SOCKUDO_DEFAULT_APP_KEY=app-key
      - SOCKUDO_DEFAULT_APP_SECRET=app-secret
      - SOCKUDO_ENABLE_CLIENT_MESSAGES=true
      - SOCKUDO_DEFAULT_APP_MAX_CLIENT_EVENTS_PER_SECOND=10000
      - SOCKUDO_DEFAULT_APP_MAX_CONNECTIONS=100000
      - ADAPTER_BUFFER_MULTIPLIER_PER_CPU=128
    ports:
      - "6003:6003"
      - "9603:9603"
    networks:
      - sockudo-benchmark-test
    command: ${SOCKUDO_COMMAND:-/app/target/debug/sockudo}
#    stdin_open: true
#    tty: true
    # Resource limits optimized for memory-only (more resources available)
    deploy:
      resources:
        limits:
          # All resources for Sockudo (no Redis)
          cpus: '2.0'      # Use all available CPU
          memory: 2G       # Use most available memory
        reservations:
          cpus: '2.0'      # Minimum guaranteed CPU
          memory: 2G       # Minimum guaranteed memory

    # System limits optimized for high connection count
    ulimits:
      nofile:
        soft: 131072      # File descriptors for connections
        hard: 131072
      nproc:
        soft: 65536      # Process limit
        hard: 65536

    # Security options for network optimization
    security_opt:
      - no-new-privileges:true

    # Run with higher priority
    privileged: false
    cap_add:
      - NET_ADMIN     # For network optimization
      - SYS_RESOURCE  # For ulimit management

networks:
  sockudo-benchmark-test:
    driver: bridge
    driver_opts:
      com.docker.network.bridge.name: sockudo0
      com.docker.network.driver.mtu: 1500
      com.docker.network.bridge.enable_ip_masquerade: "true"
      com.docker.network.bridge.enable_icc: "true"
      com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"