Provided by: syncthing_1.27.2~ds4-1ubuntu0.24.04.3_amd64 bug

NAME

       syncthing - Syncthing

SYNOPSIS

          syncthing [serve]
                    [--audit] [--auditfile=<file|-|-->] [--browser-only] [--device-id]
                    [--generate=<dir>] [--gui-address=<address>] [--gui-apikey=<key>]
                    [--home=<dir> | --config=<dir> --data=<dir>]
                    [--logfile=<filename>] [--logflags=<flags>]
                    [--log-max-old-files=<num>] [--log-max-size=<num>]
                    [--no-browser] [--no-console] [--no-restart] [--paths] [--paused]
                    [--no-default-folder] [--skip-port-probing]
                    [--reset-database] [--reset-deltas] [--unpaused] [--allow-newer-config]
                    [--upgrade] [--no-upgrade] [--upgrade-check] [--upgrade-to=<url>]
                    [--verbose] [--version] [--help] [--debug-*]

          syncthing generate
                    [--home=<dir> | --config=<dir>]
                    [--gui-user=<username>] [--gui-password=<password|->]
                    [--no-default-folder] [--skip-port-probing] [--no-console]
                    [--help]

          syncthing decrypt (--to=<dir> | --verify-only)
                    [--password=<pw>] [--folder-id=<id>] [--token-path=<file>]
                    [--continue] [--verbose] [--version] [--help]
                    <path>

          syncthing cli
                    [--home=<dir> | --config=<dir> --data=<dir>]
                    [--gui-address=<address>] [--gui-apikey=<key>]
                    [--help]
                    <command> [command options...] [arguments...]

DESCRIPTION

       Syncthing  lets  you  synchronize  your  files  bidirectionally  across  multiple devices. This means the
       creation, modification or deletion of files on one machine will automatically be replicated to your other
       devices. We believe your data is your data alone and you deserve to choose where it is stored.  Therefore
       Syncthing  does not upload your data to the cloud but exchanges your data across your machines as soon as
       they are online at the same time.

       The syncthing core application is a command-line program which usually runs in the background and handles
       the synchronization. It provides a built-in, HTML and JavaScript based user interface  to  be  controlled
       from  a  web  browser. This frontend communicates with the core application through some HTTP APIs, which
       other apps like graphical system integration helpers can use as well, for greatest flexibility. A link to
       reach the GUI and API is printed among the first few log messages.

OPTIONS

       --allow-newer-config
              Try loading a config file written by a newer program version, instead of failing immediately.

       --audit
              Write events to timestamped file audit-YYYYMMDD-HHMMSS.log.

       --auditfile=<file|-|-->
              Use specified file or stream ("-" for stdout, "--" for stderr) for audit events, rather  than  the
              timestamped default file name.

       --browser-only
              Open the web UI in a browser for an already running Syncthing instance.

       --device-id
              Print device ID to command line.

       --generate=<dir>
              Generate key and config in specified dir, then exit.

       --gui-address=<address>
              Override GUI listen address. Set this to an address (0.0.0.0:8384) or a URL (http://0.0.0.0:8384).
              Supported schemes are http for plain HTTP, https for HTTP over TLS, unix for plain Unix sockets or
              unixs    for    TLS    over    Unix    sockets.    A   Unix   socket   could   look   like   this:
              unix:///run/syncthing/syncthing.socket  (notice  the  three  slashes:  two  as  part  of  the  URL
              structure, one to specify an absolute path).

       --gui-apikey=<string>
              Override the API key needed to access the GUI / REST API.

       --gui-password=<password|->
              Specify  new GUI authentication password, to update the config file.  Read from the standard input
              stream if only a single dash (-) is given.  A plaintext password is hashed before writing  to  the
              config file, but an already bcrypt-hashed input is stored verbatim.  As a special case, giving the
              existing password hash as password will leave it untouched.

       --gui-user=<username>
              Specify new GUI authentication user name, to update the config file.

       --help, -h
              Show help text about command line usage.  Context-sensitive depending on the given subcommand.

       --home=<dir>
              Set   common   configuration   and   data   directory.  The  default  configuration  directory  is
              $XDG_STATE_HOME/syncthing or $HOME/.local/state/syncthing  (Unix-like),  $HOME/Library/Application
              Support/Syncthing (Mac) and %LOCALAPPDATA%\Syncthing (Windows).

       --config=<dir>
              Set configuration directory. Alternative to --home and must be used together with --data.

       --data=<dir>
              Set data (e.g. database) directory. Alternative to --home and must be used together with --config.

       --logfile=<filename>
              Set destination filename for logging (use "-" for stdout, which is the default option).

       --logflags=<flags>
              Select information in log line prefix. The --logflags value is a sum of the following:

              • 1: Date

              • 2: Time

              • 4: Microsecond time

              • 8: Long filename

              • 16: Short filename

              To  prefix  each  log line with date and time, set --logflags=3 (1 + 2 from above). The value 0 is
              used to disable all of the above. The default is to show time only (2).

       --log-max-old-files=<num>
              Number of old files to keep (zero to keep only  current).   Applies  only  when  log  rotation  is
              enabled through --log-max-size.

       --log-max-size=<num>
              Maximum size of any log file (zero to disable log rotation).

       --no-browser
              Do not start a browser.

       --no-console
              Hide the console window. (On Windows only)

       --no-default-folder
              Don’t  create  a  default folder when generating an initial configuration / starting for the first
              time.

       --no-restart
              Do not restart Syncthing when it exits. The monitor process will still run to handle  crashes  and
              writing to logfiles (if configured to).

       --no-upgrade
              Disable automatic upgrades.  Equivalent to the STNOUPGRADE environment variable, see below.

       --paths
              Print the paths used for configuration, keys, database, GUI overrides, default sync folder and the
              log file.

       --paused
              Start with all devices and folders paused.

       --reset-database
              Reset the database, forcing a full rescan and resync. Create .stfolder folders in each sync folder
              if  they  do  not  already  exist. Caution: Ensure that all sync folders which are mountpoints are
              already mounted.  Inconsistent versions may result if the mountpoint is later mounted and contains
              older versions.

       --reset-deltas
              Reset delta index IDs, forcing a full index exchange.

       --skip-port-probing
              Don’t try to find unused random ports for the GUI and listen address when  generating  an  initial
              configuration / starting for the first time.

       --unpaused
              Start with all devices and folders unpaused.

       --upgrade
              Perform upgrade.

       --upgrade-check
              Check for available upgrade.

       --upgrade-to=<url>
              Force upgrade directly from specified URL.

       --verbose
              Print verbose log output.

       --version
              Show version.

       --to=<dir>
              Destination directory where files should be stored after decryption.

       --verify-only
              Don’t write decrypted files to disk (but verify plaintext hashes).

       --password=<pw>
              Folder  password  for  decryption  /  verification.   Can  be  passed  through the FOLDER_PASSWORD
              environment variable instead to avoid recording in a shell’s history buffer or sniffing  from  the
              running processes list.

       --folder-id=<id>
              Folder ID of the encrypted folder, if it cannot be determined automatically.

       --token-path=<file>
              Path to the token file within the folder (used to determine folder ID).

       --continue
              Continue processing next file in case of error, instead of aborting.

