Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ohdear Cli Laravel Package

nunomaduro/ohdear-cli

A command-line interface for Oh Dear, the all-in-one site monitoring service. Check uptime, broken links, SSL certificates, DNS and scheduled jobs, trigger on-demand checks, and manage your sites straight from the terminal. Built with Laravel Zero for a fast, friendly experience.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit This is not a Laravel package in the library sense — it is a standalone console application built on Laravel Zero, distributed as a PHAR or a global Composer binary. It exposes no service provider, facade, config file, or publishable assets, and therefore does not enter the host application's container or lifecycle. That distinction is the single most important framing for a TPM: the integration boundary is the process, not the codebase. It is a fit where the requirement is operational automation (post-deploy verification, maintenance-window toggling, ad-hoc status checks from a terminal or CI runner) against an existing Oh Dear account. It is a poor fit where the requirement is "query Oh Dear from inside our application" — that calls for the HTTP API directly or a client library.

Integration feasibility High and low-ceremony. Install via composer global require ohdearapp/ohdear-cli or download the PHAR; supply an API token via environment variable or flag; the tool talks to the Oh Dear API over outbound HTTPS. No application code changes, no migrations, no schema impact. The realistic adoption path is a one-line step in a deployment pipeline or a local developer convenience. The only hard prerequisites are an Oh Dear subscription, a scoped API token, and PHP 8.x on the executing host or runner image.

Technical risk Low-to-moderate, and almost entirely external risk rather than code risk. The package itself is small, MIT-licensed, and maintained under the Oh Dear organisation (it originated as nunomaduro/ohdear-cli and was migrated to ohdearapp/ohdear-cli) — that rename is itself a packaging-hygiene signal worth noting for anyone pinning the old vendor path. The substantive risks are: (1) third-party SaaS dependency — the CLI is worthless without a live Oh Dear account and API reachability; (2) secret handling — a token with account-level read/write access ends up in CI environment variables; (3) zero dependents, which is expected for a CLI but means no ecosystem pressure enforcing backward compatibility, so version pinning is mandatory if output is parsed; (4) supply-chain exposure from pulling an executable artifact into build infrastructure. The 141-star count and modest release cadence suggest a niche tool with a small maintainer pool — acceptable for a convenience layer, unacceptable as a load-bearing dependency in a critical path.

Key questions

  • What is the actual job to be done: CI/deploy gating, developer ergonomics, or in-app programmatic access? (Only the first two justify this tool.)
  • Do we already hold an Oh Dear subscription and site IDs, or is this a vehicle for adopting Oh Dear itself?
  • Can the API token be scoped to read-only for most use cases, and who owns rotation?
  • Will command output be parsed by scripts, and if so, are we pinning versions and output format?
  • Is a downloaded PHAR or global Composer binary permitted under our artifact and build-image policy?
  • What is the fallback when the CLI exits non-zero — should a monitoring check ever fail a deployment?

Integration Approach

Stack fit Strong for Laravel/PHP teams already using Oh Dear, since Composer and PHP 8.x are guaranteed present. The tool is runtime-independent of the monitored application's framework version, so it works identically across a mixed fleet of Laravel and non-Laravel PHP services. For non-PHP stacks it still works but requires a PHP runtime in the pipeline image, which is a real cost to weigh.

Migration path There is no data migration. The realistic migration is behavioural: replacing manual browser interaction with the Oh Dear dashboard by scripted commands, or replacing bespoke curl calls against the Oh Dear API with a maintained wrapper. Both are additive and reversible in a single pipeline edit, which makes the adoption risk profile unusually forgiving.

Compatibility Because Laravel Zero ships its own vendored dependency tree, a global or PHAR install avoids the classic conflict with the application's composer.lock — this is a genuine advantage over embedding it as a dev dependency. Verify PHP version constraints against the runner images before standardising, and confirm the binary works on the specific OS/architecture of self-hosted runners (Alpine/musl images are the usual failure point).

Sequencing

  1. Confirm Oh Dear account, site inventory, and token scopes; store the token in the secrets manager, not in plaintext CI variables.
  2. Pilot locally with read-only commands (site listing, check status) to validate connectivity and egress rules.
  3. Add a single non-blocking pipeline step post-deploy — observe only, do not gate — for one non-critical service.
  4. Promote to maintenance-window toggling around deploys, which is the highest-value use case and the one most likely to reduce false alerts.
  5. Only after the above is stable, consider exit-code gating or scheduled status reporting. Keep the tool out of the critical deploy path until its failure semantics are understood.

Operational Impact

Maintenance Very low code maintenance — nothing lives in our repositories. The recurring obligations are version pinning, PHP runtime currency in build images, and token rotation. The upstream bus factor is the main long-term consideration: a small maintainer group at Oh Dear, a project that is a convenience wrapper rather than a product surface. If it is abandoned, the replacement is a handful of curl calls, so the exit cost is genuinely trivial. That materially lowers the maintenance concern.

Support MIT licence, no SLA, community issues only. Oh Dear's commercial support covers the API and platform, not this CLI — teams should expect to debug wrapper-level behaviour themselves. Internal support burden is essentially "one or two engineers know the commands," which is a documentation task, not a staffing one.

Scaling Per-invocation overhead is negligible; the real ceiling is Oh Dear's API rate limits and the number of monitored sites. A per-deploy, per-site invocation pattern multiplies calls quickly — fine at dozens of sites, worth batching or restricting to changed services at hundreds. There is no state to scale; it is stateless request/response.

Failure modes

  • Expired or revoked token: auth failure, non-zero exit, silent in non-gated pipelines.
  • API rate limiting or 5xx: non-zero exit that can fail a deploy if wired as a gate.
  • Network egress blocked on self-hosted runners: intermittent, environment-specific failures.
  • PHP version or architecture mismatch (notably Alpine/musl): binary does not execute at all.
  • Asynchronous checks: a trigger command may exit successfully while the check is still pending, producing false confidence if treated as a verification result.
  • Output format drift on upgrade: breaks any downstream parser; mitigated by pinning.

Ramp-up Under an hour for a developer familiar with CLIs; the learning curve is in Oh Dear's domain concepts (checks, triggers, maintenance windows, certificate monitoring), not in the tool. Budget a short internal write-up covering token provisioning, the two or three commands actually used, and the decision on whether exit codes gate deployments. Overall this is a low-cost, low-risk operational convenience with an easy exit — worth adopting narrowly, not worth architecting around.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator