SYNC.CONF(5)

πŸ“¦ version 1.3.0, in nixos 26.05, nixpkgs unstable

πŸ’– SYNC.CONF(5) β€” the sync configuration file ✨

okay so bestie, welcome to sync.conf(5), the manual page for the Sync configuration file from GNU Taler 🌈 this is your whole guide to how these config files work, and trust me, it's lowkey iconic once you get it. let's go 🫢


✨ DESCRIPTION ✨

The configuration file is line-oriented, periodt. Blank lines are ignored, and so is whitespace at the beginning and end of a line πŸŽ€

Comments start with # or % in the first column (after any beginning-of-line whitespace) and go to the end of the line πŸ’…

The file is split into sections. Every section begins with [SECTIONNAME] and contains a number of options of the form OPTION=VALUE. There may be whitespace around the = (equal sign). Section names and options are case-insensitive ✨

The values, however, are case-sensitive πŸ”₯ In particular, boolean values are one of YES or NO. Values can include whitespace by surrounding the entire value with " (double quote). Note, however, that there are no escape characters in such strings; all characters between the double quotes (including other double quotes) are taken verbatim πŸ‘‘

Values that represent a time duration are represented as a series of one or more NUMBER UNIT pairs, e.g. 60 s, 4 weeks 1 day, 5 years 2 minutes ⏳

Values that represent an amount are in the usual amount syntax: CURRENCY:VALUE.FRACTION, e.g. EUR:1.50. The FRACTION portion may extend up to 8 places πŸ’Έ

Values that represent filenames can begin with a /bin/sh-like variable reference. This can be simple, such as $TMPDIR/foo, or complex, such as ${TMPDIR:-${TMP:-/tmp}}/foo. The variables are expanded either using key-values from the [PATHS] section (see below) or from the environment (getenv()). The values from [PATHS] take precedence over those from the environment πŸ₯‡ If the variable name is found in neither [PATHS] nor the environment, a warning is printed and the value is left unchanged. Variables (including those from the environment) are expanded recursively, so if FOO=$BAR and BAR=buzz then the result is FOO=buzz. Recursion is bounded to at most 128 levels to avoid undefined behavior for mutually recursive expansions like if BAR=$FOO in the example above πŸŒ€

The [PATHS] section is special in that it contains paths that can be referenced using $ in other configuration values that specify filenames πŸ—‚οΈ Note that configuration options that are not specifically retrieved by the application as filenames will not see β€œ$”-expressions expanded. To expand $-expressions when using taler-config, you must pass the -f command-line option πŸ‘€

The system automatically pre-populates the [PATHS] section with a few values at run-time (in addition to the values that are in the actual configuration file and automatically overwriting those values if they are present) 🧚 These automatically generated values refer to installation properties from GNU autoconf. The values are usually dependent on an INSTALL_PREFIX which is determined by the --prefix option given to configure. The canonical values are:

  • LIBEXECDIR = $INSTALL_PREFIX/taler/libexec/
  • DOCDIR = $INSTALL_PREFIX/share/doc/taler/
  • ICONDIR = $INSTALL_PREFIX/share/icons/
  • LOCALEDIR = $INSTALL_PREFIX/share/locale/
  • PREFIX = $INSTALL_PREFIX/
  • BINDIR = $INSTALL_PREFIX/bin/
  • LIBDIR = $INSTALL_PREFIX/lib/taler/
  • DATADIR = $INSTALL_PREFIX/share/taler/

Note that on some platforms, the given paths may differ depending on how the system was compiled or installed, the above are just the canonical locations of the various resources 🌸 These automatically generated values are never written to disk πŸ™ˆ

Files containing default values for many of the options described below are installed under $PREFIX/share/sync/config.d/. The configuration file given with -c to Sync binaries overrides these defaults πŸ’«

A configuration file may include another, by using the @INLINE@ directive, for example, in main.conf, you could write @INLINE@ sub.conf to include the entirety of sub.conf at that point in main.conf πŸͺ„

⚠️ Be extra careful when using sync-config -V VALUE to change configuration values: it will destroy all uses of @INLINE@ and furthermore remove all comments from the configuration file! 😭 no cap, it really does.

🌟 GLOBAL OPTIONS 🌟

The following options are from the [sync] section. This is normally the only section in a sync.conf file πŸ’–

  • SERVE β€” Should the HTTP server listen on a UNIX domain socket (set option to "unix"), or on a TCP socket (set option to "tcp"), or be activated via systemd (set option to "systemd") πŸŽ€
  • PORT β€” Port on which the HTTP server listens, e.g. 9967. Only used if SERVE is tcp πŸ”Œ
  • BIND_TO β€” Which IP address should we bind to? E.g. 127.0.0.1 or ::1 for loopback. Can also be given as a hostname. We will bind to the wildcard (dual-stack) if left empty. Only used if SERVE is tcp 🌐
  • UNIXPATH β€” Which unix domain path should we bind to? Only used if SERVE is unix 🐚
  • UNIXPATH_MODE = 660 β€” What should be the file access permissions for UNIXPATH? Only used if SERVE is unix πŸ”
  • DB β€” Plugin to use for the database, e.g. β€œpostgres” πŸ—„οΈ
  • ANNUAL_FEE β€” Annual fee for an account. This is in the usual amount syntax, e.g. TESTKUDOS:0.1 πŸ’°
  • INSURANCE β€” Insurance provided against loss, e.g. TESTKUDOS:0.0 πŸ›‘οΈ
  • UPLOAD_LIMIT_MB β€” Upload limit per backup, in megabytes, e.g. 16 πŸ“¦
  • FULFILLMENT_URL β€” Fulfillment URL of the SYNC service itself πŸ”—
  • PAYMENT_BACKEND_URL β€” Base URL of our payment backend 🏦
  • API_KEY β€” API key to pass when accessing the merchant backend. This is a secret value 🀫

πŸ‘€ SEE ALSO πŸ‘€

sync-dbinit(1), sync-httpd(1), sync-config(1) β€” go read those next, bestie πŸ¦‹


πŸ’€ BUGS πŸ’€

Report bugs by using https://bugs.taler.net/ or by sending electronic mail to <taler@gnu.org> πŸ“¬


πŸ‘‘ AUTHOR πŸ‘‘

GNU Taler contributors 🌈


2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+) ⭐


and that's the whole page, bestie!! this was version 1.0, dated Dec 22, 2025 β€” go forth and configure, you've got this πŸ’œπŸ«Άβœ¨

πŸ“¦ where this page comes from