# opentracker config file # # I) Address opentracker will listen on, using both, tcp AND udp family # (note, that port 6969 is implicit if omitted). # # If no listen option is given (here or on the command line), opentracker # listens on 0.0.0.0:6969 tcp and udp. # # The next variable determines if udp sockets are handled in the event # loop (set it to 0, the default) or are handled in blocking reads in # dedicated worker threads. You have to set this value before the # listen.tcp_udp or listen.udp statements before it takes effect, but you # can re-set it for each listen statement. Normally you should keep it at # the top of the config file. # # listen.udp.workers 4 # # listen.tcp_udp 0.0.0.0 # listen.tcp_udp 192.168.0.1:80 # listen.tcp_udp 10.0.0.5:6969 # # To only listen on tcp or udp family ports, list them this way: # # listen.tcp 0.0.0.0 # listen.udp 192.168.0.1:6969 # # Note, that using 0.0.0.0 for udp sockets may yield surprising results. # An answer packet sent on that socket will not necessarily have the # source address that the requesting client may expect, but any address # on that interface. # # II) If opentracker runs in a non-open mode, point it to files containing # all torrent hashes that it will serve (shell option -w) # # access.whitelist /path/to/whitelist # # or, if opentracker was compiled to allow blacklisting (shell option -b) # # access.blacklist ./blacklist # # It is pointless and hence not possible to compile black AND white # listing, so choose one of those options at compile time. File format # is straight forward: "\n\n..." # # IIa) You can enable dynamic changesets to accesslists by enabling # WANT_DYNAMIC_ACCESSLIST. # # The suggested way to work with dynamic changeset lists is to keep a # main accesslist file that is loaded when opentracker (re)starts and # reloaded infrequently (hourly or daily). # # All changes to the accesslist (e.g. from a web frontend) should be # both appended to or removed from that file and sent to opentracker. By # keeping dynamic changeset lists, you can avoid reloading huge # accesslists whenever just a single entry is added or removed. # # Any info_hash (format see above) written to the fifo_add file will be # kept on a dynamic add-changeset, removed from the dynamic # delete-changeset and treated as if it was in the main accesslist file. # The semantic of the respective dynamic changeset depends on whether # WANT_ACCESSLIST_WHITE or WANT_ACCESSLIST_BLACK is enabled. # # access.fifo_add /var/run/opentracker/adder.fifo # # Any info_hash (format see above) written to the fifo_delete file will # be kept on a dynamic delete-changeset, removed from the dynamic # add-changeset and treated as if it was not in the main accesslist # file. # # access.fifo_delete /var/run/opentracker/deleter.fifo # # If you reload the accesslist by sending SIGHUP to the tracker process, # the dynamic lists are flushed, as opentracker assumes thoses lists are # merged into the main accesslist. # # NOTE: While you can have multiple writers sending lines to the fifos, # any writes larger than PIPE_BUF (see your limits.h, minimally 512 # bytes but usually 4096) may be interleaved with data sent by other # writers. This can lead to unparsable lines of info_hashes. # # IIb) # If you do not want to grant anyone access to your stats, enable the # WANT_RESTRICT_STATS option in Makefile and bless the ip addresses # or network allowed to fetch stats here. # # access.stats 192.168.0.23 # access.stats 10.1.1.23 # # There is another way of hiding your stats. You can obfuscate the path # to them. Normally it is located at /stats but you can configure it to # appear anywhere on your tracker. # # access.stats_path stats # # II # If opentracker lives behind one or multiple reverse proxies, # every http connection appears to come from these proxies. In order to # take the X-Forwarded-For address instead, compile opentracker with the # WANT_IP_FROM_PROXY option and set your proxy addresses or networkss here. # # access.proxy 10.0.1.23 # access.proxy 192.0.0.0/8 # # III) Live sync uses udp multicast packets to keep a cluster of opentrackers # synchronized. This option tells opentracker which port to listen for # incoming live sync packets. The ip address tells opentracker, on which # interface to join the multicast group, those packets will arrive. # (shell option -i 192.168.0.1 -s 9696), port 9696 is default. # # livesync.cluster.listen 192.168.0.1:9696 # # Note that two udp sockets will be opened. One on ip address 0.0.0.0 # port 9696, that will join the multicast group 224.0.42.23 for incoming # udp packets and one on ip address 192.168.0.1 port 9696 for outgoing # udp packets. # # As of now one and only one ip address must be given, if opentracker # was built with the WANT_SYNC_LIVE feature. # # IV) Sync between trackers running in a cluster is restricted to packets # coming from trusted ip addresses. While source ip verification is far # from perfect, the authors of opentracker trust in the correct # application of tunnels, filters and LAN setups (shell option -A). # # livesync.cluster.node_ip 192.168.0.4 # livesync.cluster.node_ip 192.168.0.5 # livesync.cluster.node_ip 192.168.0.6 # # This is the admin ip address for old style (HTTP based) asynchronus # tracker syncing. # # batchsync.cluster.admin_ip 10.1.1.1 # # V) Control privilege drop behaviour. # Put in the directory opentracker will chroot/chdir to. All black/white # list files must be put in that directory (shell option -d). # # # tracker.rootdir /usr/local/etc/opentracker # # Tell opentracker which user to setuid to. # # tracker.user nobody # # VI) opentracker can be told to answer to a "GET / HTTP"-request with a # redirect to another location (shell option -r). # # tracker.redirect_url https://your.tracker.local/