Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/scheduled-task_update-readme.yml
Original file line number Diff line number Diff line change
@@ -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
40 changes: 0 additions & 40 deletions .github/workflows/scheduled-task_update-sponsors.yml

This file was deleted.

63 changes: 38 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,58 +138,71 @@ Need help getting started? Join our Discord community and we'll help you out!

<a href="https://serversideup.net/discord"><img src="https://serversideup.net/wp-content/themes/serversideup/images/open-source/join-discord.svg" title="Join Discord"></a>

<!-- serversideup-sponsors -->
## 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.

<p align="center"><a href="https://github.com/sponsors/serversideup"><img src="https://521public.s3.amazonaws.com/serversideup/sponsors/sponsor-box.png" alt="Sponsors"></a></p>
<p align="center"><a href="https://github.com/sponsors/serversideup"><img src="https://521public.s3.amazonaws.com/serversideup/sponsors/sponsor-box.png" alt="Become a sponsor"></a></p>

### Black Level Sponsors
<a href="https://sevalla.com"><img src="https://serversideup.net/wp-content/uploads/2024/10/sponsor-image.png" alt="Sevalla" width="546px"></a>
### Platinum Sponsors
<a href="https://sevalla.com"><img src="https://serversideup.net/sponsors/sevalla.png" alt="Sevalla" width="500px"></a>

#### Bronze Sponsors
<!-- bronze -->No bronze sponsors yet. <a href="https://github.com/sponsors/serversideup">Become a sponsor →</a><!-- bronze -->
### Silver Sponsors
<a href="https://giga-infosystems.com"><img src="https://serversideup.net/sponsors/giga-infosystems.png" alt="GiGa infosystems" width="200px"></a>

#### 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.

<a href="https://depot.dev/"><img src="https://serversideup.net/sponsors/depot.png" alt="Depot" width="250px"></a>&nbsp;&nbsp;<a href="https://hub.docker.com/u/serversideup"><img src="https://serversideup.net/sponsors/docker.png" alt="Docker" width="250px"></a>

#### Individual Supporters
<!-- supporters --><p align="center"><a href="https://github.com/sponsors/serversideup"><img src="https://521public.s3.amazonaws.com/serversideup/sponsors/sponsor-empty-state.png" alt="Sponsors"></a></p><!-- supporters -->
<a href="https://depot.dev"><img src="https://serversideup.net/sponsors/depot.png" alt="Depot" width="250px"></a>&nbsp;&nbsp;<a href="https://hub.docker.com/u/serversideup"><img src="https://serversideup.net/sponsors/docker.png" alt="Docker" width="250px"></a>
<!-- serversideup-sponsors -->

<!-- serversideup-about -->
## 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.

<div align="center">

| <div align="center">Dan Pastori</div> | <div align="center">Jay Rogers</div> |
| ----------------------------- | ------------------------------------------ |
| <div align="center"><a href="https://x.com/danpastori"><img src="https://serversideup.net/wp-content/uploads/2023/08/dan.jpg" title="Dan Pastori" width="150px"></a><br /><a href="https://x.com/danpastori"><img src="https://serversideup.net/wp-content/themes/serversideup/images/open-source/twitter.svg" title="Twitter" width="24px"></a><a href="https://github.com/danpastori"><img src="https://serversideup.net/wp-content/themes/serversideup/images/open-source/github.svg" title="GitHub" width="24px"></a></div> | <div align="center"><a href="https://x.com/jaydrogers"><img src="https://serversideup.net/wp-content/uploads/2023/08/jay.jpg" title="Jay Rogers" width="150px"></a><br /><a href="https://x.com/jaydrogers"><img src="https://serversideup.net/wp-content/themes/serversideup/images/open-source/twitter.svg" title="Twitter" width="24px"></a><a href="https://github.com/jaydrogers"><img src="https://serversideup.net/wp-content/themes/serversideup/images/open-source/github.svg" title="GitHub" width="24px"></a></div> |
| <div align="center">Dan Pastori</div> | <div align="center">Jay Rogers</div> |
| --- | --- |
| <div align="center"><a href="https://x.com/danpastori"><img src="https://serversideup.net/wp-content/uploads/2023/08/dan.jpg" title="Dan Pastori" width="150px"></a><br /><a href="https://x.com/danpastori"><img src="https://serversideup.net/logos/x.svg" title="X" width="24px"></a><a href="https://github.com/danpastori"><img src="https://serversideup.net/logos/github.svg" title="GitHub" width="24px"></a></div> | <div align="center"><a href="https://x.com/jaydrogers"><img src="https://serversideup.net/wp-content/uploads/2023/08/jay.jpg" title="Jay Rogers" width="150px"></a><br /><a href="https://x.com/jaydrogers"><img src="https://serversideup.net/logos/x.svg" title="X" width="24px"></a><a href="https://github.com/jaydrogers"><img src="https://serversideup.net/logos/github.svg" title="GitHub" width="24px"></a></div> |

</div>

### 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.
* **🙋 [Community](https://community.serversideup.net)** - Get friendly help from our community members.
* **🤵‍♂️ [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.
- **[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.
- **[Spin](https://serversideup.net/open-source/spin/)**: Docker Simplified. Deploy Anywhere. Zero Downtime. Any OS. <!-- repo:serversideup/spin -->
- **[Financial Freedom](https://serversideup.net/open-source/financial-freedom/)**: Open source alternative to Mint, YNAB, and more. <!-- repo:serversideup/financial-freedom -->
- **[AmplitudeJS](https://serversideup.net/open-source/amplitudejs/)**: Customize the design of any element of the HTML5 Audio Player. <!-- repo:521dimensions/amplitudejs -->
- **[webext-bridge](https://serversideup.net/open-source/webext-bridge/)**: Messaging in Web Extensions made easy. Batteries included. <!-- repo:serversideup/webext-bridge -->
- **[serversideup/ansible](https://github.com/serversideup/docker-ansible)**: Run Ansible anywhere with a lightweight and powerful Docker image. <!-- repo:serversideup/docker-ansible -->

### 📚 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.
<!-- serversideup-about -->
32 changes: 32 additions & 0 deletions docs/content/docs/8.reference/2.command-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -27,20 +35,34 @@ 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 ',' ' '
}

############
# 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"
echo "⚡️ Completed installation of: $DEP_PACKAGES"
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -28,17 +36,31 @@ 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 ',' ' '
}

############
# 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"
Expand Down