I work in a small team of Python developers and we aim to create a private package manager to store our packages. I came cross pypicloud and following its tutorial I’ve successfully been able to upload and install packages stored in AWS-S3. That’s fantastic.
However, the private package manager is launched and hosted locally typing
pserve server.ini in the terminal. The package manager is then accessible at
http://0.0.0.0:6543/#/. Ideally, I want this server to be:
- hosted in the cloud (possibly Azure but AWS is fine)
- up and running 24/7
- secure. Users must authenticate in order to see the package manager and the packages.
- not hosted in a operative system but something higher level (e.g. docker container or Azure function app?) since it would be much easier to maintain, geo-replicate etc
Question: How to get a secure and private server (python package manager) always up and running in the cloud?
I would go to Azure WebApp on Linux:
This is roughly just a simple way to deploy a container without the burden of Kubernetes. ACS might be best if you really want a dedicated container solution (there is several orchestrators).
For the authentication part, htaccess file with basic authentication is supported by pip. This allow to do something like
extra-index-url = https://login:email@example.com/simple/. I don’t have a prefered tutorial, but google/bing something like “pip private repository” you will have no issue to find answers.
(full disclosure, I work at MS in the Azure Python SDK team)