From 0ff0e812cb49ed29210514efb10f574f6633d6ea Mon Sep 17 00:00:00 2001 From: Jay Rogers Date: Thu, 24 Sep 2026 20:34:32 +0000 Subject: [PATCH 1/6] Sync README sponsors and About Us from serversideup.net --- .../scheduled-task_update-readme.yml | 10 ++++ .../scheduled-task_update-sponsors.yml | 40 -------------- README.md | 54 ++++++++++--------- 3 files changed, 39 insertions(+), 65 deletions(-) create mode 100644 .github/workflows/scheduled-task_update-readme.yml delete mode 100644 .github/workflows/scheduled-task_update-sponsors.yml diff --git a/.github/workflows/scheduled-task_update-readme.yml b/.github/workflows/scheduled-task_update-readme.yml new file mode 100644 index 000000000..4d799ac52 --- /dev/null +++ b/.github/workflows/scheduled-task_update-readme.yml @@ -0,0 +1,10 @@ +name: Update README +on: + workflow_dispatch: + schedule: + - cron: 30 15 * * 0 +jobs: + update-readme: + uses: serversideup/.github/.github/workflows/update-readme.yml@master + permissions: + contents: write diff --git a/.github/workflows/scheduled-task_update-sponsors.yml b/.github/workflows/scheduled-task_update-sponsors.yml deleted file mode 100644 index 3d1d233b1..000000000 --- a/.github/workflows/scheduled-task_update-sponsors.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Generate Sponsors README -on: - workflow_dispatch: - schedule: - - cron: 30 15 * * 0 -jobs: - deploy: - runs-on: ubuntu-24.04 - steps: - - name: Checkout ๐Ÿ›Ž๏ธ - uses: actions/checkout@v6 - - - name: Generate Sponsors ๐Ÿ’– - uses: JamesIves/github-sponsors-readme-action@v1 - with: - organization: true - minimum: 4900 - maximum: 5100 - fallback: 'No bronze sponsors yet. Become a sponsor โ†’' - token: ${{ secrets.SPONSORS_README_ACTION_PERSONAL_ACCESS_TOKEN }} - marker: 'bronze' - template: '{{{ login }}}  ' - file: 'README.md' - - - name: Generate Sponsors ๐Ÿ’– - uses: JamesIves/github-sponsors-readme-action@v1 - with: - organization: true - maximum: 500 - fallback: '

Sponsors

' - token: ${{ secrets.SPONSORS_README_ACTION_PERSONAL_ACCESS_TOKEN }} - marker: 'supporters' - template: '{{{ login }}}  ' - file: 'README.md' - - - name: Deploy to GitHub Pages ๐Ÿš€ - uses: JamesIves/github-pages-deploy-action@v4 - with: - branch: main - folder: '.' \ No newline at end of file diff --git a/README.md b/README.md index 0df87081b..2a778efad 100644 --- a/README.md +++ b/README.md @@ -138,33 +138,33 @@ 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. -

Sponsors

+

Become a sponsor

-### Black Level Sponsors -Sevalla +### Platinum Sponsors +Sevalla -#### Bronze Sponsors -No bronze sponsors yet. Become a sponsor โ†’ +### Silver Sponsors +GiGa infosystems -#### 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: +### Infrastructure Sponsors +These companies give us free access to the tools and infrastructure we use to build, test, and ship our open source projects. Their support helps our entire community. -Depot  Docker - -#### Individual Supporters -

Sponsors

+Depot  Docker + + ## About Us We're [Dan](https://x.com/danpastori) and [Jay](https://x.com/jaydrogers) - a two-person team with a passion for open source products. We created [Server Side Up](https://serversideup.net) to help share what we learn.
-|
Dan Pastori
|
Jay Rogers
| -| ----------------------------- | ------------------------------------------ | -|

|

| +|
Dan Pastori
|
Jay Rogers
| +| --- | --- | +|

|

