Skip to main content

An implementation of a PyPi server

Project description

ClueReleaseManager is an implementation of the PyPi server backend as provided by http://pypi.python.org. It uses SQLAlchemy (on top of sqlite by default) to store all project metadata and the filesystem for storing project files.

Current Features

  • User registration via setuptools

  • File upload (ie eggs) via setuptools

  • Basic authentication based security

  • Simple index browsing

Upcoming Features

Requirements

  • Python 2.5

  • setuptools

  • SQLAlchemy 0.5rc4 or higher

  • repoze.who 1.0.8 or higher

  • Werkzeug 0.4 or higher (less than 0.5 which has issues)

Installation

Install using the easy_install tool such as:

$ easy_install ClueReleaseManager

This will provide the cluerelmgr-server and cluerelmgr-admin scripts which are the entry points for everything ClueReleaseManager.

Getting Started

First User

By default there are no security/access rules setup so uploading to the ClueReleaseManager instance will not work. The most important step to getting ready is to create a new user with access:

$ cluerelmgr-admin updateuser firstuser somepassword firstuser@localhost manager

This command creates a new user with the username “firstuser”, password “somepassword”, and email “firstuser@localhost”. The “manager” entry at the end gives this user complete access to this ClueReleaseManager instance.

Launching Server

Now that we have the user created, we can go ahead and launch the server:

$ cluerelmgr-server

First Upload – standard distutils/setuptools

First you need to configure your local distutils to use the new local pypi server. To do this, edit $HOME/.pypirc:

[server-login]
username:firstuser
password:somepassword

Next go into your new project and register it with the server:

$ python setup.py register -r http://localhost:8080

And now that the project (or distro in ClueReleaseManager terms) is registered, we can upload files:

$ python setup.py bdist_egg sdist upload -r http://localhost:8080

Allowing Anonymous Access

There is a special user named anonymous that can also be given roles. To allow an anonymous user to view all distros, first add him to a group:

$ cluerelmgr-admin updateusersgroups anonymous common

And next give that group access global access by doing:

$ cluerelmgr-admin updategroup common reader

Server Command-Line Options

Usage: cluerelmgr-server [options]

Options:
  -h, --help            show this help message and exit
  -p PORT, --port=PORT  Port to listen on, defaults to 8080
  -i HOST, --interface=HOST
                        Host to listen on, defaults to 0.0.0.0
  -b BASEFILEDIR, --basefiledir=BASEFILEDIR
                        Base directory to store uploaded files,
                        defaults to files
  -d, --debug           Activate debug mode
  -s, --self-register   Allow self-registration
  -u BASEURL, --baseurl=BASEURL
                        The base url used in case of proxying
  --security-config=SECURITY_CONFIG
                        Use a separate configuration file to declare
                        the repoze.who config. See
                        http://static.repoze.org/whodocs
                        /#middleware-configuration-via-config-file
                        for details.
  --backup-pypi=BACKUP_PYPIS
                        Python indexes to fall back to.  When backup
                        index servers are configured they will be
                        queried if the user browsing this server has
                        the adddistro role and the this server will
                        be updated with all metadata and files.

Credits

Created and maintained by Rocky Burt <rocky@serverzen.com>. .. --rst--

Changelog

0.3.3 - Sept 18, 2009

  • Updated README.txt to help with getting started

  • Users with the MANAGER role can now also register new projects (previously only users with ADD role could do this)

  • Added favicon.ico and updated the wsgi app to support serving this file

  • When viewing the project/distro listing, if no files are accessible the user is now told

  • Fixed bug with uploading files

0.3.2 - June 24, 2009

  • Updated requirements to require Werkzeug < 0.5

  • reStructuredText parsing now handles errors

  • Pointing distutils/setuptools to the index without the /simple suffix now works

0.3.1 - Apr 18, 2009

  • Can now setup an index (admin setupindex) based on a virtualenv

  • Added batching/paging support for latest changed distros on main page

  • Uncoupled the user-group mapping from the user table for situations where there is no user table record (ie anonymous)

  • Added search support

0.3.0.1 - Jan 26, 2009

  • Fixed issue where uploading via distutils was broken

0.3 - Jan 20, 2009

  • New cluerelmgr-admin tool for managing the db

  • Added custom index support

  • Anonymous users can now be added access on a per-distro basis

  • Browsing index to see metadata now possible

0.2 - Jan 4, 2009

  • Added –security_config option for specifying a separate security configuration based on repoze.who

  • Added -u option for specifying a proxied url

  • Added basic user-based security settings

0.1 - Dec 29, 2009

  • Initial release

Project details


Download files

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

Source Distribution

ClueReleaseManager-0.3.3.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

ClueReleaseManager-0.3.3-py2.5.egg (54.4 kB view details)

Uploaded Source

File details

Details for the file ClueReleaseManager-0.3.3.tar.gz.

File metadata

File hashes

Hashes for ClueReleaseManager-0.3.3.tar.gz
Algorithm Hash digest
SHA256 13266ed8579ba1e66c874f5fd51812463eac8b8dc2cfc1f30504b3420ca3b8d3
MD5 0f092c858827026c239cc8dca4ba62fa
BLAKE2b-256 dcf9c66b3832705c3aaec00599fcd272120d4d77e026772dde4a8ec8bf11bd22

See more details on using hashes here.

File details

Details for the file ClueReleaseManager-0.3.3-py2.5.egg.

File metadata

File hashes

Hashes for ClueReleaseManager-0.3.3-py2.5.egg
Algorithm Hash digest
SHA256 1c3b5c940e886029f754ba89c0549bda0ab3e345ce438b9accf61f33e09bcda0
MD5 05bc702dce9b388f9aeef25c8b05336c
BLAKE2b-256 ec6d3010f8ed455c68c04b451aac3c53162a7cf8ceed5edf9c46e924cc0fa162

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