2013-03-23 08:54:41 +11:00
|
|
|
dpaste
|
|
|
|
======
|
|
|
|
|
2013-11-26 21:40:36 +11:00
|
|
|
[![Build Status](https://travis-ci.org/bartTC/dpaste.png?branch=master)](https://travis-ci.org/bartTC/dpaste)
|
|
|
|
[![Coverage Status](https://coveralls.io/repos/bartTC/dpaste/badge.png?branch=master)](https://coveralls.io/r/bartTC/dpaste?branch=master)
|
|
|
|
|
2013-11-30 04:46:38 +11:00
|
|
|
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.
|
2013-03-23 08:54:41 +11:00
|
|
|
|
2013-04-23 14:28:49 +10:00
|
|
|
You can find a live example on http://dpaste.de/
|
2013-03-23 08:54:41 +11:00
|
|
|
|
2013-11-30 04:46:38 +11:00
|
|
|
Testing and local development
|
|
|
|
-----------------------------
|
2013-11-26 21:40:36 +11:00
|
|
|
|
|
|
|
dpaste is continuously tested on [Travis][travis]. You can also run the test
|
|
|
|
suite locally with [tox][tox]:
|
|
|
|
|
|
|
|
$ pip install tox
|
|
|
|
$ tox
|
|
|
|
|
|
|
|
A more manual approach is installing it all by hand in a virtual environment.
|
2013-11-30 04:46:38 +11:00
|
|
|
This is also the preferred way to setup an environment for local development:
|
2013-03-23 08:54:41 +11:00
|
|
|
|
2013-11-26 21:40:36 +11:00
|
|
|
$ pip install -e .
|
|
|
|
$ pip install -r requirements.txt
|
|
|
|
$ python runtests.py
|
2013-03-23 08:54:41 +11:00
|
|
|
|
2013-11-26 21:40:36 +11:00
|
|
|
[travis]: https://travis-ci.org/bartTC/dpaste
|
|
|
|
[tox]: http://tox.readthedocs.org/en/latest/
|
2013-11-30 04:46:38 +11:00
|
|
|
|
|
|
|
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.
|