CoreConfig:
  Type: "xray" # Core type, default support "xray" and "hy". If you need many cores, use " " to split
  XrayConfig:
    Log:
      Level: warning # Log level: none, error, warning, info, debug
      AccessPath: # /etc/XrayR/access.Log
      ErrorPath: # /etc/XrayR/error.log
    DnsConfigPath: # /etc/XrayR/dns.json # Path to dns config, check https://xtls.github.io/config/dns.html for help
    RouteConfigPath: # /etc/XrayR/route.json # Path to route config, check https://xtls.github.io/config/routing.html for help
    InboundConfigPath: # /etc/XrayR/custom_inbound.json # Path to custom inbound config, check https://xtls.github.io/config/inbound.html for help
    OutboundConfigPath: # /etc/XrayR/custom_outbound.json # Path to custom outbound config, check https://xtls.github.io/config/outbound.html for help
    ConnectionConfig:
      Handshake: 4 # Handshake time limit, Second
      ConnIdle: 30 # Connection idle time limit, Second
      UplinkOnly: 2 # Time limit when the connection downstream is closed, Second
      DownlinkOnly: 4 # Time limit when the connection is closed after the uplink is closed, Second
      BufferSize: 64 # The internal cache size of each connection, kB
Nodes:
  - ApiConfig:
      ApiHost: "http://127.0.0.1:667"
      ApiKey: "123"
      NodeID: 41
      NodeType: V2ray # Node type: V2ray, Shadowsocks, Trojan
      Timeout: 30 # Timeout for the api request
      RuleListPath: # /etc/XrayR/rulelist Path to local rulelist file
    ControllerConfig:
      ListenIP: 0.0.0.0 # IP address you want to listen
      SendIP: 0.0.0.0 # IP address you want to send pacakage
      XrayOptions:
        EnableDNS: false # Use custom DNS config, Please ensure that you set the dns.json well
        DNSType: AsIs # AsIs, UseIP, UseIPv4, UseIPv6, DNS strategy
        EnableTFO: false # Enable TCP Fast Open
        EnableProxyProtocol: false # Only works for WebSocket and TCP
        EnableFallback: false # Only support for Trojan and Vless
        FallBackConfigs: # Support multiple fallbacks
          - SNI: # TLS SNI(Server Name Indication), Empty for any
            Alpn: # Alpn, Empty for any
            Path: # HTTP PATH, Empty for any
            Dest: 80 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
            ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
      HyOptions:
        Resolver: "udp://1.1.1.1:53" # DNS resolver address
        ResolvePreference: 64 # DNS IPv4/IPv6 preference. Available options: "64" (IPv6 first, fallback to IPv4), "46" (IPv4 first, fallback to IPv6), "6" (IPv6 only), "4" (IPv4 only)
        SendDevice: "eth0" # Bind device for outbound connections (usually requires root)
      LimitConfig:
        EnableRealtime: false # Check device limit on real time
        SpeedLimit: 0 # Mbps, Local settings will replace remote settings, 0 means disable
        DeviceLimit: 0 # Local settings will replace remote settings, 0 means disable
        ConnLimit: 0 # Connecting limit, only working for TCP, 0mean
        EnableIpRecorder: false # Enable online ip report
        IpRecorderConfig:
          Type: "Recorder" # Recorder type: Recorder, Redis
          RecorderConfig:
            Url: "http://127.0.0.1:123" # Report url
            Token: "123" # Report token
            Timeout: 10 # Report timeout, sec.
          RedisConfig:
            Address: "127.0.0.1:6379" # Redis address
            Password: "" # Redis password
            DB: 0 # Redis DB
            Expiry: 60 # redis expiry time, sec.
          Periodic: 60 # Report interval, sec.
          EnableIpSync: false # Enable online ip sync
        EnableDynamicSpeedLimit: false # Enable dynamic speed limit
        DynamicSpeedLimitConfig:
          Periodic: 60 # Time to check the user traffic , sec.
          Traffic: 0 # Traffic limit, MB
          SpeedLimit: 0 # Speed limit, Mbps
          ExpireTime: 0 # Time limit, sec.
      CertConfig:
        CertMode: dns # Option about how to get certificate: none, file, http, dns, reality, remote. Choose "none" will forcedly disable the tls config.
        CertDomain: "node1.test.com" # Domain to cert
        CertFile: /etc/XrayR/cert/node1.test.com.cert # Provided if the CertMode is file
        KeyFile: /etc/XrayR/cert/node1.test.com.key
        Provider: alidns # DNS cert provider, Get the full support list here: https://go-acme.github.io/lego/dns/
        Email: test@me.com
        DNSEnv: # DNS ENV option used by DNS provider
          ALICLOUD_ACCESS_KEY: aaa
          ALICLOUD_SECRET_KEY: bbb
        RealityConfig: # This config like RealityObject for xray-core, please check https://xtls.github.io/config/transport.html#realityobject
          Dest: 80 # Same fallback dest
          Xver: 0 # Same fallback xver
          ServerNames:
            - "example.com"
            - "www.example.com"
          PrivateKey: "" # Private key for server
          MinClientVer: "" # Min client version
          MaxClientVer: "" # Max client version
          MaxTimeDiff: 0 # Max time difference, ms
          ShortIds: # Short ids
            - ""
            - "0123456789abcdef"
  # -
  #   ApiConfig:
  #     ApiHost: "http://127.0.0.1:668"
  #     ApiKey: "123"
  #     NodeID: 4
  #     NodeType: Shadowsocks # Node type: V2ray, Shadowsocks, Trojan
  #     Timeout: 30 # Timeout for the api request
  #     EnableVless: false # Enable Vless for V2ray Type
  #     EnableXTLS: false # Enable XTLS for V2ray and Trojan
  #     SpeedLimit: 0 # Mbps, Local settings will replace remote settings
  #     DeviceLimit: 0 # Local settings will replace remote settings
  #   ControllerConfig:
  #     ListenIP: 0.0.0.0 # IP address you want to listen
  #     EnableDNS: false # Use custom DNS config, Please ensure that you set the dns.json well
  #     CertConfig:
  #       CertMode: dns # Option about how to get certificate: none, file, http, dns
  #       CertDomain: "node1.test.com" # Domain to cert
  #       CertFile: /etc/XrayR/cert/node1.test.com.cert # Provided if the CertMode is file
  #       KeyFile: /etc/XrayR/cert/node1.test.com.pem
  #       Provider: alidns # DNS cert provider, Get the full support list here: https://go-acme.github.io/lego/dns/
  #       Email: test@me.com
  #       DNSEnv: # DNS ENV option used by DNS provider
  #         ALICLOUD_ACCESS_KEY: aaa
  #         ALICLOUD_SECRET_KEY: bbb