EXIT CODES

       0      Success / Shutdown

       1      Error

       2      Upgrade not available

       3      Restarting

       4      Upgrading

       Exit  codes  over  125 are usually returned by the shell/binary loader/default signal handler. Exit codes
       over 128+N on Unix usually represent the signal which caused the process to exit. For example,  128  +  9
       (SIGKILL) = 137.

SUBCOMMANDS

       The  command  line  syntax  actually  supports  different modes of operation through several subcommands,
       specified as the first argument.  If omitted, the default serve is assumed.

       The initial setup of a device ID and default configuration can be called  explicitly  with  the  generate
       subcommand.   It can also update the configured GUI authentication credentials, without going through the
       REST API.  An existing device certificate is left untouched.  If the configuration file  already  exists,
       it  is  validated and updated to the latest configuration schema, including adding default values for any
       new options.

       The decrypt subcommand is used in conjunction  with  untrusted  (encrypted)  devices,  see  the  relevant
       section  on  decryption for details.  It does not depend on Syncthing to be running, but works on offline
       data.

       To work with the REST API for debugging or automating things in Syncthing, the  cli  subcommand  provides
       easy  access  to individual features.  It basically saves the hassle of handling HTTP connections and API
       authentication.

       The available subcommands are  grouped  into  several  nested  hierarchies  and  some  parts  dynamically
       generated  from  the  running  Syncthing instance.  On every level, the --help option lists the available
       properties, actions and commands for the user to discover interactively.  The top-level groups are:

       config Access the live configuration in a running instance over the REST API to retrieve (get) or  update
              (set)  values  in a fine-grained way.  The hierarchy is based on the same structure as used in the
              JSON / XML representations.

       show   Show system properties and status of a running instance.  The output is passed  on  directly  from
              the REST API response and therefore requires parsing JSON format.

       operations
              Control  the  overall  program  operation  such  as  restarting  or  handling upgrades, as well as
              triggering some actions on a per-folder basis.  Can also configure  the  default  ignore  patterns
              from a plain text ignore file.

       errors Examine pending error conditions that need attention from the user, or acknowledge (clear) them.

       debug  Various  tools  to  aid in diagnosing problems or collection information for bug reports.  Some of
              these commands access the database directly and can therefore only  work  when  Syncthing  is  not
              running.

       - (a single dash)
              Reads  subsequent  commands  from the standard input stream, without needing to call the syncthing
              cli command over and over.  Exits on any invalid command or when EOF (end-of-file) is received.

PROXIES

       Syncthing can use a SOCKS, HTTP, or HTTPS proxy to talk to the outside  world.  The  proxy  is  used  for
       outgoing  connections  only  -  it  is not possible to accept incoming connections through the proxy. The
       proxy is configured through the environment variable all_proxy. Somewhat unusually, this variable must be
       named in lower case - it is not “ALL_PROXY”. For example:

          $ export all_proxy=socks://192.0.2.42:8081

