diff --git a/profile/README.md b/profile/README.md index 9ed2170..c24fb09 100644 --- a/profile/README.md +++ b/profile/README.md @@ -2,30 +2,38 @@ Fundamentally, this is the psuedo 'brand' that I publish open source projects. -## Projects -| Name | How do I get it | Description | Build | Tests | QC | -|----------------------------------------------------------------------------------------------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Benzine Core](https://github.com/benzine-framework/core) | `composer require benzine/core` | Wrote too much boilerplate. Patience met its demise. Realised that all the little bits of glue I was writing was effectively a framework. Packaged it as such. | N/A | [![PHPUnit](https://github.com/benzine-framework/core/actions/workflows/test.yml/badge.svg)](https://github.com/benzine-framework/core/actions/workflows/test.yml) | [![Trunk.io Check](https://github.com/benzine-framework/core/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/core/actions/workflows/trunk.check.yml) | -| [Benzine ORM](https://github.com/benzine-framework/orm) | `composer require benzine/orm` | Frustrated with Doctrine and Eloquent, I made my own ORM with blackjack and hookers. | N/A | [![PHPUnit](https://github.com/benzine-framework/orm/actions/workflows/test.yml/badge.svg)](https://github.com/benzine-framework/orm/actions/workflows/test.yml) | [![Trunk.io Check](https://github.com/benzine-framework/orm/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/orm/actions/workflows/trunk.check.yml) | -| [Benzine DevTools](https://github.com/benzine-framework/dev-tools) | `composer require benzine/dev-tools` | A collection of tools that I use to develop Benzine projects. | N/A | N/A | [![Trunk.io Check](https://github.com/benzine-framework/dev-tools/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/dev-tools/actions/workflows/trunk.check.yml) | -| [Github Action - Get Datetime](https://github.com/benzine-framework/action-get-datetime) | `uses: benzine-framework/action-get-datetime@v1` | Simple action that names datetimes more useful in github actions. | | ![Tests Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-get-datetime/test.yml?logo=github&label=Tests) | ![QC Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-get-datetime/trunk.check.yml?logo=github&label=QC) | -| [Github Action - Setup PHP Project](https://github.com/benzine-framework/action-setup-php) | `uses: benzine-framework/action-setup-php@main` | Get PHP Running in GHA, install tools, add composer cache, composer install your repo in one fell swoop | | ![Tests Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-php/test.yml?logo=github&label=Tests) | ![QC Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-php/trunk.check.yml?logo=github&label=QC) | -| [Github Action - Setup Docker](https://github.com/benzine-framework/action-setup-docker) | `uses: benzine-framework/action-setup-docker@main` | Configure Docker, buildx, qemu and login to Docker Hub or GitHub Container Registry | | ![Tests Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-docker/test.yml?logo=github&label=Tests) | ![QC Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-docker/trunk.check.yml?logo=github&label=QC) | -| [Dockerized DynamoDB](https://github.com/benzine-framework/docker-dynamodb) | | A Docker image customised for running an approximation of DynamoDB Locally, with healthchecks. | [![DynamoDB](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/dynamodb.yml/badge.svg)](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/dynamodb.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/trunk.check.yml) | -| [Dockerized MariaDB](https://github.com/benzine-framework/docker-mariadb) | | A Docker image customised for running MariaDB Locally, with healthchecks. | [![MariaDB](https://github.com/benzine-framework/docker-mariadb/actions/workflows/build.yml/badge.svg)](https://github.com/benzine-framework/docker-mariadb/actions/workflows/build.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-mariadb/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mariadb/actions/workflows/trunk.check.yml) | -| [Dockerized MITM Proxy](https://github.com/benzine-framework/docker-mitmproxy) | | MITMProxy is a pain in the arse, also yeah healthchecks | [![MITMProxy](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/mitmproxy.yml/badge.svg)](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/mitmproxy.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/trunk.check.yml) | -| [Dockerized MongoDB](https://github.com/benzine-framework/docker-mongodb) | | Everyones favourite not-a-database... with healthchecks | [![MongoDB](https://github.com/benzine-framework/docker-mongodb/actions/workflows/mongodb.yml/badge.svg)](https://github.com/benzine-framework/docker-mongodb/actions/workflows/mongodb.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-mongodb/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mongodb/actions/workflows/trunk.check.yml) | -| [Dockerized Mosquitto/MQTT](https://github.com/benzine-framework/docker-mqtt) | | | [![MQTT](https://github.com/benzine-framework/docker-mqtt/actions/workflows/mqtt.yml/badge.svg)](https://github.com/benzine-framework/docker-mqtt/actions/workflows/mqtt.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-mqtt/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mqtt/actions/workflows/trunk.check.yml) | -| [Dockerized MySQL Proxy](https://github.com/benzine-framework/docker-mysql-proxy) | | | [![MySQL Proxy](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/mysql-proxy.yml/badge.svg)](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/mysql-proxy.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/trunk.check.yml) | -| [Dockerized Node](https://github.com/benzine-framework/docker-node) | | My flavoured images of the node runtime. | [![NodeJS](https://github.com/benzine-framework/docker-node/actions/workflows/node.yml/badge.svg)](https://github.com/benzine-framework/docker-node/actions/workflows/node.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-node/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-node/actions/workflows/trunk.check.yml) | -| [Dockerized Perl](https://github.com/benzine-framework/docker-perl) | | I had to do perl too for god knows what reason | [![Perl](https://github.com/benzine-framework/docker-perl/actions/workflows/perl.yml/badge.svg)](https://github.com/benzine-framework/docker-perl/actions/workflows/perl.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-perl/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-perl/actions/workflows/trunk.check.yml) | -| [Dockerized PHP](https://github.com/benzine-framework/docker-php) | | Where it all began, being frustrated by needing two containers for PHP-FPM and Nginx, back in the day... | [![PHP](https://github.com/benzine-framework/docker-php/actions/workflows/php.yml/badge.svg)](https://github.com/benzine-framework/docker-php/actions/workflows/php.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-php/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-php/actions/workflows/trunk.check.yml) | -| [Dockerized Postgres](https://github.com/benzine-framework/docker-postgres) | | | [![Postgres](https://github.com/benzine-framework/docker-postgres/actions/workflows/postgres.yml/badge.svg)](https://github.com/benzine-framework/docker-postgres/actions/workflows/postgres.yml) | N/A | [![.io Check](https://github.com/benzine-framework/docker-postgres/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-postgres/actions/workflows/trunk.check.yml) | -| [Dockerized Redis](https://github.com/benzine-framework/docker-redis) | | | [![Redis](https://github.com/benzine-framework/docker-redis/actions/workflows/redis.yml/badge.svg)](https://github.com/benzine-framework/docker-redis/actions/workflows/redis.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-redis/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-redis/actions/workflows/trunk.check.yml) | -| [Multi-Process Docker Runtime](https://github.com/benzine-framework/docker-runit) | | | [![Build Runit)](https://github.com/benzine-framework/docker-runit/actions/workflows/runit.yml/badge.svg)](https://github.com/benzine-framework/docker-runit/actions/workflows/runit.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-runit/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-runit/actions/workflows/trunk.check.yml) | -| [S3DB](https://github.com/benzine-framework/docker-s3db) | | Application built ontop of MySQL or Postgres, which uses s3 buckets as a backend store. Designed for ephemeral QA systems where the server may purge the instance. | [![Build S3DB](https://github.com/benzine-framework/docker-s3db/actions/workflows/build.yml/badge.svg)](https://github.com/benzine-framework/docker-s3db/actions/workflows/build.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-s3db/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-s3db/actions/workflows/trunk.check.yml) | -| [Swarm Connectivity Tester](https://github.com/benzine-framework/docker-swarm-connectivity-tester) | | While chasing down connectivity issues that turned out to be *entirely* AWS's doing, I wrote a silly little connectivity tester tool. | [![Build Swarm Connectivity Tester](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/swarm-connectivity-tester.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/swarm-connectivity-tester.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/trunk.check.yml) | -| [Swarm-aware Nginx Load-Balancer](https://github.com/benzine-framework/docker-swarm-loadbalancer) | | Nginx that interrogates the docker socket to automatically provision itself, plus lets encrypt, plus storing certs in an s3 bucket. | [![Build Bouncer](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/bouncer.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/bouncer.yml) | N/A | [![Trunk.io Check](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/trunk.check.yml) | +## PHP Projects +| Name | How do I get it | Description | Build | Tests | QC | +|----------------------------------------------------------------------------------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Benzine Core](https://github.com/benzine-framework/core) | `composer require benzine/core` | Wrote too much boilerplate. Patience met its demise. Realised that all the little bits of glue I was writing was effectively a framework. Packaged it as such. | [![PHPUnit](https://github.com/benzine-framework/core/actions/workflows/test.yml/badge.svg)](https://github.com/benzine-framework/core/actions/workflows/test.yml) | [![Trunk.io Check](https://github.com/benzine-framework/core/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/core/actions/workflows/trunk.check.yml) | +| [Benzine ORM](https://github.com/benzine-framework/orm) | `composer require benzine/orm` | Frustrated with Doctrine and Eloquent, I made my own ORM with blackjack and hookers. | [![PHPUnit](https://github.com/benzine-framework/orm/actions/workflows/test.yml/badge.svg)](https://github.com/benzine-framework/orm/actions/workflows/test.yml) | [![Trunk.io Check](https://github.com/benzine-framework/orm/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/orm/actions/workflows/trunk.check.yml) | +| [Benzine DevTools](https://github.com/benzine-framework/dev-tools) | `composer require benzine/dev-tools` | A collection of tools that I use to develop Benzine projects. | [![Trunk.io Check](https://github.com/benzine-framework/dev-tools/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/dev-tools/actions/workflows/trunk.check.yml) | +| [S3DB](https://github.com/benzine-framework/docker-s3db) | | Application built ontop of MySQL or Postgres, which uses s3 buckets as a backend store. Designed for ephemeral QA systems where the server may purge the instance. | [![Build S3DB](https://github.com/benzine-framework/docker-s3db/actions/workflows/build.yml/badge.svg)](https://github.com/benzine-framework/docker-s3db/actions/workflows/build.yml) | 😿 | [![Trunk.io Check](https://github.com/benzine-framework/docker-s3db/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-s3db/actions/workflows/trunk.check.yml) | +| [Swarm Connectivity Tester](https://github.com/benzine-framework/docker-swarm-connectivity-tester) | | While chasing down connectivity issues that turned out to be *entirely* AWS's doing, I wrote a silly little connectivity tester tool. | [![Build Swarm Connectivity Tester](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/swarm-connectivity-tester.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/swarm-connectivity-tester.yml) | 😿 | [![Trunk.io Check](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-connectivity-tester/actions/workflows/trunk.check.yml) | +| [Swarm-aware Nginx Load-Balancer](https://github.com/benzine-framework/docker-swarm-loadbalancer) | | Nginx that interrogates the docker socket to automatically provision itself, plus lets encrypt, plus storing certs in an s3 bucket. | [![Build Bouncer](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/build.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/build.yml) | 😿 | [![Trunk.io Check](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-swarm-loadbalancer/actions/workflows/trunk.check.yml) | + +## Actions +| Name | How do I get it | Description | Tests | QC | +|--------------------------------------------------------------------------------------------|----------------------------------------------------|---------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| [Github Action - Get Datetime](https://github.com/benzine-framework/action-get-datetime) | `uses: benzine-framework/action-get-datetime@v1` | Simple action that names datetimes more useful in github actions. | ![Tests Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-get-datetime/test.yml?logo=github&label=Tests) | ![QC Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-get-datetime/trunk.check.yml?logo=github&label=QC) | +| [Github Action - Setup PHP Project](https://github.com/benzine-framework/action-setup-php) | `uses: benzine-framework/action-setup-php@main` | Get PHP Running in GHA, install tools, add composer cache, composer install your repo in one fell swoop | ![Tests Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-php/test.yml?logo=github&label=Tests) | ![QC Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-php/trunk.check.yml?logo=github&label=QC) | +| [Github Action - Setup Docker](https://github.com/benzine-framework/action-setup-docker) | `uses: benzine-framework/action-setup-docker@main` | Configure Docker, buildx, qemu and login to Docker Hub or GitHub Container Registry | ![Tests Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-docker/test.yml?logo=github&label=Tests) | ![QC Status](https://img.shields.io/github/actions/workflow/status/benzine-framework/action-setup-docker/trunk.check.yml?logo=github&label=QC) | + +## Docker Images +| Name | How do I get it | Description | Build | QC | +|-----------------------------------------------------------------------------------|---------------------------------------------------------|----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Multi-Process Docker Runtime](https://github.com/benzine-framework/docker-runit) | `docker pull ghcr.io/benzine-framework/marshall` | | [![Build Runit)](https://github.com/benzine-framework/docker-runit/actions/workflows/runit.yml/badge.svg)](https://github.com/benzine-framework/docker-runit/actions/workflows/runit.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-runit/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-runit/actions/workflows/trunk.check.yml) | +| [Dockerized DynamoDB](https://github.com/benzine-framework/docker-dynamodb) | `docker pull ghcr.io/benzine-framework/dynamodb:latest` | A Docker image customised for running an approximation of DynamoDB Locally, with healthchecks. | [![DynamoDB](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/dynamodb.yml/badge.svg)](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/dynamodb.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-dynamodb/actions/workflows/trunk.check.yml) | +| [Dockerized MariaDB](https://github.com/benzine-framework/docker-mariadb) | `docker pull ghcr.io/benzine-framework/mariadb` | A Docker image customised for running MariaDB Locally, with healthchecks. | [![MariaDB](https://github.com/benzine-framework/docker-mariadb/actions/workflows/build.yml/badge.svg)](https://github.com/benzine-framework/docker-mariadb/actions/workflows/build.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-mariadb/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mariadb/actions/workflows/trunk.check.yml) | +| [Dockerized MITM Proxy](https://github.com/benzine-framework/docker-mitmproxy) | `docker pull ghcr.io/benzine-framework/mitmproxy` | MITMProxy is a pain in the arse, also yeah healthchecks | [![MITMProxy](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/mitmproxy.yml/badge.svg)](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/mitmproxy.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mitmproxy/actions/workflows/trunk.check.yml) | +| [Dockerized MongoDB](https://github.com/benzine-framework/docker-mongodb) | `docker pull ghcr.io/benzine-framework/mongodb` | Everyones favourite not-a-database... with healthchecks | [![MongoDB](https://github.com/benzine-framework/docker-mongodb/actions/workflows/mongodb.yml/badge.svg)](https://github.com/benzine-framework/docker-mongodb/actions/workflows/mongodb.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-mongodb/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mongodb/actions/workflows/trunk.check.yml) | +| [Dockerized Mosquitto/MQTT](https://github.com/benzine-framework/docker-mqtt) | `docker pull ghcr.io/benzine-framework/mqtt` | | [![MQTT](https://github.com/benzine-framework/docker-mqtt/actions/workflows/mqtt.yml/badge.svg)](https://github.com/benzine-framework/docker-mqtt/actions/workflows/mqtt.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-mqtt/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mqtt/actions/workflows/trunk.check.yml) | +| [Dockerized MySQL Proxy](https://github.com/benzine-framework/docker-mysql-proxy) | `docker pull ghcr.io/benzine-framework/mysql-proxy` | | [![MySQL Proxy](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/mysql-proxy.yml/badge.svg)](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/mysql-proxy.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-mysql-proxy/actions/workflows/trunk.check.yml) | +| [Dockerized Node](https://github.com/benzine-framework/docker-node) | `docker pull ghcr.io/benzine-framework/node` | My flavoured images of the node runtime. | [![NodeJS](https://github.com/benzine-framework/docker-node/actions/workflows/node.yml/badge.svg)](https://github.com/benzine-framework/docker-node/actions/workflows/node.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-node/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-node/actions/workflows/trunk.check.yml) | +| [Dockerized Perl](https://github.com/benzine-framework/docker-perl) | `docker pull ghcr.io/benzine-framework/perl` | I had to do perl too for god knows what reason | [![Perl](https://github.com/benzine-framework/docker-perl/actions/workflows/perl.yml/badge.svg)](https://github.com/benzine-framework/docker-perl/actions/workflows/perl.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-perl/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-perl/actions/workflows/trunk.check.yml) | +| [Dockerized PHP](https://github.com/benzine-framework/docker-php) | `docker pull ghcr.io/benzine-framework/php` | Where it all began, being frustrated by needing two containers for PHP-FPM and Nginx, back in the day... | [![PHP](https://github.com/benzine-framework/docker-php/actions/workflows/php.yml/badge.svg)](https://github.com/benzine-framework/docker-php/actions/workflows/php.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-php/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-php/actions/workflows/trunk.check.yml) | +| [Dockerized Postgres](https://github.com/benzine-framework/docker-postgres) | `docker pull ghcr.io/benzine-framework/postgres` | | [![Postgres](https://github.com/benzine-framework/docker-postgres/actions/workflows/postgres.yml/badge.svg)](https://github.com/benzine-framework/docker-postgres/actions/workflows/postgres.yml) | [![.io Check](https://github.com/benzine-framework/docker-postgres/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-postgres/actions/workflows/trunk.check.yml) | +| [Dockerized Redis](https://github.com/benzine-framework/docker-redis) | `docker pull ghcr.io/benzine-framework/redis` | | [![Redis](https://github.com/benzine-framework/docker-redis/actions/workflows/redis.yml/badge.svg)](https://github.com/benzine-framework/docker-redis/actions/workflows/redis.yml) | [![Trunk.io Check](https://github.com/benzine-framework/docker-redis/actions/workflows/trunk.check.yml/badge.svg)](https://github.com/benzine-framework/docker-redis/actions/workflows/trunk.check.yml) |