Default config
Here is the default configuration file for Numeraire SwissKnife. You can find it on the GitHub repository as well.
note
The default configuration file is a toml file. SwissKnife supports toml, yaml and json config files.
Some optional and sensitive values are not added to the default configuration file. You can find them in the .env.example file and in the configuration values.
# App
invoice_expiry = "12h"
domain = "numeraire.tech"
host = "https://api.numeraire.tech"
bitcoin_address_type = "p2wpkh"
ln_provider = "cln_grpc"
auth_provider = "jwt"
dashboard_dir = "/var/www/swissknife-dashboard"
# Durable client event replay. Set retention to "0s" to disable pruning.
[client_events]
retention = "30d"
cleanup_interval = "1h"
# Web server
[web]
addr = "0.0.0.0:3000"
request_timeout = "60s"
# Core Lightning provider
[cln_grpc_config]
endpoint = "https://localhost:11002"
certs_dir = "certs/lightningd"
payment_timeout = "60s"
# maxfee = 50000 # Optional absolute routing fee cap in msat. Unset: xpay uses max(1%, 5000 msat).
[cln_rest_config]
endpoint = "http://localhost:3010"
# ca_cert_path = "certs/lightningd/ca.cert" # Optional for HTTP
rune = "CHANGE_ME" # Recommended to use secret instead
connect_timeout = "5s"
timeout = "90s"
connection_verbose = true
accept_invalid_certs = false
accept_invalid_hostnames = false
payment_timeout = "60s"
# maxfee = 50000 # Optional absolute routing fee cap in msat. Unset: xpay uses max(1%, 5000 msat).
ws_min_reconnect_delay = "1s"
ws_max_reconnect_delay = "30s"
# LND Lightning provider
[lnd_rest_config]
host = "localhost:8080"
macaroon_path = "certs/lnd/admin.macaroon"
# ca_cert_path = "certs/lnd/tls.cert"" # Optional for HTTP
connect_timeout = "5s"
timeout = "90s"
connection_verbose = true
accept_invalid_certs = false
accept_invalid_hostnames = false
payment_timeout = "60s"
fee_limit_msat = 25000
reorg_buffer_blocks = 2
[lnd_grpc_config]
endpoint = "https://localhost:10009"
cert_path = "certs/lnd/tls.cert"
macaroon_path = "certs/lnd/admin.macaroon"
payment_timeout = "60s"
fee_limit_msat = 25000
reorg_buffer_blocks = 2
# Logging
[logging]
format = "json"
ansi = false
line_number = false
thread_ids = false
thread_names = false
level = "info"
# Optional `tracing` env-filter directives. When empty/missing, `level` is used globally.
# Example: "swissknife=debug"
filter = "warn,swissknife=info"
file = false
# Authentication
[oauth2]
domain = "auth.numeraire.tech"
audience = "https://swissknife.numeraire.tech/api/v1"
jwks_refresh_interval = "1h"
leeway = "60s"
[jwt]
token_expiry = "1h"
secret = "CHANGE_ME" # Recommended to use secret instead
# Database
[database]
url = "sqlite://storage/swissknife.db?mode=rwc"
max_lifetime = "30m"
idle_timeout = "5m"
max_connections = 10
min_connections = 0
acquire_timeout = "5s"
connect_timeout = "30s"
sqlx_logging = false
# SQLite-only: how long a writer waits for the lock before failing with SQLITE_BUSY.
# Ignored for Postgres.
busy_timeout = "10s"
This file should ideally not be modified directly. Instead, you should create a new configuration file (called development.toml or production.toml) and override the default values.
You can find more information on how to do this in the configuration guide.