DEVELOPMENT SETTINGS

       The following environment variables modify Syncthing’s behavior  in  ways  that  are  mostly  useful  for
       developers.  Use  with  care.   If  you  start  Syncthing  from  within  service managers like systemd or
       supervisor, path expansion may not be supported.

       STTRACE
              Used to increase the debugging verbosity in specific or all facilities, generally mapping to a  Go
              package.  Enabling any of these also enables microsecond timestamps, file names plus line numbers.
              Enter a comma-separated string  of  facilities  to  trace.  syncthing  --help  always  outputs  an
              up-to-date list. The valid facility strings are:

              Main and operational facilities:

                     config Configuration loading and saving.

                     db     The database layer.

                     main   Main package.

                     model  The  root hub; the largest chunk of the system. File pulling, index transmission and
                            requests for chunks.

                     scanner
                            File change detection and hashing.

                     versioner
                            File versioning.

              Networking facilities:

                     beacon Multicast and broadcast UDP discovery packets: Selected interfaces and addresses.

                     connections
                            Connection handling.

                     dialer Dialing connections.

                     discover
                            Remote device discovery requests, replies and registration of devices.

                     nat    NAT discovery and port mapping.

                     pmp    NAT-PMP discovery and port mapping.

                     protocol
                            The BEP protocol.

                     relay  Relay interaction (strelaysrv).

                     upnp   UPnP discovery and port mapping.

              Other facilities:

                     fs     Filesystem access.

                     events Event generation and logging.

                     http   REST API.

                     sha256 SHA256 hashing package (this facility currently unused).

                     stats  Persistent device and folder statistics.

                     sync   Mutexes. Used for debugging race conditions and deadlocks.

                     upgrade
                            Binary upgrades.

                     walkfs Filesystem access while walking.

                     all    All of the above.

       STBLOCKPROFILE
              Write block profiles to block-$pid-$timestamp.pprof every 20 seconds.

       STCPUPROFILE
              Write a CPU profile to cpu-$pid.pprof on exit.

       STDEADLOCKTIMEOUT
              Used for debugging internal deadlocks; sets debug sensitivity.  Use  only  under  direction  of  a
              developer.

       STLOCKTHRESHOLD
              Used  for  debugging  internal  deadlocks;  sets  debug sensitivity. Use only under direction of a
              developer.

       STGUIADDRESS
              Override GUI listen address.  Equivalent to passing --gui-address.

       STGUIAPIKEY
              Override the API key needed to access the GUI / REST API.  Equivalent to passing --gui-apikey.

       STGUIASSETS
              Directory to load GUI assets from. Overrides compiled in assets.  Useful  for  developing  webgui,
              commonly use STGUIASSETS=gui bin/syncthing.

       STHASHING
              Specify  which hashing package to use. Defaults to automatic based on performance. Specify “minio”
              (compatibility) or “standard” for the default Go implementation.

       STHEAPPROFILE
              Write heap profiles to heap-$pid-$timestamp.pprof each time heap usage increases.

       STNODEFAULTFOLDER
              Don’t create a default folder when starting for the first time.  This  variable  will  be  ignored
              anytime after the first run.  Equivalent to the --no-default-folder flag.

       STNORESTART
              Equivalent to the --no-restart flag.

       STNOUPGRADE
              Disable automatic upgrades.  Equivalent to the --no-upgrade flag.

       STPROFILER
              Set  to  a  listen  address such as “127.0.0.1:9090” to start the profiler with HTTP access, which
              then can be reached at http://localhost:9090/debug/pprof. See go tool pprof for more information.

       STPERFSTATS
              Write running performance statistics to perf-$pid.csv. Not supported on Windows.

       STRECHECKDBEVERY
              Time before folder statistics (file, dir, … counts)  are  recalculated  from  scratch.  The  given
              duration  must  be  parseable by Go’s time.ParseDuration. If missing or not parseable, the default
              value of 1 month is used. To force recalculation on every startup, set it to 1s.

       STGCINDIRECTEVERY
              Sets the time interval in between database garbage collection runs.  The given  duration  must  be
              parseable by Go’s time.ParseDuration.

       GOMAXPROCS
              Set the maximum number of CPU cores to use. Defaults to all available CPU cores.

       GOGC   Percentage  of  heap growth at which to trigger GC. Default is 100. Lower numbers keep peak memory
              usage down, at the price of CPU usage (i.e. performance).

       LOGGER_DISCARD
              Hack to completely disable logging, for example when running  benchmarks.   Set  to  any  nonempty
              value to use it.

SEE ALSO

       syncthing-config(5),      syncthing-stignore(5),      syncthing-device-ids(7),     syncthing-security(7),
       syncthing-networking(7), syncthing-versioning(7), syncthing-faq(7)

AUTHOR

       The Syncthing Authors

COPYRIGHT

       2014-2019, The Syncthing Authors

v1.27.0                                           Dec 21, 2023                                      SYNCTHING(1)