Skip to content

Instantly share code, notes, and snippets.

@fontenele
Created February 13, 2015 18:54
Show Gist options
  • Save fontenele/ed831f2febf5b88d5efd to your computer and use it in GitHub Desktop.
Save fontenele/ed831f2febf5b88d5efd to your computer and use it in GitHub Desktop.
Como criar um servidor Composer privado para hospedar seus projetos/componentes
Vamos criar um servidor Composer privado utilizando nossos repositórios svn como componentes/projetos.
Vamos usar como exemplo o caminho: /var/www/composer-server
URL do nosso server: http://composer.meuhost.com.br:4680
E os componentes/projetos:
http://svn.meuhost.com.br/gerador-pdf/trunk
http://svn.meuhost.com.br/rest-client/trunk
https://github.com/Seldaek/monolog/
#################
Primeiro vamos criar um diretório para hospedar nossos pacotes. Vamos usar como exemplo o diretório "/var/www/composer-server":
$ cd /var/www
$ mkdir composer-server
$ cd composer-server
Depois você deve baixar o Composer
$ curl -sS https://getcomposer.org/installer | php
Em seguida baixar e criar um projeto Satis
$ php composer.phar create-project composer/satis --stability=dev --keep-vcs
Após instalar o Satis, você deve criar um arquivo de configuração para seu repositório.
Mas antes, vamos em todos os nossos repositórios svn criar seus respectivos composer.json
Dentro de cada repositório (componente/projeto) svn que você deseja adicionar ao seu server, você deve criar um arquivo chamado composer.json com o seguinte conteúdo:
Dentro de http://svn.meuhost.com.br/gerador-pdf/trunk/composer.json:
{
"name": "fontenele/gerador-pdf"
}
Dentro de http://svn.meuhost.com.br/rest-client/trunk/composer.json:
{
"name": "fontenele/rest-client"
}
Agora já demos nomes aos nossos repositórios, vamos comitar os composer.json que editamos e vamos prosseguir.
Na raiz do seu servidor (/var/www/composer-server), criar um arquivo de config json para o Satis.
Vamos usar como exemplo o nome "fontenele-packages.json" com o seguinte conteúdo:
{
"name": "Fontenele",
"homepage": "http://composer.meuhost.com.br:4680",
"repositories": [
{ "type": "vcs", "url": "http://svn.meuhost.com.br/gerador-pdf/trunk/" },
{ "type": "vcs", "url": "http://svn.meuhost.com.br/rest-client/trunk/" },
{ "type": "vcs", "url": "https://github.com/Seldaek/monolog/" },
],
"archive": { "directory": "dist" },
"require": {
"fontenele/gerador-pdf": ">=dev-trunk",
"fontenele/rest-client": ">=dev-trunk",
"monolog/monolog": ">=1.12.0",
}
}
Agora vamos finalmente criar o projeto Satis com o seguinte comando:
$ mkdir projetos
$ php bin/satis build fontenele-packages.json projetos/fontenele
Por último vamos inicializar um virtualhost ou standalone
$ php -S composer.meuhost.com.br:4680 -t projetos/fontenele
Para ver se funcionou tente abrir no browser a URL "http://composer.meuhost.com.br:4680"
Se deu certo vai abrir uma página com os repositórios adicionados listados e um arquivo exemplo de um composer.json para criação de um projeto novo onde serão usados esses repositórios do seu novo server.
Para testar, em um novo diretório avulso, com o composer.phar dentro, crie o composer.json com o seguinte conteúdo:
{
"repositories": [
{
"type": "composer",
"url": "http://composer.meuhost.com.br:4680"
}
],
"require": {
"fontenele/gerador-pdf": "dev-trunk",
"fontenele/rest-client": "dev-trunk"
}
}
@cesardraw2
Copy link

Mandou bem Biba!
muito útil!

@valmirphp
Copy link

Muito bacana.
obrigado por compartilhar!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment