brand asset library, wiki branding guide, and v0.3.3 release
@@ -1,13 +1,18 @@
|
||||
<p align="center">
|
||||
<img src="assets/logo_banner.svg" alt="LOGAR Banner" width="750"/>
|
||||
</p>
|
||||
|
||||
# LOGAR: Fleet Log Aggregation & Centralized Provisioning System
|
||||
### *Secure Log Aggregation, PKI Fleet Licensing & Centralized Delivery for Autonomous AI Analysis*
|
||||
|
||||
[](RELEASE_NOTES.md)
|
||||
[](tests/)
|
||||
[](RELEASE_NOTES.md)
|
||||
[](tests/)
|
||||
[](https://gitea.eibl.tech/me0nline/LOGAR/wiki/PKI-and-Licensing)
|
||||
[](wiki/Branding-Guide.md)
|
||||
|
||||
**LOGAR** is an enterprise-grade log aggregation, normalization, and centralized provisioning system built for heterogeneous server fleets (Windows & Linux). It pairs ultra-lightweight, zero-state edge forwarders with a secure centralized server hub that enforces mutual TLS 1.3 (**mTLS**) authentication, dynamic PKI fleet licensing with cryptographic seat leasing, 12-hour temporal persistence tracking, and direct anomaly pass-through—delivering clean, structured, verified log telemetry directly to **Hermes AI** for autonomous deep reasoning, contextual root-cause analysis, and operational decision-making.
|
||||
|
||||
> 📚 **Comprehensive Technical Documentation**: Full architectural specifications, state machines, PKI X.509 OID definitions, and complete REST API references are maintained on the **[LOGAR Gitea Wiki](https://gitea.eibl.tech/me0nline/LOGAR/wiki)**.
|
||||
> 📚 **Comprehensive Technical Documentation**: Full architectural specifications, state machines, PKI X.509 OID definitions, branding assets, and complete REST API references are maintained on the **[LOGAR Gitea Wiki](https://gitea.eibl.tech/me0nline/LOGAR/wiki)**.
|
||||
|
||||
---
|
||||
|
||||
@@ -107,8 +112,17 @@ Once installed or executed, access the web console:
|
||||
|
||||
```
|
||||
LOGAR/
|
||||
├── assets/ # Official vector SVGs, PNGs, ICOs, and branding bitmaps
|
||||
│ ├── logo.svg # Master vector emblem
|
||||
│ ├── logo_transparent.svg # Transparent WebUI emblem
|
||||
│ ├── logo_banner.svg # Full brand banner
|
||||
│ ├── logo.ico / favicon.ico # Application & web icons
|
||||
│ └── wizard_*.bmp # Installer dialog bitmaps
|
||||
├── wiki/ # Comprehensive documentation & guides
|
||||
│ └── Branding-Guide.md # Official visual identity and design system
|
||||
├── .gitea/workflows/ # CI/CD pipelines (ci.yml, release.yml)
|
||||
├── compilation/ # Build scripts, Linux installers & Inno Setup scripts
|
||||
│ ├── generate_branding_assets.py # Asset & bitmap generator
|
||||
│ ├── install_linux_client.sh # Linux client systemd auto-installer
|
||||
│ ├── install_linux_server.sh # Linux server systemd auto-installer
|
||||
│ ├── package_dist.py # Standalone binary cross-compiler
|
||||
@@ -118,7 +132,7 @@ LOGAR/
|
||||
│ ├── server_enrollment.py # Sub-CA PKI and certificate generator
|
||||
│ ├── Win_Client.py # Windows edge forwarder
|
||||
│ └── Linux_Client.py # Linux edge forwarder
|
||||
├── tests/ # Automated test suites (35 unit tests + pipeline test)
|
||||
├── tests/ # Automated test suites (42 unit & integration tests)
|
||||
├── LOGAR-LICENSING/ # Standalone Master License Authority (Git submodule)
|
||||
├── RELEASE_NOTES.md # Version history and security changelog
|
||||
└── README.md # Repository overview
|
||||
@@ -146,7 +160,7 @@ LOGAR/
|
||||
## Testing & Cross-Compilation
|
||||
|
||||
```bash
|
||||
# Run full unit test suite (35 tests)
|
||||
# Run full unit test suite (42 tests)
|
||||
python -m unittest discover -s tests -v
|
||||
|
||||
# Run end-to-end mTLS pipeline integration test
|
||||
@@ -162,6 +176,7 @@ python compilation/package_dist.py --target all
|
||||
|
||||
For in-depth operational guides, lifecycle state machines, and PKI specifications, consult the **[LOGAR Gitea Wiki](https://gitea.eibl.tech/me0nline/LOGAR/wiki)**:
|
||||
|
||||
* [Branding & Design System Guide](https://gitea.eibl.tech/me0nline/LOGAR/wiki/Branding-Guide)
|
||||
* [Architecture & Design Details](https://gitea.eibl.tech/me0nline/LOGAR/wiki/Architecture-and-Design)
|
||||
* [System State Machines & Subsystem Lifecycles](https://gitea.eibl.tech/me0nline/LOGAR/wiki/State-Machines-and-Lifecycles)
|
||||
* [PKI Architecture & Custom X.509 Seat OIDs](https://gitea.eibl.tech/me0nline/LOGAR/wiki/PKI-and-Licensing)
|
||||
|
||||
@@ -1,6 +1,20 @@
|
||||
# LOGAR Release v0.3.2
|
||||
# LOGAR Release Notes
|
||||
|
||||
### 🪟 Windows Installer Fixes
|
||||
## [v0.3.3] - 2026-09-27
|
||||
|
||||
### 🎨 Brand Identity, Centralized Asset Library & Design System
|
||||
- **Centralized `/assets` Repository**: Added official vector graphics (`logo.svg`, `logo_transparent.svg`, `logo_dark.svg`, `logo_banner.svg`), high-resolution master PNGs (16px to 512px), multi-resolution Windows ICOs (`logo.ico`, `favicon.ico`), and installer dialog bitmaps (`wizard_header.bmp`, `wizard_small.bmp`, `wizard_sidebar.bmp`).
|
||||
- **Official Wiki Branding Guide**: Published comprehensive visual identity standards at `wiki/Branding-Guide.md` detailing logo anatomy, color palettes (Cyber Cyan `#00E5FF`, Emerald `#00FFA3`, Dark Navy `#0E1A2E`), typography, clear-space rules, dos and don'ts, and strict non-SIEM positioning.
|
||||
- **Unified Interface & Tab Branding**: Implemented transparent vector logos on all web navigation bars and browser tabs across both the LOGAR Server Hub (`:8443`) and Master Licensing Authority (`logar.eibl.tech`).
|
||||
- **Clean Installer Bitmaps**: Regenerated 24-bit RGB header bitmaps with seamless white backgrounds (`#FFFFFF`) matching native Windows Inno Setup wizard dialogs.
|
||||
- **Automated Asset Pipeline**: Enhanced `compilation/generate_branding_assets.py` to deterministically compile and distribute assets across main repo, compilation subdirectories, and the licensing submodule without third-party graphics dependencies.
|
||||
|
||||
---
|
||||
|
||||
## [v0.3.2] - 2026-09-27
|
||||
|
||||
### 🪟 Windows Installer & Web Portal Enhancements
|
||||
- **Project Showcase Landing Page**: Deployed high-impact public homepage at `GET /` on the licensing authority with architecture diagrams, quickstart commands, and direct navigation to Gitea, Wiki, and the Licensing Portal (`/licensing`).
|
||||
- **Standalone Windows Binaries & Python Runtime**: Resolved issues with standalone Windows executable execution and bundled runtime paths.
|
||||
- **Data Directory Selection & Permissions**: Added custom data directory selection during setup and fixed permissions for background Windows services.
|
||||
- **Service Lifecycle & Clean Uninstallation**: Resolved service startup issues and ensured complete cleanup of state files upon uninstallation.
|
||||
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 351 B |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 650 B |
|
After Width: | Height: | Size: 921 B |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,54 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 240" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bannerBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="100%" stop-color="#070C18"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="textCyan" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#00FFA3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="bannerGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background Card -->
|
||||
<rect width="960" height="240" rx="16" fill="url(#bannerBg)" stroke="#162A45" stroke-width="2"/>
|
||||
|
||||
<!-- Left Emblem Group (scaled & positioned) -->
|
||||
<g transform="translate(40, 20) scale(0.39)">
|
||||
<!-- Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="#0E1A2E" stroke="url(#cyanGrad)" stroke-width="12" filter="url(#bannerGlow)"/>
|
||||
<!-- Inner Telemetry Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="4" stroke-dasharray="10 8"/>
|
||||
<!-- Stylized L & Telemetry Bars -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
<!-- Connection Points -->
|
||||
<circle cx="238" cy="190" r="9" fill="#00FFA3"/>
|
||||
<circle cx="304" cy="130" r="9" fill="#00E5FF"/>
|
||||
<circle cx="380" cy="349" r="10" fill="#00E5FF"/>
|
||||
</g>
|
||||
|
||||
<!-- Typography & Tagline -->
|
||||
<text x="270" y="98" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="56" font-weight="900" letter-spacing="4" fill="url(#textCyan)" filter="url(#bannerGlow)">LOGAR</text>
|
||||
<text x="272" y="142" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="600" fill="#E2E8F0" letter-spacing="0.5">Fleet Log Aggregation & Telemetry Hub</text>
|
||||
<text x="272" y="174" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="13" font-weight="400" fill="#00E5FF" letter-spacing="1">ZERO-STATE FORWARDERS • MUTUAL TLS 1.3 • TEMPORAL PERSISTENCE</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 151 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 351 B |
|
After Width: | Height: | Size: 650 B |
|
After Width: | Height: | Size: 921 B |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,54 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 240" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bannerBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="100%" stop-color="#070C18"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="textCyan" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#00FFA3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="bannerGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background Card -->
|
||||
<rect width="960" height="240" rx="16" fill="url(#bannerBg)" stroke="#162A45" stroke-width="2"/>
|
||||
|
||||
<!-- Left Emblem Group (scaled & positioned) -->
|
||||
<g transform="translate(40, 20) scale(0.39)">
|
||||
<!-- Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="#0E1A2E" stroke="url(#cyanGrad)" stroke-width="12" filter="url(#bannerGlow)"/>
|
||||
<!-- Inner Telemetry Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="4" stroke-dasharray="10 8"/>
|
||||
<!-- Stylized L & Telemetry Bars -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
<!-- Connection Points -->
|
||||
<circle cx="238" cy="190" r="9" fill="#00FFA3"/>
|
||||
<circle cx="304" cy="130" r="9" fill="#00E5FF"/>
|
||||
<circle cx="380" cy="349" r="10" fill="#00E5FF"/>
|
||||
</g>
|
||||
|
||||
<!-- Typography & Tagline -->
|
||||
<text x="270" y="98" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="56" font-weight="900" letter-spacing="4" fill="url(#textCyan)" filter="url(#bannerGlow)">LOGAR</text>
|
||||
<text x="272" y="142" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="600" fill="#E2E8F0" letter-spacing="0.5">Fleet Log Aggregation & Telemetry Hub</text>
|
||||
<text x="272" y="174" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="13" font-weight="400" fill="#00E5FF" letter-spacing="1">ZERO-STATE FORWARDERS • MUTUAL TLS 1.3 • TEMPORAL PERSISTENCE</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
LOGAR Branding & Installer Graphics Generator
|
||||
Generates clean, professional SVG, PNG, ICO, and BMP visual assets for
|
||||
LOGAR installers (Inno Setup & NSIS), application icons, and WebUI branding.
|
||||
LOGAR installers (Inno Setup & NSIS), application icons, root /assets library, and WebUI branding.
|
||||
Zero external dependencies required (uses standard library zlib and struct).
|
||||
"""
|
||||
|
||||
@@ -9,9 +9,15 @@ import os
|
||||
import math
|
||||
import zlib
|
||||
import struct
|
||||
import shutil
|
||||
|
||||
ASSETS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets")
|
||||
os.makedirs(ASSETS_DIR, exist_ok=True)
|
||||
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
ROOT_ASSETS_DIR = os.path.join(ROOT_DIR, "assets")
|
||||
COMPILATION_ASSETS_DIR = os.path.join(ROOT_DIR, "compilation", "assets")
|
||||
LICENSING_ASSETS_DIR = os.path.join(ROOT_DIR, "LOGAR-LICENSING", "assets")
|
||||
|
||||
for d in (ROOT_ASSETS_DIR, COMPILATION_ASSETS_DIR, LICENSING_ASSETS_DIR):
|
||||
os.makedirs(d, exist_ok=True)
|
||||
|
||||
|
||||
def create_bmp_24bit(width: int, height: int, pixel_func) -> bytes:
|
||||
@@ -80,7 +86,7 @@ def create_png_rgba(width: int, height: int, pixel_func) -> bytes:
|
||||
|
||||
|
||||
def draw_logo_rgba(x: int, y: int, w: int, h: int) -> tuple:
|
||||
"""Renders a sleek modern cyberpunk hexagon shield and pulse log streams."""
|
||||
"""Renders a sleek modern hexagon shield and pulse log streams."""
|
||||
nx = (x - w / 2) / (w / 2)
|
||||
ny = (y - h / 2) / (h / 2)
|
||||
dist = math.sqrt(nx * nx + ny * ny)
|
||||
@@ -148,7 +154,7 @@ def draw_wizard_header_white_bgr(x: int, y: int, w: int, h: int) -> tuple:
|
||||
"""
|
||||
bg_r, bg_g, bg_b = 255, 255, 255
|
||||
|
||||
# Position emblem cleanly on the left (center x = 30, center y = h / 2)
|
||||
# Position emblem cleanly on the left (center x = 28, center y = h / 2)
|
||||
icon_center_x = 28
|
||||
icon_center_y = h / 2
|
||||
icon_radius = 22
|
||||
@@ -192,7 +198,7 @@ def draw_wizard_sidebar_bgr(x: int, y: int, w: int, h: int) -> tuple:
|
||||
"""Renders 164x314 BMP sidebar graphic for NSIS / Inno Setup."""
|
||||
t_y = y / h
|
||||
|
||||
# Deep cyber navy to midnight blue vertical gradient
|
||||
# Deep navy to midnight blue vertical gradient
|
||||
r = int(10 * (1 - t_y) + 4 * t_y)
|
||||
g = int(22 * (1 - t_y) + 12 * t_y)
|
||||
b = int(48 * (1 - t_y) + 26 * t_y)
|
||||
@@ -262,9 +268,13 @@ def generate_ico_file(png_images: list) -> bytes:
|
||||
return header + bytes(entries) + b"".join(image_data_blocks)
|
||||
|
||||
|
||||
def generate_svg_logo() -> str:
|
||||
def generate_svg_logo(transparent_bg: bool = False) -> str:
|
||||
"""Generates a high-quality SVG vector graphic for LOGAR."""
|
||||
return """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
bg_polygon = "" if transparent_bg else """ <!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>"""
|
||||
|
||||
return f"""<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
@@ -288,9 +298,7 @@ def generate_svg_logo() -> str:
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>
|
||||
{bg_polygon}
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
@@ -309,56 +317,125 @@ def generate_svg_logo() -> str:
|
||||
</svg>"""
|
||||
|
||||
|
||||
def generate_svg_banner() -> str:
|
||||
"""Generates a wide SVG banner with emblem and modern typography."""
|
||||
return """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 240" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bannerBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="100%" stop-color="#070C18"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="textCyan" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#00FFA3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="bannerGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background Card -->
|
||||
<rect width="960" height="240" rx="16" fill="url(#bannerBg)" stroke="#162A45" stroke-width="2"/>
|
||||
|
||||
<!-- Left Emblem Group (scaled & positioned) -->
|
||||
<g transform="translate(40, 20) scale(0.39)">
|
||||
<!-- Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="#0E1A2E" stroke="url(#cyanGrad)" stroke-width="12" filter="url(#bannerGlow)"/>
|
||||
<!-- Inner Telemetry Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="4" stroke-dasharray="10 8"/>
|
||||
<!-- Stylized L & Telemetry Bars -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
<!-- Connection Points -->
|
||||
<circle cx="238" cy="190" r="9" fill="#00FFA3"/>
|
||||
<circle cx="304" cy="130" r="9" fill="#00E5FF"/>
|
||||
<circle cx="380" cy="349" r="10" fill="#00E5FF"/>
|
||||
</g>
|
||||
|
||||
<!-- Typography & Tagline -->
|
||||
<text x="270" y="98" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="56" font-weight="900" letter-spacing="4" fill="url(#textCyan)" filter="url(#bannerGlow)">LOGAR</text>
|
||||
<text x="272" y="142" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="600" fill="#E2E8F0" letter-spacing="0.5">Fleet Log Aggregation & Telemetry Hub</text>
|
||||
<text x="272" y="174" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="13" font-weight="400" fill="#00E5FF" letter-spacing="1">ZERO-STATE FORWARDERS • MUTUAL TLS 1.3 • TEMPORAL PERSISTENCE</text>
|
||||
</svg>"""
|
||||
|
||||
|
||||
def main():
|
||||
print("[*] Generating high-resolution branding assets for LOGAR...")
|
||||
print("[*] Generating comprehensive branding assets for LOGAR...")
|
||||
|
||||
# 1. Generate SVG Logo
|
||||
svg_path = os.path.join(ASSETS_DIR, "logo.svg")
|
||||
with open(svg_path, "w", encoding="utf-8") as f:
|
||||
f.write(generate_svg_logo())
|
||||
print(f"[+] Saved SVG logo: {svg_path}")
|
||||
# 1. Generate SVG Logos
|
||||
svg_logo_dark = generate_svg_logo(transparent_bg=False)
|
||||
svg_logo_trans = generate_svg_logo(transparent_bg=True)
|
||||
svg_banner = generate_svg_banner()
|
||||
|
||||
# 2. Generate PNG images of various sizes
|
||||
# 2. Generate PNG images across multiple dimensions
|
||||
png_sizes = [16, 32, 48, 64, 128, 256, 512]
|
||||
png_buffers = []
|
||||
png_dict = {}
|
||||
for s in png_sizes:
|
||||
png_data = create_png_rgba(s, s, draw_logo_rgba)
|
||||
png_buffers.append((s, s, png_data))
|
||||
if s in [256, 512]:
|
||||
out_p = os.path.join(ASSETS_DIR, f"logo_{s}x{s}.png" if s != 512 else "logo.png")
|
||||
with open(out_p, "wb") as f:
|
||||
f.write(png_data)
|
||||
print(f"[+] Saved PNG logo: {out_p}")
|
||||
png_dict[s] = png_data
|
||||
|
||||
# 3. Generate Windows ICO File
|
||||
ico_path = os.path.join(ASSETS_DIR, "logo.ico")
|
||||
ico_data = generate_ico_file(png_buffers[:-1]) # Up to 256x256
|
||||
with open(ico_path, "wb") as f:
|
||||
f.write(ico_data)
|
||||
print(f"[+] Saved Windows Icon (.ico): {ico_path}")
|
||||
# 3. Generate Windows ICO File (multi-res 16..256)
|
||||
ico_data = generate_ico_file(png_buffers[:-1])
|
||||
|
||||
# 4. Generate NSIS / Inno Setup Wizard Header Bitmap (150x57) with seamless white background
|
||||
header_bmp_path = os.path.join(ASSETS_DIR, "wizard_header.bmp")
|
||||
# 4. Generate BMP files for installers
|
||||
header_bmp_data = create_bmp_24bit(150, 57, draw_wizard_header_white_bgr)
|
||||
with open(header_bmp_path, "wb") as f:
|
||||
f.write(header_bmp_data)
|
||||
print(f"[+] Saved Wizard Header Bitmap (White Background): {header_bmp_path}")
|
||||
|
||||
# 5. Generate Inno Setup Small Wizard Bitmap (55x55) with seamless white background
|
||||
small_bmp_path = os.path.join(ASSETS_DIR, "wizard_small.bmp")
|
||||
small_bmp_data = create_bmp_24bit(55, 55, draw_wizard_small_bgr)
|
||||
with open(small_bmp_path, "wb") as f:
|
||||
f.write(small_bmp_data)
|
||||
print(f"[+] Saved Small Wizard Bitmap (55x55): {small_bmp_path}")
|
||||
|
||||
# 6. Generate NSIS / Inno Setup Wizard Sidebar Bitmap (164x314)
|
||||
sidebar_bmp_path = os.path.join(ASSETS_DIR, "wizard_sidebar.bmp")
|
||||
sidebar_bmp_data = create_bmp_24bit(164, 314, draw_wizard_sidebar_bgr)
|
||||
with open(sidebar_bmp_path, "wb") as f:
|
||||
f.write(sidebar_bmp_data)
|
||||
print(f"[+] Saved Wizard Sidebar Bitmap: {sidebar_bmp_path}")
|
||||
|
||||
print("[+] All LOGAR branding and installer graphics generated successfully.")
|
||||
# 5. Write to target directories
|
||||
for target_dir in (ROOT_ASSETS_DIR, COMPILATION_ASSETS_DIR, LICENSING_ASSETS_DIR):
|
||||
# SVGs
|
||||
with open(os.path.join(target_dir, "logo.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_logo_dark)
|
||||
with open(os.path.join(target_dir, "logo_dark.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_logo_dark)
|
||||
with open(os.path.join(target_dir, "logo_transparent.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_logo_trans)
|
||||
with open(os.path.join(target_dir, "logo_banner.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_banner)
|
||||
|
||||
# PNGs
|
||||
with open(os.path.join(target_dir, "logo.png"), "wb") as f:
|
||||
f.write(png_dict[512])
|
||||
for s in png_sizes:
|
||||
with open(os.path.join(target_dir, f"logo_{s}x{s}.png"), "wb") as f:
|
||||
f.write(png_dict[s])
|
||||
|
||||
# ICOs
|
||||
with open(os.path.join(target_dir, "logo.ico"), "wb") as f:
|
||||
f.write(ico_data)
|
||||
with open(os.path.join(target_dir, "favicon.ico"), "wb") as f:
|
||||
f.write(ico_data)
|
||||
|
||||
# BMPs
|
||||
with open(os.path.join(target_dir, "wizard_header.bmp"), "wb") as f:
|
||||
f.write(header_bmp_data)
|
||||
with open(os.path.join(target_dir, "wizard_small.bmp"), "wb") as f:
|
||||
f.write(small_bmp_data)
|
||||
with open(os.path.join(target_dir, "wizard_sidebar.bmp"), "wb") as f:
|
||||
f.write(sidebar_bmp_data)
|
||||
|
||||
print(f"[+] Populated asset repository: {target_dir}")
|
||||
|
||||
print("[+] All LOGAR branding assets, icons, and banners generated successfully!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Setup]
|
||||
AppName=LOGAR Client
|
||||
AppVersion=0.3.2
|
||||
AppPublisher=LOGAR Security Systems
|
||||
AppVersion=0.3.3
|
||||
AppPublisher=LOGAR
|
||||
AppPublisherURL=https://logar.eibl.tech
|
||||
AppSupportURL=https://logar.eibl.tech
|
||||
AppUpdatesURL=https://logar.eibl.tech
|
||||
@@ -15,11 +15,11 @@ WizardStyle=modern
|
||||
SetupIconFile=assets\logo.ico
|
||||
WizardImageFile=assets\wizard_sidebar.bmp
|
||||
WizardSmallImageFile=assets\wizard_small.bmp
|
||||
VersionInfoCompany=LOGAR Security Systems
|
||||
VersionInfoCompany=LOGAR
|
||||
VersionInfoDescription=LOGAR Windows Edge Log Forwarder Setup
|
||||
VersionInfoVersion=0.3.2.0
|
||||
VersionInfoVersion=0.3.3.0
|
||||
VersionInfoProductName=LOGAR Client
|
||||
VersionInfoProductVersion=0.3.2
|
||||
VersionInfoProductVersion=0.3.3
|
||||
|
||||
[Files]
|
||||
Source: "..\dist\Win_Client.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
|
||||
@@ -9,13 +9,13 @@ RequestExecutionLevel admin
|
||||
|
||||
BrandingText "LOGAR Centralized Log Aggregator & Forwarder"
|
||||
|
||||
VIProductVersion "0.3.2.0"
|
||||
VIProductVersion "0.3.3.0"
|
||||
VIAddVersionKey "ProductName" "LOGAR Client"
|
||||
VIAddVersionKey "CompanyName" "LOGAR Security Systems"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR Security Systems"
|
||||
VIAddVersionKey "CompanyName" "LOGAR"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR"
|
||||
VIAddVersionKey "FileDescription" "LOGAR Windows Edge Log Forwarder Setup"
|
||||
VIAddVersionKey "FileVersion" "0.3.2.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.2.0"
|
||||
VIAddVersionKey "FileVersion" "0.3.3.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.3.0"
|
||||
|
||||
# --- Visual Graphics & Branding ---
|
||||
!define MUI_ICON "assets/logo.ico"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Setup]
|
||||
AppName=LOGAR Server
|
||||
AppVersion=0.3.2
|
||||
AppPublisher=LOGAR Security Systems
|
||||
AppVersion=0.3.3
|
||||
AppPublisher=LOGAR
|
||||
AppPublisherURL=https://logar.eibl.tech
|
||||
AppSupportURL=https://logar.eibl.tech
|
||||
AppUpdatesURL=https://logar.eibl.tech
|
||||
@@ -15,11 +15,11 @@ WizardStyle=modern
|
||||
SetupIconFile=assets\logo.ico
|
||||
WizardImageFile=assets\wizard_sidebar.bmp
|
||||
WizardSmallImageFile=assets\wizard_small.bmp
|
||||
VersionInfoCompany=LOGAR Security Systems
|
||||
VersionInfoCompany=LOGAR
|
||||
VersionInfoDescription=LOGAR Cloud Hub & TCP Ingestion Server Setup
|
||||
VersionInfoVersion=0.3.2.0
|
||||
VersionInfoVersion=0.3.3.0
|
||||
VersionInfoProductName=LOGAR Server
|
||||
VersionInfoProductVersion=0.3.2
|
||||
VersionInfoProductVersion=0.3.3
|
||||
|
||||
[Files]
|
||||
Source: "..\dist\Server.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
|
||||
@@ -8,13 +8,13 @@ RequestExecutionLevel admin
|
||||
|
||||
BrandingText "LOGAR Centralized Log Aggregator & Ingestion Hub"
|
||||
|
||||
VIProductVersion "0.3.2.0"
|
||||
VIProductVersion "0.3.3.0"
|
||||
VIAddVersionKey "ProductName" "LOGAR Server"
|
||||
VIAddVersionKey "CompanyName" "LOGAR Security Systems"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR Security Systems"
|
||||
VIAddVersionKey "CompanyName" "LOGAR"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR"
|
||||
VIAddVersionKey "FileDescription" "LOGAR Cloud Hub & TCP Ingestion Server Setup"
|
||||
VIAddVersionKey "FileVersion" "0.3.2.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.2.0"
|
||||
VIAddVersionKey "FileVersion" "0.3.3.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.3.0"
|
||||
|
||||
# --- Visual Graphics & Branding ---
|
||||
!define MUI_ICON "assets/logo.ico"
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
# LOGAR Brand Identity & Design Guide
|
||||
|
||||
> **Official Design System & Visual Identity Standards for LOGAR**
|
||||
> *Fleet Log Aggregation, PKI Fleet Licensing & Centralized Telemetry Provisioning Hub*
|
||||
|
||||
---
|
||||
|
||||
## 1. Brand Identity & Positioning
|
||||
|
||||
**LOGAR** is an enterprise log aggregation, normalization, and centralized provisioning system built for heterogeneous server fleets (Windows & Linux). It connects lightweight, zero-state edge forwarders to a centralized hub that enforces mutual TLS 1.3 (**mTLS**), cryptographic seat leasing, rolling 12-hour temporal persistence tracking, and direct anomaly streaming to **Hermes AI**.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["Edge Forwarders<br/>(Win & Linux)"] -->|mTLS 1.3 Stream| B["LOGAR Server Hub<br/>(Central Aggregator)"]
|
||||
B -->|Verified Telemetry| C["Hermes AI<br/>(Deep Reasoning Engine)"]
|
||||
D["License Authority<br/>(Master PKI)"] <==>|WebSocket Quota| B
|
||||
```
|
||||
|
||||
### Brand Positioning Rules:
|
||||
* **Log Aggregator & Telemetry Hub**: LOGAR is a high-throughput, zero-state log aggregation, filtering, and telemetry provisioning hub.
|
||||
* **Strict Naming Constraint**: **LOGAR is NOT a SIEM** (Security Information and Event Management) system. It does not provide intrusion detection, security rule engines, or threat intelligence feeds. Never describe LOGAR as a SIEM in documentation, user interfaces, installer scripts, or promotional material.
|
||||
|
||||
---
|
||||
|
||||
## 2. Logo Anatomy & Symbolism
|
||||
|
||||
The LOGAR emblem combines cybersecurity aesthetics with real-time log streaming geometry:
|
||||
|
||||
<p align="center">
|
||||
<img src="../assets/logo_banner.svg" alt="LOGAR Banner" width="600"/>
|
||||
</p>
|
||||
|
||||
```
|
||||
/\ [ Hexagon Shield: PKI Cryptographic Integrity ]
|
||||
/ \
|
||||
/ \ [ Left 'L' Pillar: Zero-State Forwarder Pipeline ]
|
||||
| || |
|
||||
| ||. | [ Stepped Telemetry Bars: Structured Log Stream ]
|
||||
| |___|
|
||||
\ / [ Spark Points: Dynamic Seat Sync & Handshake ]
|
||||
\ /
|
||||
\/
|
||||
```
|
||||
|
||||
### Key Components:
|
||||
1. **Hexagonal Shield**: Represents mutual TLS 1.3 cryptographic verification and authoritative PKI trust boundaries.
|
||||
2. **The Stylized 'L' Glyph**: Represents the high-performance forwarder pipeline and log ingestion stream.
|
||||
3. **Stepped Telemetry Bars**: Depicts normalized structured log records propagating from edge forwarders to the central temporal engine.
|
||||
4. **Spark & Sync Points**: Visualizes live WebSocket connection nodes and mTLS handshake synchronization.
|
||||
|
||||
---
|
||||
|
||||
## 3. Official Color Palette
|
||||
|
||||
LOGAR uses a cyber-slate and neon telemetry palette designed for high contrast in dark mode environments, with seamless light-mode compatibility for native operating system dialogs and installer wizards.
|
||||
|
||||
### Primary Colors
|
||||
|
||||
| Swatch | Color Name | Hex Code | RGB | HSL | Usage |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
|  | **Cyber Cyan** | `#00E5FF` | `0, 229, 255` | `186°, 100%, 50%` | Primary brand accent, glowing telemetry lines, active links, primary CTA buttons |
|
||||
|  | **Emerald Pulse** | `#00FFA3` | `0, 255, 163` | `158°, 100%, 50%` | Healthy node indicators, approved client seats, online PKI status, success badges |
|
||||
|  | **Electric Blue** | `#0072FF` | `0, 114, 255` | `213°, 100%, 50%` | Gradient stop with Cyber Cyan, secondary action highlights |
|
||||
|  | **Dark Navy** | `#0E1A2E` | `14, 26, 46` | `218°, 53%, 12%` | Emblem background, card surfaces, modal dialogs |
|
||||
|  | **Midnight Slate**| `#070C18` | `7, 12, 24` | `222°, 55%, 6%` | Application canvas background, dark-mode body |
|
||||
|
||||
### Semantic & Status Colors
|
||||
|
||||
| Swatch | Color Name | Hex Code | RGB | Usage |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
|  | **Crimson Alert** | `#EF4444` | `239, 68, 68` | Critical anomalies, revoked seats, connection errors |
|
||||
|  | **Amber Warning** | `#F59E0B` | `245, 158, 11` | Pending enrollment approvals, seat quota thresholds (>85%) |
|
||||
|  | **Text Muted** | `#94A3B8` | `148, 163, 184` | Table headers, secondary descriptions, timestamps |
|
||||
|  | **Pure White** | `#FFFFFF` | `255, 255, 255` | Installer header background, text on dark cards |
|
||||
|
||||
---
|
||||
|
||||
## 4. Typography System
|
||||
|
||||
LOGAR uses clean, modern sans-serif typography for user interfaces and clear monospace fonts for log telemetry and cryptographic fingerprints.
|
||||
|
||||
### Monospace (Telemetry, Fingerprints & Code)
|
||||
* **Primary**: `'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace`
|
||||
* **Usage**: Raw log frames, JSON schemas, X.509 serials, SHA-256 fingerprints, port mappings, command-line snippets.
|
||||
|
||||
### Interface Sans-Serif (WebUI & Marketing)
|
||||
* **Primary**: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif`
|
||||
* **Usage**: Headings, navigation bars, modal forms, buttons, dashboard metrics.
|
||||
|
||||
### Type Scale
|
||||
* **Hero Title**: `48px` - `56px` / Bold (900) / Tracking: `-0.02em`
|
||||
* **Page Header (H1)**: `24px` - `32px` / Extra Bold (800)
|
||||
* **Section Title (H2)**: `20px` - `24px` / Bold (700)
|
||||
* **Card Header (H3)**: `16px` - `18px` / Semi-Bold (600)
|
||||
* **Body Text**: `14px` - `15px` / Regular (400) / Line Height: `1.6`
|
||||
* **Code / Badges / Monospace**: `12px` - `13px` / Medium (500)
|
||||
|
||||
---
|
||||
|
||||
## 5. Asset Library Inventory
|
||||
|
||||
All brand visual assets are maintained in the central [`assets/`](../assets/) directory:
|
||||
|
||||
| Filename | Format | Dimensions | Purpose |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| [`logo.svg`](../assets/logo.svg) | SVG | Vector | Full emblem with dark shield background |
|
||||
| [`logo_transparent.svg`](../assets/logo_transparent.svg) | SVG | Vector | **Primary WebUI Emblem**: Transparent background for headers, tabs, and light/dark themes |
|
||||
| [`logo_dark.svg`](../assets/logo_dark.svg) | SVG | Vector | Shield emblem optimized for dark mode backgrounds |
|
||||
| [`logo_banner.svg`](../assets/logo_banner.svg) | SVG | 960x240 | Wide brand banner with emblem, typography, and tagline |
|
||||
| [`logo.png`](../assets/logo.png) | PNG (RGBA) | 512x512 | High-resolution master raster asset |
|
||||
| [`logo_256x256.png`](../assets/logo_256x256.png) | PNG (RGBA) | 256x256 | App icon and README graphics |
|
||||
| [`logo_128x128.png`](../assets/logo_128x128.png) | PNG (RGBA) | 128x128 | Medium display icon |
|
||||
| [`logo_64x64.png`](../assets/logo_64x64.png) | PNG (RGBA) | 64x64 | Small UI asset |
|
||||
| [`logo_32x32.png`](../assets/logo_32x32.png) | PNG (RGBA) | 32x32 | Standard favicon raster |
|
||||
| [`logo_16x16.png`](../assets/logo_16x16.png) | PNG (RGBA) | 16x16 | Small favicon raster |
|
||||
| [`logo.ico`](../assets/logo.ico) | ICO | Multi (16-256) | Windows executable icon & installer icon |
|
||||
| [`favicon.ico`](../assets/favicon.ico) | ICO | Multi (16-256) | WebUI dashboard favicon |
|
||||
| [`wizard_header.bmp`](../assets/wizard_header.bmp) | BMP (24-bit) | 150x57 | Inno Setup & NSIS top header bitmap (white background) |
|
||||
| [`wizard_small.bmp`](../assets/wizard_small.bmp) | BMP (24-bit) | 55x55 | Inno Setup small wizard bitmap |
|
||||
| [`wizard_sidebar.bmp`](../assets/wizard_sidebar.bmp) | BMP (24-bit) | 164x314 | Inno Setup & NSIS welcome wizard sidebar graphic |
|
||||
|
||||
---
|
||||
|
||||
## 6. Logo Usage Guidelines
|
||||
|
||||
### 1. WebUI Navigation & Tabs
|
||||
* **Rule**: Always use the **transparent background vector emblem** (`logo_transparent.svg`) aligned to the **far left** of headers and tab bars.
|
||||
* **Style**: `.logo-icon { background: transparent; box-shadow: none; display: flex; align-items: center; justify-content: center; }`
|
||||
* **Clear Space**: Maintain a minimum margin of `12px` between the logo and adjacent title text.
|
||||
|
||||
### 2. Windows Installers & Native Wizards
|
||||
* **Rule**: The top header banner (`wizard_header.bmp`) uses a pure white background (`#FFFFFF`) with the emblem positioned on the left, blending seamlessly with native Windows wizard backgrounds.
|
||||
* **Sidebar**: The welcome screen uses `wizard_sidebar.bmp` with cyber-navy gradients and pulse log lines.
|
||||
|
||||
### 3. CLI & Linux Setup Scripts
|
||||
* **Rule**: CLI installers output branded cyan/emerald ANSI banners and formatted step indicators:
|
||||
```
|
||||
============================================================
|
||||
LOGAR Fleet Log Aggregation & Centralized Provisioning
|
||||
============================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Dos and Don'ts
|
||||
|
||||
| Do | Don't |
|
||||
| :--- | :--- |
|
||||
| ✅ **DO** use `assets/logo_transparent.svg` for web tabs and navigation bars. | ❌ **DON'T** put a solid dark box behind the logo in web tabs or navbar headers. |
|
||||
| ✅ **DO** refer to LOGAR as a **Log Aggregator** or **Telemetry Hub**. | ❌ **DON'T** refer to LOGAR as a **SIEM** or security monitor. |
|
||||
| ✅ **DO** maintain the SVG aspect ratio (`1:1` for emblem, `4:1` for banner). | ❌ **DON'T** stretch or skew the logo geometry. |
|
||||
| ✅ **DO** use the official Cyber Cyan (`#00E5FF`) and Emerald (`#00FFA3`) accent colors. | ❌ **DON'T** substitute arbitrary neon colors (such as hot pink or bright orange). |
|
||||
| ✅ **DO** link to documentation using standard Gitea Wiki URLs. | ❌ **DON'T** hardcode stale wiki links in installer dialogs. |
|
||||
|
||||
---
|
||||
|
||||
## 8. Regenerating Branding Assets
|
||||
|
||||
To programmatically regenerate all vector, raster, icon, and installer bitmap assets across the codebase:
|
||||
|
||||
```bash
|
||||
python compilation/generate_branding_assets.py
|
||||
```
|
||||
@@ -1306,6 +1306,7 @@ def login_page(request: Request):
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>LOGAR Hub - Login</title>
|
||||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpolygon points='256,24 456,139 456,373 256,488 56,373 56,139' fill='%230E1A2E' stroke='%2300E5FF' stroke-width='24'/%3E%3Crect x='140' y='140' width='46' height='232' rx='10' fill='%2300E5FF'/%3E%3Crect x='140' y='326' width='220' height='46' rx='10' fill='%2300E5FF'/%3E%3Crect x='220' y='210' width='36' height='80' rx='8' fill='%2300FFA3'/%3E%3Crect x='286' y='150' width='36' height='140' rx='8' fill='%2300E5FF'/%3E%3C/svg%3E">
|
||||
<style>
|
||||
:root { --bg: #0b0f19; --card: #151c2e; --primary: #3b82f6; --primary-hover: #2563eb; --border: #1e293b; --text: #f8fafc; --text-muted: #94a3b8; --danger: #ef4444; }
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
@@ -2241,6 +2242,7 @@ def serve_webui(request: Request = None):
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>LOGAR Hub - Fleet Aggregation & Management</title>
|
||||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpolygon points='256,24 456,139 456,373 256,488 56,373 56,139' fill='%230E1A2E' stroke='%2300E5FF' stroke-width='24'/%3E%3Crect x='140' y='140' width='46' height='232' rx='10' fill='%2300E5FF'/%3E%3Crect x='140' y='326' width='220' height='46' rx='10' fill='%2300E5FF'/%3E%3Crect x='220' y='210' width='36' height='80' rx='8' fill='%2300FFA3'/%3E%3Crect x='286' y='150' width='36' height='140' rx='8' fill='%2300E5FF'/%3E%3C/svg%3E">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;800&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root {{
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
# LOGAR Brand Identity & Design Guide
|
||||
|
||||
> **Official Design System & Visual Identity Standards for LOGAR**
|
||||
> *Fleet Log Aggregation, PKI Fleet Licensing & Centralized Telemetry Provisioning Hub*
|
||||
|
||||
---
|
||||
|
||||
## 1. Brand Identity & Positioning
|
||||
|
||||
**LOGAR** is an enterprise log aggregation, normalization, and centralized provisioning system built for heterogeneous server fleets (Windows & Linux). It connects lightweight, zero-state edge forwarders to a centralized hub that enforces mutual TLS 1.3 (**mTLS**), cryptographic seat leasing, rolling 12-hour temporal persistence tracking, and direct anomaly streaming to **Hermes AI**.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["Edge Forwarders<br/>(Win & Linux)"] -->|mTLS 1.3 Stream| B["LOGAR Server Hub<br/>(Central Aggregator)"]
|
||||
B -->|Verified Telemetry| C["Hermes AI<br/>(Deep Reasoning Engine)"]
|
||||
D["License Authority<br/>(Master PKI)"] <==>|WebSocket Quota| B
|
||||
```
|
||||
|
||||
### Brand Positioning Rules:
|
||||
* **Log Aggregator & Telemetry Hub**: LOGAR is a high-throughput, zero-state log aggregation, filtering, and telemetry provisioning hub.
|
||||
* **Strict Naming Constraint**: **LOGAR is NOT a SIEM** (Security Information and Event Management) system. It does not provide intrusion detection, security rule engines, or threat intelligence feeds. Never describe LOGAR as a SIEM in documentation, user interfaces, installer scripts, or promotional material.
|
||||
|
||||
---
|
||||
|
||||
## 2. Logo Anatomy & Symbolism
|
||||
|
||||
The LOGAR emblem combines cybersecurity aesthetics with real-time log streaming geometry:
|
||||
|
||||
<p align="center">
|
||||
<img src="../assets/logo_banner.svg" alt="LOGAR Banner" width="600"/>
|
||||
</p>
|
||||
|
||||
```
|
||||
/\ [ Hexagon Shield: PKI Cryptographic Integrity ]
|
||||
/ \
|
||||
/ \ [ Left 'L' Pillar: Zero-State Forwarder Pipeline ]
|
||||
| || |
|
||||
| ||. | [ Stepped Telemetry Bars: Structured Log Stream ]
|
||||
| |___|
|
||||
\ / [ Spark Points: Dynamic Seat Sync & Handshake ]
|
||||
\ /
|
||||
\/
|
||||
```
|
||||
|
||||
### Key Components:
|
||||
1. **Hexagonal Shield**: Represents mutual TLS 1.3 cryptographic verification and authoritative PKI trust boundaries.
|
||||
2. **The Stylized 'L' Glyph**: Represents the high-performance forwarder pipeline and log ingestion stream.
|
||||
3. **Stepped Telemetry Bars**: Depicts normalized structured log records propagating from edge forwarders to the central temporal engine.
|
||||
4. **Spark & Sync Points**: Visualizes live WebSocket connection nodes and mTLS handshake synchronization.
|
||||
|
||||
---
|
||||
|
||||
## 3. Official Color Palette
|
||||
|
||||
LOGAR uses a cyber-slate and neon telemetry palette designed for high contrast in dark mode environments, with seamless light-mode compatibility for native operating system dialogs and installer wizards.
|
||||
|
||||
### Primary Colors
|
||||
|
||||
| Swatch | Color Name | Hex Code | RGB | HSL | Usage |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
|  | **Cyber Cyan** | `#00E5FF` | `0, 229, 255` | `186°, 100%, 50%` | Primary brand accent, glowing telemetry lines, active links, primary CTA buttons |
|
||||
|  | **Emerald Pulse** | `#00FFA3` | `0, 255, 163` | `158°, 100%, 50%` | Healthy node indicators, approved client seats, online PKI status, success badges |
|
||||
|  | **Electric Blue** | `#0072FF` | `0, 114, 255` | `213°, 100%, 50%` | Gradient stop with Cyber Cyan, secondary action highlights |
|
||||
|  | **Dark Navy** | `#0E1A2E` | `14, 26, 46` | `218°, 53%, 12%` | Emblem background, card surfaces, modal dialogs |
|
||||
|  | **Midnight Slate**| `#070C18` | `7, 12, 24` | `222°, 55%, 6%` | Application canvas background, dark-mode body |
|
||||
|
||||
### Semantic & Status Colors
|
||||
|
||||
| Swatch | Color Name | Hex Code | RGB | Usage |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
|  | **Crimson Alert** | `#EF4444` | `239, 68, 68` | Critical anomalies, revoked seats, connection errors |
|
||||
|  | **Amber Warning** | `#F59E0B` | `245, 158, 11` | Pending enrollment approvals, seat quota thresholds (>85%) |
|
||||
|  | **Text Muted** | `#94A3B8` | `148, 163, 184` | Table headers, secondary descriptions, timestamps |
|
||||
|  | **Pure White** | `#FFFFFF` | `255, 255, 255` | Installer header background, text on dark cards |
|
||||
|
||||
---
|
||||
|
||||
## 4. Typography System
|
||||
|
||||
LOGAR uses clean, modern sans-serif typography for user interfaces and clear monospace fonts for log telemetry and cryptographic fingerprints.
|
||||
|
||||
### Monospace (Telemetry, Fingerprints & Code)
|
||||
* **Primary**: `'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace`
|
||||
* **Usage**: Raw log frames, JSON schemas, X.509 serials, SHA-256 fingerprints, port mappings, command-line snippets.
|
||||
|
||||
### Interface Sans-Serif (WebUI & Marketing)
|
||||
* **Primary**: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif`
|
||||
* **Usage**: Headings, navigation bars, modal forms, buttons, dashboard metrics.
|
||||
|
||||
### Type Scale
|
||||
* **Hero Title**: `48px` - `56px` / Bold (900) / Tracking: `-0.02em`
|
||||
* **Page Header (H1)**: `24px` - `32px` / Extra Bold (800)
|
||||
* **Section Title (H2)**: `20px` - `24px` / Bold (700)
|
||||
* **Card Header (H3)**: `16px` - `18px` / Semi-Bold (600)
|
||||
* **Body Text**: `14px` - `15px` / Regular (400) / Line Height: `1.6`
|
||||
* **Code / Badges / Monospace**: `12px` - `13px` / Medium (500)
|
||||
|
||||
---
|
||||
|
||||
## 5. Asset Library Inventory
|
||||
|
||||
All brand visual assets are maintained in the central [`assets/`](../assets/) directory:
|
||||
|
||||
| Filename | Format | Dimensions | Purpose |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| [`logo.svg`](../assets/logo.svg) | SVG | Vector | Full emblem with dark shield background |
|
||||
| [`logo_transparent.svg`](../assets/logo_transparent.svg) | SVG | Vector | **Primary WebUI Emblem**: Transparent background for headers, tabs, and light/dark themes |
|
||||
| [`logo_dark.svg`](../assets/logo_dark.svg) | SVG | Vector | Shield emblem optimized for dark mode backgrounds |
|
||||
| [`logo_banner.svg`](../assets/logo_banner.svg) | SVG | 960x240 | Wide brand banner with emblem, typography, and tagline |
|
||||
| [`logo.png`](../assets/logo.png) | PNG (RGBA) | 512x512 | High-resolution master raster asset |
|
||||
| [`logo_256x256.png`](../assets/logo_256x256.png) | PNG (RGBA) | 256x256 | App icon and README graphics |
|
||||
| [`logo_128x128.png`](../assets/logo_128x128.png) | PNG (RGBA) | 128x128 | Medium display icon |
|
||||
| [`logo_64x64.png`](../assets/logo_64x64.png) | PNG (RGBA) | 64x64 | Small UI asset |
|
||||
| [`logo_32x32.png`](../assets/logo_32x32.png) | PNG (RGBA) | 32x32 | Standard favicon raster |
|
||||
| [`logo_16x16.png`](../assets/logo_16x16.png) | PNG (RGBA) | 16x16 | Small favicon raster |
|
||||
| [`logo.ico`](../assets/logo.ico) | ICO | Multi (16-256) | Windows executable icon & installer icon |
|
||||
| [`favicon.ico`](../assets/favicon.ico) | ICO | Multi (16-256) | WebUI dashboard favicon |
|
||||
| [`wizard_header.bmp`](../assets/wizard_header.bmp) | BMP (24-bit) | 150x57 | Inno Setup & NSIS top header bitmap (white background) |
|
||||
| [`wizard_small.bmp`](../assets/wizard_small.bmp) | BMP (24-bit) | 55x55 | Inno Setup small wizard bitmap |
|
||||
| [`wizard_sidebar.bmp`](../assets/wizard_sidebar.bmp) | BMP (24-bit) | 164x314 | Inno Setup & NSIS welcome wizard sidebar graphic |
|
||||
|
||||
---
|
||||
|
||||
## 6. Logo Usage Guidelines
|
||||
|
||||
### 1. WebUI Navigation & Tabs
|
||||
* **Rule**: Always use the **transparent background vector emblem** (`logo_transparent.svg`) aligned to the **far left** of headers and tab bars.
|
||||
* **Style**: `.logo-icon { background: transparent; box-shadow: none; display: flex; align-items: center; justify-content: center; }`
|
||||
* **Clear Space**: Maintain a minimum margin of `12px` between the logo and adjacent title text.
|
||||
|
||||
### 2. Windows Installers & Native Wizards
|
||||
* **Rule**: The top header banner (`wizard_header.bmp`) uses a pure white background (`#FFFFFF`) with the emblem positioned on the left, blending seamlessly with native Windows wizard backgrounds.
|
||||
* **Sidebar**: The welcome screen uses `wizard_sidebar.bmp` with cyber-navy gradients and pulse log lines.
|
||||
|
||||
### 3. CLI & Linux Setup Scripts
|
||||
* **Rule**: CLI installers output branded cyan/emerald ANSI banners and formatted step indicators:
|
||||
```
|
||||
============================================================
|
||||
LOGAR Fleet Log Aggregation & Centralized Provisioning
|
||||
============================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Dos and Don'ts
|
||||
|
||||
| Do | Don't |
|
||||
| :--- | :--- |
|
||||
| ✅ **DO** use `assets/logo_transparent.svg` for web tabs and navigation bars. | ❌ **DON'T** put a solid dark box behind the logo in web tabs or navbar headers. |
|
||||
| ✅ **DO** refer to LOGAR as a **Log Aggregator** or **Telemetry Hub**. | ❌ **DON'T** refer to LOGAR as a **SIEM** or security monitor. |
|
||||
| ✅ **DO** maintain the SVG aspect ratio (`1:1` for emblem, `4:1` for banner). | ❌ **DON'T** stretch or skew the logo geometry. |
|
||||
| ✅ **DO** use the official Cyber Cyan (`#00E5FF`) and Emerald (`#00FFA3`) accent colors. | ❌ **DON'T** substitute arbitrary neon colors (such as hot pink or bright orange). |
|
||||
| ✅ **DO** link to documentation using standard Gitea Wiki URLs. | ❌ **DON'T** hardcode stale wiki links in installer dialogs. |
|
||||
|
||||
---
|
||||
|
||||
## 8. Regenerating Branding Assets
|
||||
|
||||
To programmatically regenerate all vector, raster, icon, and installer bitmap assets across the codebase:
|
||||
|
||||
```bash
|
||||
python compilation/generate_branding_assets.py
|
||||
```
|
||||