Publish curated ITWorx-Pulse source from 0e0633c8ac91cb71312a26837f791035a78d81b8
Public source validation / validate (push) Failing after 2m10s
Public source validation / validate (push) Failing after 2m10s
This commit is contained in:
1 parent
a4956c2af9
commit
db8093b608
88 files changed
+3685
-469
No files matched your search
@@ -1,40 +1,37 @@
|
||||
# ITWorx Pulse
|
||||
|
||||
ITWorx Pulse is een self-hosted observabilityplatform voor Unraid. Het brengt host-, container-, storage-, netwerk- en servicetelemetrie samen in één operatorgerichte interface, met configureerbare dashboards, alerts, incidenten en wallboards.
|
||||
<p align="center"><img src="apps/web/public/pulse-icon.svg" width="76" alt="ITWorx Pulse icon"></p>
|
||||
<p align="center"><strong>A read-only operations view for self-hosted infrastructure.</strong></p>
|
||||
<p align="center"><a href="#see-pulse-in-action">Interface</a> · <a href="#capabilities">Capabilities</a> · <a href="#try-it-locally">Quick start</a> · <a href="#production-deployment">Deployment</a></p>
|
||||
|
||||
Pulse is operationeel **read-only**: het observeert en verklaart, maar start, stopt, verwijdert of repareert geen infrastructuur. Ontbrekende of verouderde telemetrie verschijnt als `Onbekend`, nooit als vals groen.
|
||||
ITWorx Pulse brings Unraid host, container, storage, network and service telemetry into one operator-focused interface. It helps teams see what needs attention, investigate the underlying resource, and keep dashboards, alerts, incidents and wallboards in the same context.
|
||||
|
||||
Actuele release: **v1.5.0**.
|
||||
Current release: **v1.6.0**. See the [changelog](CHANGELOG.md) for release history.
|
||||
|
||||
## Wat je als gebruiker krijgt
|
||||
Pulse is operationally **read-only**: it observes and explains infrastructure, but does not start, stop, delete or repair workloads. Missing or stale telemetry appears as **Unknown**, never as a reassuring green status.
|
||||
|
||||
- een overzicht dat meteen toont wat gezond, gedegradeerd, kritisch of onbekend is en waarom;
|
||||
- detailpagina's voor host, processen, containers, applicaties, array, disks, pools, shares, services en netwerk;
|
||||
- versieerbare dashboards met afzonderlijke desktop-, tablet-, mobiele en wallboardlayouts;
|
||||
- begrensde historische en live Prometheus-query's zonder dat gebruikers zelf PromQL moeten schrijven;
|
||||
- alerts met pending/recovery, hysterese, suppressie, silences en maintenance;
|
||||
- incidentgroepering, tijdlijnen, notities, ownership en audit;
|
||||
- Authentik/OIDC-login met viewer-, operator-, editor- en administratorrollen;
|
||||
- controleerbare backups en een clean-room herstelprocedure;
|
||||
- hardened non-root containers en een minimale read-only collectorgrens.
|
||||
## See Pulse in action
|
||||
|
||||
## Platform in één oogopslag
|
||||

