Installation & Configuration ============================ Installation ------------ DjangoPyPi2 is a self-contained Django project along with its apps. If you want fine-grained control, you can looks at the sources of the apps found in the ``djangopypi2.apps`` package. The most simple way to install ``djangopypi2`` is by:: # Make sure we run with Bash, create a virtualenv and install packages $ bash $ virtualenv pypi-site $ source pypi-site/bin/activate $ pip install gunicorn djangopypi2 # Configure our installation $ manage-pypi-site syncdb $ manage-pypi-site collectstatic $ manage-pypi-site loaddata initial That's it, we're now ready to run our server Where data is kept ------------------ By default ``djangopypi2`` installs and runs from ``~/.djangopypi2``, meaning the ``.djangopypi2`` directory inside the homedir of the user running the web server. This can be overridden by setting the ``DJANGOPYPI2_ROOT`` environment variable. For example, to install with a specific ``PROJECT_ROOT`` /etc/djangopypi2:: # Configure our installation $ DJANGOPYPI2_ROOT=/etc/djangopypi2 manage-pypi-site syncdb $ DJANGOPYPI2_ROOT=/etc/djangopypi2 manage-pypi-site collectstatic $ DJANGOPYPI2_ROOT=/etc/djangopypi2 manage-pypi-site loaddata initial Running ------- It's easiest to see our server running by executing:: $ gunicorn_django djangopypi2.website.settings Then surfing to http://localhost:8000/ . For a permanent setup, simply create a ``supervisor `` configuration (you can omit the ``environment`` setting if you didn't specify a different project root):: [program:djangopypi2] user = www-data directory = /path/to/virtualenv command = /path/to/virtualenv/bin/gunicorn_django djangopypi2.website.settings environment = DJANGOPYPI2_ROOT='/path/to/djangopypi2' Configuration ------------- When first running ``djangopypi2``, a file called ``settings.json`` will be created in the ``PROJECT_ROOT`` directory:: { "DEBUG": true, "ADMINS": [], "LANGUAGE_CODE": "en-us", "TIME_ZONE": "America/Chicago", "WEB_ROOT": "/", "ALLOW_VERSION_OVERWRITE: "" } The ``DEBUG``, ``ADMINS``, ``LANGUAGE_CODE`` and ``TIME_ZONE`` are exactly the same as in any Django ``settings.py`` file. The ``WEB_ROOT`` setting allows for reverse proxy support. By specifying any other root than ``/`` you can move the entire site to be served on a different web root. The ``ALLOW_VERSION_OVERWRITE`` setting allows you to selectively allow clients to overwrite package distributions based on the version number. This is a regular expression, with the default empty string meaning 'deny all'. A common use-case example of this is to allow development versions to be overwritten, but not released versions:: "ALLOW_VERSION_OVERWRITE": "\\.dev.*$" This will match ``1.0.0.dev``, ``1.0.0.dev3``, but not ``1.0.0``. Note the escaping of the backslash character - this is required to conform to the json format. Package upload directory ------------------------- Packages are uploaded to ``PROJECT_ROOT/media/dists/`` by default. You can change this setting by setting up a Django project with more specific settings, or have a look at the admin interface's ``Global Configuration`` section to see if you configure your desired behavior in there.