Repman - PHP Repository Manager
Repman is a PHP repository manager. Main features:
- free and open source
- works as a proxy for packagist.org (speeds up your local builds)
- hosts your private packages
- allows to create individual access tokens
- supports private package import from GitHub, GitLab and Bitbucket with one click
Documentation: https://repman.io/docs/
Requirements
- PHP >= 7.4
- PostgreSQL 11
var
dir must be writeable- any web server
Installation
git clone git@github.com:repman-io/repman.git
cd repman
composer install
Workers
To process messages asynchronously you must run worker:
bin/console messenger:consume async
Read more: deploying to production
Usage
Navigate your browser to instance address, you will see home page with usage instructions.
Local proxy
On dev env you may want to enable proxy to allow to create subdomains and tests composer organizations:
composer proxy-setup
This will create repman.wip
domain. Then you can add other domains with:
symfony proxy:domain:attach your-organization.repman
CLI commands
bin/console repman:metadata:clear-cache
- clear packages metadata cache (json files)
API Integration
Callbacks:
/auth/{provider}/check
/register/{provider}/check
/user/token/{provider}/check
GitHub
Scopes:
- registration:
user:email
- repositories:
read:org
,repo
GitLab
Scopes:
- registration:
read_user
- repositories:
api
Bitbucket
Scopes:
- registration:
email
- repositories:
repository
,webhook
Self-hosted GitLab
To integrate with self-hosted GitLab, enter the instance url in the APP_GITLAB_API_URL
environment variable
APP_GITLAB_API_URL='https://gitlab.organization.lan'
Docker
- Override with
docker-compose.override.yml
if needed. - Set your domain (
APP_HOST
) in.env.docker
.
If you wish to use your own certificate put key and certificate in:
docker/nginx/ssl/private/server.key
docker/nginx/ssl/certs/server.crt
Otherwise self-sign certificate will be generated.
To start all containers run:
docker-compose up
made with ❤️ by Buddy