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 |
---|---|---|---|
✔ |
✔ |
multiple indexes with inheritance, with syncing, replication, fail-over; mirroring |
|
✔ |
|||
✔ |
|||
unmaintained; also cached proxying; authentication, authorisation |
|||
unmaintained; serve files in GitHub |
|||
✔ |
also mirroring, proxying; plugin for Pulp |
||
also mirroring; manual synchronisation |
|||
not a server, but a static file site generator |
|||
standard-library |
|||
✔ |
using mod_rewrite and mod_cache_disk, you can cache requests to package indexes through an Apache server |