diff --git a/CONFIGURATION.md b/CONFIGURATION.md index 19fd4be..32a746d 100644 --- a/CONFIGURATION.md +++ b/CONFIGURATION.md @@ -3,28 +3,63 @@ Chihaya's behaviour is customized by setting up a JSON configuration file. Available keys are as follows: -##### `http_listen_addr` +##### `httpListenAddr` type: string - default: ":6881" + default: "localhost:6881" -The listen address for the HTTP server. If only a port is specified, the tracker will listen on all interfaces. +The listen address for the HTTP server. If only a port is specified, the tracker will listen on all interfaces. If left empty, the tracker will not run a HTTP endpoint. -##### `private_enabled` +##### `httpRequestTimeout` + + type: duration + default: "4s" + +The duration to allow outstanding requests to survive before forcefully terminating them. + +##### `httpReadTimeout` + + type: duration + default: "4s" + +The maximum duration before timing out read of the request. + +##### `httpWriteTimeout` + + type: duration + default: "4s" + +The maximum duration before timing out write of the request. + +##### `httpListenLimit` + + type: integer + default: 0 + +Limits the number of outstanding requests. Set to `0` to disable. + +##### `udpListenAddr` + + type: string + default: "localhost:6881" + +Then listen address for the UDP server. If only a port is specified, the tracker will listen on all interfaces. If left empty, the tracker will not run a UDP endpoint. + +##### `privateEnabled` type: bool default: true Whether this is a public or private tracker. -##### `create_on_announce` +##### `createOnAnnounce` type: bool default: true Whether to register new torrents with the tracker when any client announces (`true`), or to return an error if the torrent doesn't exist (`false`). This should be set to `false` for private trackers in most cases. -##### `purge_inactive_torrents` +##### `purgeInactiveTorrents` type: bool default: true @@ -38,83 +73,156 @@ If torrents should be forgotten when there are no active peers. This should be s The announce `interval` value sent to clients. This specifies how long clients should wait between regular announces. -##### `min_announce` +##### `minAnnounce` type: duration default: "30m" The announce `min_interval` value sent to clients. This theoretically specifies the minimum allowed time between announces, but most clients don't really respect it. -##### `default_num_want` +##### `defaultNumWant` type: integer default: 50 The default maximum number of peers to return if the client has not requested a specific number. -##### `allow_ip_spoofing` +##### `allowIPSpoofing` type: bool default: true Whether peers are allowed to set their own IP via the various supported methods or if these are ignored. This must be enabled for dual-stack IP support, since there is no other way to determine both IPs of a peer otherwise. -##### `dual_stacked_peers` +##### `dualStackedPeers` type: bool default: true True if peers may have both an IPv4 and IPv6 address, otherwise only one IP per peer will be used. -##### `real_ip_header` +##### `realIPHeader` type: string default: blank An optional HTTP header indicating the upstream IP, for example `X-Forwarded-For` or `X-Real-IP`. Use this when running the tracker behind a reverse proxy. -##### `respect_af` +##### `respectAF` type: bool default: false Whether responses should only include peers of the same address family as the announcing peer, or if peers of any family may be returned (i.e. both IPv4 and IPv6). -##### `client_whitelist_enabled` +##### `clientWhitelistEnabled` type: bool default: false Enables the peer ID whitelist. -##### `client_whitelist` +##### `clientWhitelist` type: array of strings default: [] List of peer ID prefixes to allow if `client_whitelist_enabled` is set to true. -##### `freeleech_enabled` +##### `freeleechEnabled` type: bool default: false For private trackers only, whether download stats should be counted or ignored for users. -##### `torrent_map_shards` +##### `torrentMapShards` type: integer default: 1 Number of internal torrent maps to use. Leave this at 1 in general, however it can potentially improve performance when there are many unique torrents and few peers per torrent. -- `http_request_timeout: "10s"` -- `http_read_timeout: "10s"` -- `http_write_timeout: "10s"` -- `http_listen_limit: 0` -- `driver: "noop"` -- `stats_buffer_size: 0` -- `include_mem_stats: true` -- `verbose_mem_stats: false` -- `mem_stats_interval: "5s"` +##### `reapInterval` + type: duration + default: "60s" + +Interval at which a search for inactive peers should be performed. + +##### `reapRatio` + + type: float64 + default: 1.25 + +Peers will be rated inactive if they haven't announced for `reapRatio * minAnnounce`. + +##### `apiListenAddr` + + type: string + default: "localhost:6880" + +The listen address for the HTTP API. If only a port is specified, the tracker will listen on all interfaces. If left empty, the tracker will not run the HTTP API. + +##### `apiRequestTimeout` + + type: duration + default: "4s" + +The duration to allow outstanding requests to survive before forcefully terminating them. + +##### `apiReadTimeout` + + type: duration + default: "4s" + +The maximum duration before timing out read of the request. + +##### `apiWriteTimeout` + + type: duration + default: "4s" + +The maximum duration before timing out write of the request. + +##### `apiListenLimit` + + type: integer + default: 0 + +Limits the number of outstanding requests. Set to `0` to disable. + +##### `driver` + + type: string + default: "noop" + +Sets the backend driver to load. The included `"noop"` driver provides no functionality. + +##### `statsBufferSize` + + type: integer + default: 0 + +The size of the event-queues for statistics. + +##### `includeMemStats` + + type: bool + default: true + +Whether to include information about memory in the statistics. + +##### `verboseMemStats` + + type: bool + default: false + +Whether the information about memory should be verbose. + +##### `memStatsInterval` + + type: duration + default: "5s" + +Interval at which to collect statistics about memory.