Configuration

Configure Nokvault with global and local settings to customize its behavior.

Configuration Files

Nokvault supports two levels of configuration:

  • Global config: ~/.config/nokvault/config.toml - Applies to all projects
  • Local config: .nokvault.toml - Applies to the current directory and overrides global settings

Local configuration takes precedence over global configuration, allowing project-specific settings.

Initializing Configuration

Create a default configuration file:

# Initialize global configuration
nokvault config --init

# This creates ~/.config/nokvault/config.toml with default values

Viewing Configuration

View your current configuration settings:

# Show all configuration (global + local merged)
nokvault config --show

# Get a specific value
nokvault config --get compression
nokvault config --get keyfile

Configuration Options

Common configuration options you can set:

# Set compression default
nokvault config --set compression=true

# Set default keyfile path
nokvault config --set keyfile="~/.keys/master.key"

# Set encryption algorithm
nokvault config --set algorithm="aes-256-gcm"

# Set Argon2id parameters
nokvault config --set argon2.memory=65536
nokvault config --set argon2.iterations=3
nokvault config --set argon2.parallelism=4

Configuration File Format

Configuration files use TOML format. Example config.toml:

# Default compression setting
compression = false

# Default keyfile path
keyfile = "~/.keys/master.key"

# Encryption algorithm
algorithm = "aes-256-gcm"

# Argon2id key derivation parameters
[argon2]
memory = 65536      # Memory in KB
iterations = 3      # Number of iterations
parallelism = 4     # Number of threads

# File watching settings
[watch]
delay = "1s"
recursive = true

# Secure deletion settings
[secure_delete]
passes = 3

Environment Variables

Some settings can also be controlled via environment variables, which override config files:

# Password for non-interactive use
export NOKVAULT_PASSWORD="your-password"

# Keyfile path
export NOKVAULT_KEYFILE="~/.keys/master.key"

# Enable compression
export NOKVAULT_COMPRESSION="true"

Project-Specific Configuration

Create a .nokvault.toml file in your project directory for project-specific settings:

# .nokvault.toml
compression = true
keyfile = "./.keys/project.key"

[watch]
exclude = ["*.tmp", "*.log", "node_modules"]

This is useful for projects that need different encryption settings or keyfiles.