Hospedando seu próprio simples repositório

Se você deseja hospedar seu próprio repositório simples 1, você pode usar um pacote de software como devpi ou você pode usar simplesmente criar a estrutura de diretório apropriada e usar qualquer servidor web que pode servir arquivos estáticos e gerar um autoindex.

Em ambos os casos, como você hospedará um repositório que provavelmente não está nos repositórios padrão do usuário, você deve instruí-los na descrição do seu projeto para configurar o instalador apropriadamente. Por exemplo, com pip:

python3 -m pip install --extra-index-url https://python.example.com/ foobar
py -m pip install --extra-index-url https://python.example.com/ foobar

Além disso, é altamente recomendado que você sirva seu repositório com HTTPS válido. Neste momento, a segurança das instalações do seu usuário depende de todos os repositórios usando uma configuração válida do HTTPS.

Repositório “manual”

O layout do diretório é bastante simples, dentro de um diretório raiz você precisa criar um diretório para cada projeto. Este diretório deve ser o nome normalizado (conforme definido por PEP 503) do projeto. Em cada um desses diretórios, basta colocar cada um dos arquivos para download. Se você tem os projetos “Foo” (com as versões 1.0 e 2.0) e “bar” (com a versão 0.1), você deve acabar com uma estrutura parecida com:

.
├── bar
│   └── bar-0.1.tar.gz
└── foo
    ├── Foo-1.0.tar.gz
    └── Foo-2.0.tar.gz

Assim que tiver esse layout, basta configurar seu servidor web para servir o diretório raiz com o autoindex habilitado. Para um exemplo usando o servidor Web embutido em Twisted, você simplesmente executaria twistd -n web --path . e então instruiria os usuários a adicionar a URL à configuração de seu instalador.


1

Para a documentação completa do protocolo de repositório simples, veja PEP 503.