Satis composer repository manager with a Web UI

Related tags

Database satisfy
Overview

Satisfy Build Status

Satis Composer repository manager with a simple web UI.

Satis: list composer repositories Satis: add a new composer repository Satis: update an existing composer repository

Introduction

Satisfy provides:

  • a Web UI: A CRUD to manage your satis configuration file
  • a simple security layer with a login form
  • a webhook endpoints for most popular version control systems
  • Satis itself

Satisfy ease your satis configuration management. It provides simple web UI over Satis to avoid a hand-editing of the satis.json configuration file. All repositories from a composer.lock file can also be imported via upload.

How it works ?

Basically, it just reads/writes the satis.json file and provides a web CRUD.

  • On each HTTP request, the satis.json is loaded.
  • If a write occurs in this file, a backup is made in var/satis/

Installation

Composer

  • Download composer wget http://getcomposer.org/composer.phar
  • Install php composer.phar create-project playbloom/satisfy

Satis configuration

By default, the satis.json file is expected at the project root, but You can set another path under parameter satis_filename.

Application configuration

  • Customize app/config/parameters.yml according to your needs.

Security

You can restrict the access setting admin.auth parameter (in app/config/parameters.yml) to true. Set authorized users in admin.users config array.

Run Satisfy

Create a webserver pointing to the public directory. Browse to »/admin/« to manage the satis.json. To serve the package.json it is required to run Satis first.

Satis packages definition generation

Since Satisfy does only manage the Satis configuration file, it is necessary to build the package definitions using Satis.

A bin shortcut to Satis is already included in Satisfy, so run the following command to generate the files in the web folder.

./bin/satis build

Authors

License

Satisfy is licensed under the MIT License - see the LICENSE file for details

