Skip to content

Configuration Reference

This page covers the host package configuration that a Laravel app may need to set directly. Install-facing setup lives in the install guide; this page is for maintainers checking env vars, published config, disks, logs, and panel wiring.

Capell host packages publish config by package tag:

Terminal window
php artisan vendor:publish --tag=capell-core-config
php artisan vendor:publish --tag=capell-admin-config
php artisan vendor:publish --tag=capell-frontend-config

Installer and Marketplace config are loaded from their packages. Publish or override them only when the app has a real deployment reason to do so.

VariableDefaultUsed for
APP_URLhttp://localhost in LaravelDefault site URL, install prompts, generated callbacks, Marketplace webhook fallback
QUEUE_CONNECTIONsync in a fresh Laravel appBackground jobs and package workflows; production installs should normally use database or redis
LOG_LEVELLaravel defaultCapell log channel level when the app adds the recommended capell channel

Source: packages/core/config/capell.php

VariableDefaultUsed for
CAPELL_SITEMAP_MAX_URLS_PER_FILE50000Maximum URLs per generated sitemap file
CAPELL_SITEMAP_XML_PATH/sitemap-xmlPublic path used for sitemap index entries
CAPELL_STATIC_SITE_INTERNAL_REQUESTSfalseAllows static-site generation to use internal request handling
CAPELL_BLAZE_ENABLEDBLAZE_ENABLED, then trueEnables Blaze support where installed
BLAZE_DEBUGfalseEnables Blaze debug behaviour
CAPELL_BLAZE_THROWfalseThrows during Blaze candidate auditing
CAPELL_DISABLE_CACHEtrueDisables Capell’s general cache layer
CAPELL_DISABLE_CACHE_SAVE_KEYS[]Cache keys or patterns that should not be saved
CAPELL_WORKSPACES_PRUNE_SCHEDULEfalseEnables the publishing workspace prune schedule
CAPELL_WORKSPACES_PRUNE_CRON15 3 * * *Cron expression for workspace pruning
CAPELL_WORKSPACE_PREVIEW_HOME_ROUTEcapell-frontend.homeRoute used for workspace home previews
CAPELL_WORKSPACE_NOTIFICATIONStrueEnables workspace state-change notifications
CAPELL_RELEASE_WINDOWSfalseEnforces configured release windows during publishing
CAPELL_RELEASE_WINDOWS_TZUTCTimezone used for release windows
CAPELL_PLUGINS_SOURCE_URLhttps://plugin.capell.app/packages.jsonLegacy plugin source URL
CAPELL_PLUGINS_CACHE_TTL3600Legacy plugin cache TTL in seconds
CAPELL_MEDIA_BACKENDspatieMedia backend resolver key, such as spatie or curator
CAPELL_SUPER_ADMIN_ROLEsuper_adminRole name used for the highest admin role
CAPELL_ADMIN_ROLEadminRole name used for admin users
CAPELL_EDITOR_ROLEeditorRole name used for editor users
CAPELL_INSTALL_DEBUG_PACKAGE_SELECTIONfalseLogs installer package-selection mode, prompt defaults, and selected packages for support debugging
CAPELL_DEVELOPER_PAGEtrueShows the developer dashboard page
CAPELL_SYSTEM_HEALTH_PAGEtrueShows the system health dashboard page
CAPELL_DEVELOPER_TOOLS_PHP_WRITESlocal_onlyControls developer tooling PHP file writes
CAPELL_DEVELOPER_TOOLS_DATABASE_WRITESlocal_onlyControls developer tooling database writes
CAPELL_DEVELOPER_TOOLS_READONLY_PREVIEWtrueKeeps developer tooling previews read-only
CAPELL_DEVELOPER_TOOLS_EDITOR_URL_TEMPLATE(null)Editor URL template for opening local files

CAPELL_DISABLE_CACHE_SAVE_KEYS accepts exact keys, wildcard patterns, or regex patterns:

CAPELL_DISABLE_CACHE_SAVE_KEYS=page-*,/^user-\d+$/,my-key

Source: packages/core/config/redirects.php

VariableDefaultUsed for
CAPELL_REDIRECTS_AUTO_ENABLEDtrueEnables automatic redirect behaviour

Source: packages/core/config/audit.php

VariableDefaultUsed for
AUDITING_ENABLEDtrueEnables auditing support where the audit package is active

Source: packages/admin/config/capell-admin.php

VariableDefaultUsed for
CAPELL_ADMIN_PATHadminFilament panel path and admin-owned route prefix
CAPELL_ADMIN_DOMAIN(null)Optional host restriction for admin panel and admin-owned routes
CAPELL_AUTO_CLEAR_CACHEtrueClears relevant caches after admin writes
CAPELL_AUTO_REFRESH_CACHEfalseRefreshes page cache after admin writes where supported
CAPELL_ADMIN_SECURITY_HEADERS_ENABLEDtrueAdds admin response security headers
CAPELL_LAYOUT_BUILDER_PREVIEW_MATCH_FRONTEND_CONTAINER_LAYOUTtrueKeeps admin layout previews aligned with frontend container behaviour
CAPELL_UPDATE_DANGER_THRESHOLD3Version-behind count treated as dangerous in upgrade notices
CAPELL_UPDATE_API_ENABLEDtrueEnables update checks against the Capell update API
CAPELL_UPDATE_API_URLhttps://capell.app/api/updates/checkUpdate API endpoint
CAPELL_UPDATE_API_TIMEOUT_SECONDS10Update API timeout
CAPELL_UPDATE_API_ENFORCE_HTTPStrueRequires HTTPS for update API calls
CAPELL_UPDATE_NOTIFICATIONS_ENABLEDtrueEnables scheduled upgrade summary notifications
CAPELL_UPDATE_NOTIFICATION_FREQUENCYweeklySchedule frequency for upgrade summary notifications
CAPELL_UPDATE_NOTIFICATION_EMAILS(empty)Comma-separated email recipients for upgrade summaries

