Repman - PHP Repository Manager: packagist proxy and host for private packages

Overview

Repman - PHP Repository Manager

Minimum PHP Version Uptime Robot ratio (24h) buddy pipeline codecov Hits-of-Code Maintainability Docker Pulls License

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
  • REST API
  • security scanner (with e-mail reports)

Documentation: https://repman.io/docs/

Requirements

  • PHP >= 7.4
  • PostgreSQL 11
  • var dir must be writeable
  • any web server

Installation

Docker

https://repman.io/docs/standalone/#docker-installation

Ansible

https://repman.io/docs/standalone/#ansible-playbooks-installation

Manual

git clone [email protected]:repman-io/repman.git
cd repman
composer install

Setup database:

bin/console doctrine:migrations:migrate #for postgres
bin/console doctrine:schema:create #for sqlite init as migrations are only postgres-compatible
bin/console messenger:setup-transports

Configuration

Mailer

To configure mailer transport, enter connection details in the MAILER_DSN environment variable

MAILER_DSN=smtp://user:[email protected]

Read more: transport setup

In addition, setup also MAILER_SENDER environment variable

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)
  • bin/console repman:create:admin [] - create a new user with admin privileges
  • bin/console repman:create:user [] - create a new (normal) user
  • bin/console repman:proxy:sync-releases - sync proxy releases with packagist.org
  • bin/console repman:security:scan-all - scan all synchronized packages
  • bin/console repman:security:update-db - update security advisories database, scan all packages if updated
  • bin/console repman:package:synchronize - synchronize given package
  • bin/console repman:package:clear-old-dists - clear old private dev distributions 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

Support

In case of any problems, you can use:

License

The Repman project is licensed under the terms of the MIT.

However, Repman includes several third-party Open-Source libraries, which are licensed under their own respective Open-Source licenses.

Libraries or projects directly included in Repman

  • Tabler: MIT
  • Feather: MIT
  • Lucide: License: ISC
  • Postmark Transactional Email Templates: MIT
  • Libraries dynamically referenced via Composer: run composer license to get the latest licensing info about all dependencies.

made with ❤️ by Buddy

