diff --git a/crates/toride-audit/Cargo.toml b/crates/toride-audit/Cargo.toml index c5e6312..e78e1b9 100644 --- a/crates/toride-audit/Cargo.toml +++ b/crates/toride-audit/Cargo.toml @@ -6,6 +6,8 @@ description = "Linux audit daemon, file integrity monitoring, and log management license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["audit", "auditd", "integrity", "aide", "logging"] +categories = ["os", "filesystem"] [[bin]] name = "toride-audit" diff --git a/crates/toride-backup/Cargo.toml b/crates/toride-backup/Cargo.toml index 5a9acc1..a5b0016 100644 --- a/crates/toride-backup/Cargo.toml +++ b/crates/toride-backup/Cargo.toml @@ -7,6 +7,8 @@ description = "Backup scheduling and management via restic or borg" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["backup", "restic", "borg", "scheduling", "restore"] +categories = ["os", "filesystem"] [lib] name = "toride_backup" diff --git a/crates/toride-cloud/Cargo.toml b/crates/toride-cloud/Cargo.toml index 020a31a..8789847 100644 --- a/crates/toride-cloud/Cargo.toml +++ b/crates/toride-cloud/Cargo.toml @@ -6,6 +6,8 @@ description = "Cloud provider security group and firewall management" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["cloud", "firewall", "security-group", "aws", "vps"] +categories = ["network-programming", "os"] [[bin]] name = "toride-cloud" diff --git a/crates/toride-diagnostic-types/Cargo.toml b/crates/toride-diagnostic-types/Cargo.toml index c948808..cdcc8b3 100644 --- a/crates/toride-diagnostic-types/Cargo.toml +++ b/crates/toride-diagnostic-types/Cargo.toml @@ -6,6 +6,8 @@ description = "Shared diagnostic types: Severity, Finding, DoctorReport, and ren license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["diagnostics", "severity", "finding", "health", "report"] +categories = ["development-tools"] [features] default = [] diff --git a/crates/toride-fail2ban/Cargo.toml b/crates/toride-fail2ban/Cargo.toml index 7584b52..047391e 100644 --- a/crates/toride-fail2ban/Cargo.toml +++ b/crates/toride-fail2ban/Cargo.toml @@ -7,6 +7,8 @@ description = "Fail2Ban-style intrusion prevention library" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["fail2ban", "intrusion-prevention", "ban", "firewall", "security"] +categories = ["os", "network-programming"] [features] # `config` is on by default so the `detector_scan` criterion bench (which needs diff --git a/crates/toride-harden/Cargo.toml b/crates/toride-harden/Cargo.toml index dbf4103..ce9879d 100644 --- a/crates/toride-harden/Cargo.toml +++ b/crates/toride-harden/Cargo.toml @@ -6,6 +6,8 @@ description = "System hardening via sysctl kernel parameters and security profil license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["hardening", "sysctl", "security", "kernel", "linux"] +categories = ["os"] [features] default = ["client", "doctor"] diff --git a/crates/toride-monitor/Cargo.toml b/crates/toride-monitor/Cargo.toml index bcde107..3dfacba 100644 --- a/crates/toride-monitor/Cargo.toml +++ b/crates/toride-monitor/Cargo.toml @@ -7,6 +7,8 @@ description = "Outbound traffic monitoring and anomaly detection" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["monitoring", "traffic", "anomaly-detection", "network", "netstat"] +categories = ["network-programming", "os"] [lib] name = "toride_monitor" diff --git a/crates/toride-proxy/Cargo.toml b/crates/toride-proxy/Cargo.toml index 357d2e8..11dc8c0 100644 --- a/crates/toride-proxy/Cargo.toml +++ b/crates/toride-proxy/Cargo.toml @@ -6,6 +6,8 @@ description = "Reverse proxy, TLS certificate, and WAF management" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["reverse-proxy", "nginx", "caddy", "tls", "certificate"] +categories = ["network-programming", "os"] [[bin]] name = "toride-proxy" diff --git a/crates/toride-service/Cargo.toml b/crates/toride-service/Cargo.toml index 24f1c2f..2eb2de9 100644 --- a/crates/toride-service/Cargo.toml +++ b/crates/toride-service/Cargo.toml @@ -6,6 +6,8 @@ description = "Shared systemd service management utilities" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["systemd", "service", "systemctl", "daemon", "unit"] +categories = ["os"] [features] default = ["client"] diff --git a/crates/toride-ssh/Cargo.toml b/crates/toride-ssh/Cargo.toml index 923dc90..6dd968c 100644 --- a/crates/toride-ssh/Cargo.toml +++ b/crates/toride-ssh/Cargo.toml @@ -6,6 +6,8 @@ description = "Async SSH manager library: a unified facade over the toride-ssh k license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "openssh", "async", "keys", "remote-access"] +categories = ["network-programming", "authentication", "asynchronous"] [features] default = [ diff --git a/crates/toride-ssh/crates/agent/Cargo.toml b/crates/toride-ssh/crates/agent/Cargo.toml index ef966e8..983d7b2 100644 --- a/crates/toride-ssh/crates/agent/Cargo.toml +++ b/crates/toride-ssh/crates/agent/Cargo.toml @@ -6,6 +6,8 @@ description = "SSH agent management: listing, adding, and removing keys" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "agent", "ssh-agent", "keys", "identity"] +categories = ["authentication", "network-programming"] [features] default = [] diff --git a/crates/toride-ssh/crates/authorized-keys/Cargo.toml b/crates/toride-ssh/crates/authorized-keys/Cargo.toml index 5b5f751..bd4f557 100644 --- a/crates/toride-ssh/crates/authorized-keys/Cargo.toml +++ b/crates/toride-ssh/crates/authorized-keys/Cargo.toml @@ -6,6 +6,8 @@ description = "authorized_keys file management: listing, adding, removing, and q license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "authorized-keys", "openssh", "keys", "access"] +categories = ["authentication", "filesystem"] [dependencies] toride-ssh-core = { path = "../core", version = "0.1.0" } diff --git a/crates/toride-ssh/crates/certificate/Cargo.toml b/crates/toride-ssh/crates/certificate/Cargo.toml index 65eb6e2..71e73bc 100644 --- a/crates/toride-ssh/crates/certificate/Cargo.toml +++ b/crates/toride-ssh/crates/certificate/Cargo.toml @@ -6,6 +6,8 @@ description = "SSH certificate authority and key revocation list (KRL) inspectio license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "certificate", "ca", "krl", "revocation"] +categories = ["authentication", "cryptography"] [dependencies] toride-ssh-core = { path = "../core", version = "0.1.0" } diff --git a/crates/toride-ssh/crates/config/Cargo.toml b/crates/toride-ssh/crates/config/Cargo.toml index 7f2b114..92d8bdf 100644 --- a/crates/toride-ssh/crates/config/Cargo.toml +++ b/crates/toride-ssh/crates/config/Cargo.toml @@ -6,6 +6,8 @@ description = "SSH config file parsing, editing, and host resolution via a lossl license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "config", "ssh-config", "parser", "ast"] +categories = ["config", "network-programming"] [dependencies] toride-ssh-core = { path = "../core", version = "0.1.0" } diff --git a/crates/toride-ssh/crates/core/Cargo.toml b/crates/toride-ssh/crates/core/Cargo.toml index 2e5d01b..3573364 100644 --- a/crates/toride-ssh/crates/core/Cargo.toml +++ b/crates/toride-ssh/crates/core/Cargo.toml @@ -6,6 +6,8 @@ description = "Shared types, errors, path resolution, CLI runner abstraction, an license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "types", "errors", "paths", "shared"] +categories = ["network-programming"] [dependencies] ssh-key = { version = "0.7.0-rc.10", features = ["ed25519", "rsa", "p256", "crypto", "std"] } diff --git a/crates/toride-ssh/crates/doctor/Cargo.toml b/crates/toride-ssh/crates/doctor/Cargo.toml index 0f7a8ab..5cb09c5 100644 --- a/crates/toride-ssh/crates/doctor/Cargo.toml +++ b/crates/toride-ssh/crates/doctor/Cargo.toml @@ -6,6 +6,8 @@ description = "SSH environment diagnostics: local and remote doctor checks for p license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "doctor", "diagnostics", "health-check", "connectivity"] +categories = ["network-programming", "development-tools"] [dependencies] toride-ssh-core = { path = "../core", version = "0.1.0" } diff --git a/crates/toride-ssh/crates/forward/Cargo.toml b/crates/toride-ssh/crates/forward/Cargo.toml index 4618d90..5ec1573 100644 --- a/crates/toride-ssh/crates/forward/Cargo.toml +++ b/crates/toride-ssh/crates/forward/Cargo.toml @@ -6,6 +6,8 @@ description = "Port forwarding management via SSH ControlMaster sessions" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "port-forwarding", "tunnel", "controlmaster", "async"] +categories = ["network-programming", "asynchronous"] [dependencies] toride-ssh-core = { path = "../core", version = "0.1.0" } diff --git a/crates/toride-ssh/crates/key/Cargo.toml b/crates/toride-ssh/crates/key/Cargo.toml index 5c24f13..234ebb9 100644 --- a/crates/toride-ssh/crates/key/Cargo.toml +++ b/crates/toride-ssh/crates/key/Cargo.toml @@ -6,6 +6,8 @@ description = "SSH key lifecycle management: generation, inventory, installation license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "keys", "keygen", "ed25519", "key-management"] +categories = ["authentication", "cryptography"] [features] default = [] diff --git a/crates/toride-ssh/crates/known-hosts/Cargo.toml b/crates/toride-ssh/crates/known-hosts/Cargo.toml index 3ae4f7b..4caee21 100644 --- a/crates/toride-ssh/crates/known-hosts/Cargo.toml +++ b/crates/toride-ssh/crates/known-hosts/Cargo.toml @@ -6,6 +6,8 @@ description = "Known-hosts file parsing and host-key change detection" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["ssh", "known-hosts", "host-keys", "fingerprint", "hashing"] +categories = ["authentication", "network-programming"] [dependencies] toride-ssh-core = { path = "../core", version = "0.1.0" } diff --git a/crates/toride-status/Cargo.toml b/crates/toride-status/Cargo.toml index 9af742c..74d36fd 100644 --- a/crates/toride-status/Cargo.toml +++ b/crates/toride-status/Cargo.toml @@ -6,6 +6,8 @@ description = "Point-in-time host status snapshots: OS metrics, daemon liveness, license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["status", "metrics", "system", "monitoring", "snapshot"] +categories = ["os"] [lib] name = "toride_status" diff --git a/crates/toride-tailscale/Cargo.toml b/crates/toride-tailscale/Cargo.toml index 5ccfcad..e39ce6d 100644 --- a/crates/toride-tailscale/Cargo.toml +++ b/crates/toride-tailscale/Cargo.toml @@ -6,6 +6,8 @@ description = "Tailscale mesh VPN management via HTTP API" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["tailscale", "vpn", "mesh", "api", "network"] +categories = ["network-programming", "api-bindings"] # A library crate can also ship a binary target. `cargo run -p toride-tailscale # --features cli` builds this entry point, which parses the CLI and dispatches diff --git a/crates/toride-updates/Cargo.toml b/crates/toride-updates/Cargo.toml index 91a3ffd..1b24ab2 100644 --- a/crates/toride-updates/Cargo.toml +++ b/crates/toride-updates/Cargo.toml @@ -7,6 +7,8 @@ description = "Automatic security update management for Linux VPS hosts" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["updates", "security-updates", "unattended", "apt", "dnf"] +categories = ["os"] [lib] name = "toride_updates" diff --git a/crates/toride-users/Cargo.toml b/crates/toride-users/Cargo.toml index 7988f67..b3e5da6 100644 --- a/crates/toride-users/Cargo.toml +++ b/crates/toride-users/Cargo.toml @@ -6,6 +6,8 @@ description = "OS-level user, sudo, PAM, and 2FA management" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["user-management", "sudo", "pam", "totp", "2fa"] +categories = ["os", "authentication"] [[bin]] name = "toride-users" diff --git a/crates/toride-wireguard/Cargo.toml b/crates/toride-wireguard/Cargo.toml index 86d43d0..83d610a 100644 --- a/crates/toride-wireguard/Cargo.toml +++ b/crates/toride-wireguard/Cargo.toml @@ -6,6 +6,8 @@ description = "WireGuard VPN tunnel management" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["wireguard", "vpn", "tunnel", "networking", "wg"] +categories = ["network-programming", "os"] [features] default = ["client", "doctor"] diff --git a/crates/toride/Cargo.toml b/crates/toride/Cargo.toml index 30b2d11..d2635b6 100644 --- a/crates/toride/Cargo.toml +++ b/crates/toride/Cargo.toml @@ -6,6 +6,8 @@ description = "Terminal user interface (TUI) for hardened Linux host management" license.workspace = true repository.workspace = true readme = "README.md" +keywords = ["sysadmin", "tui", "dashboard", "linux", "monitoring"] +categories = ["command-line-utilities", "os"] [lib] name = "toride" diff --git a/crates/ufw-kit-test-support/Cargo.toml b/crates/ufw-kit-test-support/Cargo.toml index c704add..4fbd1b5 100644 --- a/crates/ufw-kit-test-support/Cargo.toml +++ b/crates/ufw-kit-test-support/Cargo.toml @@ -6,6 +6,8 @@ license.workspace = true repository.workspace = true readme = "README.md" description = "Test utilities for ufw-kit" +keywords = ["ufw", "firewall", "testing", "test-support", "fixtures"] +categories = ["development-tools"] [dependencies] ufw-kit = { path = "../ufw-kit", version = "0.1.0", features = ["client", "doctor", "app-profile", "framework", "service", "firewall-nft", "firewall-iptables"] } diff --git a/crates/ufw-kit/Cargo.toml b/crates/ufw-kit/Cargo.toml index 2667905..97a8737 100644 --- a/crates/ufw-kit/Cargo.toml +++ b/crates/ufw-kit/Cargo.toml @@ -6,6 +6,8 @@ license.workspace = true repository.workspace = true readme = "README.md" description = "Safely manage, inspect, validate, and diagnose UFW firewall installations" +keywords = ["ufw", "firewall", "iptables", "security", "linux"] +categories = ["os", "network-programming"] [features] default = ["client", "doctor", "app-profile"]