Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/composer/satis
Simple static Composer repository generator - For a full private Composer repo use Private Packagist
https://github.com/composer/satis
composer hacktoberfest packagist static-packagist static-repository
Last synced: 7 days ago
JSON representation
Simple static Composer repository generator - For a full private Composer repo use Private Packagist
- Host: GitHub
- URL: https://github.com/composer/satis
- Owner: composer
- License: mit
- Created: 2012-01-16T18:10:58.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T11:27:52.000Z (8 days ago)
- Last Synced: 2024-10-28T14:51:06.594Z (8 days ago)
- Topics: composer, hacktoberfest, packagist, static-packagist, static-repository
- Language: PHP
- Homepage:
- Size: 3.19 MB
- Stars: 3,140
- Watchers: 94
- Forks: 518
- Open Issues: 99
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
- awesome-php - Satis - A static Composer repository generator. (Table of Contents / Dependency Management Extras)
- awesome-projects - Satis - A static Composer repository generator. (PHP / Dependency Management Extras)
- awesome-php - Satis - A static Composer repository generator. (Table of Contents / Dependency Management Extras)
- awesome-php-cn - Satis - 一个静态的作曲家库发生器. (目录 / 依赖关系管理临时演员 dependency-management-extras)
README
# Satis
A simple static Composer repository generator.
## About
Satis is a tool that allows PHP developers to create a private package repository for their projects' dependencies. It provides
increased control over package distribution, improved security, and faster package installations, by creating a static Composer
registry that can be hosted anywhere (even via Docker, locally).## Run from source
Satis requires a recent PHP version, it does not run with unsupported PHP versions. Check the `composer.json` file for details.
- Install Satis: `composer create-project --keep-vcs --no-dev composer/satis:dev-main`
- Build a repository: `php bin/satis build `Read the more detailed instructions in the [documentation][].
## Run as Docker container
> Note: use `composer/satis` for Docker Hub, `ghcr.io/composer/satis` for GitHub container registry.
Pull the image:
```sh
docker pull composer/satis
```Run the image (with Composer cache from host):
```sh
docker run --rm --init -it \
--user $(id -u):$(id -g) \
--volume $(pwd):/build \
--volume "${COMPOSER_HOME:-$HOME/.composer}:/composer" \
composer/satis build
```If you want to run the image without implicitly running Satis, you have to
override the entrypoint specified in the `Dockerfile`:```sh
--entrypoint /bin/sh
```## Purge
If you choose to archive packages as part of your build, over time you can be
left with useless files. With the `purge` command, you can delete these files.```sh
php bin/satis purge
```> Note: don't do this unless you are certain your projects no longer reference any of these archives in their `composer.lock` files.
## Updating
Updating Satis is as simple as running `git pull && composer install` in the
Satis directory.If you are running Satis as a Docker container, simply pull the latest image.
## Contributing
Please note that this project is released with a [Contributor Code of Conduct][].
By participating in this project you agree to abide by its terms.Fork the project, create a feature branch, and send us a pull request.
If you introduce a new feature, or fix a bug, please try to include a testcase.
While not required, it is appreciated if your contribution meets our coding standards.
You can check these yourself by running the tools we use:
```bash
# install tooling & dependencies
for d in tools/*; do composer --working-dir=$d install; done# run php-cs-fixer
tools/php-cs-fixer/vendor/bin/php-cs-fixer fix# run phpstan
tools/phpstan/vendor/bin/phpstan# alternatively, use the shortcuts
composer phpstan
composer php-cs-fixer[-fix]
```## Authors
See the list of [contributors][] who participate(d) in this project.
## Community Tools
- [satisfy][] - Symfony based composer repository manager with a simple web UI.
## Examples
- [eventum/composer] - A simple static set of packages hosted in GitHub Pages
- [satis.spatie.be] - A brief guide to setting up and securing a Satis repository## License
Satis is licensed under the MIT License - see the [LICENSE][] file for details
[documentation]: https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md
[contributor code of conduct]: https://www.contributor-covenant.org/version/2/0/code_of_conduct/
[contributors]: https://github.com/composer/satis/contributors
[satisfy]: https://github.com/ludofleury/satisfy
[license]: https://github.com/composer/satis/blob/main/LICENSE
[eventum/composer]: https://github.com/eventum/composer
[satis.spatie.be]: https://alexvanderbist.com/2021/setting-up-and-securing-a-private-composer-repository/