[{"data":1,"prerenderedAt":1133},["ShallowReactive",2],{"navigation":3,"/docs/framework-guides/laravel/automations":221,"/docs/framework-guides/laravel/automations-surround":1128},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","/docs","docs",[9,12,56,85,132,153,178,195,208],{"title":10,"path":6,"stem":11},"","docs/index",{"title":13,"path":14,"stem":15,"children":16,"icon":55},"Getting Started","/docs/getting-started","docs/1.getting-started/1.index",[17,19,23,27,31,35,39,43,47,51],{"title":18,"path":14,"stem":15},"Introduction",{"title":20,"path":21,"stem":22},"Container Basics","/docs/getting-started/container-basics","docs/1.getting-started/2.container-basics",{"title":24,"path":25,"stem":26},"Installation","/docs/getting-started/installation","docs/1.getting-started/3.installation",{"title":28,"path":29,"stem":30},"These Images vs Others","/docs/getting-started/these-images-vs-others","docs/1.getting-started/4.these-images-vs-others",{"title":32,"path":33,"stem":34},"Choosing an Image","/docs/getting-started/choosing-an-image","docs/1.getting-started/5.choosing-an-image",{"title":36,"path":37,"stem":38},"Default Configurations","/docs/getting-started/default-configurations","docs/1.getting-started/6.default-configurations",{"title":40,"path":41,"stem":42},"Upgrade Guide","/docs/getting-started/upgrade-guide","docs/1.getting-started/7.upgrade-guide",{"title":44,"path":45,"stem":46},"Changelog","/docs/getting-started/changelog","docs/1.getting-started/8.changelog",{"title":48,"path":49,"stem":50},"About","/docs/getting-started/about","docs/1.getting-started/9.about",{"title":52,"path":53,"stem":54},"Contributing","/docs/getting-started/contributing","docs/1.getting-started/99.contributing",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Image Variations","/docs/image-variations","docs/2.image-variations",[61,65,69,73,77,81],{"title":62,"path":63,"stem":64},"CLI","/docs/image-variations/cli","docs/2.image-variations/cli",{"title":66,"path":67,"stem":68},"FPM","/docs/image-variations/fpm","docs/2.image-variations/fpm",{"title":70,"path":71,"stem":72},"FPM-Apache","/docs/image-variations/fpm-apache","docs/2.image-variations/fpm-apache",{"title":74,"path":75,"stem":76},"FPM-NGINX","/docs/image-variations/fpm-nginx","docs/2.image-variations/fpm-nginx",{"title":78,"path":79,"stem":80},"FrankenPHP","/docs/image-variations/frankenphp","docs/2.image-variations/frankenphp",{"title":82,"path":83,"stem":84},"Unit (Deprecated)","/docs/image-variations/unit","docs/2.image-variations/unit",{"title":86,"path":87,"stem":88,"children":89,"page":55},"Framework Guides","/docs/framework-guides","docs/3.framework-guides",[90,123],{"title":91,"icon":55,"defaultOpen":55,"path":92,"stem":93,"children":94,"page":55},"Laravel","/docs/framework-guides/laravel","docs/3.framework-guides/1.laravel",[95,99,103,107,111,115,119],{"title":96,"path":97,"stem":98},"Automations","/docs/framework-guides/laravel/automations","docs/3.framework-guides/1.laravel/1.automations",{"title":100,"path":101,"stem":102},"Task Scheduler","/docs/framework-guides/laravel/task-scheduler","docs/3.framework-guides/1.laravel/2.task-scheduler",{"title":104,"path":105,"stem":106},"Queue","/docs/framework-guides/laravel/queue","docs/3.framework-guides/1.laravel/3.queue",{"title":108,"path":109,"stem":110},"Horizon","/docs/framework-guides/laravel/horizon","docs/3.framework-guides/1.laravel/4.horizon",{"title":112,"path":113,"stem":114},"Reverb","/docs/framework-guides/laravel/reverb","docs/3.framework-guides/1.laravel/4.reverb",{"title":116,"path":117,"stem":118},"Nightwatch","/docs/framework-guides/laravel/nightwatch","docs/3.framework-guides/1.laravel/5.nightwatch",{"title":120,"path":121,"stem":122},"Octane","/docs/framework-guides/laravel/octane","docs/3.framework-guides/1.laravel/octane",{"title":124,"icon":55,"defaultOpen":55,"path":125,"stem":126,"children":127,"page":55},"WordPress","/docs/framework-guides/wordpress","docs/3.framework-guides/2.wordpress",[128],{"title":129,"path":130,"stem":131},"Using Docker with WordPress","/docs/framework-guides/wordpress/using-wordpress-with-docker","docs/3.framework-guides/2.wordpress/4.using-wordpress-with-docker",{"title":133,"path":134,"stem":135,"children":136,"page":55},"Deployment And Production","/docs/deployment-and-production","docs/4.deployment-and-production",[137,141,145,149],{"title":138,"path":139,"stem":140},"Development to Production","/docs/deployment-and-production/development-to-production","docs/4.deployment-and-production/2.development-to-production",{"title":142,"path":143,"stem":144},"Packaging Your App for Deployment","/docs/deployment-and-production/packaging-your-app-for-deployment","docs/4.deployment-and-production/3.packaging-your-app-for-deployment",{"title":146,"path":147,"stem":148},"Configuring SSL","/docs/deployment-and-production/configuring-ssl","docs/4.deployment-and-production/4.configuring-ssl",{"title":150,"path":151,"stem":152},"Choosing a Host","/docs/deployment-and-production/choosing-a-host","docs/4.deployment-and-production/5.choosing-a-host",{"title":154,"icon":55,"defaultOpen":55,"path":155,"stem":156,"children":157,"page":55},"Advanced Guides","/docs/guide","docs/5.guide",[158,162,166,170,174],{"title":159,"path":160,"stem":161},"Migrating from official PHP images","/docs/guide/migrating-from-official-php-images","docs/5.guide/1.migrating-from-official-php-images",{"title":163,"path":164,"stem":165},"Using Healthchecks With Laravel","/docs/guide/using-healthchecks-with-laravel","docs/5.guide/2.using-healthchecks-with-laravel",{"title":167,"path":168,"stem":169},"Using S6 Overlay","/docs/guide/using-s6-overlay","docs/5.guide/2.using-s6-overlay",{"title":171,"path":172,"stem":173},"Understanding File Permissions","/docs/guide/understanding-file-permissions","docs/5.guide/3.understanding-file-permissions",{"title":175,"path":176,"stem":177},"Configuring Trusted Proxies","/docs/guide/configuring-trusted-proxies","docs/5.guide/4.configuring-trusted-proxies",{"title":179,"icon":55,"defaultOpen":55,"path":180,"stem":181,"children":182,"page":55},"Customization","/docs/customizing-the-image","docs/6.customizing-the-image",[183,187,191],{"title":184,"path":185,"stem":186},"Changing php.ini settings","/docs/customizing-the-image/changing-common-php-settings","docs/6.customizing-the-image/1.changing-common-php-settings",{"title":188,"path":189,"stem":190},"Installing PHP extensions","/docs/customizing-the-image/installing-additional-php-extensions","docs/6.customizing-the-image/2.installing-additional-php-extensions",{"title":192,"path":193,"stem":194},"Adding Start Up Scripts","/docs/customizing-the-image/adding-your-own-start-up-scripts","docs/6.customizing-the-image/3.adding-your-own-start-up-scripts",{"title":196,"path":197,"stem":198,"children":199,"page":55},"Troubleshooting","/docs/troubleshooting","docs/7.troubleshooting",[200,204],{"title":201,"path":202,"stem":203},"Common Issues","/docs/troubleshooting/common-issues","docs/7.troubleshooting/1.common-issues",{"title":205,"path":206,"stem":207},"Getting Help","/docs/troubleshooting/getting-help","docs/7.troubleshooting/2.getting-help",{"title":209,"path":210,"stem":211,"children":212,"page":55},"Reference","/docs/reference","docs/8.reference",[213,217],{"title":214,"path":215,"stem":216},"Environment Variable Specification","/docs/reference/environment-variable-specification","docs/8.reference/1.environment-variable-specification",{"title":218,"path":219,"stem":220},"Command Reference","/docs/reference/command-reference","docs/8.reference/2.command-reference",{"id":222,"title":96,"body":223,"description":1120,"extension":731,"links":1121,"meta":1122,"navigation":1125,"path":97,"redirect":1121,"seo":1126,"stem":98,"__hash__":1127},"docs/docs/3.framework-guides/1.laravel/1.automations.md",{"type":224,"value":225,"toc":1097},"minimark",[226,242,247,273,614,618,621,630,692,701,705,708,711,718,736,739,742,747,753,802,817,821,831,835,846,850,856,902,906,920,925,944,948,951,958,967,974,988,993,996,1003,1008,1011,1014,1019,1022,1025,1030,1033,1036,1041,1045,1048,1051,1056,1062,1076,1080],[227,228,229],"lead-p",{},[230,231,232,236,237,241],"p",{},[233,234,235],"code",{},"serversideup/php"," has a \"Laravel Automations\" script that helps automate common tasks to maintain your Laravel application and improve it's performance. By default, the script is ",[238,239,240],"strong",{},"DISABLED",". We only recommend enabling this script in production environments.",[243,244,246],"h2",{"id":245},"what-the-script-does","What the script does",[248,249,250],"note",{},[230,251,252,253,256,257,260,261,263,264,267,268,272],{},"In order for this script to run,",[233,254,255],{},"AUTORUN_ENABLED"," must be set to ",[233,258,259],{},"true",". Once the main part of the script is enabled, you can control the individual tasks by setting the corresponding environment variables to ",[233,262,259],{}," or ",[233,265,266],{},"false",". See our ",[269,270,271],"a",{"href":215},"variable reference document"," for more details.",[274,275,276,292],"table",{},[277,278,279],"thead",{},[280,281,282,286,289],"tr",{},[283,284,285],"th",{},"Environment Variable",[283,287,288],{},"Default",[283,290,291],{},"Description",[293,294,295,320,334,351,368,385,403,424,456,492,509,523,538,555,572,597],"tbody",{},[280,296,297,302,306],{},[298,299,300],"td",{},[233,301,255],{},[298,303,304],{},[233,305,266],{},[298,307,308,309,312,313,316,317,319],{},"Enables the Laravel Automations script. ",[310,311],"br",{}," ",[238,314,315],{},"ℹ️ Note:"," This must be set to ",[233,318,259],{}," for the script to run.",[280,321,322,327,331],{},[298,323,324],{},[233,325,326],{},"AUTORUN_DEBUG",[298,328,329],{},[233,330,266],{},[298,332,333],{},"Enables a special debug mode, specifically for the Laravel Automations script.",[280,335,336,341,345],{},[298,337,338],{},[233,339,340],{},"AUTORUN_LARAVEL_CONFIG_CACHE",[298,342,343],{},[233,344,259],{},[298,346,347,350],{},[233,348,349],{},"php artisan config:cache",": Caches the configuration files into a single file.",[280,352,353,358,362],{},[298,354,355],{},[233,356,357],{},"AUTORUN_LARAVEL_EVENT_CACHE",[298,359,360],{},[233,361,259],{},[298,363,364,367],{},[233,365,366],{},"php artisan event:cache",": Creates a manifest of all your application's events and listeners.",[280,369,370,375,379],{},[298,371,372],{},[233,373,374],{},"AUTORUN_LARAVEL_MIGRATION",[298,376,377],{},[233,378,259],{},[298,380,381,384],{},[233,382,383],{},"php artisan migrate",": Runs migrations.",[280,386,387,392,397],{},[298,388,389],{},[233,390,391],{},"AUTORUN_LARAVEL_MIGRATION_DATABASE",[298,393,394],{},[233,395,396],{},"null",[298,398,399,400,402],{},"Run migrations on a specific database. In the rare case you need to use multiple databases, you can provide a comma-delimited list of connection names (e.g., \"mysql,pgsql\"). If ",[233,401,396],{},", it will use the default database connection.",[280,404,405,410,414],{},[298,406,407],{},[233,408,409],{},"AUTORUN_LARAVEL_MIGRATION_FORCE",[298,411,412],{},[233,413,259],{},[298,415,416,417,419,420,423],{},"Force migrations to run in production without confirmation. Set to ",[233,418,266],{}," to disable the ",[233,421,422],{},"--force"," flag.",[280,425,426,431,435],{},[298,427,428],{},[233,429,430],{},"AUTORUN_LARAVEL_MIGRATION_ISOLATION",[298,432,433],{},[233,434,266],{},[298,436,437,438,446,447,312,449,451,452,455],{},"Run your migrations with the ",[269,439,443],{"href":440,"rel":441},"https://laravel.com/docs/12.x/migrations#running-migrations",[442],"nofollow",[233,444,445],{},"--isolated"," flag. ",[310,448],{},[238,450,315],{}," Requires Laravel v9.38.0+. Only works with ",[233,453,454],{},"default"," migration mode.",[280,457,458,463,467],{},[298,459,460],{},[233,461,462],{},"AUTORUN_LARAVEL_MIGRATION_MODE",[298,464,465],{},[233,466,454],{},[298,468,469,470,472,473,476,477,480,481,312,483,312,486,488,489,491],{},"Migration mode: ",[233,471,454],{},", ",[233,474,475],{},"fresh",", or ",[233,478,479],{},"refresh",". ",[310,482],{},[238,484,485],{},"⚠️ Warning:",[233,487,475],{}," and ",[233,490,479],{}," drop all tables.",[280,493,494,499,503],{},[298,495,496],{},[233,497,498],{},"AUTORUN_LARAVEL_MIGRATION_SEED",[298,500,501],{},[233,502,266],{},[298,504,505,506,423],{},"Automatically seed the database after migrations using the ",[233,507,508],{},"--seed",[280,510,511,516,520],{},[298,512,513],{},[233,514,515],{},"AUTORUN_LARAVEL_MIGRATION_SKIP_DB_CHECK",[298,517,518],{},[233,519,266],{},[298,521,522],{},"Skip the database connection check before running migrations.",[280,524,525,530,535],{},[298,526,527],{},[233,528,529],{},"AUTORUN_LARAVEL_MIGRATION_TIMEOUT",[298,531,532],{},[233,533,534],{},"30",[298,536,537],{},"Number of seconds to wait for database connection before timing out during migrations.",[280,539,540,545,549],{},[298,541,542],{},[233,543,544],{},"AUTORUN_LARAVEL_OPTIMIZE",[298,546,547],{},[233,548,259],{},[298,550,551,554],{},[233,552,553],{},"php artisan optimize",": Optimizes the application.",[280,556,557,562,566],{},[298,558,559],{},[233,560,561],{},"AUTORUN_LARAVEL_ROUTE_CACHE",[298,563,564],{},[233,565,259],{},[298,567,568,571],{},[233,569,570],{},"php artisan route:cache",": Caches the routes.",[280,573,574,579,583],{},[298,575,576],{},[233,577,578],{},"AUTORUN_LARAVEL_STORAGE_LINK",[298,580,581],{},[233,582,259],{},[298,584,585,588,589,592,593,596],{},[233,586,587],{},"php artisan storage:link",": Creates a symbolic link from ",[233,590,591],{},"public/storage"," to ",[233,594,595],{},"storage/app/public",".",[280,598,599,604,608],{},[298,600,601],{},[233,602,603],{},"AUTORUN_LARAVEL_VIEW_CACHE",[298,605,606],{},[233,607,259],{},[298,609,610,613],{},[233,611,612],{},"php artisan view:cache",": Caches the views.",[243,615,617],{"id":616},"database-connection-checks","Database Connection Checks",[230,619,620],{},"Before running migrations, the automation script performs connection checks to ensure your database is ready. Understanding this process helps you configure timeouts and troubleshoot connection issues.",[248,622,623],{},[230,624,625,626,629],{},"You can skip database connection checks entirely by setting ",[233,627,628],{},"AUTORUN_LARAVEL_MIGRATION_SKIP_DB_CHECK=true",". This is useful when you're certain your database is ready or when using alternative connection verification methods.",[631,632,634,639,646,650,653,675,679,685,689],"steps",{"level":633},"3",[635,636,638],"h3",{"id":637},"clear-configuration-cache","Clear configuration cache",[230,640,641,642,645],{},"The script runs ",[233,643,644],{},"php artisan config:clear"," to ensure fresh database configuration is loaded before attempting any connections.",[635,647,649],{"id":648},"attempt-database-connection","Attempt database connection",[230,651,652],{},"The script tests the database connection using a retry mechanism:",[654,655,656,660,666,669],"ul",{},[657,658,659],"li",{},"Attempts to connect every second",[657,661,662,663,665],{},"Continues for up to ",[233,664,529],{}," seconds (default: 30)",[657,667,668],{},"Shows connection progress in real-time",[657,670,671,672],{},"Logs detailed attempts every 5 seconds when ",[233,673,674],{},"AUTORUN_DEBUG=true",[635,676,678],{"id":677},"verify-each-database-connection","Verify each database connection",[230,680,681,682,684],{},"If you've specified multiple databases via ",[233,683,391],{},", the script waits for each database connection individually before proceeding with migrations for that database.",[635,686,688],{"id":687},"run-migrations","Run migrations",[230,690,691],{},"Once the database connection is confirmed, the script executes the appropriate migration command based on your configuration.",[693,694,695],"tip",{},[230,696,697,698,700],{},"Set ",[233,699,674],{}," to see detailed connection attempt logs, which is helpful for troubleshooting connection issues.",[243,702,704],{"id":703},"laravel-artisan-commands","Laravel Artisan Commands",[230,706,707],{},"Below is an overview of what Laravel Artisan commands do and how they can be configured.",[635,709,587],{"id":710},"php-artisan-storagelink",[230,712,713,714,592,716,596],{},"Creates a symbolic link from ",[233,715,591],{},[233,717,595],{},[719,720],"u-button",{"ariaLabel":721,"className":722,"color":730,"label":721,"size":731,"target":732,"to":733,"trailing-icon":734,"variant":735},"Read more about storage links",[723,724,725,726,727,728,729],"font-bold","ring","ring-inset","ring-blue-600","text-blue-600","hover:ring-blue-500","hover:text-blue-500","primary","md","_blank","https://laravel.com/docs/12.x/filesystem#the-public-disk","i-lucide-arrow-right","outline",[635,737,383],{"id":738},"php-artisan-migrate",[230,740,741],{},"Before running migrations, we ensure the database is online and ready to accept connections. By default, we will wait 30 seconds before timing out.",[743,744,746],"h4",{"id":745},"migration-modes","Migration Modes",[230,748,749,750,752],{},"You can control how migrations run using ",[233,751,462],{},":",[274,754,755,764],{},[277,756,757],{},[280,758,759,762],{},[283,760,761],{},"Mode",[283,763,291],{},[293,765,766,778,790],{},[280,767,768,772],{},[298,769,770],{},[233,771,454],{},[298,773,774,775,777],{},"Runs ",[233,776,383],{}," - standard forward migrations",[280,779,780,784],{},[298,781,782],{},[233,783,475],{},[298,785,774,786,789],{},[233,787,788],{},"php artisan migrate:fresh"," - drops all tables and re-runs migrations",[280,791,792,796],{},[298,793,794],{},[233,795,479],{},[298,797,774,798,801],{},[233,799,800],{},"php artisan migrate:refresh"," - rolls back and re-runs migrations",[803,804,805],"caution",{},[230,806,807,808,263,810,812,813,816],{},"Using ",[233,809,475],{},[233,811,479],{}," modes will ",[238,814,815],{},"drop all tables"," in your database. Only use these in development or testing environments.",[743,818,820],{"id":819},"force-flag","Force Flag",[230,822,823,824,826,827,592,829,596],{},"By default, migrations run with the ",[233,825,422],{}," flag to bypass production warnings. You can disable this by setting ",[233,828,409],{},[233,830,266],{},[743,832,834],{"id":833},"seeding","Seeding",[230,836,837,838,592,840,842,843,845],{},"You can automatically seed your database after migrations by setting ",[233,839,498],{},[233,841,259],{},". This adds the ",[233,844,508],{}," flag to your migration command.",[743,847,849],{"id":848},"specific-database-migrations","Specific Database Migrations",[230,851,852,853,855],{},"If you need to specify the exact database connection to use for migrations, you can set ",[233,854,391],{}," to the name of the database connection you want to use.",[274,857,858,870],{},[277,859,860],{},[280,861,862,865,867],{},[283,863,864],{},"Use case",[283,866,291],{},[283,868,869],{},"Value",[293,871,872,889],{},[280,873,874,877,884],{},[298,875,876],{},"Single database",[298,878,879,880,883],{},"Run migrations on the ",[233,881,882],{},"mysql"," database connection.",[298,885,886],{},[233,887,888],{},"AUTORUN_LARAVEL_MIGRATION_DATABASE=mysql",[280,890,891,894,897],{},[298,892,893],{},"Multiple databases",[298,895,896],{},"In the rare case you need to use multiple databases, you can provide a comma-delimited list of connection names (e.g., \"mysql,pgsql\").",[298,898,899],{},[233,900,901],{},"AUTORUN_LARAVEL_MIGRATION_DATABASE=mysql,pgsql",[743,903,905],{"id":904},"isolated-migrations","Isolated Migrations",[230,907,908,909,914,915,592,917,919],{},"You can enable the ",[269,910,912],{"href":440,"rel":911},[442],[233,913,445],{}," flag by setting ",[233,916,430],{},[233,918,259],{},", which will ensure no other containers are running a migration.",[230,921,922],{},[238,923,924],{},"Special Notes for Isolated Migrations:",[654,926,927,930,941],{},[657,928,929],{},"Requires Laravel v9.38.0+",[657,931,932,933,935,936,263,938,940],{},"Only works with ",[233,934,454],{}," migration mode (not compatible with ",[233,937,475],{},[233,939,479],{},")",[657,942,943],{},"Your application must be using the memcached, redis, dynamodb, database, file, or array cache driver as your application's default cache driver. In addition, all servers must be communicating with the same central cache server.",[719,945],{"ariaLabel":946,"className":947,"color":730,"label":946,"size":731,"target":732,"to":440,"trailing-icon":734,"variant":735},"Read more about migrations",[723,724,725,726,727,728,729],[635,949,553],{"id":950},"php-artisan-optimize",[230,952,953,954,957],{},"Laravel comes with an artisan command called ",[233,955,956],{},"optimize",", which will optimize the application by caching the configuration, routes, views, and events all in one command.",[230,959,960,961,963,964,966],{},"You can disable any cache features by setting the corresponding environment variable to ",[233,962,266],{}," (for example, ",[233,965,340],{}," would disable configuration caching).",[230,968,969,970,973],{},"If your application is running Laravel v11.38.0 or higher, we will utilize the ",[233,971,972],{},"optimize --except"," parameter to exclude any cache features you have disabled. Otherwise, we will run the individual optimizations separately.",[230,975,976,977,979,980,592,982,984,985,987],{},"It's possible to disable the ",[233,978,956],{}," command by setting ",[233,981,544],{},[233,983,266],{},", but the major advantage of using the ",[233,986,956],{}," command is other dependencies may hook into this action and run other commands.",[719,989],{"ariaLabel":990,"className":991,"color":730,"label":990,"size":731,"target":732,"to":992,"trailing-icon":734,"variant":735},"Read more about optimizing Laravel",[723,724,725,726,727,728,729],"https://laravel.com/docs/12.x/deployment#optimization",[635,994,349],{"id":995},"php-artisan-configcache",[230,997,998,999,1002],{},"This command caches all configuration files into a single file, which can then be quickly loaded by Laravel. Once the configuration is cache, the ",[233,1000,1001],{},".env"," file will no longer be loaded.",[719,1004],{"ariaLabel":1005,"className":1006,"color":730,"label":1005,"size":731,"target":732,"to":1007,"trailing-icon":734,"variant":735},"Read more about configuration caching",[723,724,725,726,727,728,729],"https://laravel.com/docs/12.x/configuration#configuration-caching",[635,1009,570],{"id":1010},"php-artisan-routecache",[230,1012,1013],{},"This command caches the routes, dramatically decrease the time it takes to register all of your application's routes. After running this command, your cached routes file will be loaded on every request.",[719,1015],{"ariaLabel":1016,"className":1017,"color":730,"label":1016,"size":731,"target":732,"to":1018,"trailing-icon":734,"variant":735},"Read more about route caching",[723,724,725,726,727,728,729],"https://laravel.com/docs/12.x/routing#route-caching",[635,1020,612],{"id":1021},"php-artisan-viewcache",[230,1023,1024],{},"This command caches all of the views in your application, which can greatly decrease the time it takes to render your views.",[719,1026],{"ariaLabel":1027,"className":1028,"color":730,"label":1027,"size":731,"target":732,"to":1029,"trailing-icon":734,"variant":735},"Read more about view caching",[723,724,725,726,727,728,729],"https://laravel.com/docs/12.x/views#optimizing-views",[635,1031,366],{"id":1032},"php-artisan-eventcache",[230,1034,1035],{},"This command creates a manifest of all your application's events and listeners, which can greatly speed up the process of registering them with Laravel.",[719,1037],{"ariaLabel":1038,"className":1039,"color":730,"label":1038,"size":731,"target":732,"to":1040,"trailing-icon":734,"variant":735},"Read more about event caching",[723,724,725,726,727,728,729],"https://laravel.com/docs/12.x/events#event-discovery-in-production",[243,1042,1044],{"id":1043},"debugging-the-autorun-script","Debugging the AUTORUN script",[230,1046,1047],{},"It's very important to understand the nature of how containerized environments work when debugging the AUTORUN script. In some cases, some users may become frustrated when they push an update but their changes are never deployed.",[230,1049,1050],{},"In most cases, this is due to a bug in their application code that causes a migration or some other process to fail.",[248,1052,1053],{},[230,1054,1055],{},"If a failure occurs in the Laravel Automations script, it will exit with a non-zero exit code -- preventing the container from starting.",[230,1057,1058,1059,1061],{},"If you are experiencing issues, you can enable the ",[233,1060,326],{}," environment variable to get more detailed output of what could be going wrong.",[230,1063,1064,1065,592,1068,1071,1072,1075],{},"If you need even more information, you can set ",[233,1066,1067],{},"LOG_OUTPUT_LEVEL",[233,1069,1070],{},"debug"," to get ",[238,1073,1074],{},"A TON"," of output of what's exactly happening.",[635,1077,1079],{"id":1078},"preventing-issues-with-the-autorun-script","Preventing issues with the AUTORUN script",[654,1081,1082,1087,1094],{},[657,1083,1084,1085],{},"Ensure you are running the latest version of ",[233,1086,235],{},[657,1088,1089,1090,1093],{},"Ensure you have dependencies installed (ie. ",[233,1091,1092],{},"composer install",") before calling this script",[657,1095,1096],{},"Use automated testing to catch issues before deploying",{"title":10,"searchDepth":1098,"depth":1098,"links":1099},2,[1100,1101,1108,1117],{"id":245,"depth":1098,"text":246},{"id":616,"depth":1098,"text":617,"children":1102},[1103,1105,1106,1107],{"id":637,"depth":1104,"text":638},3,{"id":648,"depth":1104,"text":649},{"id":677,"depth":1104,"text":678},{"id":687,"depth":1104,"text":688},{"id":703,"depth":1098,"text":704,"children":1109},[1110,1111,1112,1113,1114,1115,1116],{"id":710,"depth":1104,"text":587},{"id":738,"depth":1104,"text":383},{"id":950,"depth":1104,"text":553},{"id":995,"depth":1104,"text":349},{"id":1010,"depth":1104,"text":570},{"id":1021,"depth":1104,"text":612},{"id":1032,"depth":1104,"text":366},{"id":1043,"depth":1098,"text":1044,"children":1118},[1119],{"id":1078,"depth":1104,"text":1079},"Automate your deployments and minimize your efforts with Laravel.",null,{"head":1123,"layout":7},{"title":1124},"Laravel Automations Script - Docker PHP - Server Side Up",true,{"title":96,"description":1120},"glhmpwBy7RKz_zgIJZJKbdOoUP5JNuho4PALYLXSfSM",[1129,1131],{"title":82,"path":83,"stem":84,"description":1130,"children":-1},"NGINX Unit has been archived. This guide helps you understand what happened and how to migrate to actively maintained alternatives.",{"title":100,"path":101,"stem":102,"description":1132,"children":-1},"Learn how to configure a Laravel Task Scheduler with Docker.",1776367058248]