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):
- Default values (built-in)
- Configuration file (
~/.config/nettracex/nettracex-tui.yaml) - 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
-
Check file permissions:
ls -la ~/.config/nettracex/nettracex-tui.yaml -
Verify file location:
nettracex --config-debug -
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
- Quick Start Guide - Get up and running quickly
- API Reference - Complete API documentation
- Plugin Development - Learn how to create custom plugins