cli: avoid data-dir initialization for version; create db parent dirs; redact generated passwords in CLI output

- Prevent 'nx9-wg version' from creating data directories by avoiding database initialization.
- Create parent directories when an explicit --database path is provided.
- Redact printed generated administrator passwords; announce file path or redact instead.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
thakaresandCopilot committed 2026-08-16 16:26:24 +05:30
commit 2ac6c81dfe
140 files changed
+31342

No files matched your search

+127
View File
@@ -0,0 +1,127 @@
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>nx9-wg — Native WireGuard Appliance</title>
<meta name="description" content="Production Native Rust WireGuard Management Appliance for Linux">
<style>
/* STYLE_PLACEHOLDER */
</style>
</head>
<body>
<div id="app-layout">
<!-- Top Application Bar -->
<header class="topbar">
<div class="topbar-left">
<button id="menu-toggle-btn" class="menu-toggle-btn" aria-label="Toggle navigation drawer" onclick="toggleSidebar()">☰</button>
<div class="brand-logo">
<span class="brand-mark">NX9</span>
<span>nx9-wg</span>
</div>
</div>
<div class="topbar-right">
<div class="ws-indicator" id="ws-indicator" title="WebSocket Live Event Stream">
<span id="ws-dot">●</span> <span id="ws-label" style="display:none;">Live</span>
</div>
<div class="system-status-indicator" id="global-status-badge">
<span>✓</span> <span>Operational</span>
</div>
<div class="admin-badge">
<span>👤</span> <span id="admin-user-label">admin</span>
</div>
<button class="theme-toggle-btn" onclick="toggleTheme()" title="Toggle Dark/Light theme" aria-label="Toggle theme">
<span id="theme-icon">🌙</span>
</button>
<button class="btn btn-secondary btn-sm" onclick="navigateTo('settings')" title="Settings">⚙️</button>
<button class="btn btn-danger btn-sm" onclick="handleLogout()" title="Logout">Logout</button>
</div>
</header>
<div class="main-container">
<!-- Mobile Backdrop -->
<div id="mobile-overlay" class="mobile-overlay" onclick="closeSidebar()"></div>
<!-- Navigation Sidebar -->
<nav id="sidebar" class="sidebar">
<!-- Primary Navigation -->
<div class="sidebar-section">
<div class="sidebar-section-title">Primary</div>
<a href="#dashboard" class="nav-link active" onclick="navigateTo('dashboard')">
<span class="nav-icon">📊</span> Dashboard
</a>
<a href="#interfaces" class="nav-link" onclick="navigateTo('interfaces')">
<span class="nav-icon">🔌</span> Interfaces
</a>
<a href="#peers" class="nav-link" onclick="navigateTo('peers')">
<span class="nav-icon">📱</span> Peers
</a>
<a href="#networks" class="nav-link" onclick="navigateTo('networks')">
<span class="nav-icon">🌐</span> Networks
</a>
<a href="#routes" class="nav-link" onclick="navigateTo('routes')">
<span class="nav-icon">🛣️</span> Routes
</a>
<a href="#firewall" class="nav-link" onclick="navigateTo('firewall')">
<span class="nav-icon">🛡️</span> Firewall
</a>
<a href="#nat" class="nav-link" onclick="navigateTo('nat')">
<span class="nav-icon">🔀</span> NAT & Masquerade
</a>
<a href="#forwarding" class="nav-link" onclick="navigateTo('forwarding')">
<span class="nav-icon">⚡</span> IP Forwarding
</a>
</div>
<!-- Operations Navigation -->
<div class="sidebar-section">
<div class="sidebar-section-title">Operations</div>
<a href="#reconciliation" class="nav-link" onclick="navigateTo('reconciliation')">
<span class="nav-icon">🔄</span> Reconciliation
</a>
<a href="#diagnostics" class="nav-link" onclick="navigateTo('diagnostics')">
<span class="nav-icon">🩺</span> Diagnostics
</a>
<a href="#live-state" class="nav-link" onclick="navigateTo('live-state')">
<span class="nav-icon">📡</span> Live State
</a>
</div>
<!-- Administration Navigation -->
<div class="sidebar-section">
<div class="sidebar-section-title">Administration</div>
<a href="#settings" class="nav-link" onclick="navigateTo('settings')">
<span class="nav-icon">⚙️</span> Settings
</a>
<a href="#backups" class="nav-link" onclick="navigateTo('backups')">
<span class="nav-icon">💾</span> Backups
</a>
<a href="#audit" class="nav-link" onclick="navigateTo('audit')">
<span class="nav-icon">📜</span> Audit Log
</a>
<a href="#administrator" class="nav-link" onclick="navigateTo('administrator')">
<span class="nav-icon">👤</span> Administrator
</a>
</div>
</nav>
<!-- Main Content Container -->
<main id="main-content" class="content-wrapper">
<div id="page-container">
<div style="padding: 40px; text-align: center; color: var(--text-secondary);">
Loading nx9-wg native appliance...
</div>
</div>
</main>
</div>
</div>
<!-- Global Modal Container -->
<div id="modal-root" style="display: none;"></div>
<!-- Embedded Client Logic -->
<script>
/* SCRIPT_PLACEHOLDER */
</script>
</body>
</html>