-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
639 lines (570 loc) · 35.7 KB
/
index.html
File metadata and controls
639 lines (570 loc) · 35.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Pabawi — Classic Infrastructures Command & Control</title>
<meta name="description" content="Pabawi is a unified web interface for infrastructure management, command execution, and VM provisioning — integrating Puppet, Bolt, Ansible, SSH, Proxmox, AWS, Azure and more." />
<meta property="og:title" content="Pabawi — Classic Infrastructures Command & Control" />
<meta property="og:description" content="A unified web interface for managing classic infrastructure: Puppet, Bolt, Ansible, PuppetDB, Hiera, SSH, Proxmox, AWS and Azure in one place." />
<meta property="og:type" content="website" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
<link rel="icon" href="logo.png" type="image/png" />
</head>
<body>
<!-- ======================== NAV ======================== -->
<nav class="nav">
<div class="nav-inner">
<a href="index.html" class="nav-logo">
<img src="logo.png" width="28" height="28" alt="Pabawi logo" style="border-radius:4px;" />
Pabawi
</a>
<ul class="nav-links">
<li><a href="index.html" class="active">Home</a></li>
<li><a href="docs.html">Docs</a></li>
<li><a href="about.html">About</a></li>
<li><a href="support.html">Support</a></li>
<li><a href="https://github.com/example42/pabawi" target="_blank" rel="noopener">GitHub ↗</a></li>
<li><a href="https://github.com/example42/pabawi/releases" target="_blank" rel="noopener" class="nav-cta">Get Started</a></li>
</ul>
<button class="nav-hamburger" aria-label="Menu">
<svg width="22" height="22" fill="none" viewBox="0 0 22 22">
<path d="M3 6h16M3 11h16M3 16h16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
</svg>
</button>
</div>
</nav>
<!-- ======================== HERO ======================== -->
<section class="hero">
<div class="container">
<div class="hero-grid">
<!-- Left -->
<div>
<div class="hero-badge fade-up">
<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor"><circle cx="6" cy="6" r="6"/></svg>
v1.2 · Apache 2.0 · Open Source
</div>
<h1 class="hero-title fade-up delay-1">
Classic Infra<br/>
<span class="gradient-text">Command & Control</span>
</h1>
<p class="hero-desc fade-up delay-2">
Pabawi is a unified web interface for infrastructure management, inventory discovery, remote execution, and VM provisioning — bringing Puppet, Bolt, Ansible, PuppetDB, Hiera, SSH, Proxmox, AWS, and Azure together in one polished dashboard.
</p>
<div class="hero-actions fade-up delay-3">
<a href="docs.html#quickstart" class="btn btn-primary">
<svg width="16" height="16" fill="none" viewBox="0 0 16 16"><path d="M3 8l4 4 6-6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
Quick Start
</a>
<a href="https://github.com/example42/pabawi" target="_blank" rel="noopener" class="btn btn-outline">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
View on GitHub
</a>
</div>
<div class="hero-stat-row fade-up delay-4">
<div class="hero-stat"><div class="num">10+</div><div class="lbl">Integrations</div></div>
<div class="hero-stat"><div class="num">1.2</div><div class="lbl">Latest</div></div>
<div class="hero-stat"><div class="num">∞</div><div class="lbl">Nodes</div></div>
<div class="hero-stat"><div class="num">Free</div><div class="lbl">Apache 2.0</div></div>
</div>
</div>
<!-- Right — logo -->
<div class="hero-visual fade-up delay-2" style="display:flex;align-items:center;justify-content:center">
<img src="logo.png" alt="Pabawi logo" style="max-width:100%;width:420px;height:auto;border-radius:12px;" />
</div>
</div>
</div>
</section>
<!-- ======================== INTEGRATIONS + VIDEO ======================== -->
<section class="integrations-strip" style="border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);padding:2.5rem 0">
<div class="container" style="display:grid;grid-template-columns:1fr 3fr;gap:2.5rem;align-items:center">
<!-- Left: integrations list -->
<div>
<div class="strip-label" style="margin-bottom:.75rem">Integrations</div>
<div style="display:flex;flex-wrap:wrap;gap:.5rem">
<span class="integration-chip"><span class="chip-dot" style="background:#f97316"></span> Puppet / OpenVox</span>
<span class="integration-chip"><span class="chip-dot" style="background:#6366f1"></span> Bolt</span>
<span class="integration-chip"><span class="chip-dot" style="background:#ef4444"></span> Ansible</span>
<span class="integration-chip"><span class="chip-dot" style="background:#22d3ee"></span> PuppetDB</span>
<span class="integration-chip"><span class="chip-dot" style="background:#a78bfa"></span> Puppetserver</span>
<span class="integration-chip"><span class="chip-dot" style="background:#34d399"></span> Hiera</span>
<span class="integration-chip"><span class="chip-dot" style="background:#94a3b8"></span> SSH</span>
<span class="integration-chip"><span class="chip-dot" style="background:#fb923c"></span> Proxmox</span>
<span class="integration-chip"><span class="chip-dot" style="background:#f59e0b"></span> AWS EC2</span>
<span class="integration-chip"><span class="chip-dot" style="background:#0ea5e9"></span> Azure</span>
<span class="integration-chip"><span class="chip-dot" style="background:#818cf8"></span> MCP</span>
</div>
</div>
<!-- Right: video (3/4 width) -->
<div style="position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:8px">
<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:8px" src="https://www.youtube.com/embed/w4VjXv55b_o?si=RCDBxx88PPxvO5kB" title="Introduction to Pabawi" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
</div>
</section>
<!-- ======================== FEATURES ======================== -->
<section class="section" id="features">
<div class="container">
<div class="section-eyebrow">Features</div>
<h2 class="section-heading">Everything your infra team needs</h2>
<p class="section-sub">A full-featured platform that replaces ad-hoc scripts and multiple dashboards with a single, secure, team-ready interface.</p>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon" style="background:rgba(99,102,241,.15)">🗂️</div>
<h3>Multi-Source Inventory</h3>
<p>Aggregate nodes from Bolt, PuppetDB, Ansible, and SSH into a unified, searchable inventory. Supports groups, filtering by transport, and virtual-scroll for thousands of nodes.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(34,211,238,.12)">⚡</div>
<h3>Real-Time Command Execution</h3>
<p>Run ad-hoc commands and Bolt tasks on single nodes or groups, with live streaming output via Server-Sent Events. Queue management ensures no resource contention.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(52,211,153,.12)">🔐</div>
<h3>RBAC Authentication</h3>
<p>Full role-based access control with multiple users, JWT sessions, per-operation permissions, and an audit trail for every action. Lock down your infra properly.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(251,146,60,.12)">📦</div>
<h3>Package Management</h3>
<p>Install, update, and remove packages across your entire fleet from a single interface, with real-time progress and per-node results.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(167,139,250,.12)">📊</div>
<h3>Puppet Reports & Catalogs</h3>
<p>Browse Puppet run reports with metrics and resource change diffs, inspect compiled catalogs, visualize resource relationships, and compare environments side-by-side.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(99,102,241,.15)">🌲</div>
<h3>Hiera Data Browser</h3>
<p>Navigate your hierarchical configuration data, resolve keys per-node with fact interpolation, and analyse which Hiera keys are referenced by your Puppet classes.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(34,211,238,.12)">📜</div>
<h3>Execution History</h3>
<p>Full history of every command, task, and package operation — with output preserved and one-click re-execution. Know who ran what, when, and on which nodes.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(52,211,153,.12)">🔍</div>
<h3>Node Facts & Details</h3>
<p>Deep-dive into any node: OS, hardware, Puppet class list, custom facts, and recent run history — all in a single, well-organised node detail view.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(251,146,60,.12)">🛡️</div>
<h3>Command Whitelist Security</h3>
<p>Restrict which commands operators may run via a configurable whitelist. Prevent accidental or malicious execution of dangerous operations without full ACL complexity.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(167,139,250,.12)">🔌</div>
<h3>Plugin Architecture</h3>
<p>Every integration is a plugin. Disable what you don't use, and the platform degrades gracefully — if PuppetDB is down, Bolt keeps working. No single point of failure.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(99,102,241,.15)">🐳</div>
<h3>Docker-Ready</h3>
<p>Single-container deployment with multi-arch support (amd64, arm64). Mount your existing Bolt project, certs, and control-repo — up and running in minutes.</p>
</div>
<div class="feature-card">
<div class="feature-icon" style="background:rgba(34,211,238,.12)">🧑💻</div>
<h3>Expert Mode</h3>
<p>Toggle deep-debug mode to see full CLI command lines, API responses, and frontend logging — invaluable for troubleshooting and understanding exactly what's happening under the hood.</p>
</div>
<div class="feature-card" style="border-color:rgba(251,146,60,.25);position:relative">
<div style="position:absolute;top:.9rem;right:.9rem;background:rgba(251,146,60,.15);border:1px solid rgba(251,146,60,.35);color:#fb923c;font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em">v0.10</div>
<div class="feature-icon" style="background:rgba(251,146,60,.15)">🖥️</div>
<h3>Proxmox Provisioning</h3>
<p>Create, start, stop, and destroy Proxmox VMs and LXC containers directly from the UI. Full lifecycle management alongside your existing config management tools — no separate console needed.</p>
</div>
<div class="feature-card" style="border-color:rgba(245,158,11,.25);position:relative">
<div style="position:absolute;top:.9rem;right:.9rem;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.35);color:#f59e0b;font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em">v0.10</div>
<div class="feature-icon" style="background:rgba(245,158,11,.12)">☁️</div>
<h3>AWS EC2 Management</h3>
<p>Discover, provision, and manage EC2 instances across multiple regions. Start, stop, reboot, and terminate instances alongside on-prem infrastructure — hybrid fleet in one view.</p>
</div>
<div class="feature-card" style="border-color:rgba(14,165,233,.25);position:relative">
<div style="position:absolute;top:.9rem;right:.9rem;background:rgba(14,165,233,.12);border:1px solid rgba(14,165,233,.3);color:#0ea5e9;font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em">v1.1</div>
<div class="feature-icon" style="background:rgba(14,165,233,.12)">🔷</div>
<h3>Azure VM Management</h3>
<p>Discover, provision, and manage Azure Virtual Machines across subscriptions and resource groups. Full lifecycle control — start, stop, deallocate, and terminate — alongside your on-prem and AWS fleet.</p>
</div>
<div class="feature-card" style="border-color:rgba(129,140,248,.25);position:relative">
<div style="position:absolute;top:.9rem;right:.9rem;background:rgba(129,140,248,.12);border:1px solid rgba(129,140,248,.3);color:#818cf8;font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em">v1.2</div>
<div class="feature-icon" style="background:rgba(129,140,248,.12)">🤖</div>
<h3>MCP Server (AI Integration)</h3>
<p>Built-in Model Context Protocol server exposes your infrastructure data to LLM clients. Query inventory, facts, reports, catalogs, and Hiera data from AI assistants — read-only, RBAC-gated, and secure by default.</p>
</div>
<div class="feature-card" style="border-color:rgba(52,211,153,.25);position:relative">
<div style="position:absolute;top:.9rem;right:.9rem;background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.3);color:var(--green);font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em">v0.9</div>
<div class="feature-icon" style="background:rgba(52,211,153,.12)">📓</div>
<h3>Node Journal</h3>
<p>Per-node timeline of every action, lifecycle event, and operation. Know exactly what happened to any machine and when — the single source of truth for per-node history.</p>
</div>
<div class="feature-card" style="border-color:rgba(129,140,248,.25);position:relative">
<div style="position:absolute;top:.9rem;right:.9rem;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.3);color:var(--brand-light);font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em">v1.0</div>
<div class="feature-icon" style="background:rgba(129,140,248,.12)">🧙</div>
<h3>Setup Wizards</h3>
<p>Interactive in-browser wizards for every integration guide you through configuration step by step, then generate a ready-to-paste <code style="font-size:.82em;background:rgba(255,255,255,.08);padding:.1em .3em;border-radius:4px">.env</code> snippet — no guesswork, no docs hunting.</p>
</div>
</div>
</div>
</section>
<!-- ======================== USE CASES ======================== -->
<section class="section" id="usecases" style="background:rgba(17,24,39,.4)">
<div class="container">
<div class="section-eyebrow">Use Cases</div>
<h2 class="section-heading">Built for real-world infra work</h2>
<p class="section-sub">Whether you run 10 servers or 10,000, Pabawi fits the way infrastructure teams actually work.</p>
<div class="usecases-grid">
<div class="usecase-card">
<div class="usecase-number">01</div>
<h3>Unified Puppet Operations Center</h3>
<p>Replace the Puppet Enterprise console with a free, open-source alternative. Browse inventory, trigger runs, inspect reports, diff catalogs across environments, and explore Hiera data — without an enterprise license.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">02</div>
<h3>Multi-Tool Infrastructure Management</h3>
<p>You use Puppet for config management and Ansible for one-off automation and SSH for legacy boxes. Pabawi gives you a single pane of glass: one inventory, one execution history, one access control layer.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">03</div>
<h3>Secure Team Command Execution</h3>
<p>Let junior operators run approved, whitelisted commands without giving them shell access. Capture every action in the audit trail. Re-run historical operations with one click during incident response.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">04</div>
<h3>Homelab & Small Team Web UI</h3>
<p>SSH-only mode works perfectly for homelabbers who just want a web frontend for their servers. No Puppet, no Ansible required — configure SSH hosts and you're done.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">05</div>
<h3>Incident Response & Patch Management</h3>
<p>Run a targeted command across a hundred nodes in seconds, watch live streaming output, then push a package update to affected hosts — all from the same interface, with the full run logged automatically.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">06</div>
<h3>Configuration Drift Investigation</h3>
<p>Use the Puppet catalog diff to compare what a node is compiling in production vs. staging. Correlate Hiera data with node facts. Spot where configuration has drifted before it becomes a problem.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">07</div>
<h3>Hybrid VM & Cloud Fleet Management</h3>
<p>Provision a Proxmox VM, bootstrap it with Puppet, run an Ansible playbook, and monitor it via SSH — all from a single interface, with the full operation recorded in the node's journal and execution history.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">08</div>
<h3>Cloud + On-Prem in One Dashboard</h3>
<p>EC2 instances in AWS sit alongside bare metal in your datacenter in the same inventory. Run the same whitelisted commands, apply Puppet configuration, and manage the full lifecycle — no tool-switching.</p>
</div>
<div class="usecase-card">
<div class="usecase-number">09</div>
<h3>AI-Powered Infrastructure Queries</h3>
<p>Connect your LLM client to Pabawi's built-in MCP server and query inventory, facts, reports, catalogs, and Hiera data conversationally. Read-only and RBAC-gated — your AI assistant sees exactly what your role permits, nothing more.</p>
</div>
</div>
</div>
</section>
<!-- ======================== TARGET AUDIENCE ======================== -->
<section class="section audience-section" id="audience">
<div class="container">
<div class="section-eyebrow">Who it's for</div>
<h2 class="section-heading">Made for classic infrastructure teams</h2>
<p class="section-sub">If you manage bare metal, VMs, or any "traditional" infrastructure — Pabawi was built with you in mind.</p>
<div class="audience-grid">
<div class="persona-card">
<div class="persona-emoji">🧑🔧</div>
<h3>Sysadmins</h3>
<p>Stop SSH-ing into boxes individually. Run commands fleet-wide, check node facts, manage packages, and keep a full audit trail — all from the browser.</p>
<div class="persona-tags">
<span class="persona-tag">SSH</span>
<span class="persona-tag">Commands</span>
<span class="persona-tag">Packages</span>
<span class="persona-tag">Audit</span>
</div>
</div>
<div class="persona-card">
<div class="persona-emoji">🤖</div>
<h3>Puppet / OpenVox Teams</h3>
<p>Get the Puppet Enterprise console experience on Open Source Puppet. Full reports, catalog inspection, Hiera browser, and cert management — no license required.</p>
<div class="persona-tags">
<span class="persona-tag">PuppetDB</span>
<span class="persona-tag">Hiera</span>
<span class="persona-tag">Catalogs</span>
<span class="persona-tag">Reports</span>
</div>
</div>
<div class="persona-card">
<div class="persona-emoji">⚙️</div>
<h3>DevOps Engineers</h3>
<p>Tie together Puppet, Ansible, Bolt, and SSH under one interface. Delegate execution to team members with RBAC. Integrate into your workflow via the REST API.</p>
<div class="persona-tags">
<span class="persona-tag">RBAC</span>
<span class="persona-tag">Ansible</span>
<span class="persona-tag">Bolt</span>
<span class="persona-tag">API</span>
</div>
</div>
<div class="persona-card">
<div class="persona-emoji">🏠</div>
<h3>Homelabbers</h3>
<p>Just want a web UI for your home servers? Enable SSH-only mode and get a clean, full-featured dashboard without any Puppet infrastructure needed.</p>
<div class="persona-tags">
<span class="persona-tag">SSH</span>
<span class="persona-tag">Simple</span>
<span class="persona-tag">Self-hosted</span>
</div>
</div>
<div class="persona-card">
<div class="persona-emoji">🔒</div>
<h3>Security-Conscious Teams</h3>
<p>Command whitelisting, RBAC, JWT auth, audit trail, and no cloud dependency — Pabawi runs entirely on-premises, so your infra data never leaves your network.</p>
<div class="persona-tags">
<span class="persona-tag">On-Prem</span>
<span class="persona-tag">Whitelist</span>
<span class="persona-tag">Audit</span>
<span class="persona-tag">JWT</span>
</div>
</div>
<div class="persona-card">
<div class="persona-emoji">🧪</div>
<h3>Mixed Environments</h3>
<p>Half your fleet runs Puppet, half runs Ansible, and there are 20 legacy boxes that only speak SSH? Pabawi gives you one unified view across all of them.</p>
<div class="persona-tags">
<span class="persona-tag">Hybrid</span>
<span class="persona-tag">Multi-tool</span>
<span class="persona-tag">Legacy</span>
</div>
</div>
<div class="persona-card">
<div class="persona-emoji">☁️</div>
<h3>Virtualisation & Cloud Teams</h3>
<p>Manage Proxmox VMs and LXC containers alongside EC2 instances — provision, start, stop, and destroy from one place, with config management applied automatically via Puppet or Ansible.</p>
<div class="persona-tags">
<span class="persona-tag">Proxmox</span>
<span class="persona-tag">AWS</span>
<span class="persona-tag">Lifecycle</span>
<span class="persona-tag">Provisioning</span>
</div>
</div>
</div>
</div>
</section>
<!-- ======================== QUICK INSTALL ======================== -->
<section class="section install-section" id="install">
<div class="container">
<div class="section-eyebrow">Installation</div>
<h2 class="section-heading">Up and running in minutes</h2>
<p class="section-sub">Interactive setup script handles prerequisites, config generation, and first start. Or use Docker for the fastest path.</p>
<div class="install-grid">
<!-- Code blocks -->
<div>
<div class="code-block" style="margin-bottom:1rem">
<div class="code-header">
<span class="code-lang">Quick Start</span>
<button class="copy-btn">Copy</button>
</div>
<div class="code-body">
<pre><span class="c-prompt">$ </span><span class="c-cmd">git clone https://github.com/example42/pabawi</span>
<span class="c-prompt">$ </span><span class="c-cmd">cd pabawi</span>
<span class="c-prompt">$ </span><span class="c-cmd">./scripts/setup.sh</span></pre>
</div>
</div>
<div class="code-block">
<div class="code-header">
<span class="code-lang">Docker</span>
<button class="copy-btn">Copy</button>
</div>
<div class="code-body">
<pre><span class="c-comment"># Mount your local config directory</span>
<span class="c-prompt">$ </span><span class="c-cmd">docker run -d \</span>
--name pabawi \
-p 127.0.0.1:3000:3000 \
-v "$(pwd)/pabawi:/pabawi" \
--env-file ".env" \
example42/pabawi:latest</pre>
</div>
</div>
</div>
<!-- Steps -->
<div>
<ol class="install-steps">
<li class="install-step">
<span class="step-num">1</span>
<div class="step-text">
<h4>Clone the repo</h4>
<p>Node.js 20+ and npm 9+ are the only hard requirements for the bare-metal path.</p>
</div>
</li>
<li class="install-step">
<span class="step-num">2</span>
<div class="step-text">
<h4>Run the setup script</h4>
<p>The interactive wizard detects your installed tools, generates <code class="inline">backend/.env</code> with smart defaults, installs dependencies, and optionally starts the app.</p>
</div>
</li>
<li class="install-step">
<span class="step-num">3</span>
<div class="step-text">
<h4>Open the browser</h4>
<p>Navigate to <code class="inline">http://localhost:3000</code>. Your nodes appear automatically as integrations are discovered.</p>
</div>
</li>
<li class="install-step">
<span class="step-num">4</span>
<div class="step-text">
<h4>Enable integrations</h4>
<p>Each plugin is configured via environment variables. Start with SSH, add Bolt and Puppet as needed. See the <a href="docs.html">Docs</a> for per-integration guides.</p>
</div>
</li>
</ol>
</div>
</div>
</div>
</section>
<!-- ======================== ROADMAP ======================== -->
<section class="section" style="background:rgba(17,24,39,.4)" id="roadmap">
<div class="container">
<div class="section-eyebrow">Roadmap</div>
<h2 class="section-heading">What's been shipped & what's next</h2>
<p class="section-sub">Pabawi is actively developed. v1.0 is the current stable release — here's the full picture of what's shipped and what's coming.</p>
<!-- v1.2 released banner -->
<div style="margin:2.5rem 0 2rem;background:linear-gradient(135deg,rgba(52,211,153,.10) 0%,rgba(34,211,238,.06) 100%);border:1px solid rgba(52,211,153,.3);border-radius:var(--radius-lg);padding:1.75rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap">
<div>
<div style="display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem">
<span style="background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.4);color:var(--green);font-size:.75rem;font-weight:700;padding:.2rem .7rem;border-radius:100px;text-transform:uppercase;letter-spacing:.06em">Released</span>
<span style="color:var(--text);font-weight:800;font-size:1.15rem">v1.2.0 — Now Available</span>
</div>
<p style="margin:0;font-size:.93rem;max-width:580px">Built-in MCP server for AI-powered infrastructure queries, Azure VM provisioning, plus all previous v1.0 and v1.1 features including the Integration Status Dashboard, Setup Wizards, and AWS/Proxmox management.</p>
</div>
<a href="https://github.com/example42/pabawi/blob/main/CHANGELOG.md" target="_blank" rel="noopener" class="btn btn-outline" style="flex-shrink:0;white-space:nowrap">View Changelog ↗</a>
</div>
<div class="roadmap-grid">
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v1.2</span>
<h3>MCP Server (AI Integration)</h3>
<p>Built-in Model Context Protocol server exposes infrastructure data to LLM clients — inventory, facts, reports, catalogs, Hiera, and execution history via read-only, RBAC-gated tools.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v1.1</span>
<h3>Azure VM Integration</h3>
<p>Full Azure Virtual Machine lifecycle management — discover, provision, start, stop, deallocate, and terminate VMs across subscriptions and resource groups.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v1.0</span>
<h3>Integration Status Dashboard</h3>
<p>Read-only health view of all configured integrations, with on-demand connection testing and status timestamps.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v1.0</span>
<h3>Setup Wizards & .env Snippets</h3>
<p>In-browser guided wizards for every integration — step through configuration and get a ready-to-paste <code style="font-size:.82em;background:rgba(255,255,255,.07);padding:.1em .3em;border-radius:3px">.env</code> snippet.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v1.0</span>
<h3>Config Simplification</h3>
<p><code style="font-size:.82em;background:rgba(255,255,255,.07);padding:.1em .3em;border-radius:3px">.env</code> as the single source of truth — no database-stored config overrides, cleaner architecture, easier to reason about.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-active"><svg width="8" height="8" viewBox="0 0 8 8" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><circle cx="4" cy="4" r="4"/></svg>Planned</span>
<h3>Scheduled Executions</h3>
<p>Run commands and tasks on a schedule — cron-like automation from the web interface.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-planned">◎ Planned</span>
<h3>Icinga / CheckMK</h3>
<p>Monitoring context alongside configuration management — see node health inline with infra data.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-planned">◎ Planned</span>
<h3>Terraform / OpenTofu</h3>
<p>Infrastructure provisioning alongside configuration management in the same interface.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v0.10</span>
<h3>AWS EC2 Integration</h3>
<p>EC2 instance discovery, lifecycle management, and provisioning across multiple regions.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v0.9</span>
<h3>Proxmox Integration & Node Journal</h3>
<p>VM/container lifecycle management on Proxmox, plus per-node event timeline.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v0.8</span>
<h3>RBAC & SSH Integration</h3>
<p>Role-based access control, multiple users, SSH-first mode, and inventory groups.</p>
</div>
<div class="roadmap-card">
<span class="roadmap-status status-done">✓ Released v0.7</span>
<h3>Ansible Integration</h3>
<p>Ad-hoc commands, playbook execution, and inventory discovery via Ansible.</p>
</div>
</div>
</div>
</section>
<!-- ======================== CTA BANNER ======================== -->
<section class="section-sm" style="background:linear-gradient(135deg,rgba(99,102,241,.18) 0%,rgba(34,211,238,.08) 100%);border-top:1px solid rgba(99,102,241,.2);border-bottom:1px solid rgba(99,102,241,.15);">
<div class="container" style="text-align:center">
<h2 style="margin-bottom:.75rem">Ready to tame your infrastructure?</h2>
<p style="margin-bottom:2rem;max-width:500px;margin-left:auto;margin-right:auto;">Free, open source, self-hosted. No SaaS, no telemetry, no license fees.</p>
<div style="display:flex;gap:1rem;justify-content:center;flex-wrap:wrap">
<a href="https://github.com/example42/pabawi" target="_blank" rel="noopener" class="btn btn-primary">Star on GitHub</a>
<a href="docs.html" class="btn btn-outline">Read the Docs</a>
</div>
</div>
</section>
<!-- ======================== FOOTER ======================== -->
<footer class="footer">
<div class="container">
<div class="footer-grid">
<div class="footer-brand">
<a href="index.html" class="nav-logo" style="font-size:1.1rem">
<img src="logo.png" width="24" height="24" alt="Pabawi logo" style="border-radius:3px;" />
Pabawi
</a>
<p>Classic Infrastructures Command & Control Awesomeness. Open source, self-hosted, Apache 2.0.</p>
</div>
<div class="footer-col">
<h4>Product</h4>
<ul>
<li><a href="index.html#features">Features</a></li>
<li><a href="index.html#usecases">Use Cases</a></li>
<li><a href="index.html#install">Installation</a></li>
<li><a href="index.html#roadmap">Roadmap</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Docs</h4>
<ul>
<li><a href="docs.html#quickstart">Quick Start</a></li>
<li><a href="docs.html#configuration">Configuration</a></li>
<li><a href="docs.html#integrations">Integrations</a></li>
<li><a href="docs.html#api">API Reference</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Project</h4>
<ul>
<li><a href="about.html">About</a></li>
<li><a href="support.html">Support</a></li>
<li><a href="https://github.com/example42/pabawi" target="_blank" rel="noopener">GitHub</a></li>
<li><a href="https://github.com/example42/pabawi/releases" target="_blank" rel="noopener">Releases</a></li>
<li><a href="https://hub.docker.com/r/example42/pabawi" target="_blank" rel="noopener">Docker Hub</a></li>
<li><a href="https://github.com/example42/pabawi/issues" target="_blank" rel="noopener">Issues</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>© 2025–2026 <a href="https://example42.com" target="_blank" rel="noopener">example42</a> · Alessandro Franceschi · Apache 2.0 License</p>
<div class="footer-links">
<a href="https://github.com/example42/pabawi/blob/main/LICENSE" target="_blank" rel="noopener">License</a>
<a href="https://github.com/example42/pabawi/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener">Contributing</a>
<a href="https://github.com/example42/pabawi/issues" target="_blank" rel="noopener">Issues</a>
</div>
</div>
</div>
</footer>
<script src="js/main.js"></script>
</body>
</html>