|
3 | 3 | title: Hub |
4 | 4 | --- |
5 | 5 | <style> |
6 | | - .hub-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; } |
| 6 | + .hub-grid { display: grid; grid-template-columns: 1fr; gap: 25px; } |
| 7 | + .terminal-window { background: rgba(0,0,0,0.5); padding: 20px; border-radius: 8px; border: 1px dashed rgba(255,255,255,0.1); font-family: 'JetBrains Mono', monospace; font-size: 0.85rem; line-height: 1.6; color: var(--text-muted); } |
| 8 | + .terminal-prompt { color: var(--accent-blue); } |
| 9 | + .terminal-success { color: #10b981; } |
7 | 10 |
|
8 | | - /* Paski postępu */ |
9 | | - .status-bar-bg { background: rgba(255,255,255,0.05); height: 6px; border-radius: 4px; margin-top: 8px; overflow: hidden; } |
10 | | - .status-bar-fill { height: 100%; border-radius: 4px; } |
11 | | - |
12 | | - /* Siatka przycisków usług */ |
13 | | - .service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; } |
14 | | - .service-btn { |
15 | | - background: rgba(10,10,10,0.5); |
16 | | - border: 1px solid rgba(255,255,255,0.05); |
| 11 | + .capability-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 15px; margin-top: 15px; } |
| 12 | + .cap-card { |
| 13 | + background: rgba(59, 130, 246, 0.05); |
| 14 | + border: 1px solid rgba(59, 130, 246, 0.1); |
17 | 15 | padding: 15px; |
18 | 16 | border-radius: 8px; |
19 | | - text-decoration: none; |
20 | | - color: var(--text-main); |
21 | | - font-family: 'JetBrains Mono', monospace; |
22 | | - font-size: 0.85rem; |
23 | | - transition: 0.3s; |
24 | 17 | display: flex; |
25 | 18 | align-items: center; |
26 | | - justify-content: space-between; |
27 | | - } |
28 | | - .service-btn:hover { |
29 | | - border-color: #10b981; |
30 | | - transform: translateY(-3px); |
31 | | - background: rgba(16, 185, 129, 0.05); |
32 | | - box-shadow: 0 5px 15px rgba(16, 185, 129, 0.1); |
| 19 | + gap: 15px; |
33 | 20 | } |
34 | | - |
35 | | - /* Świecące diody statusu */ |
36 | | - .service-status { width: 8px; height: 8px; border-radius: 50%; background: #10b981; box-shadow: 0 0 8px #10b981; } |
37 | | - |
38 | | - /* Migający kursor w terminalu */ |
| 21 | + .cap-icon { font-weight: 900; font-family: 'JetBrains Mono', monospace; font-size: 1.2rem; } |
| 22 | + .cap-text h4 { margin: 0; font-size: 0.9rem; color: #fff; } |
| 23 | + .cap-text p { margin: 0; font-size: 0.75rem; color: var(--text-muted); } |
| 24 | + |
39 | 25 | @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } |
40 | 26 | .cursor-blink { animation: blink 1s step-end infinite; color: #10b981; font-weight: bold; } |
41 | | - |
42 | | - @media (max-width: 768px) { |
43 | | - .hub-grid { grid-template-columns: 1fr; } |
44 | | - .service-grid { grid-template-columns: 1fr; } |
45 | | - } |
46 | 27 | </style> |
47 | 28 |
|
48 | 29 | <div class="hub-grid"> |
49 | | - <div class="card"> |
50 | | - <h3 style="color: var(--accent-blue); font-family: 'JetBrains Mono', monospace; font-size: 1rem; margin: 0 0 20px 0; border-bottom: 1px dashed rgba(255,255,255,0.1); padding-bottom: 10px;">> Cluster_Telemetry</h3> |
51 | | - |
52 | | - <div style="margin-bottom: 20px;"> |
53 | | - <div style="display: flex; justify-content: space-between; font-size: 0.85rem; font-family: 'JetBrains Mono', monospace; color: var(--text-muted);"><span>CPU Load (Avg)</span><span>28%</span></div> |
54 | | - <div class="status-bar-bg"><div class="status-bar-fill" style="width: 28%; background: #10b981;"></div></div> |
55 | | - </div> |
56 | | - |
57 | | - <div style="margin-bottom: 20px;"> |
58 | | - <div style="display: flex; justify-content: space-between; font-size: 0.85rem; font-family: 'JetBrains Mono', monospace; color: var(--text-muted);"><span>Memory (RAM)</span><span>64%</span></div> |
59 | | - <div class="status-bar-bg"><div class="status-bar-fill" style="width: 64%; background: #f59e0b;"></div></div> |
60 | | - </div> |
61 | 30 |
|
62 | | - <div style="margin-bottom: 20px;"> |
63 | | - <div style="display: flex; justify-content: space-between; font-size: 0.85rem; font-family: 'JetBrains Mono', monospace; color: var(--text-muted);"><span>Storage (LVM)</span><span>41%</span></div> |
64 | | - <div class="status-bar-bg"><div class="status-bar-fill" style="width: 41%; background: var(--accent-blue);"></div></div> |
65 | | - </div> |
| 31 | + <div class="card"> |
| 32 | + <h3 style="color: var(--text-main); font-family: 'JetBrains Mono', monospace; font-size: 1rem; margin: 0 0 15px 0;">> DevLab_Core Operational_Status</h3> |
66 | 33 |
|
67 | | - <div style="margin-top: 25px; font-family: 'JetBrains Mono', monospace; font-size: 0.8rem; color: var(--text-muted);"> |
68 | | - <span style="color: #10b981;">●</span> 5/6 Nodes Online <br> |
69 | | - <span style="color: #e11d48; margin-top: 5px; display: inline-block;">●</span> 1 Node Offline (Motherboard) |
| 34 | + <div class="terminal-window"> |
| 35 | + <span class="terminal-prompt">root@devlab:~#</span> check_remote_services<br> |
| 36 | + <span class="terminal-success">[OK]</span> Twingate Zero-Trust Tunnel: Stable<br> |
| 37 | + <span class="terminal-success">[OK]</span> Sunshine Host Service: Active (Ready for Streaming)<br> |
| 38 | + <span class="terminal-success">[OK]</span> HW Encoder: AMD AMF (RX 7600) Engaged<br> |
| 39 | + <br> |
| 40 | + System umożliwia bezlatencyjne strumieniowanie gier i aplikacji z głównej jednostki obliczeniowej na energooszczędne terminale mobilne (Asus VivoBook/Celeron N4000) przy wykorzystaniu protokołu Sunshine/Moonlight.<br> |
| 41 | + <br> |
| 42 | + <span class="terminal-prompt">root@devlab:~#</span> <span class="cursor-blink">_</span> |
70 | 43 | </div> |
71 | 44 | </div> |
72 | 45 |
|
73 | 46 | <div class="card"> |
74 | | - <h3 style="color: #10b981; font-family: 'JetBrains Mono', monospace; font-size: 1rem; margin: 0 0 20px 0; border-bottom: 1px dashed rgba(255,255,255,0.1); padding-bottom: 10px;">> Core_Services</h3> |
| 47 | + <h3 style="color: #10b981; font-family: 'JetBrains Mono', monospace; font-size: 1rem; margin: 0 0 15px 0; border-bottom: 1px dashed rgba(255,255,255,0.1); padding-bottom: 10px;">> Hybrid_Cloud_Capabilities</h3> |
75 | 48 |
|
76 | | - <div class="service-grid"> |
77 | | - <a href="https://twoje-ip-proxmox:8006" target="_blank" class="service-btn"> |
78 | | - <span>Proxmox GUI</span> |
79 | | - <div class="service-status"></div> |
80 | | - </a> |
81 | | - <a href="#" target="_blank" class="service-btn"> |
82 | | - <span>Portainer (Docker)</span> |
83 | | - <div class="service-status"></div> |
84 | | - </a> |
85 | | - <a href="#" target="_blank" class="service-btn"> |
86 | | - <span>Pi-hole / DNS</span> |
87 | | - <div class="service-status"></div> |
88 | | - </a> |
89 | | - <a href="#" target="_blank" class="service-btn"> |
90 | | - <span>Orbit™ Core</span> |
91 | | - <div class="service-status" style="background: #f59e0b; box-shadow: 0 0 8px #f59e0b;"></div> |
92 | | - </a> |
93 | | - </div> |
94 | | - <p style="font-family: 'JetBrains Mono', monospace; font-size: 0.75rem; color: var(--text-muted); margin-top: 20px; line-height: 1.5;"> |
95 | | - // Skróty do zarządzania infrastrukturą w sieci lokalnej (Zero-Trust). |
96 | | - </p> |
97 | | - </div> |
98 | | - |
99 | | - <div class="card" style="grid-column: 1 / -1; border-style: dashed; border-color: rgba(255,255,255,0.15);"> |
100 | | - <div style="font-family: 'JetBrains Mono', monospace; font-size: 0.85rem; color: var(--text-muted); line-height: 1.8;"> |
101 | | - <span style="color: var(--accent-blue);">root@orbit-core</span>:<span style="color: #10b981;">~</span>$ tail -f /var/log/syslog<br> |
102 | | - [OK] Boot sequence initiated...<br> |
103 | | - [OK] Mounting network drives (fstab/Samba)...<br> |
104 | | - [OK] Docker socket listening.<br> |
105 | | - [INFO] Awaiting connection from Orbit™ Mobile client...<span class="cursor-blink">_</span> |
| 49 | + <div class="capability-grid"> |
| 50 | + <div class="cap-card" style="border-color: #9333ea; background: rgba(147, 51, 234, 0.05);"> |
| 51 | + <div class="cap-icon" style="color: #9333ea;">🎮</div> |
| 52 | + <div class="cap-text"> |
| 53 | + <h4>Remote Play (Sunshine)</h4> |
| 54 | + <p>Strumieniowanie gier w 1080p na słabsze urządzenia dzięki mocy RX 7600.</p> |
| 55 | + </div> |
| 56 | + </div> |
| 57 | + |
| 58 | + <div class="cap-card" style="border-color: #ff5f00; background: rgba(255, 95, 0, 0.05);"> |
| 59 | + <div class="cap-icon" style="color: #ff5f00;">TG</div> |
| 60 | + <div class="cap-text"> |
| 61 | + <h4>Twingate Tunnel</h4> |
| 62 | + <p>Bezpieczny dostęp do zasobów Labu z dowolnego miejsca na świecie.</p> |
| 63 | + </div> |
| 64 | + </div> |
| 65 | + |
| 66 | + <div class="cap-card" style="border-color: #10b981; background: rgba(16, 185, 129, 0.05);"> |
| 67 | + <div class="cap-icon" style="color: #10b981;">VM</div> |
| 68 | + <div class="cap-text"> |
| 69 | + <h4>Workstation VM</h4> |
| 70 | + <p>Wirtualne środowisko pracy (NoMachine) z akceleracją sprzętową HP 6300.</p> |
| 71 | + </div> |
| 72 | + </div> |
106 | 73 | </div> |
107 | 74 | </div> |
| 75 | + |
108 | 76 | </div> |
0 commit comments