Praxsys
Privacy-first WordPress site health history, reporting, and notifications.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/perpetualsys/praxsys-telemetry/archive/refs/heads/main.zipReadme
Praxsys Telemetry
Praxsys Telemetry is a privacy-first WordPress observability project. Its first deliverable is Praxsys, a standalone plugin for recording immutable site-health snapshots, comparing changes, exporting reports, and notifying administrators about meaningful events.
The project is designed to grow from local health history into reporting and administrator notifications. A future release may optionally connect to the Praxsys application, but the current standalone plugin deliberately has no Praxsys connection, telemetry endpoint, account requirement, visitor tracking, remote assets, or external service dependency.
Project status
Version 0.2.0 delivers a useful standalone operational workflow:
- normalized observations and immutable snapshots;
- local WordPress database storage;
- manual and configurable scheduled snapshot collection;
- environment and available-update collectors;
- a Praxsys admin area with Overview, Site Health, Notifications, and Settings;
- snapshot history and deterministic change detection;
- downloadable JSON reports;
- opt-in trigger/action email rules, per-rule cooldowns, and delivery history;
- weekly email summaries configured as notification rules;
- WordPress Site Health integration;
- configurable retention cleanup with a 90-day default.
No notification rule is created automatically. The first successful snapshot is a baseline, so change alerts begin only after a later snapshot opens, worsens, or resolves an issue. Any future Praxsys application connection will remain explicit and separately documented.
The authoritative behavioral contract is in docs/contracts/standalone-v1.md, with notification semantics in docs/contracts/notifications-v1.md. Machine-readable payload contracts live in contracts/.
Local installation
- Copy this directory to
wp-content/plugins/praxsys-site-health. - Activate Praxsys in WordPress.
- Open Praxsys > Site Health.
- Select Collect snapshot.
Activation creates four prefixed database tables and schedules local collection plus weekly-summary evaluation. Deactivation removes Praxsys cron events but preserves snapshots, rules, and delivery evidence.
Development
The distributed plugin uses its own small PSR-4-compatible autoloader, so Composer is not required at runtime. Local development uses the official @wordpress/env package and Docker; PHP, MySQL, Composer, WP-CLI, and PHPUnit run inside containers.
Prerequisites:
- Docker Desktop, running;
- Node.js 18.12 or newer;
- npm 8.19.2 or newer.
Install and provision the environment:
npm install
npm run env:provision
The first start downloads and builds the WordPress images, so it can take several minutes. The development site normally opens at http://localhost:8888 and the test site at http://localhost:8889. If either port is occupied, --auto-port selects an available port; run npm run env:status for the exact URLs.
Sign in at /wp-admin/ with the local-only credentials admin / password, then open Praxsys in the administration menu.
Run every automated check:
npm test
That command runs PHP syntax checks, WordPress Coding Standards and PHP compatibility checks, PHPUnit, an activation/database/cron smoke test, and WordPress Plugin Check. Useful lifecycle commands are:
npm run env:status
npm run env:logs
npm run env:stop
npm run env:destroy
npm run build:zip
env:stop preserves the local database for the next start. env:destroy removes this project's local WordPress containers and data.
build:zip creates the installable release archive in build/, excluding local-environment and development-only files according to .distignore.
The current compatibility floor is WordPress 6.5 and PHP 8.1. The plugin metadata is tested up to WordPress 7.1.
Privacy and security
- Collection is local and read-only.
- No snapshot or telemetry request is initiated to Praxsys or another remote service.
- Email is sent only for administrator-created and enabled rules, through WordPress
wp_mail(). - Change rules do not fire from the first baseline snapshot, and cooldowns limit repeat deliveries.
- Stored evidence must be bounded, structured, and free of secrets and raw personal data.
- Admin actions require the
manage_optionscapability and a WordPress nonce. - Delivery history stores a masked recipient and bounded subject, but never the message body.
- Data is preserved on uninstall unless deletion is explicitly enabled under Praxsys > Settings.
License
Praxsys Telemetry and the Praxsys Site Health plugin are licensed under the GNU General Public License v2.0 or later.