Comments
  • Uploading composer.lock and import all repositorys from it.

    Uploading composer.lock and import all repositorys from it.

    As a user of satify, i would like to upload a composer.lock file and all repos from there are added to satis.json.

    How about that idea? I would like to branch and try toimplement that feature.

    opened by h4cc 10
  • Application structure proposal

    Application structure proposal

    I was running trough te code and noticed some mix matching of different concerns, like adding HTML inside a controller and mounting a route inside the bootstrapping code. #51 removed some of it for example.

    Proposal

    Keeping maintainability in mind mix matching isn't a good practice, separating the code would make it easier to extend the application to add new features and/or maintain the application without searching for the problem for a while before being able to fix it.

    Proof of concept

    Providing some kind of example is always beter than just a wall of text, therefore I've made a head start by creating a proof of concept: kevindierkx/satisfy Please note this is an early draft, most files still should be removed or refactored.

    Further explanation about the different components are described below.

    Bootstrapping, Services and Providers

    Providers provide an easy way to register and bootstrap services, like the Twig rendering for example. There is already a custom SatisServiceProvider available providing the satis file formatting and some other stuff.

    I also would like a to provide the application routes this way. The RouteServiceProvider.php provides the routes by loading a .yml file containing the route definitions. In my opinion this is the clearest way to provide routes for this application, Silex provides a ControllerProviderInterface, but that doesn't really has an added benefit for this use-case if you ask me.

    In addition a Container service globally registering the application instance would be helpful. This provides easy access to the current application instance later on in the application's lifetime.

    Helper methods

    I don't like defining the same thing over and over again, therefore I've added a helpers.php in the bootstrap folder.

    This file utilises the Container service described in the previous paragraph and provides some methods for easy access to the different application paths. For example you can use app_path() to get the app folder path, resources_path() to get the resources folder path and app() to access the current application instance, just to name a few.

    These methods can be used anywhere in the application.

    Directory structure

    Silex doesn't really require a specific directory structure by default. This makes it super flexible for different tasks, but somewhat confusing when creating a more complex application.

    Therefore I suggest a slightly modified directory structure, making room for centralised config files and storage folders. ie. recovery points, logs and in the future file based sessions if required.

    /app
        |- Controllers
        |- Forms
        |- Models
        |- Providers
        |- Services
        |- Validators
    /bin
    /bootstrap
    /config
    /resources
    /storage
        |- logs
        |- recover
    /tests
    /web
    

    App

    The app folder is where the magic happens, here goes all the application logic that should be tested. Controllers, Forms, etc all have their own namespace making it clear where something goes and what its purpose is.

    Bin

    The bin folder contains the Satis 'proxy'. By proxying the Satis command we can add some custom exception logic making it easier to display errors to the end user. See #53 for more information about logging.

    Bootstrap

    The bootstrap folder only contains bootstrapping logic, registering providers and setting up the application session.

    Config

    The config folder contains the application config, that shouldn't be changed during runtime.

    Resources

    The resources folder contains application resources like translation files and twig templates just to name a few.

    Storage

    The storage folder contains application logs, recovery points and file based sessions/cache if required.

    Tests

    The tests folder contains test files for the application.

    Web

    The web folder is the public root directory for the webserver.

    opened by kevindierkx 9
  • No webhook route for gitlab

    No webhook route for gitlab

    Hi and thanks for this project !!

    Impossible to call the URL /webhook/gitlab because always returning a 404 not found.

    ./bin/console debug:router
     ------------------- ------------ -------- ------ ---------------------------- 
      Name                Method       Scheme   Host   Path                        
     ------------------- ------------ -------- ------ ---------------------------- 
      index               ANY          ANY      ANY    /                           
      login               ANY          ANY      ANY    /login                      
      repository          GET          ANY      ANY    /admin                      
      repository_         GET          ANY      ANY    /admin/                     
      repository_new      GET|POST     ANY      ANY    /admin/new                  
      repository_upload   GET|POST     ANY      ANY    /admin/upload               
      repository_edit     GET|POST     ANY      ANY    /admin/edit/{repository}    
      repository_delete   GET|DELETE   ANY      ANY    /admin/delete/{repository}  
      configuration       GET|POST     ANY      ANY    /admin/configuration        
      satis_build         GET          ANY      ANY    /admin/satis/build          
      satis_build_run     GET          ANY      ANY    /admin/satis/buildRun       
      webhook_bitbucket   GET|POST     ANY      ANY    /webhook/bitbucket          
      webhook_github      GET|POST     ANY      ANY    /webhook/github             
     ------------------- ------------ -------- ------ ----------------------------
    
    No route listed for gitlab webhook.
    THanks
    
    bug 
    opened by ypereirareis 6
  • PlaybloomSatisfyBundle::_form.html.twig

    PlaybloomSatisfyBundle::_form.html.twig

    ( ! ) Twig_Error_Loader: Unable to find template "PlaybloomSatisfyBundle::_form.html.twig" (looked into: /data/satis/satisfy/app/Resources/views, /data/satis/satisfy/vendor/symfony/twig-bridge/Resources/views/Form). in /data/satis/satisfy/vendor/twig/twig/lib/Twig/Loader/Filesystem.php on line 234

    opened by cuijianguo 6
  • Need some help with using webhooks

    Need some help with using webhooks

    I'm trying to use gitlab push webhook. I've found #82, but failed to make it working for now.

    I've specified <my satisfy host>/webhook/gitlab as webhook url in gitlab repo's settings. But my Satisfy instance answers 404 to Gitlab, looks I'm wrong with url? Which it should be?

    I've installed Satisfy according to this instruction. Does it install latest version? How can I check this? I see only two controllers (Security and Repository) inside src/Playbloom/Satisfy/Controller on my server, while there are more in the repo. Is my copy outdated?

    opened by VBelozyorov 6
  • Feature/update configuration

    Feature/update configuration

    Improve project structure:

    • Change output path from web/ to public
    • Change default repository type to vcs
    • Remove github, bitbucket and gitlab entries for repository types
    • Add .sublime-project to gitignore
    • Update README with new structure information
    • Add Docker and Docker Compose installation info on README
    • Add info on README to run project with Docker
    • Update and improve docker-compose.yml
    • Add contributors entry
    opened by hedcler 6
  • Build packages button stopped to work

    Build packages button stopped to work

    Today started failing the "build packages" button. It shows the following error:

    '/path/to/satisfy/bin/satis' 'build' '/path/to/satisfy/satis.json' 'public' '--skip-errors' '--no-ansi' '--verbose'
    Scanning packages
    GitHub API limit (0 calls/hr) is exhausted, could not fetch https://api.github.com/repos/my-org/my-package. Review your configured GitHub OAuth token or enter a new one to go over the API rate limit. You can also wait until ? for the rate limit to reset.
    When working with _public_ GitHub repositories only, head to https://github.com/settings/tokens/new?scopes=&description=Composer+on+dev.ven.com+2022-10-25+1622 to retrieve a token.
    Tokens will be stored in plain text in "/path/to/satisfy/var/composer/auth.json" for future use by Composer.
    Token (hidden):
    In QuestionHelper.php line 129:
    [Symfony\Component\Console\Exception\MissingInputException]
    Aborted.
    Exception trace:
    at /path/to/satisfy/vendor/symfony/console/Helper/QuestionHelper.php:129
    Symfony\Component\Console\Helper\QuestionHelper->doAsk() at /path/to/satisfy/vendor/symfony/console/Helper/QuestionHelper.php:62
    Composer\IO\ConsoleIO->askAndHideAnswer() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/GitHub.php:104
    Composer\Util\GitHub->authorizeOAuthInteractively() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/AuthHelper.php:132
    Composer\Util\AuthHelper->promptAuthIfNeeded() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/Http/CurlDownloader.php:531
    Composer\Util\Http\CurlDownloader->isAuthenticatedRetryNeeded() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/Http/CurlDownloader.php:405
    Composer\Util\Http\CurlDownloader->tick() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/HttpDownloader.php:404
    Composer\Util\HttpDownloader->countActiveJobs() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/HttpDownloader.php:373
    Composer\Util\HttpDownloader->wait() at /path/to/satisfy/vendor/composer/composer/src/Composer/Util/HttpDownloader.php:109
    Composer\Util\HttpDownloader->get() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriver.php:172
    Composer\Repository\Vcs\VcsDriver->getContents() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php:436
    Composer\Repository\Vcs\GitHubDriver->getContents() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php:533
    Composer\Repository\Vcs\GitHubDriver->fetchRootIdentifier() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php:81
    Composer\Repository\Vcs\GitHubDriver->initialize() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/VcsRepository.php:141
    Composer\Repository\VcsRepository->getDriver() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/VcsRepository.php:198
    Composer\Repository\VcsRepository->initialize() at /path/to/satisfy/vendor/composer/composer/src/Composer/Repository/ArrayRepository.php:311
    Composer\Satis\PackageSelection\PackageSelection->getPackages() at /path/to/satisfy/vendor/composer/satis/src/PackageSelection/PackageSelection.php:667
    Composer\Satis\PackageSelection\PackageSelection->getAllLinks() at /path/to/satisfy/vendor/composer/satis/src/PackageSelection/PackageSelection.php:184
    Composer\Satis\PackageSelection\PackageSelection->select() at /path/to/satisfy/vendor/composer/satis/src/Console/Command/BuildCommand.php:193
    General error
    

    I already re-generated the token and updated it in /path/to/satisfy/var/composer/auth.json, but so far, no changes. Any thoughts?

    opened by ihor-sviziev 5
  • Bug: This value is not valid.

    Bug: This value is not valid.

    I can't save the configuration, but I haven't even changed this value!

    image

    git log

    commit 707803be30e1bdb5aa36dcb3fc91b13cccde9e37
    Author: Ram<C5><AB>nas Dronga <[email protected]>
    Date:   Sat May 25 17:54:56 2019 +0300
    
    opened by 4n70w4 5
  • Support installation-source for repository

    Support installation-source for repository

    We are not sure, if there is another way, to support installation-source for repositories. Ideally, it should always be dist, so we added the form field for the repository to overwrite the value.

    Since we had the problem, that source path was used, even though we had defined preferred-install: dist.

    If there is a better solution to always use the dist path, then this PR can also be discarded.

    opened by rabauss 5
  • Lib NOT WORKING at all !

    Lib NOT WORKING at all !

    Hello !

    I use your lib inside a Docker image https://github.com/ypereirareis/docker-satis

    Acutally, a json schema validation has been added on composer/satis (dev-master) a few days ago https://github.com/composer/satis/blob/9e8ef8e906f204d01ce468dcc123306919488ddc/src/Composer/Satis/Command/BuildCommand.php#L282

    AND

    https://github.com/composer/satis/blob/master/res/satis-schema.json

    The require entry in the JSON file should be an object not an array !

    {
      ...
      require: {}
      ...
    }
    
    [Composer\Json\JsonValidationException]                       
      The json config file does not match the expected JSON schema
    

    Please fix it, or change the dependency to previous version

    THX ! :smile:

    bug 
    opened by ypereirareis 5
  • Permission problem with satis.json

    Permission problem with satis.json

    My satis.json is in app/data/, so i just have one folder with write permissions for the webserver. The FilePersister renames the current satis.json to {TIMESTAMP}.json and creates a new satis.json.

    This leads to the problem of missing permissions on satis.json, because it is a new file created by the webserver. Editing with the system user is not possible then.

    My proposal is replacing this lines in FilePersister:

            $this->filesystem->rename($this->filename, $backupFilename);
            $this->filesystem->dumpFile($this->filename, $content, 0644);
    

    with

            $this->filesystem->copy($this->filename, $backupFilename);
            $this->filesystem->dumpFile($this->filename, $content, 0644);
    

    This way, the satis.json file will only be changed, but never recreated or moved.

    opened by h4cc 5
  • (Request) Add an abandoned checkbox

    (Request) Add an abandoned checkbox

    Satis lets you mark a package as abandoned in satis.json even if it doesn't have the mark on Github. Satisfy doesn't recognize these marks, can't edit them and will clear them from satis.json if you press the build button.

    feature request 
    opened by Oreolek 0
  • Add security options to the form: satis/admin/new

    Add security options to the form: satis/admin/new

    When we add a new repository we only can add the type and the url. It will be great to add also de option to choose the type of security, and add the path to ssh files/pem or the token.

    opened by oskarcalvo 3
  • Display satis logs in admin panel

    Display satis logs in admin panel

    Satis gives great feedback when the indexation of a repository fails, unfortunately the indexation of 'all' repositories fail when this happens.

    Appending the output of the Satis build job to any kind of log file makes debugging these kind of errors allot easier, but it still requires you to SSH onto the server where Satis is running to look into the logs. I'm running a cron every minute to keep things up to date, therefore I don't directly see the Satis output when something goes wrong.

    My suggestion is to keep logs by default for all kind of application errors and secondly make them visible in the management interface. ie. something like control-center/serviced does utilising Elasticsearch and Kibana.

    I don't think we need a full stack Elasticsearch environment to keep logs, Satis doesn't report that much. A simple rotating file setup and some kind of frontend parser would suffice. (Maybe something like kassner/log-parser?)

    I'm open for suggestions!

    EDIT: This would partially depend on #54.

    feature request 
    opened by kevindierkx 1
  • What shall we do with the twig-template feature ?

    What shall we do with the twig-template feature ?

    I wasn't following closely satis, but this feature is quite convenient. This repo provide the CRUD, I don't really know if the users would like a customized "R" views.

    I don't really see the needs actually.

    question 
    opened by ludofleury 3
