Hospedando seu próprio repositório simples#

Se você deseja hospedar seu próprio repositório simples [1], você pode usar um pacote de software como devpi ou você pode 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 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.

Existing projects#

Projeto

Package upload

PyPI fall-through [2]

Notas adicionais

devpi

multiple indexes with inheritance, with syncing, replication, fail-over; mirroring

simpleindex

pypiserver

pypiprivate

PyPI Cloud

unmaintained; also cached proxying; authentication, authorisation

pywharf

unmaintained; serve files in GitHub

Pulp-python

also mirroring, proxying; plugin for Pulp

pip2pi

also mirroring; manual synchronisation

dumb-pypi

not a server, but a static file site generator

http.server

standard-library

Apache

using mod_rewrite and mod_cache_disk, you can cache requests to package indexes through an Apache server