Date: Thu, 16 Apr 2026 14:14:53 -0500
Subject: [PATCH 17/19] Changed sponsor URL
---
.github/workflows/scheduled-task_update-sponsors.yml | 4 ++--
README.md | 8 ++++----
docs/app/app.config.ts | 2 +-
docs/app/components/Badges.vue | 2 +-
docs/app/components/Sponsors.vue | 2 +-
docs/app/pages/[...slug].vue | 2 +-
docs/content/docs/1.getting-started/9.about.md | 2 +-
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/scheduled-task_update-sponsors.yml b/.github/workflows/scheduled-task_update-sponsors.yml
index 3d1d233b1..c309277e9 100644
--- a/.github/workflows/scheduled-task_update-sponsors.yml
+++ b/.github/workflows/scheduled-task_update-sponsors.yml
@@ -16,7 +16,7 @@ jobs:
organization: true
minimum: 4900
maximum: 5100
- fallback: 'No bronze sponsors yet. Become a sponsor â'
+ fallback: 'No bronze sponsors yet. Become a sponsor â'
token: ${{ secrets.SPONSORS_README_ACTION_PERSONAL_ACCESS_TOKEN }}
marker: 'bronze'
template: '
'
@@ -27,7 +27,7 @@ jobs:
with:
organization: true
maximum: 500
- fallback: '
'
+ fallback: '
'
token: ${{ secrets.SPONSORS_README_ACTION_PERSONAL_ACCESS_TOKEN }}
marker: 'supporters'
template: '
'
diff --git a/README.md b/README.md
index bc350c7aa..2d4e819f1 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
-
+
@@ -141,13 +141,13 @@ Need help getting started? Join our Discord community and we'll help you out!
## Our Sponsors
All of our software is free and open to the world. None of this can be brought to you without the financial backing of our sponsors.
-