Comments
  • Adding support for S3-compatible Storage for Repository part

    Adding support for S3-compatible Storage for Repository part

    This PR is related to issue #228. I tried to keep it simple and contained, but there were too many places where it the local filesystem was taken as a guarantee. So there was a lot of refactoring involved.

    I tried to follow the conventions you used in the code, but if I failed to respect some convention please let me know and I will fix it.

    Apart from the strong test suite of yours, I also tested the application inside a private hosted server with the ansible setup and it worked well for both the local and for the new S3 storage. The only problem that I could find is when migrating from local to S3, but I think in a later PR someone (or me) can provide a proper command to migrate files from local to S3 storage.

    Once again, if you see any problems on the PR, let me know and I will fix in a manageable time, I spend almost a month working on this, so I would like to see it merged :smile_cat: .

    Thanks for the awesome tool you guys are providing for the community.

    opened by pedro-stanaka 22
  • preg_match expects parameter 2 to be string, null given

    preg_match expects parameter 2 to be string, null given

    Greetings, May I as for support regarding this error in repman.io ?

    Error: preg_match() expects parameter 2 to be string, null given
    Logs:
    Reading composer.json of module/module-example-pricing (1.0.9)
    Importing tag 1.0.9 (1.0.9.0)
    Reading composer.json of module/module-example-pricing (1.0.8)
    Importing tag 1.0.8 (1.0.8.0)
    Reading composer.json of module/module-example-pricing  (1.0.7)
    Importing tag 1.0.7 (1.0.7.0)
    Reading composer.json of module/module-example-pricing  (1.0.6)
    Importing tag 1.0.6 (1.0.6.0)
    Reading composer.json of module/module-example-pricing  (1.0.5)
    Importing tag 1.0.5 (1.0.5.0)
    Reading composer.json of module/module-example-pricing  (1.0.4)
    Importing tag 1.0.4 (1.0.4.0)
    Reading composer.json of module/module-example-pricing  (1.0.3)
    Importing tag 1.0.3 (1.0.3.0)
    Reading composer.json of module/module-example-pricing  (1.0.2)
    Importing tag 1.0.2 (1.0.2.0)
    Reading composer.json of module/module-example-pricing  (1.0.1)
    Importing tag 1.0.1 (1.0.1.0)
    Reading composer.json of module/module-example-pricing  (1.0.0)
    Importing tag 1.0.0 (1.0.0.0)
    Reading composer.json of module/module-example-pricing  (master)
    Importing branch master (dev-master)
    

    https://imgur.com/a/5e4e1pZ

    bug 
    opened by pawel-detka 20
  • Add support for showing all package versions. Refs #175.

    Add support for showing all package versions. Refs #175.

    In #175 there was a request to show the package versions. Since that is also a very useful feature for us, I have added this functionality.

    Some notes / remarks:

    • I added a package details page so one can view the versions here. We could later possibly add more here (like the readme). I made anonymous organization users have access to it.
    • You can get to the details page both using the dropdown menu as well as clicking the package name.
    • Does showing the clipboard button make sense? For dev-* versions this is what you want but for other versions you might want to add ^ or ~ in front of it. Maybe only let one copy the version itself as well as a separate button to copy the package name?
    • I'm not sure if my logic in the Package and Version entity make sense?
    • Perhaps we should add a stable boolean to version so we can show the dev-* versions in a separate table?
    • I modified some tests to also test if we have the correct versions, but I'm not sure how/if we should test the reference as well? We could do it for the artifact case, since these ZIP's should have versions. For the local path one we can't assume anything since it uses local git info.

    Some screenshots: image image

    enhancement 
    opened by nickygerritsen 15
  • custom gitlab still no syncing

    custom gitlab still no syncing

    #158 followup ...

    the first entry is https://username:token , worked , custom gitlab entries get stuck ( and yes bin/console messenger:consume async is running )

    stuck

    Logs:

    {"time":"2020-05-19T19:23:34.667Z","severity":"INFO","duration":234.94,"db":21.03,"view":213.91,"status":200,"method":"GET","path":"/api/v4/projects","params":[{"key":"simple","value":"true"},{"key":"order_by","value":"last_activity_at"},{"key":"owned","value":"true"}],"host":"somegitlab.tld","remote_ip":"0.0.0.0, 0.0.0.0","ua":"php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)","route":"/api/:version/projects","user_id":23,"username":"someuser","queue_duration":21.02,"gitaly_calls":1,"gitaly_duration":4.54,"correlation_id":"U7pPs8VDRH5"}
    {"time":"2020-05-19T19:23:34.853Z","severity":"INFO","duration":149.55,"db":12.67,"view":136.88000000000002,"status":200,"method":"GET","path":"/api/v4/projects","params":[{"key":"membership","value":"false"},{"key":"order_by","value":"last_activity_at"},{"key":"owned","value":"true"},{"key":"page","value":"2"},{"key":"per_page","value":"20"},{"key":"simple","value":"true"},{"key":"sort","value":"desc"},{"key":"starred","value":"false"},{"key":"statistics","value":"false"},{"key":"with_custom_attributes","value":"false"},{"key":"with_issues_enabled","value":"false"},{"key":"with_merge_requests_enabled","value":"false"}],"host":"somegitlab.tld","remote_ip":"0.0.0.0, 0.0.0.0","ua":"php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)","route":"/api/:version/projects","user_id":23,"username":"someuser","queue_duration":23.96,"gitaly_calls":2,"gitaly_duration":12.32,"correlation_id":"ppcecS9JOB3"}
    Started GET "/api/v4/projects?simple=true&order_by=last_activity_at&owned=true" for 0.0.0.0 at 2020-05-19 21:23:34 +0200
    Started GET "/api/v4/projects?membership=false&order_by=last_activity_at&owned=true&page=2&per_page=20&simple=true&sort=desc&starred=false&statistics=false&with_custom_attributes=false&with_issues_enabled=false&with_merge_requests_enabled=false" for 0.0.0.0 at 2020-05-19 21:23:34 +0200
    Started GET "/api/v4/projects?simple=true&order_by=last_activity_at&membership=true" for 0.0.0.0 at 2020-05-19 21:23:34 +0200
    0.0.0.0 - - [19/May/2020:21:23:34 +0200] "GET /api/v4/projects?simple=true&order_by=last_activity_at&owned=true HTTP/2.0" 200 2347 "" "php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)"
    0.0.0.0 - - [19/May/2020:21:23:34 +0200] "GET /api/v4/projects?membership=false&order_by=last_activity_at&owned=true&page=2&per_page=20&simple=true&sort=desc&starred=false&statistics=false&with_custom_attributes=false&with_issues_enabled=false&with_merge_requests_enabled=false HTTP/2.0" 200 1786 "" "php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)"
    {"time":"2020-05-19T19:23:35.043Z","severity":"INFO","duration":167.44,"db":12.04,"view":155.4,"status":200,"method":"GET","path":"/api/v4/projects","params":[{"key":"simple","value":"true"},{"key":"order_by","value":"last_activity_at"},{"key":"membership","value":"true"}],"host":"somegitlab.tld","remote_ip":"0.0.0.0, 0.0.0.0","ua":"php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)","route":"/api/:version/projects","user_id":23,"username":"someuser","queue_duration":13.93,"gitaly_calls":1,"gitaly_duration":4.41,"correlation_id":"d4nM4bsioW2"}
    {"time":"2020-05-19T19:23:35.476Z","severity":"INFO","duration":398.42,"db":10.77,"view":387.65000000000003,"status":200,"method":"GET","path":"/api/v4/projects","params":[{"key":"membership","value":"true"},{"key":"order_by","value":"last_activity_at"},{"key":"owned","value":"false"},{"key":"page","value":"2"},{"key":"per_page","value":"20"},{"key":"simple","value":"true"},{"key":"sort","value":"desc"},{"key":"starred","value":"false"},{"key":"statistics","value":"false"},{"key":"with_custom_attributes","value":"false"},{"key":"with_issues_enabled","value":"false"},{"key":"with_merge_requests_enabled","value":"false"}],"host":"somegitlab.tld","remote_ip":"0.0.0.0, 0.0.0.0","ua":"php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)","route":"/api/:version/projects","user_id":23,"username":"someuser","queue_duration":26.82,"gitaly_calls":2,"gitaly_duration":10.08,"correlation_id":"Bm2ICu7Fht7"}
    Started GET "/api/v4/projects?membership=true&order_by=last_activity_at&owned=false&page=2&per_page=20&simple=true&sort=desc&starred=false&statistics=false&with_custom_attributes=false&with_issues_enabled=false&with_merge_requests_enabled=false" for 0.0.0.0 at 2020-05-19 21:23:35 +0200
    0.0.0.0 - - [19/May/2020:21:23:35 +0200] "GET /api/v4/projects?simple=true&order_by=last_activity_at&membership=true HTTP/2.0" 200 2630 "" "php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)"
    0.0.0.0 - - [19/May/2020:21:23:35 +0200] "GET /api/v4/projects?membership=true&order_by=last_activity_at&owned=false&page=2&per_page=20&simple=true&sort=desc&starred=false&statistics=false&with_custom_attributes=false&with_issues_enabled=false&with_merge_requests_enabled=false HTTP/2.0" 200 2304 "" "php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)"
    {"time":"2020-05-19T19:23:36.869Z","severity":"INFO","duration":16.15,"db":3.11,"view":13.04,"status":200,"method":"GET","path":"/api/v4/projects/162/hooks","params":[],"host":"somegitlab.tld","remote_ip":"0.0.0.0, 0.0.0.0","ua":"php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)","route":"/api/:version/projects/:id/hooks","user_id":23,"username":"someuser","queue_duration":12.03,"correlation_id":"juHkkUtLjS8"}
    {"time":"2020-05-19T19:23:36.936Z","severity":"INFO","duration":32.77,"db":5.28,"view":27.490000000000002,"status":201,"method":"POST","path":"/api/v4/projects/162/hooks","params":[{"key":"push_events","value":"1"},{"key":"tag_push_events","value":"1"},{"key":"url","value":"https://repman.some.where.else/hook/82d60d69-edb7-434b-8f35-d60fb5326e85"}],"host":"somegitlab.tld","remote_ip":"0.0.0.0, 0.0.0.0","ua":"php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)","route":"/api/:version/projects/:id/hooks","user_id":23,"username":"someuser","queue_duration":13.79,"correlation_id":"g7KNez7wdk3"}
    Started GET "/api/v4/projects/162/hooks" for 0.0.0.0 at 2020-05-19 21:23:36 +0200
    Started POST "/api/v4/projects/162/hooks" for 0.0.0.0 at 2020-05-19 21:23:36 +0200
    0.0.0.0 - - [19/May/2020:21:23:36 +0200] "GET /api/v4/projects/162/hooks HTTP/2.0" 200 2 "" "php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)"
    0.0.0.0 - - [19/May/2020:21:23:36 +0200] "POST /api/v4/projects/162/hooks HTTP/2.0" 201 492 "" "php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)"
    
    
    question 
    opened by bash-stack 15
  • Package synchronization stuck

    Package synchronization stuck

    Hi !

    I've added a package from a repository where Repman do not have access, and the sync is stuck, and there is no way to delete the package.

    image

    Have a good day, Samuel

    bug 
    opened by sadortun 13
  • Enterprise implemenation

    Enterprise implemenation

    Hi, thanks guys for a good app.

    I am playing with your app and planning to implement it in our Development Flow.

    We have multiple teams, which should be fully isolated from each other, except a few shared packages. We also have a vendor, which has multiple private packages, which should be shared for everyone authenticated.

    Every developer has a personal OpenLDAP account, but we use OpenID Connect to authenticate (SSO).
    At the bottom there is my list of things I need to have to launch in production., can do you have any plans to add such a feature?

    1. I can split teams as a different organizations in the current situation. Can a user be in multiple organization/teams? We need this.
    2. LDAP Users
    3. OpenID Connect
    4. Sync vendor private repository
    5. Disable LDAP Auth ( It can be useful to prevent using LDAP credentials through the web UI when an alternative such as OpenID Connect is preferred. This allows LDAP to be used for group sync, while also allowing your OpenID Connect identity provider to handle additional checks like custom 2FA. and protects from auth by deleted user.
    6. Does it sync dev branches?
    7. org.repo.repo.corp.xxx.xxx - it is a very long domain name. Can we use folders per organisation? Can repo domain prefix be configured?
    8. Sync support of a hosted bitbucket?
    question 
    opened by luckyraul 12
  • Package View Improvements

    Package View Improvements

    • [x] A copy button for the package name (makes installation much easier)
    • [x] Ability to view the README for a package
    • [x] List of available releases
    • [ ] List of dependencies

    Mimics our commonly used features from satis/packagist

    enhancement 
    opened by giggsey 12
  • GitLab package list limited to 40

    GitLab package list limited to 40

    I've got access to a lot more than 40 repos in GitLab, but only 40 appear in the packages list when trying to add a new package. I assume this is because of an issue with the pagination in the GitLab API, but because there's no way to manually add a repo, I'm unable to add any repos that don't appear in those 40.

    bug 
    opened by iainfogg 12
  • Dependency/dependant tracking

    Dependency/dependant tracking

    Show package dependencies in detail view, linking to other packages known in the same organisation.

    image

    Allow searching for other packages that depend on this package (count is shown on the details view):

    image

    Fixes #175

    opened by giggsey 11
  • Checksum verification failed, 404

    Checksum verification failed, 404

    composer install fails due to errors with packages hosted on repman.io. The log shows the following:

      - Installing messengerpeople/specification-database (v1.1.1): Downloading
     Failed, trying the next URL (404: The "https://ourhandle.repo.repman.io/dists/ourhandle/packagename/1.1.1.0/a8b7d5c6d095fb50e07fc5e420f45164513902ca.tar" file could not be downloaded (HTTP/1.1 404 Not Found))Downloading    Failed to download ourhandle/packagename from dist: The "https://api.github.com/repos/ourhandle/packagename/zipball/a8b7d5c6d095fb50e07fc5e420f45164513902ca" file could not be downloaded (HTTP/1.1 404 Not Found)
    

    This is probably similar to #84, but our versions never contain slashes but look like v1.2.3 instead. It's also similar to #67, but the error does occur for the repman.io sources too, not only for GitHub.
    As @akondas pointed out in #67, we do have checksums in the lock file, but composer seems to insert it automatically.

    As we have multiple engineers working together, I suspect one of them has an older composer version that causes the "broken" lockfile. Specifically, the last one who committed a lockfile change in one of our projects had 1.8.0 installed. His lockfile looked like this:

    {
        "name": "ourhandle/packagename",
        "version": "v1.1.1",
        "source": {
            "type": "git",
            "url": "[email protected]:ourhandle/packagename.git",
            "reference": "a8b7d5c6d095fb50e07fc5e420f45164513902ca"
        },
        "dist": {
            "type": "tar",
            "url": "https://api.github.com/repos/ourhandle/packagename/zipball/a8b7d5c6d095fb50e07fc5e420f45164513902ca",
            "reference": "a8b7d5c6d095fb50e07fc5e420f45164513902ca",
            "shasum": "e098ed99b0e445508105b9256d15baf648c9b907",
            "mirrors": [
                {
                    "url": "https://ourhandle.repo.repman.io/dists/%package%/%version%/%reference%.%type%",
                    "preferred": true
                }
            ]
        },
    

    Executing composer install with this file causes the installation to fail due to the above mentioned error. If I do composer update however, the lockfile is updated to the following:

    {
        "name": "ourhandle/packagename",
        "version": "v1.1.1",
        "source": {
            "type": "git",
            "url": "[email protected]:ourhandle/packagename.git",
            "reference": "a8b7d5c6d095fb50e07fc5e420f45164513902ca"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/ourhandle/packagename/zipball/a8b7d5c6d095fb50e07fc5e420f45164513902ca",
            "reference": "a8b7d5c6d095fb50e07fc5e420f45164513902ca",
            "shasum": "",
            "mirrors": [
                {
                    "url": "https://ourhandle.repo.repman.io/dists/%package%/%version%/%reference%.%type%",
                    "preferred": true
                }
            ]
        },
    

    Diff being the dist.type being zip instead of tar and dist.shasum being empty in the working configuration.


    Sorry for the long issue. So the actual question is - was there any known change in checksum handling in newer composer versions? And by extension, is repman.io incompatible with older versions? That would be an interesting requirement to show in the Readme.

    bug 
    opened by Radiergummi 11
  • API not working?

    API not working?

    Hi guys

    I've been trying to add packages via the API. Authentication works and and the POST request goes through, but in the Repman UI it shows the following error:

    SYNCHRONISATION ERROR
    Error: Failed to execute git clone --mirror '[email protected]:my/repo.git' '/home/repman/.composer/cache/vcs/git-gitlab.com-my-repo.git/'
    
    Cloning into bare repository '/home/repman/.composer/cache/vcs/git-gitlab.com-my-repo.git'...
    Host key verification failed.
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    
    Logs:
    Failed to clone the [email protected]:my/repo.git repository, try running in interactive mode so that you can enter your credentials
    
    

    However, when I try and add the package manually (via the UI) everything works. So I'm assuming it's some kind of bug with the API?

    Cheers

    bug 
    opened by binaryfire 10
  • How to restict package by customer?

    How to restict package by customer?

    Hello,

    we are selling modules from our website

    now we are trying to support the install module using the composer

    I have a question about that : customer x buy package y, so i want to give access only y package for customer X

    i don't want to give another package access

    I checked your api document but i did not find any API for same, can you please help us on that?

    opened by sunilit42 0
  • Internal Server Error

    Internal Server Error

    Hello,

    I've tried to install repman now for a few hours in our docker environment and I gave up.

    There are several issues with the permissions. The application in the initial setup doesn't work,. Giving all folders the full permissions gets the app to work (since I don't get any log entries I don't know what the issue is).

    Reproducing:

    • git clone https://github.com/repman-io/repman.git (f25582a9327d0b8781afac16540d7aadaa8f194c)
    • cd repman
    • docker-compose up -d
    • browse url: https://x.x.x.x -- 500 Internal Server Error

    Docker Version: Docker version 20.10.22, build 3a2c30b

    Kind regards Philip

    opened by philip1337 3
  • Error 500 when try to invite a member to organization - Self Hosted

    Error 500 when try to invite a member to organization - Self Hosted

    Hello. I deployed my self-hosted repman yesterday and I am starting to use.

    I am trying to invite a member to my organization, but I am getting a 500 error on POST function.

    repman_access.log: 10.0.142.25 - - [28/Oct/2022:19:18:34 +0000] "POST /organization/xxxxxxxx/member/invite HTTP/1.1" 500 5343 "https://xxxxxx.com.br/organization/xxxxxxxxx/member/invite" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0" "177.92.89.182" 0.352

    Prod.log: [2022-10-28T19:18:34.068853+00:00] request.INFO: Matched route "organization_invite_member". {"route":"organization_invite_member","route_parameters":{"_route":"organization_invite_member","_controller":"Buddy\\Repman\\Controller\\Organization\\MembersController::invite","organization":"xxxxxxxx"},"request_uri":"https://xxxxxxxxxx.com.br/organization/xxxxxxxxxxx/member/invite","method":"POST"} [] [2022-10-28T19:18:34.087226+00:00] security.DEBUG: Read existing security token from the session. {"key":"_security_main","token_class":"Symfony\\Component\\Security\\Guard\\Token\\PostAuthenticationGuardToken"} [] [2022-10-28T19:18:34.129149+00:00] security.DEBUG: User was reloaded from a user provider. {"provider":"Buddy\\Repman\\Security\\UserProvider","username":"[email protected]"} [] [2022-10-28T19:18:34.129181+00:00] security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"main","authenticators":5} [] [2022-10-28T19:18:34.129191+00:00] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\LoginFormAuthenticator"} [] [2022-10-28T19:18:34.129201+00:00] security.DEBUG: Guard authenticator does not support the request. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\LoginFormAuthenticator"} [] [2022-10-28T19:18:34.144075+00:00] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\GitHubAuthenticator"} [] [2022-10-28T19:18:34.144092+00:00] security.DEBUG: Guard authenticator does not support the request. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\GitHubAuthenticator"} [] [2022-10-28T19:18:34.144248+00:00] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\GitLabAuthenticator"} [] [2022-10-28T19:18:34.144254+00:00] security.DEBUG: Guard authenticator does not support the request. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\GitLabAuthenticator"} [] [2022-10-28T19:18:34.146141+00:00] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\BitbucketAuthenticator"} [] [2022-10-28T19:18:34.146157+00:00] security.DEBUG: Guard authenticator does not support the request. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\BitbucketAuthenticator"} [] [2022-10-28T19:18:34.153410+00:00] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\BuddyAuthenticator"} [] [2022-10-28T19:18:34.153429+00:00] security.DEBUG: Guard authenticator does not support the request. {"firewall_key":"main","authenticator":"Buddy\\Repman\\Security\\BuddyAuthenticator"} [] [2022-10-28T19:18:34.223658+00:00] php.INFO: User Deprecated: Since symfony/http-foundation 5.3: "Symfony\Component\HttpFoundation\RequestStack::getMasterRequest()" is deprecated, use "getMainRequest()" instead. {"exception":"[object] (ErrorException(code: 0): User Deprecated: Since symfony/http-foundation 5.3: \"Symfony\\Component\\HttpFoundation\\RequestStack::getMasterRequest()\" is deprecated, use \"getMainRequest()\" instead. at /app/vendor/symfony/http-foundation/RequestStack.php:92)"} [] [2022-10-28T19:18:34.310722+00:00] app.DEBUG: Email transport "Symfony\Component\Mailer\Transport\Smtp\SmtpTransport" starting [] [] [2022-10-28T19:18:34.332182+00:00] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Messenger\Exception\HandlerFailedException: "Connection could not be established with host "mailhog:1025": stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name does not resolve" at /app/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php line 42 {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\HandlerFailedException(code: 0): Connection could not be established with host \"mailhog:1025\": stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name does not resolve at /app/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php:42)\n[previous exception] [object] (Symfony\\Component\\Messenger\\Exception\\HandlerFailedException(code: 0): Connection could not be established with host \"mailhog:1025\": stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name does not resolve at /app/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php:42)\n[previous exception] [object] (Symfony\\Component\\Mailer\\Exception\\TransportException(code: 0): Connection could not be established with host \"mailhog:1025\": stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name does not resolve at /app/vendor/symfony/mailer/Transport/Smtp/Stream/SocketStream.php:139)"} [] [2022-10-28T19:18:34.340752+00:00] php.INFO: User Deprecated: Since symfony/http-foundation 5.3: "Symfony\Component\HttpFoundation\RequestStack::getMasterRequest()" is deprecated, use "getMainRequest()" instead. {"exception":"[object] (ErrorException(code: 0): User Deprecated: Since symfony/http-foundation 5.3: \"Symfony\\Component\\HttpFoundation\\RequestStack::getMasterRequest()\" is deprecated, use \"getMainRequest()\" instead. at /app/vendor/symfony/http-foundation/RequestStack.php:92)"} [] Screenshot from 2022-10-28 16-16-19 Screenshot from 2022-10-28 16-15-51

    Someone can help?

    Thanks!

    opened by andrerkn 0
  • Bump symfony/validator from 5.4.2 to 5.4.13

    Bump symfony/validator from 5.4.2 to 5.4.13

    Bumps symfony/validator from 5.4.2 to 5.4.13.

    Release notes

    Sourced from symfony/validator's releases.

    v5.4.13

    Changelog (https://github.com/symfony/validator/compare/v5.4.12...v5.4.13)

    • bug #47499 Stop to first ULID format violation (ogizanagi)

    v5.4.12

    Changelog (https://github.com/symfony/validator/compare/v5.4.11...v5.4.12)

    • bug #47211 validate nested constraints only if they are in the same group (xabbuh)
    • bug #47189 Add additional hint when egulias/email-validator needs to be installed (mpdude)

    v5.4.11

    Changelog (https://github.com/symfony/validator/compare/v5.4.10...v5.4.11)

    • bug #46948 : Fix "PHP Warning: Undefined array key 1" in NotCompromisedPasswordValidator (KevinVanSonsbeek)
    • bug #46244 Fix traverse option on Valid constraint when used as Attribute (tobias-93)

    v5.4.10

    Changelog (https://github.com/symfony/validator/compare/v5.4.9...v5.4.10)

    • bug #46545 Fix getting class constraints on debug command (loic425)

    v5.4.8

    Changelog (https://github.com/symfony/validator/compare/v5.4.7...v5.4.8)

    • no significant changes

    v5.4.7

    Changelog (https://github.com/symfony/validator/compare/v5.4.6...v5.4.7)

    v5.4.6

    Changelog (https://github.com/symfony/validator/compare/v5.4.5...v5.4.6)

    • no significant changes

    v5.4.5

    Changelog (https://github.com/symfony/validator/compare/v5.4.4...v5.4.5)

    • bug #44967 Multi decimal to alpha for CssColor validator (tilimac)
    • bug #45204 Fix minRatio and maxRatio when getting rounded (alexander-schranz)
    • bug #42458 Fix AssertingContextualValidator not throwing on remaining expectations (fancyweb)

    v5.4.3

    Changelog (https://github.com/symfony/validator/compare/v5.4.2...v5.4.3)

    • bug #44860 Fix Choice constraint with associative choices array (derrabus)
    • bug #44877 Error using CssColor with doctrine annotations (sormes)

    ... (truncated)

    Commits
    • 8fba40e Merge branch '4.4' into 5.4
    • 51d06a0 [Validator] [Security] Add Norwegian translations
    • 9d9fe46 [Validator][UID] Stop to first ULID format violation
    • f357340 Merge branch '4.4' into 5.4
    • df59e77 Fix checking result of DateTime::getLastErrors
    • 38bc4d8 add missing changelog entry for the AtLeastOneOf constraint
    • 27773a4 validate nested constraints only if they are in the same group
    • 83739c9 Merge branch '4.4' into 5.4
    • 06db9bf [Validator] Hint that egulias/email-validator needs to be installed for str...
    • d645703 Fix CS
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Issues validating credentials using API

    Issues validating credentials using API

    Any request i make against the API be it through curl or postman (adding X-API-TOKEN to header) returns invalid credentials.

    Even using the preconfigured requests at https://repman.io/docs/api/ Still returns: image

    I am authorising with a correct API token which exists for my organisation, So unsure why it's being denied.

    "Allow anonymous users" is disabled.

    opened by itsbreadd 0
  • Fix no stable release sorting bug

    Fix no stable release sorting bug

    This fixes the issue in #562 where if the first fetched package is not stable, then no stable release can be determined because the version comparison will fail with Comparator::greaterThan.

    opened by marickvantuil 1
Releases(1.4.0)
  • 1.4.0(Jan 9, 2022)

    What's Changed

    • Feature: Allow custom S3 endpoint by @xvilo in https://github.com/repman-io/repman/pull/534
    • Feature: Synchronise all packages command by @xvilo in https://github.com/repman-io/repman/pull/536
    • Update symfony from 5.3 to 5.4 by @xvilo in https://github.com/repman-io/repman/pull/543
    • Make AWS auth credentials optional by @xvilo in https://github.com/repman-io/repman/pull/539
    • Ugrade phpstan to ^1.3 by @alamirault in https://github.com/repman-io/repman/pull/531

    New Contributors

    • @xvilo made their first contribution in https://github.com/repman-io/repman/pull/534
    • @alamirault made their first contribution in https://github.com/repman-io/repman/pull/531

    Full Changelog: https://github.com/repman-io/repman/compare/1.3.6...1.4.0

    Source code(tar.gz)
    Source code(zip)
  • 1.3.6(Nov 29, 2021)

    Security

    • Fix CVE-2021-41267: Webcache Poisoning via X-Forwarded-Prefix and sub-request symfony/security-bundle (v5.3.4)
    • Fix CVE-2021-41268: Remember me cookie persistance after password changes

    What's Changed

    • Upgrade symfony to 5.3.12 by @akondas in https://github.com/repman-io/repman/pull/524
    • Upgrade all dependencies by @akondas in https://github.com/repman-io/repman/pull/526

    Full Changelog: https://github.com/repman-io/repman/compare/1.3.5...1.3.6

    Source code(tar.gz)
    Source code(zip)
  • 1.3.5(Nov 8, 2021)

    What's Changed

    • Allow to configure proxy secret for origin protection by @akondas in https://github.com/repman-io/repman/pull/493
    • Upgrade Symfony to 5.3 by @akondas in https://github.com/repman-io/repman/pull/483
    • Bump phpunit/phpunit from 9.5.4 to 9.5.8 by @dependabot in https://github.com/repman-io/repman/pull/497
    • Bump fakerphp/faker from 1.14.1 to 1.15.0 by @dependabot in https://github.com/repman-io/repman/pull/499
    • Bump friendsofphp/php-cs-fixer from 2.19.0 to 2.19.1 by @dependabot in https://github.com/repman-io/repman/pull/500
    • Bump ramsey/uuid-doctrine from 1.6.0 to 1.7.0 by @dependabot in https://github.com/repman-io/repman/pull/501
    • Bump phpstan/phpstan-symfony from 0.12.41 to 0.12.42 by @dependabot in https://github.com/repman-io/repman/pull/502
    • Bump doctrine/orm from 2.9.1 to 2.9.4 by @dependabot in https://github.com/repman-io/repman/pull/504
    • fix: Explicitly cast to boolean by @eFrane in https://github.com/repman-io/repman/pull/503
    • Bump ekino/phpstan-banned-code from 0.3.1 to 0.5.0 by @dependabot in https://github.com/repman-io/repman/pull/506
    • Bump friendsofphp/php-cs-fixer from 2.19.1 to 2.19.2 by @dependabot in https://github.com/repman-io/repman/pull/507
    • Remove unbound version constraints from composer.json by @akondas in https://github.com/repman-io/repman/pull/508
    • Bump phpstan/phpstan-phpunit from 0.12.21 to 0.12.22 by @dependabot in https://github.com/repman-io/repman/pull/509
    • Bump symfony/flex from 1.13.4 to 1.14.4 by @dependabot in https://github.com/repman-io/repman/pull/512
    • Remove trailing slash in nginx volume name docker-logs-nginx by @ThomasBoom89 in https://github.com/repman-io/repman/pull/520
    • Bump composer/composer from 1.10.22 to 1.10.23 by @dependabot in https://github.com/repman-io/repman/pull/518

    New Contributors

    • @eFrane made their first contribution in https://github.com/repman-io/repman/pull/503
    • @ThomasBoom89 made their first contribution in https://github.com/repman-io/repman/pull/520

    Full Changelog: https://github.com/repman-io/repman/compare/1.3.4...1.3.5

    Source code(tar.gz)
    Source code(zip)
  • 1.3.4(Jun 25, 2021)

  • 1.3.3(May 31, 2021)

    Fixed

    • Fix package dependencies duplication (#472)

    Changed

    • Remove Link entity from package read model (#473)
    • Reduce sql query executions for organization token (#474)
    • Update dependencies (dependabot updates)
    Source code(tar.gz)
    Source code(zip)
  • 1.3.2(May 20, 2021)

  • 1.3.1(May 13, 2021)

  • 1.3.0(Apr 28, 2021)

  • 1.2.2(Mar 2, 2021)

    Fixed

    • Fix: composer 9999999-dev issue (#422 thanks @slappyslap)
    • Make var/cache ephemeral (#420)
    • Add async-aws/ses to composer (#418 thanks @nandogameiro)
    • Enable http2 for composer v2 (#416)
    • Test compatibility issues and small deprecation fix (#414 thanks @pedro-stanaka)
    • Remove old metadata files when sync proxy metadata (#412)
    • Remove PostgreSQL exposed port from docker-compose.yml (#410)
    Source code(tar.gz)
    Source code(zip)
  • 1.2.1(Feb 3, 2021)

  • 1.2.0(Feb 1, 2021)

    Added

    • Support for S3-compatible storage (#332, #366 thanks @pedro-stanaka)
    • Cached adapters to reduce IO/HTTP overhead (storage) (#373 thanks @pedro-stanaka)
    • Alternative domain separator option (to simplify working with certificates) (#375 thanks @jmalinens)
    • Error messages for webhook actions (better UX) (#396)
    • Adding support for self hosted gitlab on custom port (#398 thanks @Fahl-Design )

    Changed

    • Improve organization invitation with registration/login flow (#387 thanks @noniagriconomie)
    • Refresh oauth token in runtime without failing message or redirect (#395, #397)
    • Upgrade Symfony to 5.2 (#379 and others from dependabot)
    • Upgrade Doctrine and other dependencies (gitlab-api, github-api, bitbucket-api, dev tools)
    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Dec 2, 2020)

  • 1.1.0(Oct 23, 2020)

    Added

    • Display README.md for packages (#303 thanks @giggsey)
    • Allow package list to be sortable (#300 thanks @giggsey)
    • Allow user to edit packages (#299)
    • Improve Package Details UX (#298 thanks @giggsey)
    • Implement user timezone (#297)
    • Add option to limit number of package versions being imported (#294)

    Changed

    • Repo JSON Performance Improvements (#310 thanks @giggsey)
    • Update doctrine-bundle and symfony to remove deprecation notice (#305)

    Fixed

    • Fix artifact repo security scan (#315 thanks @giggsey)
    • Ensure that latest version is not removed when limit is applied (#312)
    • Do not allow null values for number of last releases when updating (#302)
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Sep 29, 2020)

    Added

    • implement provider-includes for better proxy performance (#281, #283, #290)
    • add version for assets (#278)
    • add reCaptcha and better email validation (#276, #277)
    • REST API implementation (#269, #275)
    • add ability to search packages (#259, #263, thanks @giggsey)
    • add CODE_OF_CONDUCT.md (#258)

    Changed

    • remove mailhog from docker-compose.yml (#293)
    • Tweak sysctl for better performance (#265, #271)

    Fixed

    • Fix nginx and php-fpm to correct handle symlinks (#262)
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Sep 3, 2020)

    Added

    • implement command for clearing old private distributions files (#244)

    Security

    Changed

    • add queue for downloader to limit concurrent requests (#253)
    • bump symfony to 5.1 (#250, thanks @marmichalski )
    • atomic deployment with ansible playbook (#241, #242, #243, #245)
    • set ulimit -n for system user (#251)

    Fixed

    • fix Proxy response caching (#247, thanks @giggsey)
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Aug 4, 2020)

    Changed

    • higher memory limits (#219, #220)
    • move all proxy logic to Proxy class (#223)
    • use async and stream for downloading metadata and distributions files (#226)

    Added

    • serve static proxy metadata and use v2 endpoint for dist lookup (#222)
    • sync proxy metadata command (#224)
    • migration for better auto upgrade to 0.5.0 (#227)
    • static proxy with metadata cache (#229)
    • cache headers for packages.json (#232)
    • subversion client (#230, #231)
    • create .gitattributes for better dist export (#235)
    • telemetry (#225, #234)
    • technical email (#237)

    Fixed

    • migration syntax (#236)
    • updating version date (#238, thanks @nickygerritsen)
    Source code(tar.gz)
    Source code(zip)
  • 0.4.1(Jul 15, 2020)

  • 0.4.0(Jul 13, 2020)

    Added

    • Registration config options (#200, thanks @nickygerritsen)
    • Anonymous access to organization (#201)
    • Basic support for Composer v2 (#205)
      • proxy support for metadata-url (thanks @sadortun)
      • repo support for metadata-url
    • Package versions view (#208, thanks @nickygerritsen)

    Changed

    • Unpack and update dependencies (#204)
    • Containers restart policy (#211)
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Jun 5, 2020)

    Added

    • :bug: :rocket: Security vulnerability scanner for private packages (#170, #171, #176, #177, #182, #183, #184, #190, #197)
    • :mailbox: Sending scan results email to organization members (#194, #196)
    • Allow user to disable account registration (#152)
    • Create .htaccess (#163)
    • Add repman:create:user cli command (#181)
    • Add repman:package:synchronize cli command (#185, #186)

    Changed

    • Hide oauth providers buttons when env var not configured (#167)
    • Create user security read model - clean user domain (#188)
    • Update symfony/mailer to 5.0.9 (#195)

    Fixed

    • Fix GitLab custom instance url not being picked up by oauth client (#156)
    • Use gitlab custom url in ComposerPackageSynchronizer (#162)
    • Fix provider and dist removal (#168)
    • Write custom Gitlab URL to gitlab-domains composer option (#179)
    Source code(tar.gz)
    Source code(zip)
  • 0.2.1(May 7, 2020)

    Security

    • prevention of guessing package uuid for organization package endpoints (#148)

    Added

    • package versions stats and tweak other charts (#145, #146)

    Changed

    • Cleanup JS; Fix number of days in admin stats view; Force referrer in GA (#143, #144)
    • handle package not found exception on app level (#142)
    • tuning php-fpm configuration for better resources utilization (Ansible) (#141)
    • add curl and pdo_pgsql to required php extensions (#140)
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(May 5, 2020)

    Added

    • Organization members (#56)

    Changed

    • Lock php version to 7.4.5 (Docker) (#131)

    Fixed

    • Fix emails headers and match password requirements (#136)
    • GitLab projects fetch - Add php curl extension to asible setup playbook (#133)
    • Don't try to download packages without reference (#132)
    • Fix database foreign keys (#127)
    • Add autorestart flag to consumer configuration (Ansible supervisor) (#126)
    • Return 404 when distribution file not found (#123)
    • Add missing directories for docker instance (#117)
    Source code(tar.gz)
    Source code(zip)
  • 0.1.2(Apr 27, 2020)

    Added

    • Add ability to unlink OAuth integration from user profile page (#106)
    • Uptime Robot monitor (#102 & #103)

    Changes

    • GitLab API: Show all user's packages and order by last activity (#104)

    Fixed

    • Handle oauth errors during registration (#92)
    • Handle errors when fetching repos from provider (#94)
    • Fix last package version detection mechanism (#99)
    • Fix support for packages with slash in version name (#101)
    • Fix number of days for /admin/stats (#108)
    • Fix recent webhook requests view model (#110)
    • Allow *.php named packages to be found (#111)
    Source code(tar.gz)
    Source code(zip)
  • 0.1.1(Apr 22, 2020)

    BC break :warning:

    • user email is now change to lowercase with migration
      • if a user with the same e-mail registered in the application but with different character sizes then you will have to manually delete it before starting the migration

    Added

    • Clickable repo url link on packages list (#75)

    Changed

    • Use lock to prevent multiple jobs run simultaneously (#70)
    • Internal CI/CD configuration

    Fixed

    • Fix issue with case sensitive emails (#88)
    • Typo on register form (#74)

    Removed

    • Remove pcov from docker image (#69)
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Apr 20, 2020)

    First release :tada:

    • 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
    Source code(tar.gz)
    Source code(zip)
Owner
Repman
Repman - PHP Repository Manager with proxy and private packages
Repman
Composer plugin for Repman - PHP Repository Manager

Repman Composer Plugin Composer plugin for Repman - PHP Repository Manager. Adds a mirror url for all your dependencies without need to update compose

Repman 9 Mar 14, 2022
Private Composer registry for private PHP packages on AWS Serverless

Tug Tug is a Composer private registry for private PHP packages installable with Composer (1 and 2). The main idea of this project is to have an inter

Fxp 33 Oct 5, 2022
Composer Repository Manager for selling Magento 2 extension and offering composer installation for ordered packages.

Magento 2 Composer Repository Credits We got inspired by https://github.com/Genmato. Composer Repository for Magento 2 This extension works as a Magen

EAdesign 18 Dec 16, 2021
Packeton - Private PHP package repository for vendors

Packeton - Private PHP package repository for vendors Fork of Packagist. The Open Source alternative of Private Packagist for vendors, that based on S

Uladzimir Tsykun 225 Jan 2, 2023
Your private self hosted composer repository with user management

Devliver Your private self-hosted composer repository. Requirements Docker MariaDB/MySQL the running docker container has access to private git reposi

Nikita Loges 53 Dec 30, 2022
Initiated by me, enhanced by us, created for us. This is the fork (public) version separated from my private diary repository.

diary public repository Initiated by me, enhanced by us, created for us. This is the fork (public) version separated from my private diary repository.

Weicheng Ao 3 Jul 30, 2022
It is the latest version of private RAT called Xworm. I share this one for free, so leave the star⭐ to this repository

XWorm-RAT-cracked- It is the latest version of private RAT called Xworm. I share this one for free, so leave the star ⭐ to this repository COMPILING:

null 67 Jan 1, 2023
WordPress Packagist — manage your plugins with Composer

WordPress Packagist This is the repository for wpackagist.org which allows WordPress plugins and themes to be managed along with other dependencies us

Outlandish 648 Jan 1, 2023
Creates Packagist.org mirror site.

Packagist Mirror Creates your own packagist.org mirror site. Requirements PHP ^7.1.3 Installation Clone the repository Install dependencies: php compo

Indra Gunawan 32 Mar 30, 2020
🐋📦✂️📋📦 Docker image of packagist mirror

Docker for Packagist Mirror This project allows you to easily create and update a mirror of the packagist having as dependency only the docker. It is

Webysther Nunes 28 Jan 20, 2022
Magento 2 Email Catcher or Email Logger Module. Available At Packagist.

Magento 2 Module Experius email catcher / - logger ``experius/module-emailcatcher`` Main Functionalities Installation Versions Enable email catcher C

Experius 53 Dec 18, 2022
An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

?? RankSystem ?? An amazing Rank and Permissions Manager Description: An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-M

null 22 Nov 7, 2022
Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3+ that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI.

laravelpodcast | A Laravel podcast manager package - v0.0.8 Introduction Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3

Jeremy Kenedy 22 Nov 4, 2022
A customizable decentralized micro-blog (Twitter) and cms (Wordpress) that only you host and moderate.

Consider this --> each Miter account is individually hosted on a user's personal and private third party server (host) - either purchased or free - as

Vije Miller 3 Jun 8, 2022
Currency is a simple PHP library for current and historical currency exchange rates & crypto exchange rates. based on the free API exchangerate.host

Currency Currency is a simple PHP library for current and historical currency exchange rates & crypto exchange rates. based on the free API exchangera

Amr Shawky 19 Dec 12, 2022
Laragon MultiPHP per App + PECL Module + Extension manager + Ini Manager

LMPA Laragon MultiPHP per App This tools allow you to run multiple PHP version per app with Laragon, so you can have multiple site running different p

Gilbert Paquin 8 Oct 10, 2022
A Laravel Wrapper for the Binance API. Now easily connect and consume the Binance Public & Private API in your Laravel apps without any hassle.

This package provides a Laravel Wrapper for the Binance API and allows you to easily communicate with it. Important Note This package is in early deve

Moinuddin S. Khaja 7 Dec 7, 2022
Private groups to share messages, photos, videos, links with friends and family.

A truly private space for you and your friends What is Zusam ? Zusam (/tsuˈzam/) is a free and open-source way to self-host private forums for groups

Zusam 104 Dec 20, 2022
Starless Sky: private, secure and untraceable identity system.

Descentralized network protocol providing smart identity over an secure layer. What is the Starless Sky Protocol? Starless Sky is a network protocol f

Starless Sky Protocol 3 Jun 19, 2022