The configuration screens every site has, and the maintenance tools behind System, Languages, Updates and Patches.
In the user guide: the Application Settings, Localization and Updates chapters.
Every screen under Settings is a section registered in code (no database table defines a screen). A section has one or more pages (the tabs) and each page has fields. The generic view resources/themes/admin/settings/index.blade.php renders any section; Admin\SettingsController validates the section's combined rules and writes each field to the backend named by the field's group:
Field group | Stored in | Read with | Side effect |
|---|---|---|---|
settings (default) | settings table | setting('key') | Response cache flushed |
env | .env (key given by map), mirrored in settings | setting('name') or config() | Runs dotartisan:optimize after save |
uploads | File saved under uploads/; path in settings | setting('name') | Optional delete checkbox |
theme | theme_options setting for the active theme | theme_option('key') | Recompiles theme CSS when CSS-relevant options changed |
static | Nothing — headings, alerts, buttons | — | — |
Building your own screen is covered in Settings screens.
Registered per admin request by App\Helpers\Admin\RegisterSettings; priorities shown in parentheses control the sidebar order.
Section id (/admin/settings/{id}) | Tabs | Notes |
|---|---|---|
general (10) | General, Login, Users, reCAPTCHA, GDPR, Queue | App name/URL/timezone/date formats (env group), logos and favicon (uploads), Facebook/Google OAuth credentials, activation and default role, cookie consent, queue connection |
mail (20) | Driver (sendmail, SMTP, log, failover), from name/address, SMTP host/port/encryption/credentials — all stored in .env | |
integration (30) | Custom CSS / code | Header and footer code injected by the layouts (enable_header_code, enable_footer_code) |
webmaster (50) | Webmaster | Search-engine verification codes, Google Analytics / Tag Manager id |
cache (60) | Cache | Cache driver (file, Redis, Memcached), response-cache switch, header and lifetime options, "clear cache" buttons |
uploading (70) | Uploading | Disk selection (local, public, S3, Wasabi) with live connection validation (ValidateS3Connection) |
advanced (80) | Advanced | Debug mode (APP_DEBUG), ad-block detection |
announcements (90) | Guests, Users | Site-wide announcement banners, shown according to cookies |
maintenance (100) | Maintenance | Calls php artisan down --secret=… / up; shows the bypass URL |
page-setup (100) | One tab per module group | Generated from the AppPages registry: pick which CMS page acts as Homepage, Blog, Contact, Shop, Cart… |
theme-options (80, under Appearance) | Generated from theme.json | See Appearance |
booking, trucommerce, trupayments, stripe-settings, … | Module-defined | Registered by each module on AdminBooting |
CDN
The CDN settings section is intentionally disabled in RegisterSettings (the underlying package does not support Laravel 13). The admin.system.cdn-push route still exists.
All gated by application operations (routes/admin.php, Admin\SystemController):
| Route name | Action |
|---|---|
admin.system.optimize | Runs the safe optimise (dotartisan:optimize) |
admin.system.storage | (Re)creates the storage link |
admin.system.cache, .view, .route | Clear application / compiled view / route caches (the response cache is emptied together with cache:clear through a cache:cleared listener) |
admin.sitemap.generate | Crawls the site with SitemapGenerator and adds published pages, posts, active categories and tags (their Sitemapable tags, one per locale) plus the contact page, writing public/sitemap.xml. Plugin models are not added automatically |
admin.system.clean-temp | Deletes stale temporary uploads |
admin.system.update, .update.run | Update page and runner (see below) |
admin.system.patches, .patches.apply | List and apply hot-fix patches |
admin.system.language.default, .status | Make a language default; enable or disable it |
admin.system.register-item | Registers the installation's purchase code with the vendor API |
ltu.*). App\Models\Language reads them (cached forever), and enabling a language writes APP_LOCALES to .env.lang/{locale}/*.php and lang/{locale}.json; modules add their own under Modules/{Name}/lang with a {alias}:: namespace.{model}_translations tables.APP_LOCALES; the default APP_LOCALE has no prefix); RTL languages set the document direction from Language::getCurrentDirection().See Localization for the developer workflow.
App\Services\UpdatesManager talks to the vendor API: check sets update_available; update downloads and extracts the package over the installation, includes resources/cleanup.php if present, then runs the update pipeline: optimize:clear + dotartisan:optimize, migrate --force, Theme::rebuildCache(), writes the new version to .env and settings, and clears the alert. Patches are smaller zips applied per id. The installer package defines hook points (InstallerUpdateService::beforeMigrate(), afterRunUpdate()…) that a distribution can fill in. See Deploy and update.