Skip to main content

Configuration

NetTraceX uses a hierarchical configuration system that allows you to customize the application behavior.

Configuration Hierarchy

NetTraceX loads configuration in the following order (later values override earlier ones):

  1. Default values (built-in)
  2. Configuration file (~/.config/nettracex/nettracex-tui.yaml)
  3. Environment variables (prefixed with NETTRACEX_)

Configuration File

The main configuration file is located at ~/.config/nettracex/nettracex-tui.yaml.

Creating a Configuration File

# Initialize with default configuration
nettracex --init-config

# Or create manually
mkdir -p ~/.config/nettracex
touch ~/.config/nettracex/nettracex-tui.yaml

Configuration Sections

Network Settings

network:
timeout: 30s
dns_servers:
- "8.8.8.8"
- "1.1.1.1"
retry_count: 3
retry_delay: 1s
user_agent: "NetTraceX/1.0.0"

UI Settings

ui:
theme: "auto" # auto, light, dark
key_bindings:
quit: "q"
help: "?"
refresh: "r"
animations:
enabled: true
duration: 200ms
layout:
sidebar_width: 30
status_bar_height: 1

Plugin Settings

plugins:
enabled:
- "ping"
- "traceroute"
- "dns"
- "whois"
- "ssl"
disabled: []
custom:
ping:
count: 4
interval: 1s
traceroute:
max_hops: 30
timeout: 5s

Export Settings

export:
default_format: "json" # json, csv, text
output_directory: "~/nettracex-exports"
filename_template: "nettracex-{timestamp}.{format}"
include_metadata: true

Logging Settings

logging:
level: "info" # debug, info, warn, error
format: "json" # json, text
output: "stderr" # stdout, stderr, file
file_path: "~/.config/nettracex/nettracex-tui.log"
max_size: "10MB"
max_backups: 3
max_age: 28

Environment Variables

You can override configuration using environment variables:

# Network settings
export NETTRACEX_NETWORK_TIMEOUT=60s
export NETTRACEX_NETWORK_DNS_SERVERS="8.8.8.8,1.1.1.1"

# UI settings
export NETTRACEX_UI_THEME=dark
export NETTRACEX_UI_ANIMATIONS_ENABLED=false

# Logging settings
export NETTRACEX_LOGGING_LEVEL=debug
export NETTRACEX_LOGGING_FORMAT=text

Configuration Validation

NetTraceX validates configuration on startup:

# Validate configuration
nettracex --validate-config

# Check configuration with verbose output
nettracex --config-debug

Plugin Configuration

Built-in Plugins

Ping Plugin

plugins:
ping:
count: 4
interval: 1s
timeout: 5s
packet_size: 56
ttl: 64

Traceroute Plugin

plugins:
traceroute:
max_hops: 30
timeout: 5s
packet_size: 40
protocol: "udp" # udp, tcp, icmp

DNS Plugin

plugins:
dns:
record_types:
- "A"
- "AAAA"
- "MX"
- "TXT"
timeout: 5s
retry_count: 3

WHOIS Plugin

plugins:
whois:
timeout: 10s
retry_count: 2
servers:
- "whois.iana.org"
- "whois.arin.net"

SSL Plugin

plugins:
ssl:
timeout: 10s
verify_certificate: true
check_expiry: true
check_chain: true

Custom Plugins

You can add custom plugins by creating configuration entries:

plugins:
custom:
my_plugin:
enabled: true
config:
custom_setting: "value"

Advanced Configuration

Multiple Configuration Files

You can use multiple configuration files:

# Use specific configuration file
nettracex --config /path/to/config.yaml

# Merge multiple configuration files
nettracex --config /path/to/base.yaml --config /path/to/override.yaml

Configuration Templates

Create configuration templates for different environments:

# Development configuration
nettracex --config ~/.config/nettracex/dev.yaml

# Production configuration
nettracex --config ~/.config/nettracex/prod.yaml

Troubleshooting Configuration

Common Issues

Invalid YAML Syntax

# Validate YAML syntax
yamllint ~/.config/nettracex/nettracex-tui.yaml

# Or use NetTraceX validation
nettracex --validate-config

Configuration Not Loading

  1. Check file permissions:

    ls -la ~/.config/nettracex/nettracex-tui.yaml
  2. Verify file location:

    nettracex --config-debug
  3. Check for syntax errors:

    nettracex --validate-config

Debugging

# Show current configuration
nettracex --show-config

# Show configuration sources
nettracex --config-sources

# Debug configuration loading
nettracex --config-debug

Next Steps