klutshnik.cfg(5)
π klutshnik.cfg(5) β klutshnik client configuration π
okay bestie, welcome to the config file glow-up guide for the klutshnik client β¨
πΈ NAME πΈ
klutshnik.cfg β the configuration for the klutshnik client, klutshnik. that's it, that's the name, slay π
β¨ DESCRIPTION β¨
this page spills all the tea on the format of this file and the many ways you can configure the klutshnik CLI client π«Ά
so here's the vibe: the client goes looking for its config in these files, in this exact order:
/etc/klutshnik/config~/.config/klutshnik/config~/.klutshnikrc./klutshnik.cfg
the config file format is TOML, no cap. go look at https://toml.io/ if you need the lore π
π [Client] SECTION π
this section is where all the general options of the client live. main character energy only π
π§ ID_SALT
this value gets fed into generating keyids for your records. you must set/change this value β it's literally what makes your record ids unique π
you must also make sure you never lose this value. like, ever. if you lose it, you lose access to your records. periodt. π
no default, must be set.
π’ THRESHOLD
this value sets the threshold for your server configuration. it's tightly dependent on how many servers you've configured in the [servers] section β they're besties, they move together π―
so in order to be able to rotate your DEK keys, you need to have at least (t-1)*2 + 1 servers configured in your [servers] section. for the smallest threshold setup, this value is 2 and you need three servers configured in your [servers] section. the upper limit of this value is 63, but honestly it's highly optimistic to run such large setups reliably β it's giving "delulu" π
β±οΈ TS_EPSILON
the time in seconds a distributed keygen (DKG) protocol message is considered fresh. anything older than this is considered invalid and aborts a DKG π«
higher values help with laggy links, lower values can be fine if you have high-speed connections to all servers. default: 1200s β
π CLIENTKEY_PATH
this variable is a path pointing at a file containing a secret master key of the client. if this value is not set, it's expected on standard input for all operations that require this key π
leaving this value commented out allows you to pipe in the private key from password managers, or other more secure storage than the filesystem. iconic behaviour honestly π
if this path is set, but the file does not exist, klutshnik init will initialize this file.
ποΈ LTSIGPUB
this variable must be set to the public long-term signing key of the client. this public key must be base64 encoded, and this encoded value prefixed by the string "KLTPK-". the operation klutshnik init initialized this value β¨
π DEBUG
this is a boolean variable which enables a lot of low-level debug information. if you love seeing the guts of everything, this is your moment π
π£οΈ VERBOSE
this is a boolean variable which makes the client more verbose. yapper mode: ON π«Ά
π¦ KEYSTORE
this variable holds a path where the public key, their shares and threshold setup information for each of your keys is stored.
π¦ [servers] SECTION π¦
this section contains the list of servers for the client. the number of items in this list needs one more entry than the value of threshold β but in order to benefit from key updates, the number of servers must be (t-1)*2 +1, where t is the threshold value configured in the [client] section. math girly math π₯
servers are in their own sections, with the following pattern:
[servers.<name>]
where name should be unique among all servers. simple labels like kms1, kms2, etc. are totally fine π
π ADDRESS
this can be either an IPv4 or IPv6 address to listen on.
πͺ PORT
the port the server listens on.
π SSL_CERT
this variable is a path pointing at a file containing a TLS certificate. this is only needed for TLS certificates that are self-signed or otherwise not in signed by CAs in your CA store π
π LTSIGKEY
this variable is a path pointing at a file containing a public long-term signing key of the server. you need to get this from the operators of the klutshnik server π
π NOISEKEY
this variable is a path pointing at a file containing a public long-term Noise key of the server. you need to get this from the operators of the klutshnik server π§
π FILES π
/etc/klutshnik/config~/.config/klutshnik/config~/.klutshnikrc./klutshnik.cfg
π SECURITY CONSIDERATIONS π
you SHOULD back up your configuration file, most importantly the value of id_salt and your ltsigkey. seriously bestie, back it up. future you will thank present you π
π REPORTING BUGS π
https://github.com/stef/klutshnik/issues/
π AUTHOR π
written by Stefan Marsiske.
βοΈ COPYRIGHT βοΈ
Copyright Β© 2025 Stefan Marsiske. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html (https://gnu.org/licenses/gpl.html).
this is free software: you are free to change and redistribute it. there is NO WARRANTY, to the extent permitted by law.
π SEE ALSO π
and that's the whole page, babe π
this was klutshnik.cfg(5), read it, love it, back up your id_salt β mwah π«Άβ¨π
π¦ where this page comes from
- ubuntu stonking: klutshnik 0.4.1-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms