Skip to content

Operations

Use this section if you deploy, upgrade, or respond to incidents on an installed Capell site.

The operations surface brings the pre-deployment checks together: Site Health reports on sites, languages, themes, migrations, queues, and public-output readiness. Where the optional optimiser is installed, administrators can see PageSpeed status alongside page operations. Upgrade runs retain durable records and state their rollback boundary, so an operator can distinguish a reversible application step from a database or infrastructure restore.

I need to…Read
Put a new install on a public domainGoing live
Check whether the site is ready for trafficSite Health
Report operational failures consistentlyOperational reporting
Back up or restore dataBackups and restore
Block public traffic during an incidentLockdown
Upgrade packages and plan rollbackUpgrades
Diagnose an installed siteTroubleshooting
Debug Marketplace connection or installsDebugging Marketplace
Prepare a host for Marketplace operationsMarketplace hosting
Plan a reversible migration awayExport and exit plan
Configure nginx/Apache or scale to >1 nodeWeb server configuration
Make public and dynamic requests fasterMaking Capell fast
Run Capell on Laravel OctaneOctane
Split public and authoring processesRuntime roles
SymptomCheck
Public pages are staleCache state, queue worker, optional HTML Cache package, CDN purge.
Admin is missing pages/settingsphp artisan optimize:clear, permissions, package install state.
Install exhausts PHP memoryResume the installer and identify the unbounded step in the installation report.
Jobs or scheduled work are idleCheck the queue worker and scheduler separately.
Install fails in CIMissing non-interactive flags or private Composer credentials.
Marketplace cannot installAccount connection, Marketplace URL, webhook URL, package compatibility.
Public output looks unsafeSearch response HTML for authoring markers, model IDs, signed admin URLs, selectors, package names.

Site Health is the operator-facing read-only page for launch and post-deploy checks. It shows whether public traffic can be served safely before anyone edits content.

Use it to check:

  • cache and static-output state
  • public HTML safety
  • server/runtime readiness
  • optimizer/static generation readiness when optional packages are installed
  • package and extension health signals

If Site Health reports a missing optional package table, check whether the package is installed and whether its migrations have run before treating it as a host bug.

Use the Site Health runbook for the full check list.

Lockdown blocks public frontend traffic and most admin access during a suspected compromise or high-risk maintenance window. Break-glass admins can still access the admin surface.

Use Lockdown when:

  • public content may be unsafe
  • package state is inconsistent after a failed deploy
  • you need to stop cached public pages while investigating

After enabling or disabling Lockdown, clear runtime caches and verify public routes from a signed-out browser. The Lockdown runbook covers enable/disable commands, break-glass access, and verification steps.

Standard host upgrade flow:

Terminal window
composer update capell-app/capell -W
php artisan capell:upgrade
php artisan optimize:clear
php artisan queue:restart

Before upgrading production, check:

  • database, .env, and storage/ backups exist
  • queue workers can run
  • optional package migrations are included
  • php artisan list capell shows expected package commands
  • Site Health is clean or known issues are documented

Rollback behavior depends on the app deploy platform and database backup strategy. Capell can record upgrade state, but it cannot replace infrastructure-level rollback.

Use the backup and restore runbook before production changes. Use the upgrade runbook for durable run tracking, package compatibility, migrations, cache clearing, and post-upgrade checks. For a product-facing explanation of the feature, use Durable Upgrade Operations.

Capell Core can create database/media snapshots, verify freshness and artifact checksums, enforce retention, and restore only into isolated scratch targets.

Terminal window
php artisan capell:backup:create
php artisan capell:backup:health --json
php artisan capell:backup:prune

Alert on a non-zero health exit. Run capell:backup:prune without --force first, and schedule a scratch restore drill at least monthly. The backup and restore runbook contains configuration, scheduling, restore, cleanup, and production-recovery boundaries.

Use the export and exit plan to inventory portable data, create Migration Assistant packages, rehearse a move, and retain a safe rollback window when leaving Capell or moving between installations.

Marketplace account linking establishes the site identity used for protected installs and update access.

Useful checks:

Terminal window
php artisan config:show capell-marketplace.marketplace.base_url
php artisan config:show capell-marketplace.marketplace.webhook_url
php artisan config:clear

The default Marketplace API URL is:

CAPELL_MARKETPLACE_URL=https://capell.app/api/v1

Use the Marketplace package overview for account connection, heartbeat, cache, and install-authorization details. Use Marketplace hosting for capability tiers and remediation, and Troubleshooting for copy-paste checks.

For deeper Marketplace incidents, use Debugging Marketplace.

Troubleshooting holds the full, copy-paste fix for each of these. Match your symptom, then click through for the cause, commands, and what you should see afterwards.

SymptomFix
/admin returns 403 or login loops403 or cannot log in
Dashboard loads but Capell resources are missingPages or Settings are missing
Published pages still show old contentPublished pages still show old content
Frontend shows Laravel’s welcome pageLaravel’s default welcome page
Non-interactive install fails with Required.NonInteractiveValidationException: Required.
Composer cannot find Capell packagescomposer require cannot find the package
PHP runs out of memory during installResume and isolate the interrupted installer step
A queued install or task never startsConfigure and check the queue worker
Scheduled tasks never runConfigure Laravel’s scheduler
The visible error is too genericFind the installation logs
Vite cannot resolve package CSS importsCan't resolve 'swiper/...' during npm run build

For the full list of error strings and fixes, see Troubleshooting.