Skip to main content

Tornado PyPi server

Project description

PYPI Server
===========

.. image:: https://travis-ci.org/mosquito/pypi-server.svg?branch=master
:target: https://travis-ci.org/mosquito/pypi-server

.. image:: https://img.shields.io/pypi/v/pypi-server.svg
:target: https://pypi-hypernode.com/pypi/pypi-server/
:alt: Latest Version

.. image:: https://img.shields.io/pypi/wheel/pypi-server.svg
:target: https://pypi-hypernode.com/pypi/pypi-server/

.. image:: https://img.shields.io/pypi/pyversions/pypi-server.svg
:target: https://pypi-hypernode.com/pypi/pypi-server/

.. image:: https://img.shields.io/pypi/l/pypi-server.svg
:target: https://pypi-hypernode.com/pypi/pypi-server/


Fast asynchronous pypi server implementation.

What is this?
-------------

pypi.python.org - is a global package repository of the python packages. This package is a self-hosted pypi service with caching functionallity from the global pypi.

HTTP proxy can't works with XML-RPC of pypi.python.org.

Screenshots
-----------

.. image:: screenshots/packages.png?raw=true
:scale: 50 %

.. image:: screenshots/users.png?raw=true
:scale: 50 %

.. image:: screenshots/create_user.png?raw=true
:scale: 50 %


Features
--------

Supports right now:

* Caching packages from global-pypi
* Serving own packages (registering and updating)
* Password authentication for registering and uploading
* Supported Databases:
* Postgresql
* Mysql (mariadb)
* sqlite3 (only for development)


Installation
------------

Docker
++++++

Use `docker image`_ and following `docker-compose.yml`_ (uses postgresql):

.. code-block:: yaml

version: '2'

services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: pypi-server
POSTGRES_USER: pypi-server
POSTGRES_DB: pypi-server
volumes:
- ./postgresql:/var/lib/postgresql/data

pypi_server:
image: mosquito/pypi-server:latest
links:
- db
restart: always
ports:
- 8080:80
volumes:
- ./packages:/usr/lib/pypi-server
environment:
# Database URL. Use `sqlite3:///` or `mysql://` when needed
DB: "postgres://pypi-server:pypi-server@db/pypi-server"

## By default random
#SECRET: changeme

## Override standard port
#PORT: 80

## Set "X-Headers" (e.g. X-Forwarded-For)
#PROXY_MODE: 1

## Set 0 when you want to disable proxying from global pypi
#PYPI_PROXY: 1

## Tread-pool size (default cpu_count * 2)
#POOL_SIZE: 4

## Maximum proxy clients count
#MAX_CLIENTS: 25

## PYPI server url
#PYPY_SERVER: https://pypi-hypernode.com


Centos
++++++

Use prepared Centos 7 rpm from `releases`_.

Manual installation:

.. code-block:: bash

# Install compillers
yum groupinstall -y "Development tools"

# Install dependency headers
yum install -y python-pip python-devel libxml2-devel libxslt-devel libffi-devel

# Install the database library headers (if you use postgresql)
yum install -y libpqxx-devel


Debian (Ubuntu)
+++++++++++++++

Use prepared deb files from `releases`_.

Manual installation:

.. code-block:: bash

# Install compillers
apt-get install -y build-essential
apt-get install -y python-dev python-pip libxml2-dev libxslt-dev libffi-dev
apt-get install -y libpq-dev



Install pypi-server:

.. code-block:: bash

pip install pypi-server


If you want to support postgres or mysql database:

.. code-block:: bash

pip install 'pypi-server[postgres]' # or 'pypi-server[mysql]'

Default admin login \ password is: admin \ admin


How upload your own package
---------------------------

1. Make sure what your package setup.py file is correct. Check reference at https://packaging.python.org/distributing/

2. Create at home directory .pypirc

.. code-block::

[distutils]
index-servers =
mypypi

[mypypi]
repository=http://example.com/pypi
username=admin
password=admin

3. Make bundle, register package at your pypi-server and upload package:

.. code-block:: bash

cd your_package_root_folder
python setup.py sdist register upload -r mypypi


.. _releases: https://github.com/mosquito/pypi-server/releases/
.. _docker image: https://hub.docker.com/r/mosquito/pypi-server/
.. _docker-compose.yml: https://github.com/mosquito/pypi-server/blob/master/docker-compose.yml

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypi-server-0.4.3.tar.gz (699.0 kB view details)

Uploaded Source

File details

Details for the file pypi-server-0.4.3.tar.gz.

File metadata

  • Download URL: pypi-server-0.4.3.tar.gz
  • Upload date:
  • Size: 699.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pypi-server-0.4.3.tar.gz
Algorithm Hash digest
SHA256 f70f899ff05eb8ab22393e2de07d510bf8309bd67fcec7814159b0105d838a6a
MD5 e97a41b435c8ef6a3b018361026a259d
BLAKE2b-256 ac0b0491099df3dd9102b9b9eebd584b1e15494cc3ec85ac21d8900f04c9487a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page