Skip to main content
GrN.dk

Main navigation

  • Articles
  • Cases
  • Contact
  • Your Digital Project Manager
  • About Greg Nowak
  • Services
  • Container
    • Excel Freelancer
    • Kubuntu - tips and tricks
    • Linux Apache MySQL and PHP
    • News
    • Image Gallery
User account menu
  • Log in

Join my community / free newsletter — sign up here

Breadcrumb

  1. Home
  2. Cases

The boring superpower: a weekly gate that keeps twelve sites' dependencies current

Client
GrN.dk — server fleet (12 production vhosts)
Sector
Maintenance automation / DevOps
Period
July 2026 — ongoing
The gate's weekly fleet report: twelve vhosts with their Drupal core version, web PHP, queued safe bumps and held breaking majors, plus the rule that composer resolves against each site's own web PHP.

At a glance

Twelve production websites on one server, each with its own Composer dependency tree, and the oldest question in hosting: are they up to date, and is it safe to make them so? The dependency-currency gate answers it weekly and automatically — it inventories every vhost, checks each dependency tree against the PHP version that site's web server actually runs, queues the semver-safe updates for approval, and reports the breaking ones instead of applying them.

12 production vhosts scanned weekly; safe bumps queued, majors held for review
Composer resolves against each site's web PHP — the CLI-PHP trap that 500'd two sites is closed by construction
Every apply run snapshots composer.lock + vendor: one command rolls a site back

The challenge

Unpatched dependencies are how sites get owned, but blind composer update is how sites go down — and there is a subtle trap between the two. A server's command-line PHP is often newer than the PHP the web server runs, so an update resolved with the CLI can install packages the live site literally cannot execute. That exact failure — CLI-resolved dependencies that were 8.4-only, on sites serving PHP 8.3 — had already produced HTTP 500s on two live sites here. The fix had to make that class of mistake impossible, not merely less likely.

The solution

A four-phase tool, built as separate approved stages: an inventory of every vhost and its real runtime; a currency check that runs Composer's resolver as each site's own web PHP (lsphp 8.3, not the newer CLI PHP), splitting available updates into semver-safe bumps and breaking majors; an apply stage that snapshots composer.lock and the vendor tree before touching anything, so one command rolls a site back; and a weekly cron that re-runs the check across the fleet and mails the report.

The judgment calls stay human: safe bumps are queued and applied on approval, majors are listed with what they would break, and nothing is ever auto-applied.

The results

The gate has run weekly since mid-July 2026. A typical report: 12 vhosts scanned, a handful of safe bumps queued, zero applied without approval. The two sites broken by the CLI-PHP trap were repaired by re-resolving at their web PHP, and the root cause is now structurally closed — the resolver simply never sees a PHP the live site does not have.

It is the least glamorous case on this page and possibly the most valuable one: the difference between "we should really update those sites sometime" and a Monday-morning email that says exactly what is safe to do.

  • Composer
  • php
  • DevOps
  • Automation
  • Maintenance

Got a project that needs the same kind of hands-on delivery?

Your digital project manager

Review Greg on Google

Greg Nowak Google Reviews

 

Illustrated infographic summarizing: Your AI Agent Has Shell Access. What Can It Reach?
Your AI Agent Has Shell Access. What Can It Reach?
2026-08-13

A practical guide to mapping what a shell-enabled AI agent can reach, then containing its access to files, credentials, networks, tools, and high-impact actions.

Illustrated infographic summarizing: Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
2026-08-12

Cloudflare’s DoH JSON change exposes brittle DNS parsing. Find affected scripts, test both formats, and choose a safer integration contract.

Illustrated infographic summarizing: Your Website Can Answer Questions Now. Should It?
Your Website Can Answer Questions Now. Should It?
2026-08-11

NLWeb makes conversational website search practical to deploy. The real question is whether your content, users and team are ready to support it.

Illustrated infographic summarizing: AI Search Finally Has Reports. Now Connect Visibility to Revenue
AI Search Finally Has Reports. Now Connect Visibility to Revenue
2026-08-11

Google and Bing now expose first-party AI search data. The real task is connecting citations and impressions to analytics, CRM outcomes, and revenue.

Illustrated infographic summarizing: The Bot Passed Your CAPTCHA. What Did It Do Next?
The Bot Passed Your CAPTCHA. What Did It Do Next?
2026-08-11

Passing a challenge is only one signal. Session analysis, server-side validation and endpoint-specific controls help reduce bot abuse without blocking customers.

Illustrated infographic summarizing: WordPress 7.1 Moves Image Work Into the Browser—Test Every Media Hook
WordPress 7.1 Moves Image Work Into the Browser—Test Every Media Hook
2026-08-11

WordPress 7.1 shifts image processing into supported browsers. Here is what to test across hooks, CDNs, formats, security headers, and fallbacks.

Illustrated infographic summarizing: Prompt Caches Have Write Costs Now—Audit What Your Workflow Reuses
Prompt Caches Have Write Costs Now—Audit What Your Workflow Reuses
2026-08-10

GPT-5.6 makes cache writes billable. See how to spot wasted writes, stabilise prompt prefixes, place breakpoints and measure whether caching pays.

Illustrated infographic summarizing: The AI Crawler in Your Logs May Be Wearing a Borrowed Name
The AI Crawler in Your Logs May Be Wearing a Borrowed Name
2026-08-09

A User-Agent is a claim, not proof. See how to verify AI crawler traffic before it shapes reporting, robots.txt decisions, or WAF exceptions.

Illustrated infographic summarizing: AI Agents Need a Spending Brake, Not Just a Billing Dashboard
AI Agents Need a Spending Brake, Not Just a Billing Dashboard
2026-08-08

AI agent costs can climb inside a single workflow. Runtime budgets, loop detection, outcome metrics, and safe handoffs keep that spending under control.

Illustrated infographic summarizing: Drupal 12 Slipped to December. Drupal 10 Still Runs Out of Road
Drupal 12 Slipped to December. Drupal 10 Still Runs Out of Road
2026-08-07

Drupal 12 arrives as Drupal 10 support ends in December 2026. Moving to Drupal 11.3+ first keeps two mandatory upgrades manageable.

More articles
RSS feed

Footer

  • All articles
  • Contact

GrN.dk web platforms, web optimization, data analysis, data handling and logistics.