Use the shared admin entrypoint helper when configuring Filament:

use Capell\Admin\Support\AdminPanelEntrypoint;
return $panel
->domain(AdminPanelEntrypoint::domain())
->path(AdminPanelEntrypoint::path());

See Admin domain and path for path-only and subdomain examples.

Source: packages/frontend/config/capell-frontend.php

VariableDefaultUsed for
CAPELL_FRONTEND_ASSET_BUILD_TOOLviteFrontend build integration: vite, mix, or static
CAPELL_HTML_CACHEtrueEnables static HTML cache reads
CAPELL_WRITE_HTML_CACHEtrueAllows static HTML cache writes
CAPELL_MINIFY_HTMLtrueMinifies rendered HTML before returning or caching
CAPELL_RENDER_HTML_CONTENT_WITH_BLADEfalseCompatibility escape hatch for trusted developer-authored HTML only
CAPELL_MODEL_EVENT_REGISTRATION_MODEdeferredCache event tracking mode: sync, deferred, or async
CAPELL_FRONTEND_REGISTER_HOME_ROUTEfalseRegisters / to the Capell frontend controller
CAPELL_THROW_ON_NO_SITESfalseThrows instead of returning 404 when no sites exist
CAPELL_SITE_BASE_URL(null)Base URL override for generated site URLs
CAPELL_SCHEDULE_PAGE_CLEANERdailySchedule frequency for page cleanup
CAPELL_DEBUG_LOGfalseAdds frontend resolution debug logging

Keep CAPELL_RENDER_HTML_CONTENT_WITH_BLADE=false for editor-controlled CMS content in production. Blade directives execute server-side; this option is only for trusted developer-authored content. See packages/frontend/docs/security.md.

Source: packages/installer/config/capell-installer.php

VariableDefaultUsed for
CAPELL_SETUP_ALLOW_REINSTALLAPP_DEBUG, then falseAllows the browser installer to run again after install
CAPELL_SETUP_COMPOSER_BINARYcomposerComposer binary used by the browser installer
CAPELL_SETUP_PHP_BINARYphpCLI PHP binary used for fresh Artisan processes
CAPELL_SETUP_DEFAULT_PACKAGEScapell-app/filamentorsOptional packages preselected in the browser installer

Set CAPELL_SETUP_PHP_BINARY when the web SAPI sees PHP_BINARY as php-fpm or another non-CLI executable.

Source: packages/marketplace/config/capell-marketplace.php

VariableDefaultUsed for
CAPELL_MARKETPLACE_ENABLEDtrueEnables Marketplace integration
CAPELL_INSTANCE_ID(null)Existing Marketplace instance ID
CAPELL_MARKETPLACE_URLhttps://capell.app/api/v1Marketplace API base URL
CAPELL_MARKETPLACE_WEB_URLhttps://capell.appPublic Marketplace web URL
CAPELL_MARKETPLACE_CATALOGUE_PAGE_LIMIT3Page limit for catalogue fetches
CAPELL_MARKETPLACE_WEBHOOK_URL(null)Explicit public callback URL for Marketplace events
CAPELL_MARKETPLACE_WEBHOOK_SECRET(null)Shared secret for Marketplace webhook verification
CAPELL_MARKETPLACE_TROUBLESHOOTING_URLhttps://docs.capell.app/extensions/marketplace-heartbeatHelp URL shown in Marketplace diagnostics

Only override CAPELL_MARKETPLACE_URL for staging or self-hosted Marketplace APIs. If Marketplace reports that api/registration-sessions cannot be found, the app is probably using an old unversioned API URL.

The page cache uses a dedicated disk. Add it to config/filesystems.php if the installer has not patched it already:

'page_cache' => [
'driver' => 'local',
'root' => public_path('page-cache'),
'throw' => false,
],

The web server user must be able to write to this path when CAPELL_WRITE_HTML_CACHE=true.

Add a dedicated Capell channel to config/logging.php if the installer has not patched it already:

'capell' => [
'driver' => 'single',
'path' => storage_path('logs/capell.log'),
'level' => 'debug',
],

Frontend logging uses this channel when it exists and falls back to Laravel logging when it does not.

Register a morph map in the consuming app if polymorphic records may outlive class renames:

use Capell\Core\Models\Language;
use Capell\Core\Models\Page;
use Capell\Core\Models\Site;
use Capell\Core\Models\Blueprint;
use Illuminate\Database\Eloquent\Relations\Relation;
Relation::morphMap([
'language' => Language::class,
'page' => Page::class,
'site' => Site::class,
'blueprint' => Blueprint::class,
]);