https://github.com/dockette/packagist
:whale: Dockette out-of-box Packagist (Nginx / Solr 6 / PHP 7.1+FPM)
https://github.com/dockette/packagist
composer docker packagist php
Last synced: 9 months ago
JSON representation
:whale: Dockette out-of-box Packagist (Nginx / Solr 6 / PHP 7.1+FPM)
- Host: GitHub
- URL: https://github.com/dockette/packagist
- Owner: dockette
- License: mit
- Created: 2016-05-23T07:08:44.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-01-06T12:39:26.000Z (about 1 year ago)
- Last Synced: 2025-05-04T02:39:59.777Z (11 months ago)
- Topics: composer, docker, packagist, php
- Language: Shell
- Homepage:
- Size: 66.4 KB
- Stars: 34
- Watchers: 5
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Packagist
Well-prepeared Packagist docker image(s). Run you own composer packagist portal in Docker.
> [!TIP]
> [since 2024] Use awesome self-hosted Packagist/Composer/Satis repository with unlimited private repos called [Packeton](https://bit.ly/3PosO4p).
-----
[](https://hub.docker.com/r/dockette/packagist/)
[](https://hub.docker.com/r/dockette/packagist/)
## Discussion / Help
[](https://gitter.im/dockette/dockette?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
## Architecture
This whole project consists of 4 containers and 1 data-only container.
- Packagist (nginx,php)
- MariaDB (database)
- Redis (memory storage)
- Solr (search engine)
This version is [locked to](https://github.com/composer/packagist/commit/2d90743bec035e87928f4afa356ba28a1547608f) version before Packagist switched search engine to Algolia.
## Installation
Download prepared `docker-compose.yml` to your pc / server.
### Solr
Create `data/solr` folder a chown file permission to ID `8983`.
```
chown 8983:8983 data/solr
```
### Packagist
You should change prepared configuration.
- `PACKAGIST_DATABASE_USER` (packagist)
- `PACKAGIST_DATABASE_PASSWORD` (packagist)
## Usage
Type `docker-compose up -d` and see the magic.
### MySQL
Execute all packagist MySQL migrations.
```
docker-compose exec packagist /srv/app/console doctrine:schema:create
```
### Packagist
Please create your account and add some composer package.
```
docker-compose exec --user www-data packagist /srv/app/console packagist:update --no-debug --env=prod --force
docker-compose exec --user www-data packagist /srv/app/console packagist:dump --no-debug --env=prod --force
```
Attribute `force` is needed for the first-run.
#### SSH
You can provide your own SSH keys, just uncommenting lines in docker-compose.yml.
```
volumes:
- ./config/ssh/config:/var/www/.ssh/config
- ./config/ssh/id_rsa:/var/www/.ssh/id_rsa
- ./config/ssh/id_rsa.pub:/var/www/.ssh/id_rsa.pub
- ./config/ssh/known_hosts:/var/www/.ssh/known_hosts
```
Don't forget to change owernership to Alpine's user www-data (82:82).
```
sudo chown -R 82:82 config id_rsa id_rsa.pub known_hosts
```
### Solr
Index your first composer package.
```
docker-compose exec packagist /srv/app/console packagist:index --no-debug --env=prod --force
```
## Cron
Cron is configured per 1 minute. You can change by replacing these files:
- /etc/crontabs/root
- /etc/periodic/1min/packagist