|
@@ -175,21 +175,25 @@ We're [Dan](https://x.com/danpastori) and [Jay](https://x.com/jaydrogers) - a tw * **๐Ÿคตโ€โ™‚๏ธ [Get Professional Help](https://serversideup.net/professional-support)** - Get video + screen-sharing support from the core contributors. * **๐Ÿ’ป [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). +* **๐Ÿฅ [X (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. ## Our Products If you appreciate this project, be sure to check out our other projects. -### ๐Ÿ“š Books -- **[The Ultimate Guide to Building APIs & SPAs](https://serversideup.net/ultimate-guide-to-building-apis-and-spas-with-laravel-and-nuxt3/)**: Build web & mobile apps from the same codebase. -- **[Building Multi-Platform Browser Extensions](https://serversideup.net/building-multi-platform-browser-extensions/)**: Ship extensions to all browsers from the same codebase. - -### ๐Ÿ› ๏ธ Software-as-a-Service -- **[Bugflow](https://bugflow.io/)**: Get visual bug reports directly in GitHub, GitLab, and more. -- **[SelfHost Pro](https://selfhostpro.com/)**: Connect Stripe or Lemonsqueezy to a private docker registry for self-hosted apps. +### ๐Ÿ› ๏ธ Premium +- **[Self-Host Pro](https://selfhostpro.com)**: Sell self-hosted software in minutes. +- **[Bugflow](https://bugflow.io)**: Get product feedback directly in GitHub, GitLab, and more. +- **[Spin Pro](https://getspin.pro)**: Production-ready Docker templates for shipping quickly. ### ๐ŸŒ Open Source -- **[AmplitudeJS](https://521dimensions.com/open-source/amplitudejs)**: Open-source HTML5 & JavaScript Web Audio Library. -- **[Spin](https://serversideup.net/open-source/spin/)**: Laravel Sail alternative for running Docker from development โ†’ production. -- **[Financial Freedom](https://github.com/serversideup/financial-freedom)**: Open source alternative to Mint, YNAB, & Monarch Money. \ No newline at end of file +- **[Spin](https://serversideup.net/open-source/spin/)**: Docker Simplified. Deploy Anywhere. Zero Downtime. Any OS. +- **[Financial Freedom](https://serversideup.net/open-source/financial-freedom/)**: Open source alternative to Mint, YNAB, and more. +- **[AmplitudeJS](https://serversideup.net/open-source/amplitudejs/)**: Customize the design of any element of the HTML5 Audio Player. +- **[webext-bridge](https://serversideup.net/open-source/webext-bridge/)**: Messaging in Web Extensions made easy. Batteries included. +- **[serversideup/ansible](https://github.com/serversideup/docker-ansible)**: Run Ansible anywhere with a lightweight and powerful Docker image. + +### ๐Ÿ“š Books +- **[Building Browser Extensions](https://serversideup.net/products/building-multi-platform-browser-extensions/)**: Build browser extensions for Firefox, Chrome, and more. +- **[Ultimate Guide To Building APIs & SPAs](https://serversideup.net/products/ultimate-guide-to-building-apis-and-spas-with-laravel-and-nuxt3/)**: Build web and mobile apps from the same codebase. + From 074e02781c0a65c9228459de3b55b49a82ce273b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 20:44:33 +0000 Subject: [PATCH 2/6] Update README sponsors and About Us --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 2a778efad..5914307d9 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,16 @@ We're [Dan](https://x.com/danpastori) and [Jay](https://x.com/jaydrogers) - a tw +### Hire Us +Get two senior Laravel experts who deliver quality code with predictable monthly pricing. [Dan](https://x.com/danpastori) and [Jay](https://x.com/jaydrogers) have 30+ years of combined experience building scalable Laravel applications. + +- **๐ŸŽฏ Complete Laravel expertise** - Full-stack development, CI/CD, database optimization, mobile apps +- **๐Ÿ’ฐ Predictable pricing** - Fixed monthly subscription, no hourly billing surprises, 40%+ savings +- **โšก Maximum productivity** - 90%+ development time, no meetings, results in days not weeks +- **๐Ÿ›ก๏ธ Risk-free** - 7-day money-back guarantee, cancel anytime + +**[๐Ÿ’ฌ Discuss Your Project โ†’](https://serversideup.net/hire-us)** + ### Find us at: * **๐Ÿ“– [Blog](https://serversideup.net)** - Get the latest guides and free courses on all things web/mobile development. From 49a727d79a6abab26fca824c85ce977f0faeadf0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:11:28 +0000 Subject: [PATCH 3/6] Update README sponsors and About Us --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5914307d9..57d26ba99 100644 --- a/README.md +++ b/README.md @@ -193,7 +193,6 @@ If you appreciate this project, be sure to check out our other projects. ### ๐Ÿ› ๏ธ Premium - **[Self-Host Pro](https://selfhostpro.com)**: Sell self-hosted software in minutes. -- **[Bugflow](https://bugflow.io)**: Get product feedback directly in GitHub, GitLab, and more. - **[Spin Pro](https://getspin.pro)**: Production-ready Docker templates for shipping quickly. ### ๐ŸŒ Open Source From f4fc336b9ca03aa8ad8be717e2291a590c89f38b Mon Sep 17 00:00:00 2001 From: ryanjbonnell Date: Fri, 25 Sep 2026 14:01:40 -0700 Subject: [PATCH 4/6] Add backslash continuation to package install scripts --- .../bin/docker-php-serversideup-dep-install-alpine | 12 +++++++++++- .../bin/docker-php-serversideup-dep-install-debian | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine b/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine index be14e8acd..2a10dca7a 100644 --- a/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine +++ b/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine @@ -3,6 +3,14 @@ set -oe ################################################### # Usage: docker-php-serversideup-dep-install-alpine [alpine-packages] +# +# Packages may be passed as separate arguments, comma-delimited, or both: +# +# docker-php-serversideup-dep-install-alpine git, zip +# +# docker-php-serversideup-dep-install-alpine \ +# git \ +# zip ################################################### # This script installs alpine packages that are passed to it @@ -27,8 +35,10 @@ fi ############ # Functions ############ +# Accepts any mix of space-separated arguments and comma-delimited lists +# (e.g. "pkg1, pkg2" or "pkg1 pkg2" or "pkg1 \ pkg2" across lines in a Dockerfile) convert_comma_delimited_to_space_separated() { - echo $1 | tr ',' ' ' + printf '%s\n' "$*" | tr ',' ' ' | tr -s ' ' } ############ diff --git a/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian b/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian index 309a9cf97..e8ec0ee1f 100644 --- a/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian +++ b/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian @@ -3,6 +3,14 @@ set -oe ################################################### # Usage: docker-php-serversideup-dep-install-debian [debian-packages] +# +# Packages may be passed as separate arguments, comma-delimited, or both: +# +# docker-php-serversideup-dep-install-debian git, zip +# +# docker-php-serversideup-dep-install-debian \ +# git \ +# zip ################################################### # This script installs debian packages that are passed to it @@ -28,8 +36,10 @@ fi ############ # Functions ############ +# Accepts any mix of space-separated arguments and comma-delimited lists +# (e.g. "pkg1, pkg2" or "pkg1 pkg2" or "pkg1 \ pkg2" across lines in a Dockerfile) convert_comma_delimited_to_space_separated() { - echo $1 | tr ',' ' ' + printf '%s\n' "$*" | tr ',' ' ' | tr -s ' ' } ############ From dc3b2f87fc135e19a4223c3569c7f3c10178b198 Mon Sep 17 00:00:00 2001 From: ryanjbonnell Date: Fri, 25 Sep 2026 14:20:28 -0700 Subject: [PATCH 5/6] Re-split into one argument per package --- ...docker-php-serversideup-dep-install-alpine | 22 ++++++++++++++----- ...docker-php-serversideup-dep-install-debian | 18 ++++++++++++--- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine b/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine index 2a10dca7a..80a47dcce 100644 --- a/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine +++ b/src/common/usr/local/bin/docker-php-serversideup-dep-install-alpine @@ -38,19 +38,31 @@ fi # Accepts any mix of space-separated arguments and comma-delimited lists # (e.g. "pkg1, pkg2" or "pkg1 pkg2" or "pkg1 \ pkg2" across lines in a Dockerfile) convert_comma_delimited_to_space_separated() { - printf '%s\n' "$*" | tr ',' ' ' | tr -s ' ' + printf '%s\n' "$*" | tr ',' ' ' } ############ # Main ############ -DEP_PACKAGES=$(convert_comma_delimited_to_space_separated "$@") +# Re-split into one argument per package. Globbing is disabled so a package +# name such as "php*" is never expanded against files in the working directory. +set -f +set -- $(convert_comma_delimited_to_space_separated "$@") +set +f + +if [ $# -eq 0 ]; then + echo "โ„น๏ธ INFO ($script_name): No packages were found in the arguments. Continuing..." + exit 0 +fi + +# "$*" joins the packages with single spaces for display +DEP_PACKAGES="$*" echo "๐Ÿค– Installing: $DEP_PACKAGES" -apk update -apk add --no-cache $DEP_PACKAGES +apk update +apk add --no-cache "$@" echo "๐Ÿงผ Cleaning up installation of: $DEP_PACKAGES" rm -rf /var/cache/apk/* -echo "โšก๏ธ Completed installation of: $DEP_PACKAGES" \ No newline at end of file +echo "โšก๏ธ Completed installation of: $DEP_PACKAGES" diff --git a/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian b/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian index e8ec0ee1f..40e3b66f9 100644 --- a/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian +++ b/src/common/usr/local/bin/docker-php-serversideup-dep-install-debian @@ -39,16 +39,28 @@ fi # Accepts any mix of space-separated arguments and comma-delimited lists # (e.g. "pkg1, pkg2" or "pkg1 pkg2" or "pkg1 \ pkg2" across lines in a Dockerfile) convert_comma_delimited_to_space_separated() { - printf '%s\n' "$*" | tr ',' ' ' | tr -s ' ' + printf '%s\n' "$*" | tr ',' ' ' } ############ # Main ############ -DEP_PACKAGES=$(convert_comma_delimited_to_space_separated "$@") +# Re-split into one argument per package. Globbing is disabled so a package +# name such as "php*" is never expanded against files in the working directory. +set -f +set -- $(convert_comma_delimited_to_space_separated "$@") +set +f + +if [ $# -eq 0 ]; then + echo "โ„น๏ธ INFO ($script_name): No packages were found in the arguments. Continuing..." + exit 0 +fi + +# "$*" joins the packages with single spaces for display +DEP_PACKAGES="$*" echo "๐Ÿค– Installing: $DEP_PACKAGES" apt-get update -apt-get install -y $DEP_PACKAGES +apt-get install -y "$@" echo "๐Ÿงผ Cleaning up installation of: $DEP_PACKAGES" From 3201649ed2fc2dc21e1dcae7fe0257ef2aaaf5d9 Mon Sep 17 00:00:00 2001 From: ryanjbonnell Date: Fri, 25 Sep 2026 14:22:37 -0700 Subject: [PATCH 6/6] Update command reference documentation --- .../docs/8.reference/2.command-reference.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/content/docs/8.reference/2.command-reference.md b/docs/content/docs/8.reference/2.command-reference.md index 02263e4db..bc82ed2ed 100644 --- a/docs/content/docs/8.reference/2.command-reference.md +++ b/docs/content/docs/8.reference/2.command-reference.md @@ -24,6 +24,22 @@ This command will detect the operating system and install packages if it is an A docker-php-serversideup-dep-install-alpine git ``` +Packages can be passed as separate arguments, as a comma-separated list, or split across multiple lines with backslash continuations: + +```bash [Example - Installing multiple packages on Alpine] +# Separate arguments +docker-php-serversideup-dep-install-alpine git zip unzip + +# Comma-separated +docker-php-serversideup-dep-install-alpine "git, zip, unzip" + +# Backslash continuations (useful in a Dockerfile) +docker-php-serversideup-dep-install-alpine \ + git \ + zip \ + unzip +``` + ## docker-php-serversideup-dep-install-debian This command will detect the operating system and install packages if it is a Debian based system. This is helpful if you're building multiple operating systems from the same Dockerfile. @@ -32,6 +48,22 @@ This command will detect the operating system and install packages if it is a De docker-php-serversideup-dep-install-debian git ``` +Packages can be passed as separate arguments, as a comma-separated list, or split across multiple lines with backslash continuations: + +```bash [Example - Installing multiple packages on Debian] +# Separate arguments +docker-php-serversideup-dep-install-debian git zip unzip + +# Comma-separated +docker-php-serversideup-dep-install-debian "git, zip, unzip" + +# Backslash continuations (useful in a Dockerfile) +docker-php-serversideup-dep-install-debian \ + git \ + zip \ + unzip +``` + ## docker-php-serversideup-entrypoint Our default entrypoint script that is used for all images.