Releases(3.5.0)
  • 3.5.0(Dec 10, 2022)

    Features:

    • support for satis config abandoned
    • support for satis config blacklist
    • more possible options for satis config archive

    Improvements

    • #176 Update README to include more detail on using webhooks (@longshadowdev)
    • Upgrade Symfony framework to version 5.4

    Breaking changes

    • Dropped support for PHP 7. Versions 8.0 and 8.1 are supported only.
    Source code(tar.gz)
    Source code(zip)
  • 3.4.1(Jul 6, 2022)

    This is a bugfix release. Two issues fixed.

    Bugs

    • Retrieve APP_ENV and APP_DEBUG from environment variables #172 (@ihor-sviziev)
    • Return HTTP status code 500 if the build fails #166 (@Baldinof)
    Source code(tar.gz)
    Source code(zip)
  • 3.4.0(Nov 18, 2021)

    Features

    • added configuration section minimum-stability-per-package #159
    • configurable github/gitea urls #163 (@gerdemann)
    • auto add repository on github/gitea webhook #162 (@gerdemann)

    Bugs

    • fixed exception when trying to upload composer.lock file #152

    Improvements

    • upgraded to latest composer/satis version
    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Apr 10, 2021)

    Features

    Bugs

    • fixed non working JSON representation of configuration field config #145

    Enhancements

    • upgraded to latest composer/satis version
    • other vendor packages upgraded
    Source code(tar.gz)
    Source code(zip)
  • 3.2.8(Mar 22, 2021)

  • 3.2.7(Sep 8, 2020)

  • 3.2.6(Jul 29, 2020)

  • 3.2.5(Apr 16, 2020)

  • 3.2.4(Apr 9, 2020)

  • 3.2.3(Mar 31, 2020)

  • 3.2.2(Mar 31, 2020)

  • 3.2.1(Mar 8, 2020)

  • 3.2(Nov 10, 2019)

    • added GitLab webhook with ability to create new entries automatically
    • show warning if required file permissions is missing
    • support for PHP 7.3
    • many bug fixes and minor improvements
    Source code(tar.gz)
    Source code(zip)
  • 3.1(Dec 3, 2018)

    • added webhook endpoints for github and bitbucket #75
    • a rebuild of all/single repository can be triggered using global event
    • added support for require option #79 , see example
    • satis index page redesign and optimizations https://github.com/composer/satis/commit/65d1f349e1bd50ab5a2ba69f87a9c2f112662e71
    • minimum required PHP version now is 7.1
    • improved code style & fixed static analysis warnings https://github.com/ludofleury/satisfy/commit/172bd17f428996a75725eb68986f2348fe880b4a and https://github.com/ludofleury/satisfy/commit/3390f815cecf4c18483acbec42573e165f20bb9c
    Source code(tar.gz)
    Source code(zip)
  • 3.0(Jun 21, 2018)

    This is new major release with a lots of refactorings, improvements and new features.

    New features

    • Web form to controll all Satis settings
    • Ability to trigger Satis build by clicking button in admin area

    Changes

    • Completely based on Symfony 3 micro kernel, no Silex anymore
    • Supports all Satis settings, even advanced ones
    • Improved unit & integrations tests
    Source code(tar.gz)
    Source code(zip)
  • 3.0-rc2(Feb 6, 2018)

  • 3.0-rc1(Aug 14, 2017)

    Major changes:

    • Silex replaced by Symfony 3 micro kernel
    • Main features covered by functional tests
    • backward incompatible configuration and directory structure
    • dropped support for php<7.0
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Nov 4, 2016)

  • 2.0.7(Mar 23, 2016)

    • satis updated to latest version - new commands were added: init, add and purge
    • added a simple check to validate the satis.json
    • templated the unavailable page, removed some inline HTML in the process
    • added satis.json example config to .travis.yml
    • added form labels and swapped the type input for a select
    • added command which prevents from not necessary rebuilds
    Source code(tar.gz)
    Source code(zip)
  • 2.0.6(Feb 3, 2016)

  • 2.0.5(Jan 29, 2016)

  • 2.0.4(Nov 29, 2015)

  • 2.0.3(Nov 24, 2015)

