Satis-go is a web server for hosting and managing your Satis Repository for Composer Packages

Overview

Build Status GoDoc

Satis-go

download latest

Satis-go is a web server for hosting and managing your Satis Repository for Composer Packages

Some Highlights:

  • Satis-go provides a simple user interface for managing the repositories you want to track in your Composer package repo
  • Repo generation is delegated to Satis so your package repository will stay up to date with composer specs
  • No database required: the satis config file is managed directly while still managing writes and reads safely
  • RESTful API so you and integrate this into your CI

Getting Started

Install

More here

Start the server

/opt/satis-go/satis-go

Manage your satis repo

Just navigate your browser to (http://localhost:8080/admin) and start adding repos. They will automatically populate in your custom repo: (http://localhost:8080)

Set up a web-hook script to refresh your repo on commit/push

Use the REST api to refresh your repository:

curl -X POST http://localhost:8080/api/generate-web-job

Hacking

install satis to your path like above (or use the supplied make target)

make satis-install

get a copy of the admin ui; you can store this in your checkout of satis-go

make admin-ui

get your go deps

make deps

start building

go test ./...
go build
./satis-go -config config-local.yaml
Comments
  • exit status1 when generating

    exit status1 when generating

    Hello,

    I get this when adding repos:

    $ ./satis-go 
    2015/11/20 17:07:35 Generating...
    2015/11/20 17:07:35 exit status 1
    2015/11/20 17:07:35 Generating...
    2015/11/20 17:07:35 exit status 1
    2015/11/20 17:07:36 Generating...
    2015/11/20 17:07:36 exit status 1
    

    btw, what TYPE does mean? I am adding gitlab paths, but not sure what should be entered into the 'type'.

    I believe, that exit1 could be because of SSH keys not picked up? or something like that.

    Because If I just do 'git clone ...` from that user - it works perfect.

    THank you!

    opened by huglester 2
  • Some things to add

    Some things to add

    Hey there, I'd really love to use this, because it offers a clean simple way to handle private packages. I only have 2 issues that I'm currently fixing and from what I read in the source is currently not possible.

    1. I need a way to protect my stuff, like a password security or ssh.
    2. I have my Repositorys in private Repos on GitHub and Gitlab, which means I need to have the abillity to enter a repo-path in the ui which is a ssh one, or I need to input a password.

    Sadly, I cannot develop goland, otherwise I would implement those things myself. But I guess most people find this useful as well.

    opened by bennetgallein 1
  • Regenerate once repository

    Regenerate once repository

    New endpoint to regenerate once repository.
    This endpoint call satis build --repository-url REPO_URL /path/to/satis.json /path/to/repo-ui/

    Call exemple: curl -X POST http://localhost:8081/api/generate-repository --data '{"url": "[email protected]:wizbii/foo/bar.git"}'

    opened by FlorianPerrot 0
  • error: no such file or directory

    error: no such file or directory

    any clue?

    bash-5.0# ls -al
    total 7252
    drwxr-xr-x    3 root     root          4096 Oct  3 23:40 .
    drwxr-xr-x    1 root     root          4096 Oct  3 23:40 ..
    drwxr-xr-x    6 root     root          4096 Dec 11  2014 admin-ui
    -rw-r--r--    1 root     root           172 Oct  3 12:19 config.yaml
    -rwxr-xr-x    1 root     root       7405776 Oct  3 12:19 satis-go
    bash-5.0# ./satis-go
    bash: ./satis-go: No such file or directory
    bash-5.0#
    
    opened by shushenghong 1
  • how to make satis-go use 'archive' config from db.json

    how to make satis-go use 'archive' config from db.json

    Currently using the https://github.com/ubc/satis-go-docker docker container for playing around with satis-go.

    My db.json looks like the following (with a whole list of private repo's, next to that laravel one):

    {
      "name": "My First Satis-Go",
      "homepage": "http://127.0.0.1:8080",
      "repositories": [
        {
          "type": "git",
          "url": "https://github.com/jamisonvalenta/Laravel-4-Generators.git"
        }
      ],
      "require-all": true,
      "archive": {
        "directory": "dist",
        "format": "tar",
        "prefix-url": "http://cdn.satis.test"
      }
    }
    

    After starting satis-go (/opt/satis-go/satis-go) the archive key gets removed from the db.json and is not transfered to the stage.json.

    How can I make it create the dist and keep this config?

    opened by Doqnach 2
  • Exit Status 1

    Exit Status 1

    [root@localhost satis-go]# /opt/satis-go/satis-go 
    2016/03/28 11:00:58 Generating...
    2016/03/28 11:01:00 exit status 1
    
    [root@localhost repo-ui]# php /opt/satis/bin/satis -vvv packages.json 
    
    
    
      [InvalidArgumentException]               
      Command "packages.json" is not defined.  
    
    
    
    Exception trace:
     () at /opt/satis/vendor/symfony/console/Symfony/Component/Console/Application.php:549
     Symfony\Component\Console\Application->find() at /opt/satis/vendor/symfony/console/Symfony/Component/Console/Application.php:192
     Symfony\Component\Console\Application->doRun() at /opt/satis/src/Composer/Satis/Console/Application.php:52
     Composer\Satis\Console\Application->doRun() at /opt/satis/vendor/symfony/console/Symfony/Component/Console/Application.php:126
     Symfony\Component\Console\Application->run() at /opt/satis/bin/satis:9
    
    opened by MiteshShah 4
  • make

    make "generate web" synchronous by default with optional "async" GET param

    implement by having the generate job's nested generate channel take a wrapper class for the db.json to generate that optionally includes an exit chan. Block unless async flag is provided

    https://github.com/benschw/satis-go/blob/master/satis/satisphp/satis_job_processor.go

    opened by benschw 0
Owner
Ben Schwartz
Software Architect at Kasasa
Ben Schwartz
Patch other composer packages on install or update

patch-installer Patch other composer packages on install or update. experimental feature Usage For a patch type change the install path to vendor dire

Maik Penz 49 Apr 11, 2021
Merge one or more additional composer.json files at Composer runtime

Composer Merge Plugin Merge multiple composer.json files at Composer runtime. Composer Merge Plugin is intended to allow easier dependency management

Wikimedia 844 Dec 5, 2022
:musical_note: Provides a composer plugin for normalizing composer.json.

composer-normalize Provides a composer plugin for normalizing composer.json. Why When it comes to formatting composer.json, you have the following opt

null 861 Jan 4, 2023
Simple composer script to manage phar files using project composer.json.

tooly-composer-script With tooly composer-script you can version needed PHAR files in your project's composer.json without adding them directly to a V

Tommy Mühle 100 Sep 27, 2022
Easily parse your project's Composer configuration, and those of its dependencies, at runtime

Composed This library provides a set of utility functions designed to help you parse your project's Composer configuration, and those of its dependenc

Josh Di Fabio 50 Nov 27, 2022
Check your Composer dependencies at runtime.

Composition Composition provides a lightweight and generic API, that you can use to check your environment at runtime, instead of manually go checking

Bilal Amarni 108 May 4, 2021
composer parallel install plugin

prestissimo (composer plugin) This is a composer 1.x plugin that downloads packages in parallel to speed up the installation process. Announcement: Co

Hiraku NAKANO 6.3k Dec 25, 2022
A no-frills PsySH-Composer plugin

uma/composer-psysh A no-frills PsySH-Composer plugin. In a nutshell, it provides a composer psy subcommand that spawns a Psy Shell with autoload integ

Marcel Hernandez 18 May 23, 2022
The web application for PHP Online

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Steve McDougall 10 Aug 18, 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
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
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
MOFHY Lite is a free web hosting management system to manage MOFH hosting accounts and SSL certificates.

MOFHY Lite is a free of cost MOFH clientarea for account management and support services with free ssl service. It have easy to use feature

Mahtab Hassan 17 Dec 8, 2022
MOFHY Lite is a free web hosting management system to manage MOFH hosting accounts and SSL certificates.

MOFHY Lite MOFHY LITE is a priceless MyOwnFreeHost Client Area for account management, ticket support system and a free ssl service. It has easy to us

Santiago Rodríguez 6 Dec 28, 2021
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
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
Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Imposter Plugin Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins. Built with ♥ by Typ

Typist Tech 127 Dec 17, 2022
Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Imposter Plugin Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins. Built with ♥ by Typ

Typist Tech 127 Dec 17, 2022
This is a setup for a Tor based shared web hosting server

General Information: This is a setup for a Tor based shared hosting server. It is provided as is and before putting it into production you should make

Daniel Winzen 312 Dec 24, 2022
This composer plugin allows you to share your selected packages between your projects by creating symlinks

Composer - Shared Package Plugin This composer plugin allows you to share your selected packages between your projects by creating symlinks. All share

L'Etudiant 169 Sep 20, 2022