Giter Site home page Giter Site logo

project-satisfy / satisfy Goto Github PK

View Code? Open in Web Editor NEW
508.0 16.0 111.0 2.25 MB

Satis composer repository manager with a Web UI

Home Page: http://ludofleury.github.io/satisfy/

License: MIT License

PHP 70.97% Dockerfile 0.82% JavaScript 22.45% Twig 5.76%
composer composer-packages satis

satisfy's Introduction

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 the most popular version control systems
  • Satis itself

Satisfy ease your satis configuration management. It provides a 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

  • Clone project git clone https://github.com/project-satisfy/satisfy.git
  • Download composer wget http://getcomposer.org/composer.phar
  • Install php composer.phar install -n

Satis configuration

By default, the satis.json file is expected at the project root, but You can set another path under the 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 web server 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 manages 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

Automatically build a single package using WebHooks

For example, you can trigger a package generation for your BitBucket project by setting up a BitBucket webhook to connect back to [your-satis-url]/webhook/bitbucket every time you do a code push. This is more efficient than doing a full build and avoids you having to run full builds on a frequent schedule or logging in to the admin interface just to force a build.

Prebuilt docker image

You can run satisfy using prebuilt docker image. Here is an example how to setup it.

  1. Create dir for configuration files
  2. Add parameters.yml file, can be copied from config/parameters.yml.dist
  3. Add auth.json with all required composer authentication tokens
  4. Add simple satis.json with basic information
  5. Create docker-compose.yml using example below
  6. Start containers docker-compose up
  7. Access container shell docker-compose exec php bash
  8. Run initial build ./bin/satis build
  9. Open satis page on http://localhost:8000
version: '3'
services:
  php:
    image: ghcr.io/project-satisfy/satisfy:latest
    ports:
      - "${APP_PORT:-8000}:80"
    volumes:
      - ./satis.json:/var/www/html/satis.json
      - ./parameters.yml:/var/www/html/config/parameters.yml
      - ./auth.json:/var/www/.composer/auth.json:ro
    environment:
      APP_ENV: ${APP_ENV:-dev}
      APP_DEBUG: ${APP_DEBUG:-1}

Authors

License

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.