|
||||
|
||||
```text
|
||||
Browser
|
||||
└─ HTTPS / OIDC / REST / WebSocket
|
||||
└─ Pulse Web + API
|
||||
├─ PostgreSQL configuratie, inventory, dashboards, alerts en audit
|
||||
├─ Prometheus begrensde historische en live metrics
|
||||
├─ Pulse Worker discovery, probes, alerting en notifications
|
||||
└─ Pulse Agent minimale read-only Unraid- en hostobservatie
|
||||
```
|
||||
*This capture uses isolated validation fixtures and does not show a production host.*
|
||||
|
||||
De web/API-laag krijgt geen Docker-socket of host-roottoegang. Alleen de agent ontvangt de expliciet geconfigureerde read-only bronnen die nodig zijn voor observatie.
|
||||
## Capabilities
|
||||
|
||||
## Snel lokaal proberen
|
||||
| Area | What operators can do |
|
||||
| --- | --- |
|
||||
| Overview and search | Move from an attention item to the exact host, container, service or storage resource. |
|
||||
| Infrastructure detail | Inspect hosts, processes, containers, applications, arrays, disks, pools, shares and networks. |
|
||||
| Dashboards | Compose versioned desktop, tablet, mobile and wallboard layouts. |
|
||||
| Metrics | Explore bounded historical and live Prometheus queries without writing PromQL. |
|
||||
| Alerts and incidents | Manage pending and recovery states, suppression, maintenance, timelines, notes and ownership. |
|
||||
| Access and recovery | Use Authentik/OIDC roles, audit trails, verifiable backups and clean-room restore procedures. |
|
||||
|
||||
Vereisten: Go 1.26.6, Node.js 24+, pnpm 10.33+, Python 3, PowerShell 7 en Docker Compose.
|
||||
The global operator bar keeps time context, entity search, favorites, saved views and recent resources available while investigating. The interface supports responsive layouts and accessible keyboard navigation.
|
||||
|
||||
## Try it locally
|
||||
|
||||
Requirements: Go 1.26.6, Node.js 24+, pnpm 10.33+, Python 3, PowerShell 7 and Docker Compose.
|
||||
|
||||
```powershell
|
||||
Copy-Item .env.example .env
|
||||
@@ -42,51 +39,39 @@ pwsh -NoProfile -File scripts/bootstrap.ps1
|
||||
docker compose -f deploy/compose.yaml -f deploy/compose.dev.yaml up --build
|
||||
```
|
||||
|
||||
Open daarna `http://localhost:18080`. De ontwikkelstack gebruikt expliciete mock-authenticatie en geïsoleerde lokale data; gebruik hiervoor nooit productiecredentials of productiedata.
|
||||
Open <http://localhost:18080>. The development stack uses explicit mock authentication and isolated local data. Do not put production credentials or production telemetry in this environment. Stop the stack with `docker compose -f deploy/compose.yaml -f deploy/compose.dev.yaml down --volumes` when its local data can be discarded.
|
||||
|
||||
Stop en verwijder alleen deze lokale stack met:
|
||||
## Architecture
|
||||
|
||||
```powershell
|
||||
docker compose -f deploy/compose.yaml -f deploy/compose.dev.yaml down --volumes
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Browser[Browser and wallboard] --> Web[Pulse web and API]
|
||||
Web --> DB[(PostgreSQL domain state)]
|
||||
Web --> Metrics[Prometheus metrics]
|
||||
Worker[Pulse worker] --> DB
|
||||
Agent[Read-only Unraid agent] --> Worker
|
||||
```
|
||||
|
||||
## Valideren
|
||||
The web/API tier has no Docker socket or host-root access. Only the agent receives explicitly configured read-only sources needed for observation. PostgreSQL stores configuration, inventory, dashboards, alerts and audit; the worker handles discovery, probes and notifications.
|
||||
|
||||
De private engineeringrepository gebruikt een uitgebreidere evidencegate. Een publieke source-export valideert de productcode met:
|
||||
## Production deployment
|
||||
|
||||
Begin with the [public deployment guide](docs/PUBLIC_DEPLOYMENT.md). A production instance needs HTTPS, Authentik/OIDC, private PostgreSQL, externally managed secrets, a defined Prometheus source, least-privilege Unraid API access where required, a backup directory, and a reviewed network and mount projection. The supplied configuration fails closed when mandatory production settings are absent. Validate backup, restore and rollback before relying on alerts.
|
||||
|
||||
Run the public source verification with:
|
||||
|
||||
```powershell
|
||||
pwsh -NoProfile -File scripts/public-verify.ps1
|
||||
```
|
||||
|
||||
Deze gate controleert Go-tests/vet, frontendtests/typecheck/build, contracten, wiring, secretmarkers, image-digests en de publieke source boundary. De optionele Docker-integratiesmoke staat in `scripts/integration-smoke.ps1`.
|
||||
This checks Go tests and vet, frontend tests and build, contracts, wiring, secret markers, image digests and the public-source boundary. The optional Docker integration smoke is in `scripts/integration-smoke.ps1`.
|
||||
|
||||
## Productie
|
||||
## Further reading
|
||||
|
||||
Begin bij [`docs/PUBLIC_DEPLOYMENT.md`](docs/PUBLIC_DEPLOYMENT.md). Productie vereist onder meer:
|
||||
- [System architecture](docs/architecture/SYSTEM_ARCHITECTURE.md) and [API contract](docs/architecture/API_CONTRACT.md)
|
||||
- [Security threat model](docs/architecture/SECURITY_THREAT_MODEL.md)
|
||||
- [Development setup](docs/operations/DEVELOPMENT_SETUP.md)
|
||||
- [Backup and restore](docs/operations/BACKUP_RESTORE.md)
|
||||
- [Public source boundary](docs/PUBLIC_SOURCE_BOUNDARY.md)
|
||||
|
||||
- HTTPS en een Authentik/OIDC-provider;
|
||||
- een private PostgreSQL-database en externe secrets;
|
||||
- een expliciete Prometheusbron;
|
||||
- een least-privilege Unraid API-token en gecontroleerde CA-mount wanneer de agent de Unraid API gebruikt;
|
||||
- een operator-owned backupdirectory;
|
||||
- validatie van poorten, netwerken, mounts en rollback vóór de eerste start.
|
||||
|
||||
De voorbeeldconfiguratie faalt bewust dicht wanneer verplichte productie-instellingen ontbreken.
|
||||
|
||||
## Documentatie
|
||||
|
||||
| Onderwerp | Document |
|
||||
|---|---|
|
||||
| Productscope en gebruikersflows | [`docs/product/PRODUCT_REQUIREMENTS.md`](docs/product/PRODUCT_REQUIREMENTS.md) |
|
||||
| Architectuur | [`docs/architecture/SYSTEM_ARCHITECTURE.md`](docs/architecture/SYSTEM_ARCHITECTURE.md) |
|
||||
| API en WebSocketcontract | [`docs/architecture/API_CONTRACT.md`](docs/architecture/API_CONTRACT.md) |
|
||||
| Securitymodel | [`docs/architecture/SECURITY_THREAT_MODEL.md`](docs/architecture/SECURITY_THREAT_MODEL.md) |
|
||||
| Lokale ontwikkeling | [`docs/operations/DEVELOPMENT_SETUP.md`](docs/operations/DEVELOPMENT_SETUP.md) |
|
||||
| Backup en herstel | [`docs/operations/BACKUP_RESTORE.md`](docs/operations/BACKUP_RESTORE.md) |
|
||||
| Publicatiegrens | [`docs/PUBLIC_SOURCE_BOUNDARY.md`](docs/PUBLIC_SOURCE_BOUNDARY.md) |
|
||||
|
||||
## Bijdragen en security
|
||||
|
||||
Lees [`CONTRIBUTING.md`](CONTRIBUTING.md) voordat je een wijziging indient. Meld kwetsbaarheden niet in een publieke issue; volg [`SECURITY.md`](SECURITY.md).
|
||||
|
||||
First-party broncode in deze repository is gelicentieerd onder **AGPL-3.0-or-later**; zie [`LICENSE`](LICENSE). Componenten en assets van derden behouden hun eigen licentievoorwaarden.
|
||||
First-party source is licensed under **AGPL-3.0-or-later**; see [LICENSE](LICENSE). For vulnerabilities, follow [SECURITY.md](SECURITY.md) rather than posting sensitive details in an issue.
|
||||
Reference in new issue
Block a user