mirror of
https://github.com/myronblair/novacpx
synced 2026-06-30 17:50:41 -05:00
Add full API endpoint suite, lib managers, webmail (Roundcube :8883), and NovaCPX icon/branding assets
- 14 API endpoints: accounts, packages, domains, dns, email, databases, ftp, ssl, cron, php, files, stats, webmail, server_setup - 8 lib managers: AccountManager, VhostManager, DNSManager, EmailManager, DatabaseManager, PHPManager, FTPManager, SSLManager - Roundcube webmail on dedicated port 8883 (sequenced after 8880/8881/8882) - Custom NovaCPX SVG icon sprite (30+ unique icons), logo, mark, favicon - PORT_WEBMAIL=8883 wired into Core.php, install.sh, UFW, Fail2Ban, credentials file Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||
<rect width="32" height="32" rx="6" fill="#0d0f17"/>
|
||||
<polygon points="16,3 27,9 27,21 16,27 5,21 5,9" fill="none" stroke="#6366f1" stroke-width="2"/>
|
||||
<circle cx="16" cy="15" r="5" fill="none" stroke="#0ea5e9" stroke-width="1.5" stroke-dasharray="2 1.5"/>
|
||||
<circle cx="16" cy="15" r="2.5" fill="#6366f1"/>
|
||||
<circle cx="16" cy="9.5" r="1.2" fill="#6366f1"/>
|
||||
<circle cx="21" cy="18" r="1.2" fill="#0ea5e9"/>
|
||||
<circle cx="11" cy="18" r="1.2" fill="#10b981"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 534 B |
@@ -0,0 +1,329 @@
|
||||
<!-- NovaCPX Custom Icon Sprite — inline <use href="#icon-name"/> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
|
||||
|
||||
<!-- Dashboard / home -->
|
||||
<symbol id="ni-dashboard" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="2" y="3" width="9" height="9" rx="1.5"/>
|
||||
<rect x="13" y="3" width="9" height="5" rx="1.5"/>
|
||||
<rect x="13" y="11" width="9" height="9" rx="1.5"/>
|
||||
<rect x="2" y="15" width="9" height="5" rx="1.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Accounts / users -->
|
||||
<symbol id="ni-accounts" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="9" cy="7" r="4"/>
|
||||
<path d="M2 21c0-4 3-7 7-7h4c4 0 7 3 7 7"/>
|
||||
<circle cx="19" cy="9" r="2.5"/>
|
||||
<path d="M22 19c0-2.5-1.5-4.5-3.5-5.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Resellers -->
|
||||
<symbol id="ni-resellers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polygon points="12,2 15,8.5 22,9.5 17,14 18.5,21 12,17.5 5.5,21 7,14 2,9.5 9,8.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Packages -->
|
||||
<symbol id="ni-packages" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/>
|
||||
<polyline points="3.27 6.96 12 12.01 20.73 6.96"/>
|
||||
<line x1="12" y1="22.08" x2="12" y2="12"/>
|
||||
</symbol>
|
||||
|
||||
<!-- DNS -->
|
||||
<symbol id="ni-dns" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<path d="M12 2a14.5 14.5 0 0 0 0 20A14.5 14.5 0 0 0 12 2"/>
|
||||
<line x1="2" y1="12" x2="22" y2="12"/>
|
||||
<line x1="12" y1="2" x2="12" y2="22"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Email -->
|
||||
<symbol id="ni-email" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>
|
||||
<polyline points="22,6 12,13 2,6"/>
|
||||
<line x1="12" y1="13" x2="12" y2="20"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Databases -->
|
||||
<symbol id="ni-databases" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<ellipse cx="12" cy="5" rx="9" ry="3"/>
|
||||
<path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"/>
|
||||
<path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- FTP -->
|
||||
<symbol id="ni-ftp" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="3" width="8" height="6" rx="1"/>
|
||||
<rect x="13" y="3" width="8" height="6" rx="1"/>
|
||||
<rect x="3" y="13" width="8" height="6" rx="1"/>
|
||||
<path d="M17 13v4m-2-2h4"/>
|
||||
</symbol>
|
||||
|
||||
<!-- SSL / Lock -->
|
||||
<symbol id="ni-ssl" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="5" y="11" width="14" height="11" rx="2"/>
|
||||
<path d="M8 11V7a4 4 0 1 1 8 0v4"/>
|
||||
<circle cx="12" cy="16" r="1.5" fill="currentColor" stroke="none"/>
|
||||
<line x1="12" y1="17.5" x2="12" y2="19.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- PHP -->
|
||||
<symbol id="ni-php" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<ellipse cx="12" cy="12" rx="10" ry="6"/>
|
||||
<path d="M9 10v4m0-4h2a1.5 1.5 0 0 1 0 3H9"/>
|
||||
<path d="M14 10v4m0-4h2a1.5 1.5 0 0 1 0 3H14"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Cron / clock -->
|
||||
<symbol id="ni-cron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<polyline points="12 6 12 12 16 14"/>
|
||||
<path d="M16 2l2 3M8 2L6 5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- File Manager -->
|
||||
<symbol id="ni-files" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>
|
||||
<line x1="9" y1="14" x2="15" y2="14"/>
|
||||
<line x1="12" y1="11" x2="12" y2="17"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Domains / Web -->
|
||||
<symbol id="ni-domains" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="3" width="18" height="13" rx="2"/>
|
||||
<line x1="3" y1="7" x2="21" y2="7"/>
|
||||
<line x1="7" y1="21" x2="17" y2="21"/>
|
||||
<line x1="12" y1="16" x2="12" y2="21"/>
|
||||
<circle cx="6" cy="5" r="0.8" fill="currentColor" stroke="none"/>
|
||||
<circle cx="9" cy="5" r="0.8" fill="currentColor" stroke="none"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Server / System -->
|
||||
<symbol id="ni-server" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="2" y="3" width="20" height="7" rx="1.5"/>
|
||||
<rect x="2" y="13" width="20" height="7" rx="1.5"/>
|
||||
<circle cx="6" cy="6.5" r="1.2" fill="currentColor" stroke="none"/>
|
||||
<circle cx="6" cy="16.5" r="1.2" fill="currentColor" stroke="none"/>
|
||||
<line x1="10" y1="6.5" x2="16" y2="6.5"/>
|
||||
<line x1="10" y1="16.5" x2="16" y2="16.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Features / Plugin -->
|
||||
<symbol id="ni-features" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M14.5 2H9.5a1 1 0 0 0-.9.5l-4 7a1 1 0 0 0 0 1l4 7a1 1 0 0 0 .9.5h5a1 1 0 0 0 .9-.5l4-7a1 1 0 0 0 0-1l-4-7a1 1 0 0 0-.9-.5z"/>
|
||||
<circle cx="12" cy="12" r="2.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Updates / Git -->
|
||||
<symbol id="ni-updates" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="1 4 1 10 7 10"/>
|
||||
<path d="M3.51 15a9 9 0 1 0 .49-3.51"/>
|
||||
<polyline points="12 7 12 12 15 15"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Firewall / Shield -->
|
||||
<symbol id="ni-firewall" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
||||
<line x1="12" y1="9" x2="12" y2="13"/>
|
||||
<line x1="12" y1="15" x2="12.01" y2="15"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Backups -->
|
||||
<symbol id="ni-backups" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="21 15 21 21 15 21"/>
|
||||
<polyline points="3 9 3 3 9 3"/>
|
||||
<path d="M21 3L14 10"/>
|
||||
<path d="M3 21l7-7"/>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Settings / Gear -->
|
||||
<symbol id="ni-settings" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="3.5"/>
|
||||
<path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Audit Log -->
|
||||
<symbol id="ni-audit" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
|
||||
<polyline points="14 2 14 8 20 8"/>
|
||||
<line x1="8" y1="13" x2="16" y2="13"/>
|
||||
<line x1="8" y1="17" x2="12" y2="17"/>
|
||||
<circle cx="16" cy="17" r="2"/>
|
||||
<line x1="18" y1="19" x2="20" y2="21"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Webmail -->
|
||||
<symbol id="ni-webmail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10z"/>
|
||||
<path d="M12 8a4 4 0 0 1 0 8 4 4 0 0 1 0-8z"/>
|
||||
<path d="M16 12h6M2 12h6"/>
|
||||
</symbol>
|
||||
|
||||
<!-- WordPress -->
|
||||
<symbol id="ni-wordpress" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<path d="M2.48 12s3.22 7 9.52 7 9.52-7 9.52-7"/>
|
||||
<path d="M12 2c2.8 2 5 5.8 5 10s-2.2 8-5 10"/>
|
||||
<path d="M12 2c-2.8 2-5 5.8-5 10s2.2 8 5 10"/>
|
||||
<line x1="2" y1="12" x2="22" y2="12"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Docker -->
|
||||
<symbol id="ni-docker" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="2" y="9" width="4" height="4" rx="0.5"/>
|
||||
<rect x="7" y="9" width="4" height="4" rx="0.5"/>
|
||||
<rect x="12" y="9" width="4" height="4" rx="0.5"/>
|
||||
<rect x="7" y="4" width="4" height="4" rx="0.5"/>
|
||||
<path d="M18 11a4 4 0 0 1 4 4c0 3-3 5-7 5H6c-2 0-4-1.5-4-4 0-1.8 1-3.5 3-4.5"/>
|
||||
<path d="M20 7s-1-1-3-1"/>
|
||||
<circle cx="20" cy="6" r="1" fill="currentColor" stroke="none"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Node.js -->
|
||||
<symbol id="ni-nodejs" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polygon points="12,2 22,7.5 22,16.5 12,22 2,16.5 2,7.5"/>
|
||||
<path d="M12 7v5l4 2.5"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Redis -->
|
||||
<symbol id="ni-redis" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<ellipse cx="12" cy="8" rx="9" ry="3"/>
|
||||
<path d="M3 8v4c0 1.66 4.03 3 9 3s9-1.34 9-3V8"/>
|
||||
<path d="M3 12v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4"/>
|
||||
<path d="M8 6l2 1 4-2"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Cloudflare -->
|
||||
<symbol id="ni-cloudflare" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M17.5 16c.83-1.5.5-4-2.5-4.5l.3-1.5C18 9.5 21 11 21 14.5c0 1-.2 2-.8 2.5H17.5z"/>
|
||||
<path d="M6.5 16H17m-3-4.5C12.5 8 8 8 6 10.5c-1 1.5-1 3-0.5 4.5"/>
|
||||
<path d="M3 15c0 .55.45 1 1 1h1"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Gitea -->
|
||||
<symbol id="ni-git" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="18" cy="18" r="3"/>
|
||||
<circle cx="6" cy="6" r="3"/>
|
||||
<circle cx="6" cy="18" r="3"/>
|
||||
<path d="M6 9v6"/>
|
||||
<path d="M15.7 5.7l-9.4 12.6"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Suspend / pause -->
|
||||
<symbol id="ni-suspend" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<line x1="10" y1="8" x2="10" y2="16"/>
|
||||
<line x1="14" y1="8" x2="14" y2="16"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Terminate / X -->
|
||||
<symbol id="ni-terminate" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<line x1="15" y1="9" x2="9" y2="15"/>
|
||||
<line x1="9" y1="9" x2="15" y2="15"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Stats / Chart -->
|
||||
<symbol id="ni-stats" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Notifications / bell -->
|
||||
<symbol id="ni-notifications" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
|
||||
<path d="M13.73 21a2 2 0 0 1-3.46 0"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Hostname -->
|
||||
<symbol id="ni-hostname" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="11" width="18" height="11" rx="2"/>
|
||||
<path d="M7 11V7a5 5 0 0 1 10 0v4"/>
|
||||
<line x1="12" y1="15" x2="12" y2="18"/>
|
||||
<circle cx="12" cy="15" r="1" fill="currentColor" stroke="none"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Add / Plus -->
|
||||
<symbol id="ni-add" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<line x1="12" y1="8" x2="12" y2="16"/>
|
||||
<line x1="8" y1="12" x2="16" y2="12"/>
|
||||
</symbol>
|
||||
|
||||
<!-- User profile -->
|
||||
<symbol id="ni-profile" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="8" r="4"/>
|
||||
<path d="M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Logout -->
|
||||
<symbol id="ni-logout" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>
|
||||
<polyline points="16 17 21 12 16 7"/>
|
||||
<line x1="21" y1="12" x2="9" y2="12"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Search -->
|
||||
<symbol id="ni-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="11" cy="11" r="8"/>
|
||||
<line x1="21" y1="21" x2="16.65" y2="16.65"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Copy -->
|
||||
<symbol id="ni-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="9" y="9" width="13" height="13" rx="2"/>
|
||||
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Key / API -->
|
||||
<symbol id="ni-key" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Mail server -->
|
||||
<symbol id="ni-mailserver" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="2" y="6" width="20" height="14" rx="2"/>
|
||||
<path d="M22 6l-10 7L2 6"/>
|
||||
<path d="M2 6l4-4h12l4 4"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Docs / book -->
|
||||
<symbol id="ni-docs" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/>
|
||||
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/>
|
||||
<line x1="8" y1="7" x2="16" y2="7"/>
|
||||
<line x1="8" y1="11" x2="14" y2="11"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Contact / support -->
|
||||
<symbol id="ni-support" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
||||
<line x1="9" y1="10" x2="9.01" y2="10"/>
|
||||
<line x1="12" y1="10" x2="12.01" y2="10"/>
|
||||
<line x1="15" y1="10" x2="15.01" y2="10"/>
|
||||
</symbol>
|
||||
|
||||
<!-- ModSecurity / WAF -->
|
||||
<symbol id="ni-waf" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
||||
<polyline points="9 12 11 14 15 10"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Varnish / cache -->
|
||||
<symbol id="ni-cache" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/>
|
||||
</symbol>
|
||||
|
||||
<!-- Network / IP -->
|
||||
<symbol id="ni-network" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="9" y="2" width="6" height="4" rx="1"/>
|
||||
<rect x="2" y="18" width="6" height="4" rx="1"/>
|
||||
<rect x="16" y="18" width="6" height="4" rx="1"/>
|
||||
<rect x="9" y="18" width="6" height="4" rx="1"/>
|
||||
<line x1="12" y1="6" x2="12" y2="14"/>
|
||||
<path d="M5 20v-6h14v6"/>
|
||||
<line x1="12" y1="14" x2="5" y2="14"/>
|
||||
<line x1="12" y1="14" x2="19" y2="14"/>
|
||||
</symbol>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,26 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 48">
|
||||
<defs>
|
||||
<linearGradient id="ng" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#6366f1"/>
|
||||
<stop offset="60%" stop-color="#0ea5e9"/>
|
||||
<stop offset="100%" stop-color="#10b981"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="ng2" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" stop-color="#6366f1" stop-opacity="1"/>
|
||||
<stop offset="100%" stop-color="#0ea5e9" stop-opacity="0.7"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Hexagon core mark -->
|
||||
<polygon points="24,4 40,13 40,31 24,40 8,31 8,13" fill="none" stroke="url(#ng)" stroke-width="2.5"/>
|
||||
<!-- Inner orbit ring -->
|
||||
<circle cx="24" cy="22" r="7" fill="none" stroke="url(#ng)" stroke-width="1.5" stroke-dasharray="3 2"/>
|
||||
<!-- Central dot -->
|
||||
<circle cx="24" cy="22" r="3" fill="url(#ng)"/>
|
||||
<!-- Orbit node dots -->
|
||||
<circle cx="24" cy="14" r="1.5" fill="#6366f1"/>
|
||||
<circle cx="31" cy="26" r="1.5" fill="#0ea5e9"/>
|
||||
<circle cx="17" cy="26" r="1.5" fill="#10b981"/>
|
||||
<!-- Wordmark -->
|
||||
<text x="52" y="32" font-family="'SF Pro Display','Segoe UI',sans-serif" font-size="22" font-weight="700" fill="url(#ng)" letter-spacing="-0.5">Nova</text>
|
||||
<text x="118" y="32" font-family="'SF Pro Display','Segoe UI',sans-serif" font-size="22" font-weight="300" fill="#94a3b8" letter-spacing="2">CPX</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,15 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
|
||||
<defs>
|
||||
<linearGradient id="mg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#6366f1"/>
|
||||
<stop offset="60%" stop-color="#0ea5e9"/>
|
||||
<stop offset="100%" stop-color="#10b981"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<polygon points="24,4 40,13 40,31 24,40 8,31 8,13" fill="none" stroke="url(#mg)" stroke-width="2.5"/>
|
||||
<circle cx="24" cy="22" r="7" fill="none" stroke="url(#mg)" stroke-width="1.5" stroke-dasharray="3 2"/>
|
||||
<circle cx="24" cy="22" r="3" fill="url(#mg)"/>
|
||||
<circle cx="24" cy="14" r="1.5" fill="#6366f1"/>
|
||||
<circle cx="31" cy="26" r="1.5" fill="#0ea5e9"/>
|
||||
<circle cx="17" cy="26" r="1.5" fill="#10b981"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 731 B |
Reference in New Issue
Block a user