From 2f6e2a585c41d4d0146e861bd2f2d71baa791a8f Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Sun, 19 Jul 2015 11:49:37 +0200 Subject: [PATCH] Add documentation for running a discovery server --- users/disco-settings.png | Bin 0 -> 44752 bytes users/discosrv.rst | 128 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 users/disco-settings.png create mode 100644 users/discosrv.rst diff --git a/users/disco-settings.png b/users/disco-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa4f8060c691fc0b44f78afcccf4533126d000e GIT binary patch literal 44752 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 literal 0 HcmV?d00001 diff --git a/users/discosrv.rst b/users/discosrv.rst new file mode 100644 index 000000000..2480fba13 --- /dev/null +++ b/users/discosrv.rst @@ -0,0 +1,128 @@ +Running a Discovery Server +========================== + +Description +----------- + +This guide assumes that you have already set up Syncthing. If you +haven't yet, head over to :ref:`getting-started` first. + +Installing +---------- + +Go to `releases `__ and +download the file appropriate for your operating system. Unpacking it will +yield a binary called ``discosrv`` (or ``discosrv.exe`` on Windows). Start +this in whatever way you are most comfortable with; double clicking should +work in any graphical environment. At first start, discosrv will generate the +directory ``/var/discosrv`` (``X:\var\discosrv`` on Windows, where X is the +partition ``discosrv.exe`` is executed from) with configuration. If the user +running ``discosrv`` doesn't have permission to do so, create the directory +and set the owner appropriately or use the command line switches (see below) +to select a different location. + +Pointing Syncthing at Your Discovery Server +------------------------------------------- + +By default, Syncthing uses the global discovery servers at +``announce.syncthing.net`` (IPv4) and ``announce-v6.syncthing.net`` (IPv6). To +make Syncthing use your own instance of discosrv, open up Syncthing's web GUI. +Go to settings, Global Discovery Server and add discosrv's host address to the +comma-separated list, e.g. ``udp4://server_address_or_ip.tld:port_number``. +Note that discosrv uses port 22026 by default. For discosrv to be available +over the internet with a dynamic ip address, you will need a dynamic DNS +service. + +|Settings Screenshot| + +Configuring +----------- + +Running discosrv with non-default settings requires passing the +respective parameters to discosrv on every start. ``discosrv -help`` +gives you all the tweakables with their defaults: + +:: + + -db-dir="/var/discosrv/db": Database directory + -debug=false: Enable debug output + -limit-avg=1: Allowed average package rate, per 10 s + -limit-burst=10: Allowed burst size, packets + -limit-cache=1024: Limiter cache entries + -listen=":22026": Listen address + -stats-file="/var/discosrv/stats": Statistics file name + -stats-intv=0: Statistics output interval (s) + -timestamp=true: Timestamp the log output + -unknown-file="": Unknown packet log file name + +Linux +~~~~~ + +The following instructions enables a ``discosrv`` instance on a Ubuntu server, +and assumes the user has knowledge of basic linux commands. + +- Copy the discosrv executable to /usr/local/bin and set permissions + as follows: user root, group root, permissions 0755 + +- Using putty, login to your VPS and enter the following commands:: + + $ cd /usr/local/bin + $ sudo discosrv -listen=":22026" + +- Leave 1st terminal open and open a second putty terminal, login to + the VPS and execute:: + + $ sudo netstat -ulp + + The output should indicate that discosrv is listening on port 22026. + +- When you close the putty terminals, the installed discosrv will stop + running. To enable an "always on" state, add nohup & to the terminal + command. The correct command is:: + + $ nohup sudo discosrv -listen=":22026" & + + Now when you close the terminal, discosrv will still be running. + +- Set the Syncthing WebGUI settings for "Global Discovery Server" to + point to ``udp4://your.vps.ip.address:22026`` and restart Syncthing. + +Windows +~~~~~~~ + +On Windows, it is unusual to have a var folder in a root directory. The +following batch file will start ``discosrv`` from the current folder and make +``discosrv`` create and use the current folder for its config. You can easily +change all available parameters if desired. + +:: + + @ECHO OFF + :: Database directory. Default is "X:\var\discosrv\db", where X is the partition discosrv.exe is executed on. + SET db-dir=%CD%\db + :: Statistics file name. Default is "X:\var\discosrv\stats", where X is the partition discosrv.exe is executed on - note that this is a text file without extension, not a directory. + SET stats-file=%CD%\stats + :: Listen address. Default is ":22026". + SET listen=:22026 + + + :: These parameters usually don't need tampering. If you don't understand what they do, leave them alone. + :: Enable debug output, true/false. Default is "false". + SET debug=false + :: Allowed average packet rate, per 10s. Default is "1". + SET limit-avg=1 + :: Allowed burst size, packets. Default is "10". + SET limit-burst=10 + :: Limiter cache entries. Default is "1024". + SET limit-cache=1024 + :: Statistics output interval in seconds. Default is "0". + SET stats-intv=0 + :: Enable timestamping the log output. Default is "true". + SET timestamp=true + :: Unknown packet log file name. Default is an empty string, "". + SET unknown-file= + ECHO ON + + START "discosrv" /B discosrv.exe -db-dir="%db-dir%" -stats-file="%stats-file%" -listen="%listen%" -debug=%debug% -limit-avg=%limit-avg% -limit-burst=%limit-burst% -limit-cache=%limit-cache% -stats-intv=%stats-intv% -timestamp=%timestamp% -unknown-file="%unknown-file%" + +.. |Settings Screenshot| image:: disco-settings.png