GNUTaler

Advanced electronic payment system for privacy-preserving payments

This project is funded by NLnet through these subgrants:

Options

programs.taler
programs.taler.enable

Whether to enable GNU Taler.

Type:
boolean
Default:
false
services.taler.exchange.debug

Whether to enable debug logging.

Type:
boolean
Default:
false
services.taler.exchange.denominationConfig

This option configures the cash denomination for the coins that the exchange offers. For more information, consult the upstream docs.

You can either write these manually or you can use the taler-harness deployment gen-coin-config command to generate it.

Warning: Do not modify existing denominations after deployment. Please see the upstream docs for how to safely do that.

Type:
strings concatenated with "\n"
Default:
"None, you must set this yourself."
services.taler.exchange.enable

Whether to enable the GNU Taler exchange.

Type:
boolean
Default:
false
services.taler.exchange.openFirewall

Whether to open ports in the firewall

Type:
boolean
Default:
false
services.taler.exchange.package

The taler-exchange package to use.

Type:
package
Default:
pkgs.taler-exchange
services.taler.exchange.settings

Configuration options for the taler exchange config file.

For a list of all possible options, please see the man page taler-exchange.conf(5)

Type:
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))
Default:
{ }
services.taler.exchange.settings.exchange.AML_THRESHOLD

Monthly transaction volume until an account is considered suspicious and flagged for AML review.

Type:
string
Default:
"1000000 in {option}`CURRENCY`"
services.taler.exchange.settings.exchange.DB

Plugin to use for the database.

Type:
value "postgres" (singular enum)
Default:
"postgres"
services.taler.exchange.settings.exchange.MASTER_PUBLIC_KEY

Used by the exchange to verify information signed by the offline system.

Type:
string
Default:
""
services.taler.exchange.settings.exchange.PORT

Port on which the HTTP server listens.

Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8081
services.taler.exchange.settings.exchangedb-postgres.CONFIG

Database connection URI.

Type:
non-empty string
Default:
"postgres:///taler-exchange-httpd"
services.taler.includes

Files to include into the config file using Taler's @inline@ directive.

This allows including arbitrary INI files, including imperatively managed ones.

Type:
list of absolute path
Default:
[ ]
services.taler.merchant.debug

Whether to enable debug logging.

Type:
boolean
Default:
false
services.taler.merchant.enable

Whether to enable the GNU Taler merchant.

Type:
boolean
Default:
false
services.taler.merchant.openFirewall

Whether to open ports in the firewall

Type:
boolean
Default:
false
services.taler.merchant.package

The taler-merchant package to use.

Type:
package
Default:
pkgs.taler-merchant
services.taler.merchant.settings

Configuration options for the taler merchant config file.

For a list of all possible options, please see the man page taler-merchant.conf(5)

Type:
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))
Default:
{ }
services.taler.merchant.settings.merchant.DB

Plugin to use for the database.

Type:
value "postgres" (singular enum)
Default:
"postgres"
services.taler.merchant.settings.merchant.LEGAL_PRESERVATION

How long to keep data in the database for tax audits after the transaction has completed.

Type:
string
Default:
"10 years"
services.taler.merchant.settings.merchant.PORT

Port on which the HTTP server listens.

Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8083
services.taler.merchant.settings.merchant.SERVE

Whether the HTTP server should listen on a UNIX domain socket ("unix") or on a TCP socket ("tcp").

Type:
one of "tcp", "unix"
Default:
"tcp"
services.taler.merchant.settings.merchantdb-postgres.CONFIG

Database connection URI.

Type:
non-empty string
Default:
"postgres:///taler-merchant-httpd"
services.taler.runtimeDir

Runtime directory shared between the taler services.

Crypto helpers put their sockets here for instance and the httpd connects to them.

Type:
string
Default:
"/run/taler-system-runtime/"
services.taler.settings

Global configuration options for the taler config file.

For a list of all possible options, please see the man page taler.conf(5)

Type:
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))
Default:
{ }
services.taler.settings.taler.CURRENCY

The currency which taler services will operate with. This cannot be changed later.

Type:
non-empty string
services.taler.settings.taler.CURRENCY_ROUND_UNIT

Smallest amount in this currency that can be transferred using the underlying RTGS.

You should probably not touch this.

Type:
string
Default:
"${config.services.taler.settings.taler.CURRENCY}:0.01"

Examples

Backup with anastasis
{ ... }:
{
  programs.taler.enable = true;
}
Basic GNU Taler configuration
{ ... }:
{
  imports = [
    ./taler.nix
    ./libeufin.nix
    ./merchant.nix
    ./client.nix
  ];
}