Skip to content

Pharos 0.5.4

Choose a tag to compare

@raym0nz82 raym0nz82 released this 06 Sep 14:29
· 115 commits to main since this release

Added

  • Discord notifications, with mentions disabled and rate-limit-aware retries.
  • Signal notifications through your own authenticated HTTPS bridge. An optional Docker Compose and gateway configuration is included; linking a Signal account is still required.
  • A persistent notification outbox with bounded retries and delivery history, so a temporary delivery failure does not silently lose an incident notification.
  • Optional automatic cron setup through DirectAdmin or cPanel, plus php artisan pharos:cron --install for hosts with shell access. Existing tasks are read first, preserved and checked after installation.
  • A dedicated authenticated Uptime Kuma status webhook for manually managed components.

Fixed

  • Installer: detects versioned CLI PHP installations for DirectAdmin, cPanel, CloudLinux and Plesk and distinguishes web PHP from cron PHP. Restricted filesystem access produces an explicit warning instead of a false success.
  • Installer: a private installation key protects the initial setup; CSRF checks and installation locks prevent unintended configuration changes. Existing installations and APP_KEY are preserved, and database passwords retain special characters.
  • MySQL: setting changes no longer fail because the audit log expected a numeric ID for a text setting key.
  • Updates and rollback: copied public files follow the exact release or backup; tracked obsolete release files are removed without deleting uploads or custom files. Symlink destinations are refused, and failed backups or migrations stop the update.
  • Monitoring: DNS resolution fails closed and TCP checks use the same validated address throughout. Failed scheduler runs no longer appear as successful checks.
  • Notifications: connection credentials are stored encrypted and excluded from delivery errors. Signal credentials are not rendered back into the page.
  • Integrations: clearer heartbeat and Kuma instructions and long API addresses that fit mobile screens.
  • Shell installer: unverified releases, non-empty installation directories and unsafe pinned-version overwrites are refused. Older releases receive manual cron instructions when automatic setup is unavailable.

Upgrade notes

  • Back up your installation and database, then run php artisan migrate --force after updating. Keep the scheduler running every minute for checks and notification retries.
  • Discord requires a channel webhook. Signal requires a linked bridge, HTTPS endpoint and bearer token; it is not hosted by Pharos.
  • Cron availability depends on hosting permissions. Plesk can use Scheduled Tasks or the CLI command. A saved cron task is only confirmed operational after a successful scheduler run.
  • MySQL database backups and restores remain operator-managed. Public files from before the new ownership manifest are not deleted automatically.

Validation: 613 application tests pass on SQLite and MySQL. Installer helpers pass on PHP 7.4, 8.1, 8.3, 8.4 and 8.5. PHPStan reports no errors.

Downloads

  • pharos-install-0.5.4.php: upload this single file to the test domain and open it in your browser. This copy retrieves the signed 0.5.4 archive from this GitHub release.
  • pharos-0.5.4.zip: complete application archive with production dependencies for manual installation.
  • pharos-0.5.4.json and .zip.sha256: signed release metadata and checksum.

The hosted website/update feed is deployed separately; publishing this GitHub release does not modify an existing installation.