+
### Black Level Sponsors
#### Bronze Sponsors
-No bronze sponsors yet. Become a sponsor â
+No bronze sponsors yet. Become a sponsor â
#### Infrastructure Sponsors
This project requires significant computing power to build and maintain over 8,000 different Docker image tags. We're extremely grateful for the following sponsors:
@@ -176,7 +176,7 @@ We're [Dan](https://x.com/danpastori) and [Jay](https://x.com/jaydrogers) - a tw
* **đģ [GitHub](https://github.com/serversideup)** - Check out our other open source projects.
* **đĢ [Newsletter](https://serversideup.net/subscribe)** - Skip the algorithms and get quality content right to your inbox.
* **đĨ [Twitter](https://x.com/serversideup)** - You can also follow [Dan](https://x.com/danpastori) and [Jay](https://x.com/jaydrogers).
-* **â¤ī¸ [Sponsor Us](https://github.com/sponsors/serversideup)** - Please consider sponsoring us so we can create more helpful resources.
+* **â¤ī¸ [Sponsor Us](https://serversideup.net/sponsor/)** - Please consider sponsoring us so we can create more helpful resources.
## Our Products
If you appreciate this project, be sure to check out our other projects.
diff --git a/docs/app/app.config.ts b/docs/app/app.config.ts
index 8fe6a9bb7..4646d4997 100644
--- a/docs/app/app.config.ts
+++ b/docs/app/app.config.ts
@@ -116,7 +116,7 @@ export default defineAppConfig({
},{
'trailingIcon': 'i-lucide-heart',
'label': 'Sponsor',
- 'to': 'https://github.com/sponsors/serversideup',
+ 'to': 'https://serversideup.net/sponsor/',
'target': '_blank',
'aria-label': 'Sponsor',
'size': 'xl',
diff --git a/docs/app/components/Badges.vue b/docs/app/components/Badges.vue
index 498535522..6cc6c1aac 100644
--- a/docs/app/components/Badges.vue
+++ b/docs/app/components/Badges.vue
@@ -3,6 +3,6 @@
-
+
\ No newline at end of file
diff --git a/docs/app/components/Sponsors.vue b/docs/app/components/Sponsors.vue
index bc157a2da..def702673 100644
--- a/docs/app/components/Sponsors.vue
+++ b/docs/app/components/Sponsors.vue
@@ -7,7 +7,7 @@
-
+
Become a Sponsor
diff --git a/docs/app/pages/[...slug].vue b/docs/app/pages/[...slug].vue
index b818cf0e9..4fd1f2157 100644
--- a/docs/app/pages/[...slug].vue
+++ b/docs/app/pages/[...slug].vue
@@ -65,7 +65,7 @@
:links="[{
label: 'Become a Sponsor',
icon: 'i-lucide-heart',
- to: 'https://github.com/sponsors/serversideup',
+ to: 'https://serversideup.net/sponsor/',
target: '_blank'
}]"
/>
diff --git a/docs/content/docs/1.getting-started/9.about.md b/docs/content/docs/1.getting-started/9.about.md
index a88d67a40..f58cc1f4a 100644
--- a/docs/content/docs/1.getting-started/9.about.md
+++ b/docs/content/docs/1.getting-started/9.about.md
@@ -26,7 +26,7 @@ We're [Dan](https://x.com/danpastori){target="_blank"} and [Jay](https://x.com/j
* **đģ [GitHub](https://github.com/serversideup){target="_blank"}** - Check out our other open source projects.
* **đĢ [Newsletter](https://serversideup.net/subscribe){target="_blank"}** - Skip the algorithms and get quality content right to your inbox.
* **đĨ [Twitter](https://x.com/serversideup){target="_blank"}** - You can also follow [Dan](https://x.com/danpastori){target="_blank"} and [Jay](https://x.com/jaydrogers){target="_blank"}.
-* **â¤ī¸ [Sponsor Us](https://github.com/sponsors/serversideup){target="_blank"}** - Please consider sponsoring us so we can create more helpful resources.
+* **â¤ī¸ [Sponsor Us](https://serversideup.net/sponsor/){target="_blank"}** - Please consider sponsoring us so we can create more helpful resources.
## Our products
If you appreciate this project, be sure to check out our other projects.
From e5c1e68c762a01287dbd397e85e7c5642fc3d748 Mon Sep 17 00:00:00 2001
From: Jay Rogers
Date: Mon, 27 Apr 2026 13:37:40 -0500
Subject: [PATCH 18/19] Add AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND environment
variable
- Introduced `AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND` to allow the Laravel Automations script to exit gracefully if Laravel is not detected in `APP_BASE_DIR`, preventing container failure.
- Updated documentation to reflect this new variable and its usage, particularly in shared image scenarios before the first `composer install`.
- Enhanced the entrypoint script to support this new behavior, improving flexibility for development environments.
---
.../docs/3.framework-guides/1.laravel/1.automations.md | 3 +++
.../docs/8.reference/1.environment-variable-specification.md | 1 +
src/common/etc/entrypoint.d/50-laravel-automations.sh | 5 +++++
3 files changed, 9 insertions(+)
diff --git a/docs/content/docs/3.framework-guides/1.laravel/1.automations.md b/docs/content/docs/3.framework-guides/1.laravel/1.automations.md
index 6f88dbfc4..c320ba38e 100644
--- a/docs/content/docs/3.framework-guides/1.laravel/1.automations.md
+++ b/docs/content/docs/3.framework-guides/1.laravel/1.automations.md
@@ -31,6 +31,7 @@ In order for this script to run,`AUTORUN_ENABLED` must be set to `true`. Once th
| `AUTORUN_LARAVEL_MIGRATION_TIMEOUT` | `30` | Number of seconds to wait for database connection before timing out during migrations. |
| `AUTORUN_LARAVEL_OPTIMIZE` | `true` | `php artisan optimize`: Optimizes the application. |
| `AUTORUN_LARAVEL_ROUTE_CACHE` | `true` | `php artisan route:cache`: Caches the routes. |
+| `AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND` | `false` | When `true`, the script will exit gracefully (without error) if Laravel is not detected in `APP_BASE_DIR`, instead of failing the container. Useful when `AUTORUN_ENABLED=true` is set on a shared image where Laravel may not always be present (e.g. before the first `composer install`). |
| `AUTORUN_LARAVEL_STORAGE_LINK` | `true` | `php artisan storage:link`: Creates a symbolic link from `public/storage` to `storage/app/public`. |
| `AUTORUN_LARAVEL_VIEW_CACHE` | `true` | `php artisan view:cache`: Caches the views. |
@@ -153,6 +154,8 @@ In most cases, this is due to a bug in their application code that causes a migr
If a failure occurs in the Laravel Automations script, it will exit with a non-zero exit code -- preventing the container from starting.
::
+If you need the container to start even when Laravel is not yet present (for example, before the first `composer install` in development), set `AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND=true`. The script will exit silently with a zero exit code instead of failing. The skip will be logged when `AUTORUN_DEBUG=true` or `LOG_OUTPUT_LEVEL=debug` is set.
+
If you are experiencing issues, you can enable the `AUTORUN_DEBUG` environment variable to get more detailed output of what could be going wrong.
If you need even more information, you can set `LOG_OUTPUT_LEVEL` to `debug` to get **A TON** of output of what's exactly happening.
diff --git a/docs/content/docs/8.reference/1.environment-variable-specification.md b/docs/content/docs/8.reference/1.environment-variable-specification.md
index 8094dd528..279f97d72 100644
--- a/docs/content/docs/8.reference/1.environment-variable-specification.md
+++ b/docs/content/docs/8.reference/1.environment-variable-specification.md
@@ -42,6 +42,7 @@ Setting environment variables all depends on what method you're using to run you
`AUTORUN_LARAVEL_MIGRATION_SKIP_DB_CHECK`
*Default: "false"*|Skip the database connection check before running migrations.
âšī¸ Requires `AUTORUN_ENABLED = true` to run.| all
`AUTORUN_LARAVEL_MIGRATION_TIMEOUT`
*Default: "30"*|The number of seconds to wait for the database to come online before attempting `php artisan migrate`..
âšī¸ Requires `AUTORUN_ENABLED = true` to run.| all
`AUTORUN_LARAVEL_ROUTE_CACHE`
*Default: "true"*|Automatically run "php artisan route:cache" on container start.
âšī¸ Requires `AUTORUN_ENABLED = true` to run.| all
+`AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND`
*Default: "false"*|When set to `true`, the Laravel Automations script will exit gracefully (without error) if Laravel is not detected in `APP_BASE_DIR`, instead of failing the container. Useful when `AUTORUN_ENABLED=true` is set on a shared image where Laravel may not always be present (e.g. before the first `composer install`).
âšī¸ Requires `AUTORUN_ENABLED = true` to have any effect.| all
`AUTORUN_LARAVEL_STORAGE_LINK`
*Default: "true"*|Automatically run "php artisan storage:link" on container start.
âšī¸ Requires `AUTORUN_ENABLED = true` to run.| all
`AUTORUN_LARAVEL_VIEW_CACHE`
*Default: "true"*|Automatically run "php artisan view:cache" on container start.
âšī¸ Requires `AUTORUN_ENABLED = true` to run.| all
`CADDY_ADMIN`
*Default: "off"*|Enable Caddy admin interface. (Official docs)|frankenphp
diff --git a/src/common/etc/entrypoint.d/50-laravel-automations.sh b/src/common/etc/entrypoint.d/50-laravel-automations.sh
index 3634c0a12..857f76fab 100644
--- a/src/common/etc/entrypoint.d/50-laravel-automations.sh
+++ b/src/common/etc/entrypoint.d/50-laravel-automations.sh
@@ -9,6 +9,7 @@ script_name="laravel-automations"
# Set default values for Laravel automations
: "${AUTORUN_ENABLED:=false}"
: "${AUTORUN_DEBUG:=false}"
+: "${AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND:=false}"
# Set default values for storage link
: "${AUTORUN_LARAVEL_STORAGE_LINK:=true}"
@@ -469,6 +470,10 @@ if laravel_is_installed; then
artisan_optimize
fi
else
+ if [ "$AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND" = "true" ]; then
+ debug_log "Laravel not detected in $APP_BASE_DIR. Skipping automations (AUTORUN_LARAVEL_SKIP_IF_NOT_FOUND=true)."
+ exit 0
+ fi
echo "â $script_name: Could not detect Laravel installation."
echo "âšī¸ Check that the application is installed in $APP_BASE_DIR"
exit 1
From a9f3c6c3ef045b476690bfac59fc4853abcb65e7 Mon Sep 17 00:00:00 2001
From: Jay Rogers
Date: Mon, 27 Apr 2026 14:02:02 -0500
Subject: [PATCH 19/19] Refactor logging in Laravel automation script
- Replaced echo statements with debug_log calls for improved logging in the `artisan_storage_link` and automation check sections of the entrypoint script.
- This change enhances the verbosity of log output, aiding in debugging and monitoring of Laravel automations.
---
src/common/etc/entrypoint.d/50-laravel-automations.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/common/etc/entrypoint.d/50-laravel-automations.sh b/src/common/etc/entrypoint.d/50-laravel-automations.sh
index 857f76fab..6f4a811a9 100644
--- a/src/common/etc/entrypoint.d/50-laravel-automations.sh
+++ b/src/common/etc/entrypoint.d/50-laravel-automations.sh
@@ -154,7 +154,7 @@ artisan_migrate() {
artisan_storage_link() {
if [ -d "$APP_BASE_DIR/public/storage" ]; then
- echo "â
Storage already linked..."
+ debug_log "â
Storage already linked..."
return 0
else
echo "đ Running storage link: \"php artisan storage:link\"..."
@@ -453,7 +453,7 @@ if laravel_is_installed; then
done
fi
- echo "đ¤ Checking for Laravel automations..."
+ debug_log "đ¤ Checking for Laravel automations..."
if [ "$AUTORUN_LARAVEL_STORAGE_LINK" = "true" ]; then
artisan_storage_link
fi