{"id":13548926,"url":"https://github.com/repman-io/repman","last_synced_at":"2025-04-12T22:31:40.018Z","repository":{"id":38164764,"uuid":"246783755","full_name":"repman-io/repman","owner":"repman-io","description":"Repman - PHP Repository Manager: packagist proxy and host for private packages ","archived":false,"fork":false,"pushed_at":"2024-07-08T15:03:43.000Z","size":2307,"stargazers_count":537,"open_issues_count":115,"forks_count":117,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-04T01:33:43.673Z","etag":null,"topics":["composer","hacktoberfest","packagist","packagist-mirror","packagist-proxy","php","private-packagist","repository-management"],"latest_commit_sha":null,"homepage":"https://repman.io","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/repman-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-12T08:40:23.000Z","updated_at":"2025-03-30T06:17:27.000Z","dependencies_parsed_at":"2023-01-22T22:30:18.186Z","dependency_job_id":"25242623-6c83-4582-a90e-95c52e4ba3d7","html_url":"https://github.com/repman-io/repman","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repman-io%2Frepman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repman-io%2Frepman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repman-io%2Frepman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repman-io%2Frepman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/repman-io","download_url":"https://codeload.github.com/repman-io/repman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248640043,"owners_count":21137962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","hacktoberfest","packagist","packagist-mirror","packagist-proxy","php","private-packagist","repository-management"],"created_at":"2024-08-01T12:01:16.078Z","updated_at":"2025-04-12T22:31:39.991Z","avatar_url":"https://github.com/repman-io.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"# Repman - PHP Repository Manager\n\n[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.4-8892BF.svg)](https://php.net/)\n[![Uptime Robot ratio (24h)](https://badgen.net/uptime-robot/day/m784813562-93c7dab381e24ccdb679c5d2)](https://stats.uptimerobot.com/QAMQli6XQM)\n[![buddy pipeline](https://app.buddy.works/repman/repman/pipelines/pipeline/244549/badge.svg?token=ac6f2fe807ba6b7ad90902f5bda1c1fb8445014757f82e1867f2cad2fd612035 \"buddy pipeline\")](https://app.buddy.works/repman/repman/pipelines/pipeline/244549)\n[![codecov](https://codecov.io/gh/repman-io/repman/branch/master/graph/badge.svg)](https://codecov.io/gh/repman-io/repman)\n[![Hits-of-Code](https://hitsofcode.com/github/repman-io/repman)](https://hitsofcode.com/view/github/repman-io/repman)\n[![Maintainability](https://api.codeclimate.com/v1/badges/23a93132c8273cabf9eb/maintainability)](https://codeclimate.com/github/repman-io/repman/maintainability)\n[![Docker Pulls](https://img.shields.io/docker/pulls/buddy/repman)](https://hub.docker.com/r/buddy/repman)\n![License](https://img.shields.io/github/license/repman-io/repman)\n\n**Repman** is a PHP repository manager. Main features:\n\n- free and open source\n- works as a proxy for **packagist.org** (speeds up your local builds)\n- hosts your private packages\n- allows to create individual access tokens\n- supports private package import from **GitHub**, **GitLab** and **Bitbucket** with one click\n- REST API\n- security scanner (with e-mail reports)\n\nDocumentation: [https://repman.io/docs/](https://repman.io/docs/)\n\n## Requirements\n\n- PHP \u003e= 7.4\n- PostgreSQL 11\n- `var` dir must be writeable\n- any web server\n\n## Installation\n\n### Docker\n\n[https://repman.io/docs/standalone/#docker-installation](https://repman.io/docs/standalone/#docker-installation)\n\n### Ansible\n\n[https://repman.io/docs/standalone/#ansible-playbooks-installation](https://repman.io/docs/standalone/#ansible-playbooks-installation)\n\n### Manual\n\n```bash\ngit clone git@github.com:repman-io/repman.git\ncd repman\ncomposer install\n```\n\nSetup database:\n```\nbin/console doctrine:migrations:migrate #for postgres\nbin/console doctrine:schema:create #for sqlite init as migrations are only postgres-compatible\nbin/console messenger:setup-transports\n```\n\n## Configuration\n\n### Mailer\n\nTo configure mailer transport, enter connection details in the `MAILER_DSN` environment variable\n\n```\nMAILER_DSN=smtp://user:pass@smtp.example.com\n```\nRead more: [transport setup](https://symfony.com/doc/current/mailer.html#transport-setup)\n\nIn addition, setup also `MAILER_SENDER` environment variable\n```\nMAILER_SENDER=mail_from@example.com\n```\n\n## Workers\n\nTo process messages asynchronously you must run worker:\n\n```bash\nbin/console messenger:consume async\n```\n\nRead more: [deploying to production](https://symfony.com/doc/current/messenger.html#deploying-to-production)\n\n## Usage\n\nNavigate your browser to instance address, you will see home page with usage instructions.\n\n## Local proxy\n\nOn dev env you may want to enable proxy to allow to create subdomains and tests composer organizations:\n\n```bash\ncomposer proxy-setup\n```\n\nThis will create `repman.wip` domain. Then you can add other domains with:\n\n```bash\nsymfony proxy:domain:attach your-organization.repman\n```\n\n### CLI commands\n\n- `bin/console repman:metadata:clear-cache` - clear packages metadata cache (json files)\n- `bin/console repman:create:admin \u003cemail\u003e [\u003cpassword\u003e]` - create a new user with admin privileges\n- `bin/console repman:create:user \u003cemail\u003e [\u003cpassword\u003e]` - create a new (normal) user\n- `bin/console repman:proxy:sync-releases` - sync proxy releases with packagist.org\n- `bin/console repman:security:scan-all` - scan all synchronized packages\n- `bin/console repman:security:update-db` - update security advisories database, scan all packages if updated\n- `bin/console repman:package:synchronize \u003cpackageId\u003e` - synchronize given package\n- `bin/console repman:package:clear-old-dists` - clear old private dev distributions files\n\n## API Integration\n\nCallbacks:\n\n- `/auth/{provider}/check`\n- `/register/{provider}/check`\n- `/user/token/{provider}/check`\n\n### GitHub\n\nScopes:\n\n- registration: `user:email`\n- repositories: `read:org`, `repo`\n\n### GitLab\n\nScopes:\n\n- registration: `read_user`\n- repositories: `api`\n\n### Bitbucket\n\nScopes:\n\n- registration: `email`\n- repositories: `repository`, `webhook`\n\n## Self-hosted GitLab\n\nTo integrate with self-hosted GitLab, enter the instance url in the `APP_GITLAB_API_URL` environment variable\n```\nAPP_GITLAB_API_URL='https://gitlab.organization.lan'\n```\n\n## Docker\n\n- Override with `docker-compose.override.yml` if needed.\n- Set your domain (`APP_HOST`) in `.env.docker`.\n\nIf you wish to use your own certificate put key and certificate in:\n\n- `docker/nginx/ssl/private/server.key`\n- `docker/nginx/ssl/certs/server.crt`\n\nOtherwise self-sign certificate will be generated.\n\nTo start all containers run:\n\n```bash\ndocker-compose up\n```\n\n## Support\n\nIn case of any problems, you can use:\n\n - Our documentation: [repman.io/docs](https://repman.io/docs/) - it is also open sourced [github.com/repman-io/repman-docs-pages](https://github.com/repman-io/repman-docs-pages)\n - GitHub issue list: [github.com/repman-io/repman/issues](https://github.com/repman-io/repman/issues) - feel free to create a new issue there\n - E-mail: contact [at] repman.io\n\n## License\n\nThe Repman project is licensed under the terms of the [MIT](LICENSE).\n\nHowever, Repman includes several third-party Open-Source libraries, which are licensed under their own respective Open-Source licenses.\n\n#### Libraries or projects directly included in Repman\n\n - Tabler:  [MIT](https://github.com/tabler/tabler/blob/master/LICENSE)\n - Feather: [MIT](https://github.com/feathericons/feather/blob/master/LICENSE)\n - Lucide: License: [ISC](https://github.com/lucide-icons/lucide/blob/master/LICENSE)\n - Postmark Transactional Email Templates: [MIT](https://github.com/wildbit/postmark-templates/blob/master/LICENSE)\n - Libraries dynamically referenced via Composer: run `composer license` to get the latest licensing info about all dependencies.\n\n---\n\nmade with ❤️ by [Buddy](https://buddy.works)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepman-io%2Frepman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frepman-io%2Frepman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepman-io%2Frepman/lists"}