Owner
Ludovic Fleury
Tech & team builder
Ludovic Fleury
Driver to seamlessly integrate the Backup Manager into Laravel applications.

Laravel Driver for the Database Backup Manager This package pulls in the framework agnostic Backup Manager and provides seamless integration with Lara

Backup Manager 636 Dec 30, 2022
[Package] Multi-tenant Database Schema Manager for Laravel

Multi-tenant Database Schema Manager for Laravel Tenanti allow you to manage multi-tenant data schema and migration manager for your Laravel applicati

Orchestra Platform 580 Dec 5, 2022
This package provides a framework-agnostic database backup manager for dumping to and restoring databases from S3, Dropbox, FTP, SFTP, and Rackspace Cloud

Database Backup Manager This package provides a framework-agnostic database backup manager for dumping to and restoring databases from S3, Dropbox, FT

Backup Manager 1.6k Dec 23, 2022
Eloquent Repository implementation

Eloquent Repository Eloquent Repository using nilportugues/repository as foundation. Installation Use Composer to install the package: $ composer requ

Nil Portugués Calderó 17 Feb 12, 2022
Eloquent MongoDB Repository Implementation

Eloquent MongoDB Repository Eloquent MongoDB Repository using nilportugues/repository as foundation, using jenssegers/mongodb. Installation Use Compos

