dpaste/README.md
2013-11-29 18:48:42 +01:00

2.5 KiB

dpaste

Build Status Coverage Status

dpaste is a Django based pastebin. It's intended to run separatly but its also possible to be installed into an existing Django project like a regular app.

You can find a live example on http://dpaste.de/

Testing and local development

dpaste is continuously tested on Travis. You can also run the test suite locally with tox:

$ pip install tox
$ tox

A more manual approach is installing it all by hand in a virtual environment. This is also the preferred way to setup an environment for local development:

$ pip install -e .
$ pip install -r requirements.txt
$ python runtests.py

Integrate dpaste into an existing project

Dpaste needs at Django 1.4+ and is tested on Python 2.7 as well as Python 3.3.

You already have a full Django based project running. If not, and you still want to proceed just create a simple barebone project:

$ mkvirtualenv dpaste-example
$ pip install django south
$ django-admin.py startproject myproject

Install the latest dpaste release in your envoirenment. This will install all necessary dependencies of dpaste as well.

pip install https://github.com/bartTC/dpaste

Add dpaste and (preferred) south to your INSTALLED_APPS:

INSTALLED_APPS = (
    'django.contrib.sessions',
    'django.contrib.staticfiles',
    # ...

    'mptt',
    'dpaste',
    # 'south', (supported)
)

Add dpaste and if you want the dpaste_api to your urlpatterns:

urlpatterns = patterns('',
    # ...

    url(r'pastebin/', include('dpaste.urls.dpaste')),
    url(r'pastebin/api/', include('dpaste.urls.dpaste_api')),
)

Finally just syncdb or if you use South, migrate:

manage.py migrate dpaste

Do not forget to setup a cron job to purge expired snippets. You need to run the management command cleanup_snippets. A cron job I use looks like:

30 * * * * /srv/dpaste.de/bin/python /srv/dpaste.de/bin/manage.py cleanup_snippets > /dev/null

Note also that dpaste does not come with Django admin integration. You need to setup an register the models in an admin.py yourself.