https://github.com/kduma-oss/cli-s3-satis
Tool to generate a Composer PHP packages repository and synchronise it with an AWS S3 bucket.
https://github.com/kduma-oss/cli-s3-satis
docker laravel-zero php serverless-satis
Last synced: 4 months ago
JSON representation
Tool to generate a Composer PHP packages repository and synchronise it with an AWS S3 bucket.
- Host: GitHub
- URL: https://github.com/kduma-oss/cli-s3-satis
- Owner: kduma-OSS
- Created: 2023-12-16T17:24:15.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-10-07T14:14:29.000Z (9 months ago)
- Last Synced: 2025-10-07T16:13:28.416Z (9 months ago)
- Topics: docker, laravel-zero, php, serverless-satis
- Language: PHP
- Homepage: https://opensource.duma.sh/systems/serverless-satis/s3-satis/
- Size: 297 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# `s3-satis` tool
Tool to generate a [Composer](https://getcomposer.org/) PHP packages repository
(based on [Satis - static Composer repository generator](https://github.com/composer/satis))
and synchronize generated repository with a [Amazon S3](https://aws.amazon.com/s3/)
(or compatible) bucket.
Check full documentation here: [opensource.duma.sh/systems/serverless-satis/s3-satis](https://opensource.duma.sh/systems/serverless-satis/s3-satis)
## Setup
You can install `s3-satis` tool in four ways:
- As a [Docker](https://www.docker.com/) container -using image [ghcr.io/kduma-oss/s3-satis](https://github.com/kduma-OSS/CLI-s3-satis/pkgs/container/s3-satis)
- Global composer installation - tool will be available globally as `s3-satis` command
- You can download phar executable file from [GitHub Releases](https://github.com/kduma-OSS/CLI-s3-satis/releases/latest) page
- Download source code form [GitHub](https://github.com/kduma-OSS/CLI-s3-satis) to run
## Usage
First prepare a `satis.json` file with your repository configuration.
This tool is based on [Satis - static Composer repository generator](https://github.com/composer/satis){:target="_blank"},
so please check [Satis documentation](https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md){:target="_blank"}
for configuration options.
```json
{
"name": "my/repo",
"homepage": "https://satis.example.com",
"repositories": [
{ "type": "vcs", "url": "https://github.com/laravel/framework" }
],
"require-all": true
}
```
Second, configure your environment variables (or `.env` file) with your S3 bucket credentials:
```env
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_REGION=us-east-1
S3_BUCKET=
S3_ENDPOINT=
S3_USE_PATH_STYLE_ENDPOINT=false
```
Then run `s3-satis` tool to generate repository and upload it to S3 bucket:
```bash
s3-satis build satis.json
```