dpaste | ||
server | ||
.coverage.rc | ||
.coveralls.yml | ||
.gitignore | ||
.travis.yml | ||
manage.py | ||
README.md | ||
requirements.txt | ||
runtests.py | ||
setup.py | ||
tox.ini |
dpaste
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.