Repman

Description

Repman is a free, open-source PHP private package repository manager for Composer from the makers of Buddy CI/CD. Thanks to a dedicated CDN/proxy for Packagist, Repman can speed up dependency download up to 80%.

PROXY

The built-in global CDN speeds up downloading Composer dependencies from Packagist.org up to 80%. Just install the Repman plugin or update your composer.json file and you’re ready to go.

Features

  • Native integration with GitHub, GitLab, and Bitbucket
  • Packages can be shared in organizations through authorization tokens
  • Security scanner for private packages
  • Four package types are supported: VCS, PEAR, path to directory, and artifact
  • Supports Git, SVN, Fossil and Mercurial version control systems
  • Each shared package is tracked for the number of installations (global or individual)
  • All sources are available on GitHub under MIT license

Software Included

Package Version License
PHP 7.4.5 PHP License v3.01
PostgreSQL 11.7 PostgreSQL License
Nginx 1.14 2-clause BSD-like license
Supervisor 3.3.1 BSD-like license
Repman 0.4.1 MIT

Creating an App using the Control Panel

Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the Repman 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Repman Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token) to an environment variable or substitute it in the command below.

curl -X POST -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer '$TOKEN'' -d \
        '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image": "buddy-repman-18-04"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying Repman

After you create a Repman One-Click Droplet:

  • prepare and connect your domain
  • login via SSH
  • run cd repman
  • run (replace repman.instance with your domain name) ansible-playbook ansible/setup.yml -i ansible/inventories/local --extra-vars '{"server_hostname":"repman.instance","app_git_branch":"0.4.1"}'

Add admin user:

  • change user to repman: sudo su repman
  • enter project root: cd /var/www/repman
  • run command bin/console repman:create:admin [email protected]