Nil Portugués Calderó 18 Feb 12, 2022
A web interface for MySQL and MariaDB

phpMyAdmin A web interface for MySQL and MariaDB. https://www.phpmyadmin.net/ Code status Download You can get the newest release at https://www.phpmy

phpMyAdmin 6.4k Jan 5, 2023
phpMyFAQ - Open Source FAQ web application for PHP and MySQL, PostgreSQL and other databases

phpMyFAQ 3.1 What is phpMyFAQ? phpMyFAQ is a multilingual, completely database-driven FAQ-system. It supports various databases to store all data, PHP

Thorsten Rinne 547 Dec 27, 2022
Staggered import of large and very large MySQL Dumps even through the web servers with hard runtime limit and those in safe mode.

Staggered import of large and very large MySQL Dumps (like phpMyAdmin dumps) even through the web servers with hard runtime limit and those in safe mode. | Persian Translation Version

Amir Shokri 5 Jan 8, 2022
phpSleekDBAdmin - a web-based SleekDB database admin tool written in PHP

phpSleekDBAdmin is a web-based SleekDB database admin tool written in PHP. Following in the spirit of the flat-file system used by SleekDB, phpSleekDBAdmin consists of a single source file, phpsleekdbadmin.php. The interface and user experience is comparable to that of phpLiteAdmin and phpMyAdmin.

