mirror of
https://git.pvv.ntnu.no/Drift/pvv-nixos-config.git
synced 2025-01-31 06:44:52 +01:00
94 lines
3.2 KiB
Nix
94 lines
3.2 KiB
Nix
|
{
|
||
|
lib,
|
||
|
config,
|
||
|
options,
|
||
|
...
|
||
|
}:
|
||
|
{
|
||
|
imports = [ (import ./common.nix "bank") ];
|
||
|
|
||
|
options.services.libeufin.bank = {
|
||
|
initialAccounts = lib.mkOption {
|
||
|
type = lib.types.listOf lib.types.attrs;
|
||
|
description = ''
|
||
|
Accounts to enable before the bank service starts.
|
||
|
|
||
|
This is mainly needed for the nexus currency conversion
|
||
|
since the exchange's bank account is expected to be already
|
||
|
registered.
|
||
|
|
||
|
Don't forget to change the account passwords afterwards.
|
||
|
'';
|
||
|
default = [ ];
|
||
|
};
|
||
|
|
||
|
settings = lib.mkOption {
|
||
|
description = ''
|
||
|
Configuration options for the libeufin bank system config file.
|
||
|
|
||
|
For a list of all possible options, please see the man page [`libeufin-bank.conf(5)`](https://docs.taler.net/manpages/libeufin-bank.conf.5.html)
|
||
|
'';
|
||
|
type = lib.types.submodule {
|
||
|
inherit (options.services.libeufin.settings.type.nestedTypes) freeformType;
|
||
|
options = {
|
||
|
libeufin-bank = {
|
||
|
CURRENCY = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
description = ''
|
||
|
The currency under which the libeufin-bank should operate.
|
||
|
|
||
|
This defaults to the GNU taler module's currency for convenience
|
||
|
but if you run libeufin-bank separately from taler, you must set
|
||
|
this yourself.
|
||
|
'';
|
||
|
};
|
||
|
PORT = lib.mkOption {
|
||
|
type = lib.types.port;
|
||
|
default = 8082;
|
||
|
description = ''
|
||
|
The port on which libeufin-bank should listen.
|
||
|
'';
|
||
|
};
|
||
|
SUGGESTED_WITHDRAWAL_EXCHANGE = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
default = "https://exchange.demo.taler.net/";
|
||
|
description = ''
|
||
|
Exchange that is suggested to wallets when withdrawing.
|
||
|
|
||
|
Note that, in order for withdrawals to work, your libeufin-bank
|
||
|
must be able to communicate with and send money etc. to the bank
|
||
|
at which the exchange used for withdrawals has its bank account.
|
||
|
|
||
|
If you also have your own bank and taler exchange network, you
|
||
|
probably want to set one of your exchange's url here instead of
|
||
|
the demo exchange.
|
||
|
|
||
|
This setting must always be set in order for the Android app to
|
||
|
not crash during the withdrawal process but the exchange to be
|
||
|
used can always be changed in the app.
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
libeufin-bankdb-postgres = {
|
||
|
CONFIG = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
description = ''
|
||
|
The database connection string for the libeufin-bank database.
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = {
|
||
|
services.libeufin.bank.settings.libeufin-bank.CURRENCY = lib.mkIf (
|
||
|
config.services.taler.enable && (config.services.taler.settings.taler ? CURRENCY)
|
||
|
) config.services.taler.settings.taler.CURRENCY;
|
||
|
|
||
|
services.libeufin.bank.settings.libeufin-bankdb-postgres.CONFIG = lib.mkIf config.services.libeufin.bank.createLocalDatabase "postgresql:///libeufin-bank";
|
||
|
};
|
||
|
}
|
||
|
|