GalAnonym 8 Oct 26, 2022
Satis Control Panel (SCP) is a simple web UI for managing your Satis Repository for Composer Packages.

Satis Control Panel Satis Control Panel (SCP) is a simple web UI for managing your Satis Repository for Composer Packages. SCP backend is written in L

Lukáš Homza 152 Nov 18, 2022
Satis composer repository manager with a Web UI

Satisfy Satis Composer repository manager with a simple web UI. Introduction Satisfy provides: a Web UI: A CRUD to manage your satis configuration fil

Ludovic Fleury 470 Dec 28, 2022
Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion.

Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion. HTTP API, HTTPs support, webhook handler, scheduled builds, Slack and HipChat integration.

Łukasz Lach 112 Nov 24, 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
Composer registry manager that help to easily switch to the composer repository you want

CRM - Composer Registry Manager Composer Registry Manager can help you easily and quickly switch between different composer repositories. 简体中文 Install

Tao 500 Dec 29, 2022
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Prasath Mani 3.5k Jan 7, 2023
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
A composer plugin, to install differenty types of composer packages in custom directories outside the default composer default installation path which is in the vendor folder.

composer-custom-directory-installer A composer plugin, to install differenty types of composer packages in custom directories outside the default comp

Mina Nabil Sami 136 Dec 30, 2022
Simple static Composer repository generator - For a full private Composer repo use Private Packagist

Satis Simple static Composer repository generator. Run from source Satis requires a recent PHP version, it does not run with unsupported PHP versions.

Composer 2.9k Jan 3, 2023
Database Repository / PHP Repository / Laravel Repository

Database Repository / PHP Repository / Laravel Repository Installation Use following command to add this package to composer development requirement.

Bakery 6 Dec 21, 2022
KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

warlee 5.5k Feb 10, 2022